聊聊通訊協議I2C子系統之I3C
I3C Introduction
I3C :Improved Inter Integrated Circuit ,是 MIPI(Mobile Industry Processor Interface)移動產業處理器接口聯盟推出的改進型 i2c 總線接口。
傳感器在手機等移動產品中的快速發展,帶來了新的設計挑戰。因為沒有統一的方法來連接物理傳感器,設計師面臨的數字接口碎片包括 I2C、SPI 和 UART 等。
除了主接口,還可能需要其他信號,例如專用中斷、芯片選擇信號(SPI),啟用和睡眠信號。這會增加所需的主機 GPIO 數量和更多 PCB 層的系統成本。
隨著時間的推移和傳感器數量的增加,這種情況變得越來越難以控制。
MIPI I3C 接口的開發旨在簡化移動無線傳感器系統的設計架構,為傳感器提供快速、低成本、低功耗的二線數字接口。
框架如下:
表 1 列出了 I3C 尋址傳感器的示例類別。
翻譯一下:
是否需要額外中斷線(通知主控來讀數據)。
I2C 和 I3C 主要區別如下:
- I2C 雖然也是兩條線,但是很多時候傳感器需要一條額外的中斷線,來告訴主控數據已經準備好。I3C 允許從設備直接在總線上產生中斷,不再需要一條額外的中斷線。
- I2C 傳輸速度最高 3.4MHz,I3C 可以 12.5MHz +。
- I3C 向下兼容 I2C,但不兼容 10bit 的 I2C 擴展地址。
- I2C 的從設備是靜態地址,I3C 是動態地址,由主設備給從設備分配動態地址。
- 由于支持帶內中斷,所以涉及到從設備的優先級,一般動態設備號較低的,優先級較高,中斷就優先響應。(也是靠線與的特性)
- I3C 支持使用推挽輸出的 GPIO,增強驅動能力,只不過需要特殊設置。
如果所有 sensor 器件都采用 I3C 通信接口,連接將變的很簡單,如下圖,所有的 SPI 、UART 、I2C 都變為 I3C 兩根線:
I3C 關鍵特性
Mbps 是數據流量單位,而 MHz 是頻率單位,注意區分哦。
Mbps 是 Million bits per second 的縮寫,1 Mbps代表每秒傳輸 1048576 位(1Mb=1024Kb=1024*1024bit),即每秒傳輸1,048,576 / 8 = 131,072 字節 = 128 KB = 0.125MB。
I2C 和 I3C 關于功耗和傳輸速率的對比:
- I3C 使用推挽功能的雙線串行接口,速度可達 12.5 MHz。
- I3C 同一總線上共存的傳統 I2C 設備(有一些限制)。
- I3C 動態尋址,同時支持傳統 I2C 設備的靜態尋址。
- I3C 總線支持傳統 I2C 通訊。
- 類似 I2C 的單數據速率消息傳輸(SDR)。
- I3C BASIC 不支持:可選的高數據速率消息模式(HDR)。
- 多點功能。
- 多主功能。
- 帶內中斷支持。
- 熱連接支持。
- I3C BASIC 中不支持:同步計時支持和異步計時沖壓。
- secondary master support。
- 不支持 I2C master。
- 不支持從機 clock stretching。
- 每個 I2C 從機設備需要有 50ns spile filter on SCL。
- 現在還沒有太多的 I3C 設備出現在市場中,未來十年慢慢會普及。
I3C
I3C 支持許多傳統 I2C 從設備,I3C 有兩個模式:SDR Mode、HDR Modes
Single Data Rate (SDR) Mode。
- 僅在時鐘的一個邊緣傳輸數據。
- Private/Typical messages: 使用動態地址將消息發送到從機。
- 廣播消息:發送給總線上的所有從機(例如:ENTDAA)。
- 直接消息:發往特定從屬設備的消息(例如:SETDASA)。
High Data Rate (HDR) Modes
- 雙數據速率(HDR-DDR)模式:使用與SDR模式相同的信令(即與12C協議沒有顯著區別),但運行速度約為 SDR 速度的 2 倍。
- 通過在兩個時鐘邊緣傳輸數據實現更高的速度。
- Ternary Symbol Legacy (HDR-TSL) Mode: 更高的數據速率加上三元編碼,用于混合I2C和I3C設備的總線。與I2C協議顯著不同。
- Ternary Symbol Pure-bus (HDR-TSP) Mode: 更高的數據速率加上三值編碼,適用于只有I3C設備的總線。與12C協議顯著不同。
- 三元符號有三種狀態,SCL線改變狀態,SDA線改變狀態,或兩線改變狀態。
SDR Mode 作用
- SDR 模式是 I3C 總線的默認模式。
- 用于從當前主設備到從設備的專用消息傳遞。
- 用于進入其他模式、子模式和狀態。
- 用于內置功能,如通用命令(CCC)、帶內中斷,以及通過分配動態地址從I2C 過渡到 I3C。
- 在程序和條件方面與 I2C 協議【NXP01】非常相似,因此 I3C 設備和許多傳統 I2C 從設備(但不是 I2C 主設備)可以在同一 I3C 總線上共存。
- 對于 I3C 與 I2C 共享的程序和條件,SDR 模式嚴格遵循 I2C 規范中的定義。
- 所有 I3C 從機將正確忽略從 I3C 主機到 I2C 從機的 I2C 通信,因為 I3C 協議旨在允許 I2C 通信。
- 大多數傳統 I2C 從設備無法看到從 I3C 主設備到 I3C 從設備的 I3C 通信量,因為 I2C 尖峰濾波器對 I3C 的更高時鐘速度不透明。