티스토리 뷰

이전 포스팅에 이어 CAN, SPI와 I2C를 비교해보자.

 

Feature CAN SPI I2C
Communication Type Multi-Master, Multi-Slave,
Broadcast
Single Master-Multi Slave
(typically)
Multi-Master, Multi-Slaved,
Addressed
Physical Wiring Two wires (CAN High, CAN Low) Four wires
(MOSI, MISO, SCLK, SS)
Two wires (SDA, SCL)
Speed Up to 1 Mbps (Standard CAN) UP to several Mbps
(usually 10+ Mbps)
Up to 3.4 Mbps
(High-Speed mode)
Data Integrity High (with built-in error detection) Medium
(depends on implementation)
Medium (ACK and NACK only)
Signal Type Differential signaling Single-ended (one signal per line) Open-drain
(requires pull-up resistors)
Addressing Yes (11-bit or 29-bit identifiers) No (selects slave via SS line) Yes (7-bit or 10-bit addresses)
Number of
Devices
Virtually unlimited
(up to 2032 nodes)
Limited by SS lines (usually 1-4) Limited by address space
(127 devices)
Clock
Synchronization
Self-synchronizing Synchronized by clock line (SCLK) Synchronized by clock line
(SCL)
Duplex Half-Duplex Full-Duplex Half-Duplex
Bus Arbitration Yes, using priority-based
arbitration
No, only one master at a time Yes, with collision detection
Common
Applications
Automotive, industrial automation High-speed data transfer
in electronics
Sensor modules, EEPROMs,
small peripherals
Error Detection Built-in with CRC, error frames,
bit-stuffing
None
(relies on hardware reliability)
Basic (ACK/NACK)
Power
Consumption
Low
(efficient for embedded systems)
Moderate to high,
depending on speed
Low
Complexity High (protocol and error handling) Low to medium (simple protocol) Low to medium

 

  1. CAN (Controller Area Network)
    1. Strengths
      1. 잡음이 많은 환경 (예: 자동차 및 산업 환경)에서 안정적인 통신을 위해 설계되었다.
      2. 오류 감지 및 수정 메커니즘 (예: CRC, acknowledgement, bit-sutffing) 이 내장되어 있다.
      3. 우선순위 기반 메시지 중재(priority-based message arbitration)를 지원해 실시간 데이터 전송이 가능하다.
      4. 많은 장치 수; 사실상 무제한의 노드
    2. Limitations
      1. 일반적으로 SPI 및 일부 high-speed 모드의 I2C 보다 느림, 특히 standard CAN (1Mbps)
      2. 전용 CAN 컨트롤러와 종종 물리 계층 통신을 위한 CAN transceiver 가 필요한 더 복잡한 프로토콜
    3. Best Use Cases
      1. 자동차 시스템 (예: 엔진 제어 장치, 안티록 제동 시스템)
      2. 신뢰성이 중요한 산업용 제어 시스템 및 의료 기기
  2. SPI (Serial Peripheral Interface)
    1. Strengths
      1. 10Mpbs 이상의 매우 빠른 속도로 고속 데이터 전송에 적합하다.
      2. 전이중 통신을 통해 데이터를 동시세 송수신할 수 있다.
      3. 주소 지정 체계가 없는 간단한 프로토콜로 연결된 장치를 직접 제어할 수 있다.
      4. ADC, DAC, 디스플레이, SD 카드 등 여러 고속 주변 기기를 연결하는 데 이상적이다.
    2. Limitations
      1. 확장성이 제한적이며, 각 장치마다 마스터에서 고유한 Chip Select (SS) 라인이 필요하므로 배선 복잡성이 증가한다.
      2. 오류 감지 기능이 내장되어 있지 않아 하드웨어와 환경에 따라 안전성이 달라진다.
    3. Best Use Cases
      1. 데이터 스토리지 (SD 카드), 디스플레이, 센서와의 통신 등 고속 데이터 전송이 필요한 애플리케이션
      2. 주변기기 수가 제한되어 있고 노이즈 감도가 낮은 시스템
  3. I2C (Inter-Integrated Circuit)
    1. Strengths
      1. 두 개의 전선 (SDA와 SCL)만 필요하므로 배선 복잡성이 줄어든다.
      2. 통신데 단 두 개의 회선만 사용해 고유한 주소를 가진 여러 장치를 지원한다.
      3. 센서 모듈 및 저속 주변기기 (예: EEPROM, RTC, 저전력 센서)에 널리 사용된다.
      4. 전력 소비가 적어 특히 배터리 구동 장치에 적합하다.
    2. Limitations
      1. 속도가 제한적이며, 일반적으로 high-speed 모드에서 최대 3.4Mbps로 제한된다.
      2. 반이중 통신만 가능하므로 데이터 전송 속도가 느려질 수 있다.
      3. 버스에 풀업 저항이 필요하므로 전력 소비가 약간 증가한다.
      4. 제한된 주소 지정 공간; standard mode에서 127개의 디바이스만 연결할 수 있다.
    3. Best Use Cases
      1. 임베디드 시스템에서 센서 및 EEPROM과 같은 저속, 저전력 장치와의 인터페이스
      2. 속도보다 단순성과 적은 핀 수가 더 중요한 애플리케이

Summary Comparision

: 올바른 프로토콜을 선택하는 것은 필요한 속도, 디바이스 수, 배선 제약 조건, 전력 요구 사항, 안전성 또는 오류 수정의 필요성 등의 요인에 따라 달라진다.

  • CAN 은 자동차 또는 산업 제어와 같이 열악한 환경의 고 신뢰성, 다주우 디바이스 네트워크에 가장 적합하다.
  • SPI 는 디스플레이나 고속 센서와 같이 연결된 디바이스 수가 제한되어 있는 고속 단거리 통신에 탁월하다.
  • I2C는 임베디드 시스템의 센서 및 EEPROM 인터페이스와 같이 간단한 2선식 버스에 여러 장치를 사용하는 저속, 저전력 애플리케이션에 선호된다.

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형