포스트

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))를 사용한다 2wire

장점

  • 두개의 와이어만 사용하여 구현이 간단하고, 설정이 쉬워 임베디드 시스템에서 많이 사용됨
  • 통신 원리를 이해하기가 다른 통신보다 상대적으로 쉬움
  • 비동기 방식이므로 클럭 신호 불필요
  • 오류 검출을 위한 패리티 비트를 사용할 수 있음
  • 데이터 패킷의 구조는 양쪽 장치에서 설정에 따라 유연하게 변경 가능

단점

  • 데이터 프레임의 크기가 최대 9비트로 제한됨
  • 하나의 Master와 하나의 Slave 구조로 동작함
  • 송신 UART와 수신 UART 장치의 Baud Rate의 허용 오차는 10% 이내

2. UART 통신 과정


process

  • 비동기 통신이므로, 시작비트(Start bit)정지 비트(Stop bit) 를 사용함

통신 프레임 구조

  • 시작 비트 : 통신의 시작을 의미하며, 한 비트 시간 동안 유지
  • 데이터 비트 : 5~8비트의 데이터를 전송함. 몇 비트를 사용할 것인지는 해당 레지스터 설정에 따라 결정
  • 패리티 비트 : 오류 검출을 위한 패리티 값을 생성하여 송신, 수신 측에서 오류 검출. 사용 안함, 짝수, 홀수 패리티 등의 세가지 옵션을 레지스터를 통해 설정 가능
  • 정지 비트 : 통신의 종료를 알림

하드웨어 구성 요소

  • 송신기(TX : Transmitter) : 데이터를 직렬로 변환하여 송신하는 역할
  • 수신기(RX : Receiver) : 직렬로 수신한 데이터를 병렬 데이터로 변환하여 처리함

Baud rate

baudrate

  • 1초당 얼마나 많은 데이터를 보낼 것인지 결정

3. 신호 변환


  • UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용 rs232
  • 구형 모니터 케이블이 RS-232 uart
  • UART 모듈에서 생성된 TX는 0~3.3V 또는 0~5V 전압 레벨로 정보를 전달함
    • 그러나 이 전압레벨은 장거리 전송에 있어서 노이즈에 취약
    • 이를 보완하기 위해 -12V ~ 12V 전압 레벨을 가지는 RS232 통신 방식으로 전압 레벨을 변경하여 전달함
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.