MCU에서 흔히 쓰이는 데이터 전송 방식인 UART에 대해 자세히 알아보자. UART란 병렬 형태의 데이터를 직렬 형태의 데이터로 바꾸어서 직렬 통신을 할 수 있게 해주는 하드웨어의 일종이다.

 정리를 하자면 PC나 MCU내에서는 데이터가 병렬 형태로 움직이는데, 이런 데이터들을 다른 기기와 직렬 방식으로 통신을 할 수 있게 해주는 집적회로이다. 우리 말로 번역하면 '범용 비동기 수신기/송신기' 인데 각각 한 단어씩 살펴보기로 하자. 한 번 더 강조하자면 병렬 데이터를 직렬로 전환해주는 하드웨어이다.

 

UART 표준 그림

 

  • 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
블로그 이미지

Mr.HB

프로그래밍 이야기

,