본문으로 이동

UART

위키백과, 우리 모두의 백과사전.

UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용한다. UART의 U는 범용을 가리키는데 이는 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식(이를테면 차분 신호)이 일반적으로 UART 바깥의 특정한 드라이버 회로를 통해 관리를 받는다는 뜻이다.

통신 데이터는 메모리 또는 레지스터에 들어 있어 이것을 차례대로 읽어 직렬화 하여 통신한다. 최대 8비트가 기본 단위이다.

UART는 일반적으로 컴퓨터나 주변 기기의 일종으로 병렬 데이터를 직렬화 하여 통신하는 개별 집적 회로이다. 비동기 통신이므로 동기 신호가 전달되지 않는다. 따라서 수신 쪽에서 동기신호를 찾아내어 데이터의 시작과 끝을 시간적으로 알아 처리할 수 있도록 약속되어 있다. 디지털 회로는 자체의 클럭 신호를 추가로 사용하여 정해진 속도로 수신 데이터로부터 비트 구간을 구분하고 그 비트의 논리 상태를 결정하여 데이터 통신을 하는 USRT(범용 동기화 송수신기: Universal synchronous receiver/transmitter)도 사용한다.

UART는 보통 마이크로컨트롤러에도 포함되어 있다. 듀얼 UART, 곧 DUART는 두 개의 UART를 하나의 칩에 합친 것이다. 수많은 현대의 집적 회로(IC)는 동기화 통신인 USRT도 함께 지원한다. 이러한 장치들은 'USARTs'(범용 동기화/비동기화 송수신기: universal synchronous/asynchronous receiver/transmitter) 또는 'USART/UART'로도 부른다.

데이터 송 수신 형태

[편집]
비트 수 1 2 3 4 5 6 7 8 9 10 11
시작 비트
(Start bit)
5–8 데이터 비트 패리티 비트
(parity bit)
종료 비트
(Stop bit(s))
Start Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 Parity Stop

가장 일반적으로 각 데이터 비트의 시간에 대해 16/64 배 빠른 클럭 신호를 이용하여 시작 비트로부터 세어 각 비트의 경계를 찾아낸다. 이 클럭 신호는 자체적인 내부 클럭 디지털 회로에 의해 발생한다. 보드 설정에 따라 주 클럭으로부터 타이머등을 써서 설정한 속도의 클럭 신호를 만든다. 이것은 프로그래밍에 의한 레지스터 설정에 따라 클럭 신호의 주파수가 바뀐다. 통신 양쪽에서 설정을 미리 약속하고 클럭 신호 발생부의 레지스터를 같은 속도로 설정해야 통신이 원활하게 이루어진다.

  • 시작 비트 : 통신의 시작을 의미하며 한 비트 시간 길이 만큼 유지한다. 지금부터 정해진 약속에 따라 통신을 시작한다.
  • 데이터 비트 : 5~8비트의 데이터 전송을 한다. 몇 비트를 사용할 것인지는 해당 레지스터 설정에 따라 결정된다.
  • 패리티 비트 : 오류 검증을 하기 위한 패리티 값을 생성하여 송신하고 수신쪽에 오류 판단한다. 사용안함, 짝수, 홀수 패리티 등의 세가지 옵션으로 해당 레지스터 설정에 따라 선택할 수 있다. '사용안함'을 선택하면 이 비트가 제거된다.
  • 끝 비트 : 통신 종료를 알린다. 세가지의 정해진 비트 만큼 유지해야 한다. 1, 1.5, 2비트로 해당 레지스터 설정에 따라 결정된다.

UART 모델

[편집]
모델 설명
EXAR XR21V1410
인터실 6402
자일로그 Z8440 2000 kbit/초. Async, Bisync, SDLC, HDLC, X.25. CRC. 4바이트 RX 버퍼. 2바이트 TX 버퍼. DMA.[1]
8250 1바이트 버퍼와 더불어 사용하지 않음
모토로라 6850
6522
6551
록웰 65C52
16450
16550
16550A 16바이트 버퍼, TL=1,4,8,14; 115.2 kbit/초 표준, 다수가 230.4 및 460.8 kbit/초 지원. DMA 방식.[2]
16C552
16650 32바이트 버퍼. 460.8 kbit/초
16750 64바이트 버퍼 (송신), 56바이트 (수신). 921.6 kbit/초
16850 128바이트 버퍼. 460.8 kbit/초, 즉 1500 kbit/초
16C850
16950
Hayes ESP 1 kByte 버퍼

같이 보기

[편집]

각주

[편집]
  1. “Zilog Product specification Z8440/1/2/4, Z84C40/1/2/3/4. Serial input/output controller” (PDF).  090529 zilog.com
  2. “FAQ: The 16550A UART & TurboCom drivers 1994”. 2008년 5월 17일에 원본 문서에서 보존된 문서. 2010년 12월 15일에 확인함.  090529 cs.utk.edu