Microcontroller를 사용한 통신방법

/ UART  |   RS232  |   RS485  |   I2C  |   SPI  |   1 Wire  |   Parallel

Main Picture ref) https://chennai.vit.ac.in/scope-of-electronics-and-communication-engineering-in-india/
     Microcontroller를 사용한 통신방법으로는 병렬방식과 직렬 방식이 있으며 상대적으로 통신선이 적은 직렬방식을 사용한다. 아래 그림에서 병렬통신방법과 직렬통신방법에 대하여 간단히 설명하고 있다. Microcontroller를 사용한 장치 또는 소자간 통신 방법은 Interface할때 사용하는 통신방법으로 Interface/Communication을 참고할 수 있다.

     병렬방식은 아래 그림과 같이 다수의 데이타선(8 개 또는 16 개)을 사용하여 통신하는 방식으로 통신속도가 직렬방식에 비하여 빠르다.

Main Picture
병렬 통신방법


     이에 비하여 직렬방식은 데이타를 비트로 나누어 비트 단위로 데이타를 전달 하고 받는다. 주로 1 ~ 3 선을 사용하여 데이타를 주고 받는다.
Main Picture
직렬 통신방법


동기/비동기방식 통신

     장치 또는 소자간 통신에서 데이타를 주고 받기 위한 방법으로 동기 방식과 비동기 방식이 있다. 동기방식의 경우 데이타를 보내는 송신측에서 데이타를 보내면서 수신측에서 데이타를 취하기 위하여 데이타 신호외의 다른 기준 신호(클럭)를 같이 보내는 경우로, 이 기준 신호에 맞추어 수신측에서는 데이타를 취하게 된다. 이러한 통신 방식을 동기방식 통신(Synchronous Communication)이라하며, 송신측에서 보내는 데이타 신호에 수신측에서 데이타를 취하기 위한 신호(UART의 경우 시간)를 포함하여 보내는 방식을 비동기방식 통신 (Asynchronous Communication)이라한다. 동기방식의 경우 기준 신호를 위한 신호선이 따로 필요하지만 비동기방식의 경우에는 기준 신호를 위한 별도의 신호선이 필요없다.

Main Picture
동기방식의 직렬 통신방법


     Microcontroller에서 많이 사용하는 동기방식으로는 I2C, SPI 통신방법이 있으며, 비동기방식으로는 UART(TTL, RS232, RS485) 등이 있다.

1. UART
     UART(Universal asynchronous receiver/transmitter)는 범용 비동기 송수신기로 PC 또는 Microcontroller에서 통신방법으로 흔하게 쓰이는 중요한 기능 중의 하나로 병렬형식의 데이터를 직렬형식으로 전환하여 수신측에 보내고 받는 PC 또는 Microcontroller내에 설치된 하드웨어이다. UART 통신방법은 MCU-MCU, MCU-Device 사이에서 널리 사용하며, 신호를 보내기 위한 Tx, 신호를 받기 위한 Rx선을 사용하여 신호를 주고 받는다.

     UART 신호 형식은 두 장치간에 사용하는 통신속도, 통신방법을 미리 정하고 시작하며, 사용하는 전압과 부호에 따라 아래 그림과 같이 TTL, RS232, RS485으로 나눌 수 있다.

아래 그림은 문자 '1'을 UART 통신을 사용하여 보낼때의 신호 흐름을 나타낸 그림이다.

Main Picture
UART 통신 방법에 따른 신호의 모양


2. RS232
     RS232는 장치와 PC와의 연결에서 흔하게 사용하는 통신 방법으로 일반적으로 사용하는 Digital 신호와 전압과 부호가 다르다. 일반적으로 Digital 신호에서 High의 경우 5V인 반면 RS232의 경우 -12V를 High로 삼는다.

3. RS485
     RS485 경우 신호의 흐름은 RS232와 같지만 신호의 크기와 High, Low 설정이 다르다. RS485는 두 데이타 선의 신호의 차이로 High와 Low를 삼는다. 따라서 RS232에 비하여 훨씬 긴 거리에서 통신이 가능하다.

4. I2C
     I2C(Inter-Integrated Circuit)는 Philips에서 개발한 통신 방식으로 기판 내에서 소자간의 통신에 주로 사용한다. I2C는 비동기 방식의 대표적인 통신방식으로 신호의 기준을 만들기 위한 SCL(Serial Clock 신호선)과 SDA(Serial Data를 주고 받기위한 신호선) 두 신호선을 사용한다. 많은 센서들이 I2C방식으로 그 출력값을 제공하고 있어 MCU를 사용하여 어렵지 않게 센서의 출력을 읽을 수 있다.
5. SPI
     SPI(Serial Peripheral Interface)는 I2C와 유사하지만 하나의 Serial Data 선을 사용하는 것과 달리 방향성이 있는 Serial data 선을 사용한다. MCU에서 소자로 data를 보내기 위한 MOSI와 MCUd에서 소자 출력값을 읽기위한 MISO핀을 사용하여 통신을 한다. 소자의 경우 SCL, SDO, SDI 핀을 사용하여MCU와 통신한다.

6. 1 Wire
     1 Wire


6. Parallel
     Parallel

Main Picture
동기방식의 직렬 통신방법
Main Picture
ref) https://www.bb-elec.com/ (Philips Semiconductors)
다양한 종류의 통신방식에 따른 특성

참고:

     1. 동기(syncronous), 비동기(asyncronous) 통신 간단 정리
     2. PROTOCOLS: UART - I2C - SPI - Serial communications #001
     3. Understanding Serial Protocols
     4. Analysis of the relationship between UART, RS232, TTL