I2C, SPI, UART의 차이와 선택 기준
임베디드 시스템에서 가장 먼저 만나는 세 가지 직렬 인터페이스입니다. UART는 공유 클록이 없는 단순한 점대점 연결입니다. SPI는 마스터가 칩 셀렉트 라인으로 각 장치를 선택하는 빠른 4선 버스입니다. I2C는 여러 장치가 같은 선을 공유하고 주소로 선택되는 2선 버스입니다. 선택은 대체로 속도(SPI), 핀 수(I2C), 단순함(UART) 사이의 절충입니다.
| 비교 항목 | UART | SPI | I2C |
|---|---|---|---|
| 배선 | 신호선 2개(TX, RX)와 그라운드 | 신호선 3개(SCLK, MOSI, MISO)와 장치마다 칩 셀렉트(CS) 1개 | 공유선 2개(SDA, SCL)와 그라운드, 풀업 저항 사용 |
| 클록 | 비동기: 클록 라인이 없어 양쪽이 보레이트를 맞춰야 합니다 | 동기: 마스터가 클록을 공급합니다 | 동기: 마스터가 클록을 공급합니다 |
| 토폴로지 | 두 장치 사이의 점대점 | 마스터 1개와 슬레이브 여러 개이며, 슬레이브마다 CS 라인이 필요합니다 | 여러 마스터와 슬레이브가 하나의 버스를 공유합니다 |
| 주소 지정 | 없음 | 칩 셀렉트 라인으로 장치를 선택합니다 | 매 전송 시작 시 7비트 주소(선택적으로 10비트)를 보냅니다 |
| 대표 속도 | 9,600~115,200 bit/s에서 수 Mbit/s까지 | 보통 1~50 MHz이며 일부 소자는 그 이상 | 100 kHz(표준), 400 kHz(고속), 1 MHz(고속 플러스), 3.4 MHz(초고속) |
| 통신 방향 | 전이중 | 전이중 | 반이중 |
| 오류 검사 | 선택적 패리티 비트와 프레이밍 검사 | 내장되어 있지 않음 | 매 바이트 뒤에 확인 응답(ACK/NACK) |
| 장치가 늘어날 때의 핀 수 | 연결이 하나 늘 때마다 핀 2개 추가 | 장치가 하나 늘 때마다 CS 핀 1개 추가 | 추가 핀 없음 |
| 거리 | RS-232나 RS-485 드라이버를 쓰면 더 멀리 갈 수 있습니다 | 짧음, 같은 기판 위 | 짧음, 같은 기판 위 |
| 대표 용도 | 디버그 콘솔, GPS와 블루투스 모듈, 보드 간 연결 | 플래시 메모리, SD 카드, 디스플레이, 고속 ADC와 센서 | 저속 센서, EEPROM, 실시간 시계, 칩 설정 |
수치는 대략적인 자릿수 기준이며, 공정 세대와 제품에 따라 달라져요.