가장 오래된 시리얼 통신은 UART가 아닐까 ! 지금도 광범위하게 사용하고 있고 아마도 마지막까지 살아 남을 통신방식이지 않을까십다. Embedded 시스템 개발자에게는 지금도 책상위에는 시리얼 통신을 위한 케이블이 있을 것이다. 직접 UART 핀에 USB-UART 변환보드를 연결해서 PC USB 포트에 연결되어 터미널 프로그램으로 로그를 확인하고 있을 거라 추측해 본다.
왜 UART 통신을 많이 사용할까 ? 그 이유는 가장 단순하기 때문이다.
위 그림과 같이 송신측이든 수신측이든 데이터를 그저 전송하기만 하면된다. 다른 통신방식(ex, I2C, SPI)처럼 기준 클럭핀도 필요하지 않다.
UART 방식 이외에도 I2C, SPI 방식등도 있다.
I2C 방식의 경우 데이터 전송량이 많지 않은 경우 다양하게 사용되는데 스마트폰을 예를 들면 화면 LCD 표시를 담당하는 IC의 제어, 화면 터치를 할 경우 터치한 위치의 좌표를 알아야하는 경우 배터리 전압을 측정하는 경우 LCD 상단의 근접센서나 조도센서를 제어하는 경우등에 사용된다.
SPI의 경우 UART나 I2C 보다 많은 다량의 데이터 전송에 사용된다. 주로 메모리를 담당하는 경우에 사용된다. 스마트폰 부팅 시 FLASH 메모리에서 RAM으로 전송하는 경우나 SDCARD를 사용할 경우에 이용한다.
Embedded 시스템 뿐 아니라 외부에도 시리얼 통신을 사용하는데 패러렐(Parallel) 통신을 사용하지 않고 굳이 시리얼을 사용하는 이유는 무엇일까 ?
바로, 노이즈(Noise)에서 보다 자유롭기 때문이다. 두번째 이유는 비용이다.(또는 기술의 발달)
지금은 PC와 프린터 사이에 USB로 연결하는 것이 일반적이지만 (또는 이더넷으로 연결되기도) PC 초창기 IBM-XT, AT, 486 뭐 이런 시절에는 25핀 케이블로 연결되어 있었다. 이때의 프린터 임무는 텍스트만 출력하면 되기 때문에 (그것도 흑백) 시리얼 방식보다 유리한 이유로 사용했다.
그런데, 점차 전송해야 할 데이터량이 증가하면서 패러렐 방식을 사용하지 않기 시작했는데 전송속도를 올리면 또 그 케이블 길이가 늘어나면서 노이즈와 비용이 같이 증가하는 이유로 고속으로 시리얼 데이터를 전송하는 연구가 시작되었다.
그러한 요구로 탄생하게 된 대표적인 예가 USB 이다.
위 그림에서 중요한 점은 USB D+/D- 핀의 신호 레벨이 반대라는 점이다. 이러한 방식으로 변조함으로서 전송거리가 멀어지고 속도가 증가 하더라도 비교적 노이즈에 강하다는 점이다.
사실 이더넷 방식에서는 이러한 원리를 일찍부터 사용하였다.
LVDS (Low Voltage Differential Signal)
이러한 원리를 적용한 (하나의 신호에 +/- 신호를 같이 전송) LVDS라는 이름으로 부르는데 최근의 시리얼 통신 방식은 모두 이러한 방식을 사용하는 것으로 보아 앞으로 새로운 방식의 시리얼 통신을 개발 한다면 이 방식을 염두해야 하지 않을까 한다.
최근 자동차 업계도 내부의 통신선 개수를 줄이고 무게를 줄이기 위해 LVDS 방식을 많이 사용하고 있다.
위 그림은 자동차 내부의 통신선과 신호선을 모두 Automotive Ethernet으로 변환하기 위한 작업의 일환으로 자동차 규격을 만족하는 Ethernet PHY 칩의 내용이다.
현재 반도체는 1Gbps를 지원하는 정도인데 완전 자율주행이 될 경우 1Gbps로 가능할지 궁금하다.
참조
https://www.xanthium.in/how-to-avr-atmega328p-microcontroller-usart-uart-embedded-programming-avrgcc
https://en.wikipedia.org/wiki/USB_(Communications)
http://faculty.unist.ac.kr/aesl/wp-content/uploads/sites/231/2015/06/ethernet2-600x300.jpg