UART(Universal Asynchronous Receiver/Transmitter)

UART(Universal Asynchronous Receiver/Transmitter)비동기식 시리얼 통신 프로토콜로,
주로 임베디드 시스템이나 컴퓨터 주변 장치 간의 데이터 전송에 사용된다. UART는 간단한 구조와 효율성 덕분에 다양한 환경에서 널리 활용된다.


비동기식 통신의 특징

  1. 클럭 동기화 불필요
    비동기식 통신에서는 송신 측과 수신 측이 동일한 클럭 신호를 공유하지 않아도 된다.
    대신, 데이터 전송 시작과 끝을 알리는 Start Bit와 Stop Bit를 사용하여 데이터 프레임을 구분한다.
  2. 간단한 하드웨어 구성
    비동기식 통신은 전송 속도(Baud Rate)만 일치하면 되므로, 별도의 클럭 신호선이 필요 없고 두 개의 선(TX: 송신, RX: 수신)만으로 통신이 가능하다.
  3. 데이터 프레임 구조
    비동기식 데이터 프레임은 Start Bit로 시작하여 데이터 비트, 옵션으로 Parity Bit, 그리고 Stop Bit로 끝난다. 이를 통해 데이터의 시작과 끝을 명확히 구분할 수 있다.
  4. 오류 검출 가능
    패리티 비트를 추가하여 전송 중 발생할 수 있는 오류를 검출할 수 있으며, 수신 측에서 패리티 비트를 확인하여 데이터가 올바르게 전송되었는지 검증할 수 있다.

UART의 주요 특징

  1. 비동기식 통신
    UART는 동기 신호 없이 데이터를 전송한다 송신기와 수신기는 동일한 Baud Rate(전송 속도)로 설정되어야 하며, 별도의 클럭 신호가 없어도 데이터를 주고받을 수 있다.
  2. 간단한 하드웨어 요구 사항
    UART는 두 개의 핀(TX: 송신, RX: 수신)만으로 동작하며, 최소한의 하드웨어 자원만을 필요로 한다. 이로 인해 임베디드 시스템에서 많이 사용된다.
  3. 범용성
    UART는 마이크로컨트롤러뿐만 아니라 다양한 전자 장치 간 통신에 사용된다. RS-232, RS-422, RS-485 등의 표준과 함께 사용되어 다양한 환경에서 적용 가능하다.
  4. 데이터 프레임 구성
    UART 데이터 프레임은 Start Bit, Data Bits(일반적으로 8비트), Parity Bit(선택 사항), Stop Bit로 구성되며 이 프레임 구조는 데이터 전송의 시작과 끝을 명확히 구분한다

UART 구성

  1. 하드웨어 초기화
    • Baud Rate 설정: 송수신 장치 간 동일한 전송 속도를 설정한다. Baud Rate 레지스터를 통해 설정하며, 마이크로컨트롤러의 클럭 속도와 전송 속도를 계산하여 설정한다.
    • 송수신 활성화: UART 송신과 수신 기능을 활성화하는 레지스터 설정이 필요하다.(예: 전송 디버깅을 위한 RS-232 설정 포함)
  2. 소프트웨어 구성
    • 데이터 송수신 함수 구현: 송신 데이터는 버퍼에 저장된 후 직렬로 전송되며, 수신 데이터는 수신 버퍼에 저장된다.
    송수신 상태 플래그를 활용하여 데이터 전송 가능 여부를 확인한다.
    • 오류 처리 및 속도 동기화: 오버런 오류나 프레임 오류가 발생할 수 있으므로 이를 처리하고, 송신기와 수신기의 Baud Rate를 동일하게 유지하여 데이터 손실을 방지한다.

Leave a Comment