利用 I3C 的優點,達到更快、更簡單、更靈活的 IC 對 IC 通訊
資料提供者:DigiKey 北美編輯群
2024-12-17
積體電路 (IC) 對 IC 通訊的板載序列介面,以內部整合電路 (I²C) 和序列周邊裝置介面 (SPI) 為大宗;這兩者從 1980 年代起就已推出。這些介面廣泛用於將低速感測器和 IC 連接至微控制器單元 (MCU),以便達到短距離的板內通訊。然而,隨著數位系統的速度加快,這些介面的典型數據傳輸率,如 I²C 為 1 Mbps,SPI 為 10 Mbps,已經變成應用上的限制因素。其他限制因素包括專用的中斷線路或晶片啟用線路,這些限制都需要進行額外的訊號連接,因此會增加電線的數量和匯流排連接的複雜度。
改良版內部整合電路 (I3C) 匯流排的用意是升級 IC 之間的通訊,不但可提供更高的數據傳輸率、更大的靈活性,也提供具有頻段內中斷 (IBI),而非外部中斷的真正雙線式介面。
本文將探討 I3C 介面的特性,以及對於 I²C 和 SPI 序列介面而言,此介面可能會是良好的升級選擇的理由。本文將使用典型的 MCU、IC 開關和感測器裝置來進行應用展示。
嵌入式通訊匯流排
嵌入式序列互連 (如 I²C 和 SPI) 多年來一直都用於板內通訊。主要是當作感測器和使用者介面裝置,與其控制處理器之間的通訊匯流排。典型系統中的感測器數量,在手機中已經增加到 10 至 20 個,在車輛當中更大幅增加。此外,隨著對更高速度、更低功耗和更少導線的需求增加,設計人員更難以符合這些通訊要求。設計人員必須符合這些要求,同時透過中斷線路和啟用線路維持對處理器的控制 (圖 1)。
圖 1:嵌入式通訊應支援更高的速度、更低的功耗和最少的電線數。(圖片來源:NXP Semiconductors)
目前的技術使用雙線式 I²C 或四線式 SPI 介面來實作感測器和使用者控制裝置介面。中斷線路、啟用線路和其他控制線路都會跟時脈線路和數據線路分離,因而導致每個介面有更多線路。
設計人員需要更具前瞻性的介面作法,以消除互連中的額外導線,並僅使用時脈線路和數據線,在頻段內處理這些操作。此外,匯流排應可用更高的速度和更低的功率損耗來運作。
I3C 介面
I3C 是行動產業處理器介面 (MIPI) 聯盟為了滿足這些要求而開發的。此介面能以 MIPI I3C 的形式提供給 MIPI 成員,也能以簡化功能的 MIPI I3C Basic 型式提供給非成員使用。與傳統 I²C 和 SPI 介面一樣,改良後的形式屬於序列式,使用兩條線實作而成,可將引腳數以及元件之間的訊號路徑數量降至最低。在單一數據傳輸率 (SDR) 模式下,其數據傳輸率高達 12.5 Mbps,時脈頻率則為 12.5 MHz。此介面以較低的功率位準運作,並採用簡易且靈活的設計架構。
值得注意的是,I3C 標準保留了與 I²C 系統有限的向下相容性,能讓現有的 I²C 裝置連接到 I3C 匯流排,同時仍允許匯流排切換到更高的數據傳輸率,以便在合規的 I3C 裝置之間進行通訊。系統配置的比較圖如圖 2 所示。
圖 2:在 I3C、I²C 和 SPI 介面的基本配置比較下,可看出 I3C 的速度更快,接線更簡單。(圖片來源:NXP Semiconductors)
四線式 SPI 介面的運作更快速,並可支援全雙工通訊。I²C 可透過由時脈 (SCL) 線路和數據 (SDA) 線路組成的雙線式匯流排,進行半雙工通訊。兩者都需要額外的線路來支援中斷以及其他控制功能,如晶片選擇。I3C 可將介面中使用的電線數量減至兩條,因此可省去 I²C 和 SPI 所用的中斷線路、啟用線路和晶片選擇線路。對於需要將十至二十個單獨感測器接到處理器,而且各有數條附屬電線的系統來說,電線數量的減少可帶來明顯優勢。IBI 可取代中斷線路和其他控制線。在此作法中,目標感測器或裝置會將其位址強加到 I3C 匯流排位址標頭中,藉此通知處理器中斷的存在。
I²C 和 I3C 之間的時脈率差異很大。I²C 的時脈頻率通常為 100 kHz、400 kHz 或 1 MHz,而 I3C 的時脈頻率則為 12.5 MHz。以前,SPI 是用於高於 1 MHz 的時脈率。因此設計時,需在時脈率和電線數量之間進行抉擇。但 I3C 可透過雙線拓撲,提供更高的時脈與數據傳輸率,因此改變此情況。
推挽式輸出比起開汲極驅動器或集極驅動器的切換速度更快,是促成 I3C 提高時脈率的重大因素。為了保持與 I²C 裝置的相容性,I3C 可以依據匯流排的狀態,在開汲極驅動器和推挽式驅動器之間進行切換。開汲極或集極設計會在初始定址或仲裁期間使用,而 I²C 和 I3C 裝置可能會同時出現在線路中。當通訊單向進行時,I3C 會使用推挽式,因此 I²C 裝置不可能同時進行通訊。
除了標準 SDR 外,I3C 還支援多種可選的高數據傳輸率 (HDR) 模式。這些 HDR 模式能以相同的時脈率運作,但會以更高的數據密度傳輸。第一種 HDR 模式是 HDR 雙倍數據傳輸率 (HDR-DDR),在此模式中,數據會在時脈訊號的兩個邊緣計時,提供幾乎兩倍的數據傳輸率。在 12.5 MHz 時脈下,DDR 模式可達到 20 Mbps 的有效數據傳輸率。
HDR 三進制符號有兩種版本:一種是 HDR 三進制符號的「純匯流排 (HDR-TSP)」版本,僅適用於 I3C 裝置;另一種是 HDR 三進制符號的「傳統匯流排 (HDR-TSL)」版本,可適用於 I²C 和 I3C 裝置。三進制符號模式會在 SCL 和 SDA 線路上將三位元 (三進制) 符號編碼,藉此讓每道時脈傳輸三個數據位元。
HDR 批量傳輸 (HDR-BT) 模式可支援四路、雙路或單路 SDA 數據線路進行的通訊,藉此提供最高的數據傳輸量。因此可在相同的時脈率下,達到原始單一數據傳輸率八倍、四倍或兩倍的效能。
數據傳輸速率的提升能讓裝置的啟動時間縮短,進而縮短匯流排電源的工作週期。與 I²C 相比,這可降低功耗 (圖 3)。從具有外部上拉電阻的集極開路驅動器,轉變成推挽式驅動器,可進一步降低功耗,因為上拉電阻需要很大的功率才能運作。
圖 3:與 I²C 相比,I3C 在數據傳輸率和功耗方面有所改進。(圖片來源:NXP Semiconductors)
定址
I²C 針對每個匯流排裝置使用 7 位元或 10 位元長度的固定位址。但在 I3C 中,已改成 7 位元動態定址,匯流排的主控元件會在動態位址指派 (DAA) 期間設定裝置的位址,並將此位址儲存在裝置的暫存器中。若使用 I²C 周邊,固定定址仍可用於 I3C。
由於使用動態定址,裝置位址可以在之後更改。如此一來,就可支援熱機加入,能讓新裝置在匯流排運行期間添加到匯流排中。連接到 I3C 匯流排的新裝置會發送熱機加入請求,向 I3C 主控元件告知其存在。主控元件控制器會確認請求並指派位址,將此裝置加到匯流排。
IBI
I3C 是真正的雙線式匯流排並且使用 IBI,而非像是 I²C 的專用中斷線路。IBI 是指當目標裝置拉下 SDA 線路,向主控元件發出其可用性訊號的時間。主控元件接著會啟動 SCL 線路上的時脈,目標裝置便將其位址發送到 I3C 匯流排上,藉此通知控制器已發生中斷。
通用命令代碼
通用命令代碼 (CCC) 是標準化的命令,控制器可以將其當作一般廣播使用,同時向所有 I3C 裝置或特定目標裝置進行廣播。這些命令是用於與匯流排管理相關的功能。CCC 協定的格式開頭會是 I3C 廣播位址,可由匯流排上的所有 I3C 裝置進行識別。匯流排上的任何 I²C 裝置均不會確認該請求,因為此 I²C 位址已經保留。
每個命令含有一個 8 位元的敘述元 ID 欄位,並且後面會接著命令有效酬載。發送到特定裝置的命令會在有效酬載的第一個位元組中傳遞裝置位址。CCC 命令超過 40 多種,包括:
- 輸入動態位址指派 (ENTDAA)
- 設定新的動態位址指派 (SETNEWDA)
- 啟用事件 (ENEC)/停用事件 (DISEC)
- 重置動態位址指派 (RSTDAA)
- 進入高數據傳輸率模式 (ENTHDRx)
- 取得裝置特性暫存器 (GETDCR)
廠商可使用一系列專用的 CCC ID 來實作其專屬命令。
錯誤偵測和恢復
與 I²C 不同的是,I3C 含有對錯誤偵測和恢復的規定。有六種目標裝置的錯誤和恢復方法屬於強制性,還有另一個方法可自行選用。更有針對主控端的錯誤提供額外的錯誤與恢復方法。
I3C 支援的元件
如圖 2 (左) 所示,基本的 I3C 網路含有至少一個主控控制器,以及一個或多個 I3C 目標或從屬裝置。主要的主控元件可以是 MCU,例如 NXP Semiconductors 的 LPC5534JHI48-00MP (圖 4)。這是一款 32 位元 Arm® Cortex®-M33 MCU,具有 128 KB 的 SRAM 和 256 KB 的快閃記憶體。其 Flexcomm 介面可支援八種不同的序列介面,其中包括 I3C。
圖 4:LPC5534JHI48/00MP MCU 含有一個 I3C 介面和其他七個序列介面。(圖片來源:NXP Semiconductor)
I3C 匯流排可將第二個主控元件引進到匯流排中當作從屬元件使用。I3C 可具有多個主控元件,但只能有一個控制器。在登錄後,第二主控元件可以請求成為當前的主控元件,如果當前的主控元件同意請求,其控制權就會移交給提出請求的第二主控元件。
NXP 的 P3T2030CUKAZ 是典型的 I3C 感測器。此溫度感測器可將 -40°C 至 +125°C 之間的溫度轉換為 12 位元的數位值,且準確度為 ±2°C。此感測器含有 I²C 和 I3C SDR 模式的序列介面。
有個更精密的感測器是 TDK InvenSense 的 ICM-42605 三軸微機電系統 (MEMS) 陀螺儀和加速計。當作速率陀螺儀時,此裝置可以測量 ±15.2 至 ±2000°/s 之間的旋轉速率。當作加速計時,其測量範圍介於 ±2 至 ±15 g,可以偵測運動、傾斜、輕觸或步數 (計步器)。當作 I3C 感測器時,SDR 模式的工作頻率為 12.5 MHz,DDR 模式則為 25 MHz。
像是 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 的正式原則。