UART (Universal asynchronous receiver/transmitter)
인터페이스 & 프로토콜 파트 중 BASIC
UART (Universal asynchronous receiver/transmitter)
- UART 자체는 하드웨어를 가리킨다. UART 가 사용하는 통신 방법이 UART 통신
- 현재는 USB를 사용하여 간단히 장치에 연결할 수 있지만, 과거에는 UART와 다른 통신 기술을 이용하여 장치에 연결하였음
- 이 글에서는 UART 통신에 대해 다룬다
1. UART 통신
- MCU와 다른 장치 간의 통신에서 많이 사용하는 기법 중 하나([[I2C]], [[SPI]])
- 직렬 통신, 비동기통신이라는 특징을 가짐
- UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용
- 전송되는 데이터의 기본 단위는 5~9비트
- 두개의 와이어(송신(Tx)과 수신(Rx))를 사용한다
장점
- 두개의 와이어만 사용하여 구현이 간단하고, 설정이 쉬워 임베디드 시스템에서 많이 사용됨
- 통신 원리를 이해하기가 다른 통신보다 상대적으로 쉬움
- 비동기 방식이므로 클럭 신호 불필요
- 오류 검출을 위한 패리티 비트를 사용할 수 있음
- 데이터 패킷의 구조는 양쪽 장치에서 설정에 따라 유연하게 변경 가능
단점
- 데이터 프레임의 크기가 최대 9비트로 제한됨
- 하나의 Master와 하나의 Slave 구조로 동작함
- 송신 UART와 수신 UART 장치의 Baud Rate의 허용 오차는 10% 이내
2. UART 통신 과정
- 비동기 통신이므로, 시작비트(Start bit) 와 정지 비트(Stop bit) 를 사용함
통신 프레임 구조
- 시작 비트 : 통신의 시작을 의미하며, 한 비트 시간 동안 유지
- 데이터 비트 : 5~8비트의 데이터를 전송함. 몇 비트를 사용할 것인지는 해당 레지스터 설정에 따라 결정
- 패리티 비트 : 오류 검출을 위한 패리티 값을 생성하여 송신, 수신 측에서 오류 검출. 사용 안함, 짝수, 홀수 패리티 등의 세가지 옵션을 레지스터를 통해 설정 가능
- 정지 비트 : 통신의 종료를 알림
하드웨어 구성 요소
- 송신기(TX : Transmitter) : 데이터를 직렬로 변환하여 송신하는 역할
- 수신기(RX : Receiver) : 직렬로 수신한 데이터를 병렬 데이터로 변환하여 처리함
Baud rate
- 1초당 얼마나 많은 데이터를 보낼 것인지 결정
3. 신호 변환
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.