MCU에서 흔히 쓰이는 데이터 전송 방식인 UART에 대해 자세히 알아보자. UART란 병렬 형태의 데이터를 직렬 형태의 데이터로 바꾸어서 직렬 통신을 할 수 있게 해주는 하드웨어의 일종이다.
정리를 하자면 PC나 MCU내에서는 데이터가 병렬 형태로 움직이는데, 이런 데이터들을 다른 기기와 직렬 방식으로 통신을 할 수 있게 해주는 집적회로이다. 우리 말로 번역하면 '범용 비동기 수신기/송신기' 인데 각각 한 단어씩 살펴보기로 하자. 한 번 더 강조하자면 병렬 데이터를 직렬로 전환해주는 하드웨어이다.
-
Universal : 트랜지스터의 사용으로 쉽게 만들 수 있는 시스템
-
Asynchronous(비동기) : 서로 Baud Rate를 프로토콜로 정해 놓고 데이터 통신하는 것
※ 하나의 글자가 만들어 지는데 시간이 걸리는데 그렇기 때문에 송신자는 글자를 보내면서 데이터를
보내고 있다는 신호는 지속적으로 보내게 된다. 이를 동기 통신(Synchronous Communication)이라 한다. -
Receiver-Transmitter : 하나의 장치에 송신기와 수신기를 붙여 놓은 것
이처럼 단어의 뜻은 짧게 이런 뜻들을 담고 있다. 여기서 프로토콜에 대해 조금 더 살펴보겠다.
위의 그림을 보면 처음 Start bit가 있고 마지막에는 Stop bit가 있다. High였다가 송수신이 시작되는 시점인 Start bit에서 Low가 되고 8비트 송신 후 Parity bit를 선택해서 넣을 수 있다. 그리고 마지막 Stop bit에서 다시 High가 된다. 마지막 Stop bit에서는 다음 데이터와의 시간 간격을 위해 1~2bit로 설정할 수 있다.
그래서 8비트 데이터를 송수신했을 때 10~12bit까지 시간을 소모할 수 있다. 그리고 Baud Rate에 따라서 한 칸 한 칸 시간을 결정할 수 있다. 예를 들어 9600bps는 1초에 9600칸 또는 bit를 보낼 수 있다는 뜻이다.
※ Baud Rate : 이론적인 통신 단위로 초당 신호(Signal) 요소의 수를 나타낸다.
다음은 UART의 장단점에 대해 알아보자.
● 장 점
-
하드웨어가 간단해서 거의 모든 장치에서 UART를 지원하는 범용성이 크다.
-
송신과 수신 동시에 가능한 전이중(full-duplex) 방식이다.
-
RS-232라고도 불리며 RS-232는 UART의 프로토콜 중 하나이다.
● 단 점
-
1:1 통신만을 지원하기 때문에 여러 개의 주변장치를 연결하기 위해서는 많은 핀이 필요하다.
-
서로 동일한 속도를 맞추고 시작해야 한다.
-
Voltage level이 동일해야 한다.
이처럼 단점도 있지만 예전부터 제일 많이 쓰인 간단하고 많은 장치에서 쓰이는 방식이다.
'MCU' 카테고리의 다른 글
Atmega8(A) 특징 (0) | 2019.08.10 |
---|---|
Atmega8(A) 소개 (0) | 2019.08.10 |
ADC(Analog-Digital Converter) (0) | 2019.08.05 |
시리얼 통신(Serial Communication) (0) | 2019.07.29 |
MCU란? (0) | 2019.07.15 |