산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

I2C와 SPI 선택 가이드: 핵심 차이점 완벽 정리

프로젝트를 설계 중인데 I2C와 SPI 중 어떤 통신 프로토콜을 선택해야 할지 고민되시나요? 두 프로토콜의 차이점을 명확히 이해하고 프로젝트에 최적의 선택을 할 수 있도록 도와드리겠습니다.

I2C와 SPI란 무엇인가?

I2C(Inter-Integrated Circuit)와 SPI(Serial Peripheral Interface)는 모두 PCB 상의 칩 간 통신에 널리 사용되는 '로우엔드(low-end)' 프로토콜입니다. 구현이 쉽고 마이크로컨트롤러와 센서, 메모리, 디스플레이 등 다양한 주변장치와의 통신에 적합합니다. 하지만 프로젝트 특성에 맞지 않는 프로토콜을 선택하면 성능 저하, 배선 복잡도 증가, 전력 소모 과다 등의 문제가 발생할 수 있습니다.

SPI 프로토콜이란?

SPI는 1980년대 모토로라(Motorola)가 마이크로컨트롤러와 EEPROM 등 주변장치 간 통신을 위해 개발한 동기식 직렬 통신 프로토콜입니다. 마스터-슬레이브 구조로 동작하며, 4개의 신호 라인을 사용합니다(전원/그라운드 제외).

SPI의 4가지 신호 라인

마스터는 하나의 SPI 버스에서 여러 슬레이브를 제어할 수 있으며, 각 슬레이브마다 별도의 SS 라인이 필요합니다. 통신 시 마스터는 해당 슬레이브의 SS 라인을 Low로 내리고 SCLK을 발생시켜 동기화된 데이터 교환을 수행합니다. SPI는 풀듀플렉스(Full-duplex) 통신이 가능하며, 모드 0~3까지 4가지 클럭 폴리티/페이즈 조합을 지원합니다.

I2C 프로토콜이란?

I2C는 1982년 필립스(현 NXP)에서 PCB 상의 칩 간 통신 표준화를 위해 개발한 동기식 직렬 통신 프로토콜입니다. 단 2개의 신호 라인만으로 통신이 가능합니다.

I2C의 2가지 신호 라인

두 라인은 모두 오픈드레인(Open-drain) 구조로, 풀업 저항이 필수입니다. 이 구조 덕분에 멀티 마스터 구성이 가능하며, 버스 중재(Arbitration) 기능을 통해 충돌을 방지합니다. 통신 시작 시 마스터는 START 조건(SDA가 High→Low, SCL High 유지)을 보낸 후 7비트 슬레이브 주소와 R/W 비트를 전송합니다.

I2C와 SPI 핵심 차이점 비교

특징SPII2C
신호 라인 수4개 (슬레이브 추가 시 SS 라인 증가)2개 (고정)
통신 방식풀듀플렉스 (동시 송수신)하프듀플렉스 (교대 송수신)
최대 속도10~100 Mbps 이상 (이론상 무제한)100 kbps (표준), 400 kbps (고속), 3.4 Mbps (고속 모드)
핀 드라이브 방식푸시풀 (Push-pull)오픈드레인 (Open-drain)
멀티 마스터 지원미지원지원 (버스 중재 기능 내장)
최대 연결 장치 수마스터의 SS 핀 개수에 의존7비트 주소 기준 최대 112개 (10비트 확장 시 더 많음)
플로우 제어없음ACK 비트로 수신 확인
전력 소모낮음 (푸시풀 드라이브)상대적으로 높음 (풀업 저항을 통한 전류 흐름)
전송 거리짧음 (보드 내 통신에 적합)상대적으로 김 (보드 간 통신 가능)
노이즈 내성상대적으로 낮음높음 (차동 신호 유사 효과)

SPI의 장단점

장점

단점

I2C의 장단점

장점

단점

프로젝트 특성에 따른 선택 가이드

1. 핀 수가 제한적인 경우 → I2C 추천

마이크로컨트롤러의 GPIO 핀이 부족하다면 2선만 사용하는 I2C가 압도적으로 유리합니다. SPI는 슬레이브마다 SS 핀이 추가로 필요합니다.

2. 고속 데이터 전송이 필요한 경우 → SPI 추천

디스플레이(LCD/OLED), 고속 ADC/DAC, 대용량 플래시 메모리 등 대역폭이 중요한 애플리케이션에는 SPI가 적합합니다.

3. 저전력 설계가 중요한 경우 → SPI 추천

배터리 구동 기기에서는 풀업 저항 전류가 없는 SPI가 전력 효율 면에서 유리합니다. 단, 슬립 모드 전환 등 시스템 전체 설계를 고려해야 합니다.

4. 멀티 마스터 시스템이 필요한 경우 → I2C 필수

여러 마스터가 버스를 공유해야 하는 시스템(예: 여러 MCU가 센서 버스 공유)에서는 I2C만 가능합니다.

5. PCB 크기/배선 공간이 제한적인 경우 → I2C 추천

배선 라우팅 공간이 협소하면 2선식 I2C가 레이아웃에 훨씬 유리합니다.

6. 장거리/보드 간 통신이 필요한 경우 → I2C 추천 (단, 버퍼/리피터 필요)

SPI는 신호 무결성 문제로 보드 간 통신에 부적합합니다. I2C도 장거리용으로 설계된 버퍼 IC(예: PCA9615)와 함께 사용해야 합니다.

UART와의 비교

UART(Universal Asynchronous Receiver/Transmitter)는 비동기식 직렬 통신으로, 클럭 라인 없이 Tx/Rx 2선만으로 통신합니다. 마스터/슬레이브 개념이 없으며 점대점(Point-to-point) 연결에 적합합니다. GPS 모듈, 블루투스 모듈, 디버그 콘솔 등에서 주로 사용됩니다. SPI/I2C와 달리 보레이트(Baud rate) 양측 일치가 필수이며, 패리티 비트 등으로 기본적인 오류 검출을 지원합니다.

요약: 언제 무엇을 선택할까?

궁금한 점이 있으시면 언제든 문의해 주세요. 최적의 선택을 도와드리겠습니다.

산업기술

  1. 개발자가 마스터해야 할 7가지 필수 리액트 라이브러리
  2. 신뢰성 있는 전력 시스템을 위한 변압기 오일 시험 필수 가이드
  3. 모터 보호의 필수품: 라인 리액터의 핵심 이점
  4. 연삭숫돌 가드 필수 가이드: 파손과 부상으로부터 사용자 보호
  5. 정밀 가공을 위한 마이크로 툴: 5가지 핵심 인사이트
  6. TAA 준수 완벽 가이드: 공급업체가 꼭 알아야 할 5가지 핵심 사항
  7. 반드시 알아야 할 머신러닝 핵심 애플리케이션 9가지
  8. 클러치 페이싱 마스터하기: 산업 장비 종합 가이드
  9. 워터젯 전문가 필수 용어 사전: 하이퍼프레셔·다이나믹 XD·커프·테이퍼 등 핵심 용어 20선
  10. 널링(Knurling) 마스터: 미끄럼 방지·미관·기능성 표면 가공 기법