데이터를 이루는 여러 비트를 실어 보낼 때, 하나의 통신선에 순서대로 실을 수도 있고 여러 통신선에 동시에 나눠 실을 수도 있다. 전자를 직렬(serial) 통신, 후자를 병렬(parallel) 통신이라 한다.
| 구분 | 직렬 통신 | 병렬 통신 |
|---|---|---|
| 데이터 선 | 1개(또는 송수신 한 쌍)로 비트를 순서대로 전송[1] | 비트 수만큼 여러 선으로 동시에 전송[2] |
| 배선·구현 비용 | 선이 적어 저렴하고 단순 | 선이 많아 고비용, 커넥터도 커짐 |
| 대표 예시 | UART, CAN, Ethernet | IEEE 1284 병렬 포트 |
직렬 통신은 하나의 통신선에서 한 번에 한 비트씩 순서대로 데이터를 전송한다. UART가 대표적인 예로, 한 프레임의 데이터 비트를 최하위 비트부터 차례로 실어 보낸다[1]. 선이 하나(또는 송수신 한 쌍)면 충분해 배선이 단순하고 저렴하지만, 같은 클럭 속도에서는 병렬보다 비트 전송 자체가 느리다.
병렬 통신은 여러 통신선에서 동시에 여러 비트를 전송한다. IEEE 1284는 개인용 컴퓨터와 프린터 등 주변기기를 잇는 양방향 병렬 인터페이스의 신호 방식을 표준화했다[2]. 데이터 선 수만큼 한 번에 비트를 실어 보낼 수 있어 이론적으로는 직렬보다 빠르지만, 선 수가 늘어난 만큼 배선·커넥터 비용이 커지고 구현도 복잡해진다.
CAN·LIN·Ethernet 같은 자동차 버스 프로토콜은 배선 비용을 줄이기 위해 모두 직렬 방식을 쓴다 — CAN은 두 가닥의 연선[3], LIN은 단일 배선[4], Ethernet은 단일 연선 케이블로 통신한다[5].
직렬 통신에서 여러 비트가 한 선을 타고 연속으로 도착할 때 각 비트의 경계를 구별하는 방법은 Synchronous vs Asynchronous Transmission에서 다룬다.
참고문헌
[1]
T. Hiers, “SPRA633C — TMS320C620x/C642x McBSP: UART”, 2008.
[2]
IEEE, “IEEE Std 1284-1994 — IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers”, 1994.
[3]
S. Corrigan, “SLOA101B — Introduction to the Controller Area Network (CAN)”, 2016.
[4]
LIN Consortium, “LIN Specification Package, Revision 2.2A”, 2010.
[5]
IEEE, “IEEE 802.3bw-2015 — IEEE Standard for Ethernet Amendment 1: Physical Layer Specifications and Management Parameters for 100 Mb/s Operation over a Single Balanced Twisted Pair Cable (100BASE-T1)”, 2015.