티스토리 뷰
이전 포스팅에 이어 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 |
- CAN (Controller Area Network)
- Strengths
- 잡음이 많은 환경 (예: 자동차 및 산업 환경)에서 안정적인 통신을 위해 설계되었다.
- 오류 감지 및 수정 메커니즘 (예: CRC, acknowledgement, bit-sutffing) 이 내장되어 있다.
- 우선순위 기반 메시지 중재(priority-based message arbitration)를 지원해 실시간 데이터 전송이 가능하다.
- 많은 장치 수; 사실상 무제한의 노드
- Limitations
- 일반적으로 SPI 및 일부 high-speed 모드의 I2C 보다 느림, 특히 standard CAN (1Mbps)
- 전용 CAN 컨트롤러와 종종 물리 계층 통신을 위한 CAN transceiver 가 필요한 더 복잡한 프로토콜
- Best Use Cases
- 자동차 시스템 (예: 엔진 제어 장치, 안티록 제동 시스템)
- 신뢰성이 중요한 산업용 제어 시스템 및 의료 기기
- Strengths
- SPI (Serial Peripheral Interface)
- Strengths
- 10Mpbs 이상의 매우 빠른 속도로 고속 데이터 전송에 적합하다.
- 전이중 통신을 통해 데이터를 동시세 송수신할 수 있다.
- 주소 지정 체계가 없는 간단한 프로토콜로 연결된 장치를 직접 제어할 수 있다.
- ADC, DAC, 디스플레이, SD 카드 등 여러 고속 주변 기기를 연결하는 데 이상적이다.
- Limitations
- 확장성이 제한적이며, 각 장치마다 마스터에서 고유한 Chip Select (SS) 라인이 필요하므로 배선 복잡성이 증가한다.
- 오류 감지 기능이 내장되어 있지 않아 하드웨어와 환경에 따라 안전성이 달라진다.
- Best Use Cases
- 데이터 스토리지 (SD 카드), 디스플레이, 센서와의 통신 등 고속 데이터 전송이 필요한 애플리케이션
- 주변기기 수가 제한되어 있고 노이즈 감도가 낮은 시스템
- Strengths
- I2C (Inter-Integrated Circuit)
- Strengths
- 두 개의 전선 (SDA와 SCL)만 필요하므로 배선 복잡성이 줄어든다.
- 통신데 단 두 개의 회선만 사용해 고유한 주소를 가진 여러 장치를 지원한다.
- 센서 모듈 및 저속 주변기기 (예: EEPROM, RTC, 저전력 센서)에 널리 사용된다.
- 전력 소비가 적어 특히 배터리 구동 장치에 적합하다.
- Limitations
- 속도가 제한적이며, 일반적으로 high-speed 모드에서 최대 3.4Mbps로 제한된다.
- 반이중 통신만 가능하므로 데이터 전송 속도가 느려질 수 있다.
- 버스에 풀업 저항이 필요하므로 전력 소비가 약간 증가한다.
- 제한된 주소 지정 공간; standard mode에서 127개의 디바이스만 연결할 수 있다.
- Best Use Cases
- 임베디드 시스템에서 센서 및 EEPROM과 같은 저속, 저전력 장치와의 인터페이스
- 속도보다 단순성과 적은 핀 수가 더 중요한 애플리케이
- Strengths
Summary Comparision
: 올바른 프로토콜을 선택하는 것은 필요한 속도, 디바이스 수, 배선 제약 조건, 전력 요구 사항, 안전성 또는 오류 수정의 필요성 등의 요인에 따라 달라진다.
- CAN 은 자동차 또는 산업 제어와 같이 열악한 환경의 고 신뢰성, 다주우 디바이스 네트워크에 가장 적합하다.
- SPI 는 디스플레이나 고속 센서와 같이 연결된 디바이스 수가 제한되어 있는 고속 단거리 통신에 탁월하다.
- I2C는 임베디드 시스템의 센서 및 EEPROM 인터페이스와 같이 간단한 2선식 버스에 여러 장치를 사용하는 저속, 저전력 애플리케이션에 선호된다.
반응형
'기술(Tech, IT) > 임베디드 (Embedded)' 카테고리의 다른 글
[Embedded] Yocto, Debian (0) | 2024.12.20 |
---|---|
[Embedded] Interview Practice - 3 (2) | 2024.12.19 |
[Embedded] I2C (Inter-Integrated Circuit) - 2 (0) | 2024.11.11 |
[Embedded] Polling (0) | 2024.11.11 |
[Embedded] I2C (Inter-Integrated Circuit) - 1 (0) | 2024.11.10 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- tf-idf
- Python
- Android
- vertex shader
- 소켓 프로그래밍
- java
- 이코노미스트 에스프레소
- 오블완
- join
- Hash Map
- 리트코드
- I2C
- The Economist
- defaultdict
- 파이썬
- 투 포인터
- socket programming
- min heap
- ml
- Computer Graphics
- 딕셔너리
- C++
- 티스토리챌린지
- 이코노미스트
- 머신 러닝
- The Economist Espresso
- DICTIONARY
- machine learning
- leetcode
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형