직렬통신 기초: 동기, 비동기, 이중, 차동
통신 이름을 외우기 전에 네 가지 기준을 잡으면 UART, SPI, I2C, CAN이 한 표에 정리됩니다.
네 가지 기준
| 기준 | 갈래 | 의미 |
|---|---|---|
| 클럭 | 동기 / 비동기 | 클럭선을 함께 보내나, 속도를 미리 약속하나 |
| 방향 | 전이중 / 반이중 | 동시에 주고받나, 번갈아 주고받나 |
| 신호 | 단일 / 차동 | 그라운드 기준 한 선인가, 두 선의 차이인가 |
| 구성 | 1:1 / 버스 | 둘만 연결하나, 여럿이 한 선을 공유하나 |
한 표로 보기
| 통신 | 클럭 | 방향 | 신호 | 구성 |
|---|---|---|---|---|
| UART | 비동기 | 전이중 | 단일 | 1:1 |
| SPI | 동기 | 전이중 | 단일 | 1:N (CS로 선택) |
| I2C | 동기 | 반이중 | 단일 (오픈드레인) | 버스 (주소) |
| RS-485 | 비동기 | 반이중 | 차동 | 버스 |
| CAN | 비동기 | 반이중 | 차동 | 버스 (ID 중재) |
왜 직렬인가
여러 비트를 한꺼번에 보내는 병렬 통신은 선이 많고, 빠르면 선마다 도착 시간이 달라지는 문제가 생깁니다. 선 몇 가닥으로 비트를 하나씩 보내는 직렬 통신이 보드 사이, 칩 사이 연결의 표준이 되었습니다.
차동 신호
두 선에 반대 신호를 보내고 차이만 읽습니다. 외부 노이즈는 두 선에 똑같이 들어와 차이에서 사라집니다. 그래서 차량과 공장처럼 노이즈가 많고 거리가 먼 곳은 CAN, RS-485 같은 차동 통신을 씁니다.