[UART] 구조와 통신 방식

범준·2026년 4월 13일
post-thumbnail

1. What is UART?

UART(Universal Asynchronous Receiver/Transmitter) 는 별도의 클록 신호 없이 데이터를 주고받는 대표적인 비동기 직렬 통신 방식이다.

디지털 시스템에서는 서로 다른 하드웨어 블록이나 외부 장치 간에 데이터를 주고받아야 하는 경우가 많다. 이때 UART는 비교적 단순한 구조와 적은 배선 수 덕분에 MCU, FPGA, 센서, 디버그 포트 등 다양한 환경에서 널리 사용된다.

일반적으로 UART는 다음 두 개의 신호선을 중심으로 동작한다.

  • TX (Transmit) : 데이터를 보내는 선
  • RX (Receive) : 데이터를 받는 선

즉, 한 장치의 TX는 상대 장치의 RX로 연결되고, 반대로 상대 장치의 TX는 내 장치의 RX로 연결되어 통신이 이루어진다.

UART의 가장 큰 특징은 비동기(asynchronous) 방식이라는 점이다.
SPI나 I2C처럼 송신 측과 수신 측이 별도의 클록 선을 공유하지 않기 때문에, 통신을 위해서는 양쪽이 미리 같은 전송 속도를 맞춰 두어야 한다. 이 전송 속도를 보통 baud rate라고 부른다.

예를 들어 송신 측과 수신 측이 모두 9600 baud로 설정되어 있다면, 두 장치는 같은 시간 간격을 기준으로 데이터를 해석하게 된다.

따라서 UART는 별도의 클록선 없이도 데이터를 주고받을 수 있지만, 송신 측과 수신 측의 전송 속도와 frame 형식이 서로 일치해야 한다는 조건이 중요하다.


2. UART Frame and Communication

UART는 데이터를 단순히 연속적으로 보내는 것이 아니라, 정해진 frame 형식에 따라 start bit, data bits, parity bit, stop bit를 순서대로 전송한다.

UART 통신에서는 보통 하나의 데이터가 아래와 같은 frame 구조로 전달된다.

  • Start bit
  • Data bits
  • Optional parity bit
  • Stop bit

- (1) Idle State

UART 선로는 아무 데이터도 전송하지 않는 평상시에는 보통 HIGH 상태를 유지한다. 이를 idle state라고 볼 수 있다.

이 상태에서 송신 측이 데이터를 보내기 시작하면, 가장 먼저 LOW의 start bit를 출력한다. 수신 측은 이 변화를 보고 “이제 하나의 frame이 시작되는구나”라고 판단하게 된다.

- (2) Start Bit

Start bit는 UART 수신기가 프레임의 시작 시점을 인식할 수 있게 해주는 신호이다.

UART는 클록을 함께 보내지 않기 때문에, 수신 측은 신호의 변화만 보고 타이밍을 맞춰야 한다. 따라서 idle state의 HIGH에서 LOW로 떨어지는 start bit는 수신 동작의 기준점 역할을 한다.

- (3) Data Bits

Start bit 이후에는 실제 전송하려는 데이터 비트들이 순서대로 전달된다. 일반적으로 UART는 LSB first 방식으로 데이터를 보내는 경우가 많다. 즉, 가장 하위 비트부터 먼저 전송된다.

데이터 비트 수는 설정에 따라 달라질 수 있으며, 보통 5비트, 6비트, 7비트, 8비트와 같은 형식을 사용한다. 가장 흔한 설정은 8-bit data format이다.

- (4) Parity Bit

Parity bit는 선택적으로 추가되는 비트로, 간단한 오류 검출을 위해 사용된다.

예를 들어 even parity에서는 전체 데이터의 1의 개수가 짝수가 되도록 parity bit를 붙이고, odd parity에서는 홀수가 되도록 parity bit를 붙인다.

다만 모든 UART 환경에서 parity를 반드시 사용하는 것은 아니며, 필요에 따라 생략되기도 한다.

- (5) Stop Bit

Frame의 마지막에는 stop bit가 위치한다. stop bit는 보통 HIGH 상태이며, 수신 측에 해당 frame이 끝났음을 알려준다.

stop bit의 길이 역시 설정에 따라 달라질 수 있으며, 일반적으로는 1 bit가 가장 많이 사용된다.


3. Summary

이번 글에서는 UART의 기본 개념과 frame 구조, 그리고 송수신이 어떤 방식으로 이루어지는지 정리해보았다.

UART는 별도의 클록 신호 없이 baud rate와 frame 형식을 기준으로 데이터를 주고받는 비동기 직렬 통신 방식이다.

UART 통신에서는 start bit가 frame의 시작을 알리고, data bitsoptional parity bit, stop bit가 뒤따르며, 수신 측은 이를 정해진 timing에 맞춰 샘플링하여 데이터를 복원한다.

정리하면 UART의 핵심은 다음과 같다.

  • 비동기 직렬 통신
  • TX / RX 기반의 단순한 인터페이스
  • baud rate 일치가 중요함
  • frame 단위 통신
  • 단순한 구조 덕분에 폭넓게 사용됨

이후 글에서는 실제로 설계한 UART와 이전 AXI4-Lite Slave Interface를 결합하여, 상위 인터페이스 관점에서 데이터가 어떻게 흐르는지 정리해볼 예정이다.

profile
전기공학/학사/회로설계

1개의 댓글

comment-user-thumbnail
2026년 4월 13일

항상 정성 가득하고 유익한 글 감사합니다~

답글 달기