로딩
티스토리 데이터 처리 중입니다.

UART 통신

 UART 통신

UART 통신은 직렬 방식으로 데이터를 교환하는 비동기식 통신이다. 주로 TX와 RX 두 선으로 양방향 전송이 가능하고, 필요 시 RTS와 CTS 같은 흐름 제어 신호선이 추가될 수 있다. 이 방식의 데이터 전송 방향은 Full Duplex를 지원하며 두 장치 간 간단하고 신뢰성 있는 데이터 교환에 주로 사용된다. UART는 Universal Asynchronous Receiver/Transmitter의 약자이며, 비동기식이므로 별도의 데이터 클럭 신호가 필요 없고 보드레이트를 양측이 동일하게 맞춰야 한다는 점이 핵심이다. 전압 수준은 TTL 계열(0V, 3.3V/5V)이나 RS-232(±12V)처럼 다양할 수 있다.

데이터 프레임은 Start bit로 시작되고 이후 Data bits(일반적으로 8bit), Parity bit(선택적), Stop bit로 종료되는 구조를 가진다. 송신기는 TX 라인에 데이터를 순차적으로 전송하고 수신기는 RX 라인으로 들어오는 비트를 수신한다. 시작은 로우 레벨의 Start bit로 통신 시작을 감지하고 지정된 데이터 비트 수를 수신한 뒤, 필요 시 패리티 비트로 오류를 확인하고 Stop bit로 통신 종료를 확인한다. 프레임은 이 과정을 반복하며 데이터를 주고받는다.

특징으로는 구조가 단순하고 클럭선이 필요 없어 비용이 저렴하며, TX/RX 두 선만으로 기본 통신이 가능하다는 점이 있다. 하드웨어 UART 모듈이 거의 모든 MCU에 내장되어 다양한 보드레이트 설정이 가능하고, 별도 클럭 회로나 동기가 필요 없으며 소형화에 유리하다. 다수의 속도 설정과 호환성 덕분에 다양한 응용이 가능하다.

반면 거리 제한과 속도의 한계가 존재한다. 고속일수록 전송 거리가 짧아지고 비동기 특성상 SPI나 I2C에 비해 속도가 느리며, 노이즈에 취약해 Start/Stop 비트로 인한 데이터 손상 가능성이 있다. 동기화 민감성으로 보드레이트 차이가 크면 통신 오류가 발생하고, 기본 UART는 1:1 통신이 기본이어서 다중 연결을 구현하려면 추가 프로토콜이 필요하다.

요지는 비동기식 직렬 통신으로 TX와 RX 두 라인만으로 데이터 프레임을 구분하는 구조이며, 하드웨어적으로 단순하고 저비용이지만 거리와 속도에 한계가 있어 설계 시 적절한 바이어스와 에러 검출 방법을 고려해야 한다.

원문 링크 : UART 통신