더 빠르고 간편하며 유연한 IC 간 통신을 위해 I3C 활용하기
DigiKey 북미 편집자 제공
2024-12-17
집적 회로(IC) 간 통신을 위한 기판 실장 직렬 인터페이스는 1980년대부터 사용되어 온 집적 회로 간 인터페이스(I²C)와 직렬 주변 장 인터페이스(SPI)가 주류를 이루고 있습니다. 이러한 인터페이스는 저속 센서 및 IC를 마이크로 컨트롤러 장치(MCU)에 연결하여 짧은 거리에서 기판 내 통신을 하는 데 널리 사용됩니다. 하지만 디지털 시스템이 점점 빨라지면서 이러한 인터페이스는 1Mbit/s(I²C의 경우) 및 10Mbit/s(SPI의 경우)의 일반적인 데이터 속도로 국한되어 제한 요소가 되었습니다. 전용 인터럽트 또는 칩 활성화 회선을 포함한 기타 제한 사항으로 인해 추가 신호 연결이 필요하므로 전선의 수와 버스 연결의 복잡성이 증가합니다.
개선된 집적 회로 간(I3C) 버스의 목표는 IC 간 통신을 업그레이드하는 것입니다. 이 버스는 더 높은 데이터 속도, 더 큰 유연성, 외부 인터럽트 대신 대역 내 인터럽트(IBI)를 사용하는 실질적인 2선식 인터페이스를 제공합니다.
이 기사에서는 I3C 인터페이스의 특징과 I²C 및 SPI 직렬 인터페이스에서 업그레이드하는 것이 좋은 이유를 설명합니다. 해당 응용 제품을 보여주기 위해 일반적인 MCU, IC 스위치 및 센서 장치가 사용됩니다.
내장형 통신 버스
I²C 및 SPI와 같은 내장형 직렬 상호 연결은 기판 내 통신을 위해 수년 동안 사용되어 왔으며, 주로 센서와 사용자 인터페이스 장치 및 제어 프로세서 간의 통신 버스로 사용됩니다. 일반적인 시스템의 센서 수는 휴대폰의 경우 10개 ~ 20개로 늘어났고, 차량의 경우에는 그보다 훨씬 많은 수로 증가했습니다. 동시에 더 빠른 속도, 더 낮은 전력 소비, 더 적은 컨덕터에 대한 요구가 증가함에 따라 설계자의 통신 요구 사항은 더욱 까다로워졌습니다. 설계자는 인터럽트 및 활성화 회선을 통해 프로세서 제어를 유지하면서 이러한 요구 사항을 충족해야 합니다(그림 1).
그림 1: 내장형 통신은 더 빠른 속도, 더 낮은 전력, 최소한의 전선 수를 지원해야 합니다. (이미지 출처: NXP Semiconductors)
최신 기술에서는 2선식 I²C 또는 4선식 SPI 인터페이스를 사용하여 센서와 사용자 제어 장치 인터페이스를 구현합니다. 인터럽트, 활성화 및 기타 제어 회선은 클록 및 데이터 회선과 분리되어 있어 인터페이스당 더 많은 회선이 필요합니다.
설계자는 상호 연결에서 이러한 추가 컨덕터를 제거하고 클록과 데이터 회선만을 사용하여 대역 내 작업을 처리하는 보다 미래 지향적인 인터페이스 접근 방식이 필요합니다. 또한 버스는 더 빠른 속도와 더 낮은 전력 손실로 작동할 수 있어야 합니다.
I3C 인터페이스
이러한 요구 사항을 해결하기 위해 MIPI(모바일 산업 프로세서 인터페이스) Alliance에서는 I3C를 개발했습니다. 이 인터페이스는 MIPI 회원에게는 MIPI I3C로 제공되고, 비회원에게는 기능이 축소된 MIPI I3C Basic으로 제공됩니다. 기존 I²C 및 SPI 인터페이스와 마찬가지로 개선된 형태는 직렬이며 두 개의 전선을 이용한 구현으로 부품 사이의 핀 수와 신호 경로 수를 최소화합니다. 단일 데이터 전송률(SDR) 모드를 사용하는 12.5MHz 클록으로 최대 12.5Mbits/s의 데이터 전송률을 발휘합니다. 또한 저전력 레벨에서 작동하고 단순하지만 유연한 설계 아키텍처를 사용합니다.
특히 I3C 표준은 I²C 시스템과의 제한적인 하위 호환성을 유지하여 기존 I²C 장치를 I3C 버스에 연결할 수 있으며, 호환되는 I3C 장치 간 통신을 위해 버스가 더 높은 데이터 전송률로 전환될 수 있습니다. 그림 2에 시스템 구성 비교가 표시되어 있습니다.
그림 2: I3C, I²C 및 SPI 인터페이스의 기본 구성을 비교하면 I3C의 속도가 향상되고 배선이 더 간단하다는 것을 알 수 있습니다. (이미지 출처: NXP Semiconductors)
4선식 SPI 인터페이스는 더 빠른 작동이 가능하며 전이중 통신을 지원합니다. I²C는 클록(SCL) 및 데이터(SDA) 회선으로 구성된 2선식 버스를 통해 반이중을 사용하여 통신합니다. 두 경우 모두 인터럽트 및 다른 제어 기능(예: 칩 선택)을 지원하려면 추가 회선이 필요합니다. I3C는 인터페이스에 사용되는 전선 수를 2개로 줄여 I²C 및 SPI에서 사용되는 별도의 인터럽트, 활성화 및 칩 선택 회선을 제거합니다. 이렇게 전선 수를 줄이면 각각 여러 개의 보조 전선이 있는 10개 ~ 20개의 개별 센서를 프로세서에 연결해야 하는 시스템에서 상당한 이점을 얻을 수 있습니다. 인터럽트 및 기타 제어 회선은 IBI로 대체됩니다. 이 방법에서는 대상 센서 또는 장치가 I3C 버스 주소 헤더에 해당 주소를 부과하여 프로세서에 인터럽트를 알립니다.
I²C와 I3C의 클록 속도는 상당한 차이가 있습니다. I²C는 일반적으로 100kHz, 400kHz 또는 1MHz로 클로킹되는 반면, I3C는 12.5MHz로 클로킹될 수 있습니다. 이전에는 1MHz 이상의 클록 속도에 SPI가 사용되었습니다. 설계는 클록 속도와 전선 수 사이에서 선택되었습니다. I3C는 실질적인 2선식 토폴로지를 통해 더 높은 클록과 데이터 속도를 제공함으로써 이를 변화시켰습니다.
개방 드레인 또는 콜렉터 구동기보다 빠르게 전환할 수 있는 푸시풀 출력은 I3C의 클록 속도 향상에 크게 기여합니다. I²C 장치와의 호환성을 유지하기 위해 I3C는 버스 상태에 따라 개방 드레인과 푸시풀 구동기 간에 전환할 수 있습니다. 개방 드레인 또는 콜렉터 설계는 초기 주소 지정 또는 중재 중에 사용되며, 이 경우 I²C 및 I3C 장치가 회선에 동시에 연결될 수 있습니다. I3C는 단방향 통신일 때 푸시풀을 사용하며, I²C 장치가 동시에 통신할 가능성은 없습니다.
I3C는 표준 SDR 이외에 여러 선택적 고속 데이터 전송률(HDR) 모드를 지원합니다. 이러한 HDR 모드는 동일한 클록 속도로 작동하지만 더 높은 데이터 밀도로 전송합니다. HDR 모드 중 첫 번째는 클록 신호의 양쪽 가장자리에서 데이터가 클로킹되어 약 2배의 데이터 전송률을 제공하는 HDR-DDR(HDR 이중 데이터 전송률)입니다. 12.5MHz 클록의 경우, DDR 모드는 20Mb/s의 유효 데이터 전송률을 실현합니다.
HDR 삼원 기호에는 이중 버전이 있습니다. I3C 장치 전용 HDR 삼원 기호, 순수(HDR-TSP)와 I²C 및 I3C 장치를 모두 포함한 버스용 HDR 삼원 기호, 레거시(HDR-TSL)가 있습니다. 삼원 기호 모드는 SCL 및 SDA 회선에서 인코딩된 3비트(3원) 기호를 사용하여 클록당 3 데이터 비트를 달성합니다.
HDR-BT(HDR 벌크 전송) 모드는 쿼드, 이중 또는 단일 SDA 데이터 회선 통신을 지원하여 최고의 데이터를 제공합니다. 따라서 동일한 클록 속도에서 원시 단일 데이터 전송률 성능이 8배, 4배 또는 2배 향상됩니다.
이렇게 향상된 데이터 전송 속도 덕분에 장치를 켜는 시간을 단축할 수 있어 버스 전력 듀티 사이클이 감소됩니다. 이는 I²C와 비교하여 전력 소비를 감소시킵니다(그림 3). 풀업 저항기가 작동하는 데 상당한 전력이 필요하므로 외부 풀업 저항기가 있는 개방형 콜렉터 구동기에서 푸시풀 구동기로 변경하면 전력 소비가 더욱 감소합니다.
그림 3: I3C는 I²C에 비해 데이터 전송률 및 전력 소비가 개선되었습니다. (이미지 출처: NXP Semiconductors)
주소 지정
I²C에서는 각 버스 장치에 7비트 또는 10비트 길이의 고정 주소를 사용합니다. I3C에서는 버스 마스터가 동적 주소 할당(DAA) 중에 장치 주소를 설정하고 장치 레지스터에 저장하는 7비트 동적 주소 지정으로 변경되었습니다. I²C 주변 장치의 경우와 마찬가지로 고정 주소 지정은 I3C에서도 사용할 수 있습니다.
동적 주소 지정으로 인해 장치 주소는 나중에 변경될 수 있습니다. 그러면 버스가 작동하는 동안 새 장치를 버스에 추가할 수 있는 핫 조이닝이 지원됩니다. I3C 버스에 연결된 새 장치는 핫 조인 요청을 전송하여 I3C 마스터에 자신의 존재를 알립니다. 마스터 컨트롤러는 요청을 승인하고 장치를 버스에 추가할 주소를 할당합니다.
IBI
I3C는 I²C와 같은 전용 인터럽트 회선 대신 IBI를 사용하는 진정한 2선식 버스입니다. IBI는 대상 장치가 SDA 회선을 당겨서 마스터에 가용성을 알리는 경우입니다. 그러면 마스터가 SCL 회선에서 클록을 시작하고 대상 장치가 해당 주소를 I3C 버스로 전송하여 컨트롤러에 인터럽트를 알립니다.
공통 명령 코드
CCC(공통 명령 코드)는 컨트롤러가 모든 I3C 장치에 동시에 또는 특정 대상 장치에 일반 동보 통신으로 전송할 수 있는 표준화된 명령입니다. 이 명령은 버스 관리와 관련된 항목을 위한 것입니다. CCC 프로토콜의 형식은 버스에 있는 모든 I3C 장치에서 인식되는 I3C 동보 통신 주소로 시작됩니다. 버스에 있는 모든 I²C 장치는 예약된 I²C 주소이므로 요청을 승인하지 않습니다.
각 명령에는 8비트 설명자 ID 필드가 포함되어 있으며 그 뒤에 명령 페이로드가 올 수 있습니다. 특정 장치로 전송되는 명령은 페이로드의 첫 바이트에 장치 주소를 전달합니다. 다음을 포함하여 40개 이상의 CCC 명령어가 있습니다.
- 동적 주소 할당 입력(ENTDAA)
- 새 동적 주소 할당 설정(SETNEWDA)
- 이벤트 활성화(ENEC)/이벤트 비활성화(DISEC)
- 동적 주소 할당 초기화(RSTDAA)
- 고속 데이터 전송률 모드 진이(ENTHDRx)
- 장치 특성 레지스터 가져오기(GETDCR)
공급업체는 전용 범위의 CCC ID에서 자체 명령을 구현할 수 있습니다.
오류 감지 및 복구
I²C와 달리 I3C에는 오류 감지 및 복구를 위한 프로비전이 포함되어 있습니다. 대상 장치에 대한 6가지 오류 및 복구 방법은 필수이며, 나머지 하나는 선택 사항입니다. 특별히 마스터 측 오류에 대한 추가 오류 및 복구 방법도 사용할 수 있습니다.
I3C 지원 부품
그림 2(왼쪽)와 같이 기본 I3C 네트워크는 하나 이상의 마스터 컨트롤러와 하나 이상의 I3C 대상 또는 슬레이브로 구성됩니다.메인 마스터는 MCU(예: NXP Semiconductors의 LPC5534JHI48-00MP)일 수 있습니다(그림 4). 128Kb의 SRAM과 256Kb의 플래시를 갖춘 32비트 Arm® Cortex®-M33 MCU입니다. Flexcomm 인터페이스는 I3C를 포함한 8가지 직렬 인터페이스를 지원합니다.
그림 4: LPC5534JHI48/00MP MCU에는 I3C 인터페이스와 7개의 다른 직렬 인터페이스가 포함되어 있습니다. (이미지 출처: NXP Semiconductor)
I3C 버스를 사용하면 버스에 슬레이브로 도입되는 보조 마스터를 추가할 수 있습니다. I3C에는 마스터가 여러 개 있을 수 있지만 컨트롤러에는 하나만 있을 수 있습니다. 등록된 보조 마스터는 현재 마스터 상태를 요청할 수 있으며, 현재 마스터가 응하면 요청하는 보조 마스터에게 제어권이 넘겨집니다.
일반 I3C 센서로는 NXP의 P3T2030CUKAZ가 있습니다. 이 온도 센서는 -40°C ~ +125°C 온도를 ±2°C 정확도로 12비트 디지털 값으로 변환합니다. 여기에는 I²C 및 I3C SDR 모드 직렬 인터페이스가 모두 포함됩니다.
더 정교한 센서로는 TDK InvenSense의 ICM-42605 3축 마이크로 일렉트로닉스 시스템(MEMS) 자이로스코프 및 가속도계가 있습니다. 이 장치는 속도 자이로로서 ±15.2°/s ~ ±2000°/s의 회전 속도를 측정합니다. 가속도계로서의 범위는 ±2g ~ ±15g입니다. 동작, 기울기, 탭 또는 걸음 수(계보기)를 감지합니다. I3C 센서로서 12.5MHz(SDR 모드) 및 25MHz(DDR 모드)로 작동합니다.
NXP P3S0200GMX I3C 스위치와 같은 IC는 I3C 컨트롤러와 여러 대상 장치 세트 간에 또는 외부 MCU에 의해 결정되는 단일 대상과 여러 I3C 컨트롤러 간에 I3C 버스 신호를 라우팅하여 I3C 버스를 재구성할 수 있습니다(그림 5).
그림 5: P3S0200GMX I3C 스위치는 I3C 컨트롤러와 여러 대상 장치 세트 간 또는 단일 대상과 여러 I3C 컨트롤러 간에 I3C 버스 신호를 라우팅하여 I3C 버스를 재구성하는 데 사용할 수 있습니다. (이미지 출처: NXP Semiconductors)
두 대상이 주소가 같고 동일한 버스에 상주할 수 없는 경우 두 대상 간에 전환이 필요할 수 있습니다. 또는 두 공정 간에 단일 대상을 공유해야 하므로 두 I3C 컨트롤러 간에 전환이 필요할 수 있습니다.
결론
I3C는 데이터 전송률을 높이고, 전선 수를 줄이며, 버스 제어에 유연성을 추가하여 I²C 버스를 확장하는 직렬 인터페이스입니다. 이는 기존 I²C 및 SPI 인터페이스의 유용성을 넓히는 향상된 기능입니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.
