I2C 와 I3C 의 차이는?
I²C (Inter-Integrated Circuit)와 I³C (Improved Inter-Integrated Circuit)는 모두 직렬 통신 프로토콜로, 집적 회로 (IC) 간의 저전력 통신을 위해 설계되었습니다. 이 두 프로토콜은 유사한 목적을 가지고 있지만, 몇 가지 주요한 차이점이 있습니다.
1. **기원 및 발전**:
- **I²C**: 1980년대에 Philips Semiconductors (현재는 NXP Semiconductors)에 의해 개발되었습니다.
- **I³C**: MIPI Alliance에 의해 I²C의 한계를 극복하고 기능을 확장하기 위해 개발되었습니다.
2. **데이터 전송 속도**:
- **I²C**: 전통적인 I²C에서는 표준 모드 (100 kbps), 고속 모드 (400 kbps), 고속 모드 플러스 (1 Mbps), 울트라 고속 모드 (5 Mbps) 등 여러 가지 속도 옵션이 있습니다.
- **I³C**: I³C는 보다 빠른 데이터 전송 속도를 지원하며, 기본 모드, 고속 모드, 극한 모드로 나눌 수 있으며, 극한 모드에서는 12.5 Mbps까지 가능합니다.
3. **버스 구조와 기능**:
- **I²C**: 주로 2개의 라인 (SDA: 데이터, SCL: 클럭)을 사용합니다.
- **I³C**: I²C와 같은 라인을 사용하지만, 추가적인 기능 (예: 인밴드 인터럽트, 동적 주소 부여)을 지원합니다.
4. **장치 통합 및 호환성**:
- **I²C**: 오래된 표준으로, 많은 장치들이 이 프로토콜을 지원합니다.
- **I³C**: I²C 장치와의 일부 호환성을 유지하면서, 새로운 기능을 추가하였습니다. 이로 인해 I³C 버스에는 I²C 장치와 I³C 장치가 혼합되어 연결될 수 있습니다.
5. **전력 소비**:
- **I²C**: 일반적으로 낮은 전력을 소비하지만, 데이터 전송 속도가 느릴 경우 전력 효율이 감소할 수 있습니다.
- **I³C**: 더 높은 데이터 전송 속도와 추가적인 기능 덕분에 전력 효율이 향상되었습니다.
요약하면, I³C는 I²C의 확장 및 개선 버전으로 볼 수 있으며, 더 빠른 데이터 전송 속도와 추가적인 기능을 제공하면서도 I²C 장치와의 호환성을 유지합니다.
I²C와 I³C 프로토콜에서의 master와 slave 관계와 해당 연결 구성에 대해 설명하겠습니다:
1. **I²C**:
- **1:N**: I²C는 전통적으로 한 개의 master와 여러 개의 slave 장치간의 통신을 지원합니다. 여기서 N은 여러 개의 slave 장치를 의미합니다. 이러한 구성에서 master는 버스에 명령을 시작하고 데이터를 전송하거나 요청합니다.
- **N:N**: 기본 I²C 표준에서는 여러 master를 동시에 지원하지 않습니다. 그러나 "멀티마스터" 구성을 지원하는 확장이 있으며, 이를 통해 여러 master 장치가 동일한 버스에서 동작할 수 있습니다. 이 경우, 버스의 arbitration 메커니즘이 충돌을 처리합니다.
2. **I³C**:
- **1:N**: 기본적으로 I³C도 한 개의 master와 여러 개의 slave 장치 간의 통신을 지원합니다.
- **N:N**: I³C는 여러 master를 기본적으로 지원합니다. 이 구성에서도 버스의 arbitration 메커니즘이 충돌을 처리하게 됩니다. I³C의 멀티마스터 지원은 I²C의 멀티마스터 기능보다 향상되었으며, 동적으로 master의 역할을 변경할 수 있게 해줍니다.
따라서, 두 프로토콜 모두 1:N 구성을 지원하며, 멀티마스터 확장 또는 기능을 통해 N:N 구성을 지원할 수 있습니다.