I2C, SPI, UART
임베디드 시스템에서는 다양한 장치 간의 효율적인 데이터 전송을 위해 여러 통신 방식이 사용됩니다. 대표적인 방식으로 I2C (Inter-Integrated Circuit), SPI (Serial Peripheral Interface), UART (Universal Asynchronous Receiver/Transmitter)가 있습니다. 각각의 방식은 장단점이 있으며, 애플리케이션의 요구사항에 따라 적절한 방식이 선택됩니다.
1. I2C (Inter-Integrated Circuit)
I2C는 두 개의 선(SDA, SCL)만을 사용하여 여러 개의 장치를 연결할 수 있는 직렬 통신 방식입니다.
🛠 특징
- 양방향 통신: 데이터 및 제어 신호를 주고받을 수 있음
- 클럭 신호(SCL)를 활용한 동기식 통신
- 한 개의 마스터와 다수의 슬레이브 가능
- 속도: 일반적으로 100kHz(표준 모드), 400kHz(고속 모드), 1MHz(고속 플러스 모드), 3.4MHz(울트라 고속 모드)
✅ 장점
- 단 두 개의 신호선만 사용하여 배선이 간단함
- 여러 개의 장치를 동일한 버스에 연결 가능 (멀티슬레이브 가능)
- 낮은 전력 소비
❌ 단점
- 속도가 상대적으로 느림 (최대 3.4MHz)
- 클럭 신호를 관리해야 하므로 구현이 다소 복잡할 수 있음
📌 사용 예시
- 센서 데이터 수집 (온도 센서, 가속도계, 자이로스코프 등)
- EEPROM과 마이크로컨트롤러 간의 데이터 전송
- 디스플레이 모듈 제어 (OLED, LCD)
2. SPI (Serial Peripheral Interface)
SPI는 다중 신호선을 활용하는 동기식 통신 방식으로, 빠른 데이터 전송이 가능합니다.
🛠 특징
- 4개의 신호선 사용
- MOSI (Master Out Slave In)
- MISO (Master In Slave Out)
- SCLK (Serial Clock)
- SS (Slave Select)
- 클럭 신호(SCLK)를 이용한 동기식 통신
- 단일 마스터-멀티 슬레이브 구조 지원
- 속도: 수십 MHz까지 가능 (최대 100MHz 이상)
✅ 장점
- 높은 전송 속도 (I2C보다 빠름)
- 전송 데이터의 크기가 자유로움 (8비트, 16비트, 32비트 등)
- 클럭을 사용한 동기식 방식이므로 안정적인 데이터 전송 가능
❌ 단점
- 많은 신호선 필요 (각 슬레이브마다 별도의 SS 핀 필요)
- 멀티슬레이브 연결이 어렵고 복잡함
- 다소 높은 전력 소비
📌 사용 예시
- SD 카드 데이터 전송
- 고속 ADC/DAC (아날로그-디지털 변환기) 인터페이스
- TFT 디스플레이 제어
- 플래시 메모리 제어
3. UART (Universal Asynchronous Receiver/Transmitter)
UART는 비동기 방식으로 데이터를 직렬 전송하는 통신 방식입니다.
🛠 특징
- Tx (전송) / Rx (수신) 두 개의 신호선만 사용
- 클럭 신호 없이 비동기 방식으로 동작
- 시작(Start), 정지(Stop), 패리티(Parity) 비트를 사용하여 데이터 무결성 확보
- 속도: 300bps ~ 1Mbps 이상 (일반적으로 9600, 115200bps 사용)
✅ 장점
- 간단한 하드웨어 및 프로토콜 구조
- 직렬 통신을 위한 범용적인 인터페이스
- 긴 거리 전송에 적합
❌ 단점
- 두 장치 간 통신 속도를 미리 설정해야 함 (보드레이트 설정 필요)
- 마스터-슬레이브 구조가 아니므로 다중 장치 간 동시 통신이 어렵다
- 동기화 오류 가능성 있음
📌 사용 예시
- 마이크로컨트롤러와 PC 간 시리얼 통신 (예: USB-to-Serial 변환기)
- 디버깅 및 로그 출력
- 블루투스 및 GPS 모듈과의 인터페이스
4. I2C, SPI, UART 비교표
항목 I2C SPI UART
통신 방식 | 동기식 | 동기식 | 비동기식 |
---|---|---|---|
신호선 수 | 2개 (SDA, SCL) | 4개 (MOSI, MISO, SCLK, SS) | 2개 (Tx, Rx) |
속도 | 최대 3.4MHz | 최대 100MHz 이상 | 일반적으로 115.2kbps |
다중 장치 연결 | 가능 (1 마스터, 다수 슬레이브) | 가능하지만 복잡 (멀티 슬레이브) | 불가능 (1:1) |
전력 소비 | 낮음 | 높음 | 중간 |
전송 거리 | 짧음 | 짧음 | 길음 |
주요 사용처 | 센서, EEPROM | SD 카드, 디스플레이 | PC-마이크로컨트롤러 통신 |
5. 어떤 통신 방식을 선택할까?
요구사항 추천 통신 방식
저속 & 저전력 | I2C |
---|---|
고속 데이터 전송 | SPI |
장거리 통신 & 간단한 구조 | UART |
멀티 디바이스 연결 필요 | I2C |
6. 결론
임베디드 시스템에서는 I2C, SPI, UART가 각각의 장점과 단점을 가지며 다양한 용도로 사용됩니다.
- I2C는 저전력 및 간단한 배선을 요구하는 센서 통신에 적합하고,
- SPI는 빠른 데이터 전송이 필요한 SD 카드, 디스플레이 등에 주로 사용되며,
- UART는 직렬 통신을 통해 디버깅 및 마이크로컨트롤러 간 통신에 적합합니다.
추가로 읽어볼 만한 주제
'Essential > 통신' 카테고리의 다른 글
6G 시대의 초연결 통신 (1) | 2025.03.12 |
---|---|
MIPI 인터페이스란 - 모바일 및 디스플레이 인터페이스 기술 (2) | 2025.03.08 |
BLE(Bluetooth Low Energy)란 - 특징과 응용 분야 (3) | 2025.03.04 |
USB vs PCIe vs SATA - 인터페이스 비교 (0) | 2025.03.03 |
시리얼 통신과 병렬 통신 - 차이점과 활용 사례 (0) | 2025.02.27 |
댓글