[CS] UART통신

이상윤·2022년 10월 6일
0

CS

목록 보기
2/2
post-thumbnail

UART 통신이란

UART  : Universal Asynchronous Receiver/Transmitter
USART : Universal Synchronous Asynchronous Receiver/Transmitter

UART와 더불어 데이터시트 같은 문서를 보게 되면 USART라고도 표기를 한다.
일반적으로 비동기식으로 많이 쓰기도 하여 UART통신 이라고 흔히 부르지만 동기적인 방식의 통신도 있으니 USART가 더 포괄적이고 일반적인 용어 인듯 하다.

또 UART 통신을 이야기 할 때, 꼭 RS-232, RS-422, RS-485도 항상 같이 이야기 되는 것 같다.
이번 글에서는 이것들에 대해 한번 정리 해보려고 한다.

1. UART/USART

UART는 두 장치간 직렬(Serial) 데이터(디지털)를 어떻게 통신할 것인지,
통신 규약(프로토콜)을 정해놓은 것이라고 생각하면 된다.

UART(비동기) 통신의 큰 특징은 송신부(Transmitter)와 수신부(Receiver)가 클럭 신호를 공유하지 않는다.
따라서 Baud Rate를 서로 동일하게 맞추어야 정확한 데이터를 송,수신할 수 있다.
그 외에도 Parity, stop bit를 서로 일치시켜야 한다.

위 그림은 UART통신시 보내지는 패킷의 구조이다.
Start bit  (1 bit)
Data bits  (5~8 bit) : 일반적으로 8 bits
Parity bit (0~1 bit)
Stop bit   (1~2 bit)

여기서 조금 더 자세히 기술하자면 start bit는 0이다.
반대로 stop bit는 1이다.
Parity bit는 사용하지 않거나 사용한다며 1 bit 이다.
그리고 가운데 Data bits가 껴있는 형식이다. D0부터 D7까지 8개 bit가 있다.

Q) 만약 'a'를 보낸다고 하면 어떤식으로 전송이 될까?? (parity bit는 사용하지 않는다고 가정)

A) 'a'는 ASCII 문자로 Dec: 97, Hex: 0x61의 값을 갖는다.
이 1 byte(8 bit) 이진수 형식으로 나타나게 되면 0110 0001 이다.
UART 통신에서 Data는 LSB 부터 MSB 순으로 전송된다.
다시 말하자면 1-0-0-0 - 0-1-1-0 순서로 전송된다는 뜻이다.
start bit와 stop bit를 합치면 [ (0) (1-0-0-0 - 0-1-1-0) (1) ] 총 10 bits가 전송되는 것이다.

	Tera Term 프로그램을 이용하여 실제 'a'를 전송 했을때 
    파형을 체크하면 위와 같다.
    

2. RS-232, 422, 485

RS-232라는 것은 직렬 통신에 사용되는 장비(HW)에 대한 표준 프로토콜이다.

위와 같이 각 프로토콜에 대한 규격이 정리되어 있다.
특이하게 RS-232의 경우 'Contacts in use'란의 핀이 정말 많은데, 여기에서 (TxD, RxD, GND) 3개의 핀만으로도 
전송가능하다. 나머지 핀은 data flow control에 필요한 핀이다.

출처

사진 출처 1
사진 출처 2


0개의 댓글