직렬(Serial) 통신과 병렬(Parallel) 통신 — 데이터를 한 선에 순차적으로 보내는 방식과 여러 선에 동시에 보내는 방식. 자동차 네트워크는 배선·EMC·비용 제약상 예외 없이 직렬 통신이며, 비트를 구별하기 위해 동기(Synchronous) 또는 비동기(Asynchronous) 전송 방식을 채택한다.
직렬 vs 병렬
| 항목 | 직렬 통신 | 병렬 통신 |
|---|---|---|
| 통신 선 | 1가닥 (또는 차동 쌍 1조) | 데이터 비트 수만큼 여러 가닥 |
| 속도 | 상대적으로 느림 | 상대적으로 빠름 |
| 비용 | 저비용, 구현 용이 | 고비용, 구현 복잡 |
| 한 클럭 | 1 비트 전송 | 여러 비트 동시 전송 |
| 예 | UART, USART, I2C, CAN, Ethernet | SCSI, PCI, IEEE-1284 |
차량 네트워크는 배선 무게·커넥터·EMC 문제 때문에 직렬 통신을 채택한다. 대신 비트를 구별할 방법이 필요하며, 이 문제를 푸는 두 방식이 동기 전송과 비동기 전송.
동기 전송 (Synchronous)
- 송신자와 수신자가 공통 클럭(동기 펄스)을 공유해 비트 타이밍을 맞춤.
- 데이터는 블록·프레임 단위로 전송, 앞뒤에 제어 정보 삽입.
- 예: SPI, I2C, USART, JTAG.
SPI 동기 방식
- 송신측(Master)이 클럭 극성·위상 설정.
- 상승 에지 또는 하강 에지에서 비트 샘플링.
- Chip Select(CS) Enable 신호로 특정 수신자와 동기 시작 → 전송 종료 시 CS Disable.
비동기 전송 (Asynchronous)
- 공통 클럭 없이 Start Bit / Stop Bit로 데이터 프레임 경계를 표시.
- 수신측은 Start Bit를 감지한 순간부터 비트 샘플링 시작.
- 예: UART, CAN.
비동기에서는 송·수신 노드의 로컬 클럭 주파수가 충분히 일치해야 하며, 불일치 시 비트 타이밍 오류가 발생한다.
비트 타이밍 오류 예시
500 Kbps 통신 (1비트 = 2µs):
| 상황 | 동작 | 결과 |
|---|---|---|
| 정상 | Tx 2µs마다 비트 전송, Rx 2µs마다 샘플 | 일치 |
| 수신측 빠름 | Tx 2µs마다 전송, Rx 1.7µs마다 샘플 | 오류 발생 |
이를 해결하기 위해 CAN 동기화는 초기 동기(SOF) + 재동기(falling edge) 메커니즘으로 수신자 시계를 주기적으로 보정한다.
통신 속도 단위
| 표기 | 의미 | 예시 |
|---|---|---|
| bps | bit per second | 10 bps = 초당 10 비트 |
| Kbps | bps | CAN HS 500 Kbps |
| Mbps | bps | 차량 Ethernet 100M |
| Gbps | bps | 최신 Ethernet 1G |
CAN 네트워크는 모든 노드가 500 Kbps 등 단일 속도로 설정되어 비동기 전송을 수행한다.
Physical Layer (0·1 표현)
0·1을 물리적으로 표현하는 방식은 매체와 연동된다.
| 매체 | 0·1 표현 | 전송 매체 |
|---|---|---|
| 광통신 | 빛의 세기 | Plastic Optical Fiber (POF) |
| CAN | CAN_H/CAN_L 차동 전압 (차동 신호 전송) | UTP 꼬임쌍선 |
| 차량 Ethernet | 차동 전압 (100BASE-T1) | UTP / RJ45 |