mcu에서 can, i2c 등과 같이 가장 많이 쓰이는 통신방법중의 하나이다.
일반적으로 시리얼(serial) 혹은 RS232통신으로 불리우며 1:1 통신이다.
물론 1:N 통신이 가능한 RS422, RS485통신도 있다.
1. UART vs USART
1) USART(Universal Synchronous/Asynchronous Receiver Transmitter)
└ 범용 동기/비동기화 송수신 (반이중, 양방향-수신/송신 동시에 불가)
-. 데이터 동기화를 위해 별도의 clock 신호를 사용한다.
-. UART에서 사용하는 start & stop bit가 필요없어 전송 효율 좋음
-. UART에서 필요없는 clock 전송을 위한 추가 배선이 필요
-. UART에 비해 데이터 전송 속도가 빠르다.
2) UART(Universal Asynchronous Receiver Transmitter)
└ 범용 비동기화 송수신 (전이중, 양방향-수신/송신 동시에 가능)
-. 데이터 동기화를 위해 start & stop bit를 사용
-. 데이터 전송 오류 검출을 위해 parity bit를 사용
-. 일반적으로 UART는 USART의 비동기 모드에 해당된다.
2. polling vs interrupt vs dma
1) polling (주변장치가 수동적)
-. MCU에서 주변장치의 상태 변화를 주기적으로 체크하는 방식
-. 주기적인 상태 확인으로 인해 MCU 성능을 100% 활용하지 못함
2) interrupt (주변장치가 능동적)
-. 주변장치에서 상태 변화가 발생하면 MCU로 인터럽트 신호 전송
-. MCU는 인터럽트 신호가 들어오면 잠시 주변장치와 송수실 실시
-. 일반적으로 polling 방식에 비해 성능이 좋음
3) dma (Direct Memory Access)
-. 기본적으로 인터럽트와 비슷하게 동작
-. dma controller에서 MCU가 할 일을 일부 더 가져와서 수행
(주변장치와 데이터를 주고 받는 과정 후 인터럽트 신호 전송)
-. 일반적으로 interrupt 방식에 비해 성능이 좋음
@ 다음은 에 대해서 알아보자
'MCU' 카테고리의 다른 글
[mcu] CAN 통신 개요 (0) | 2022.08.23 |
---|