I3C在集成電路間通信中的優(yōu)勢特性分析及其性能展示
文章 概述
本文引用地址:http://dyxdggzs.com/article/202501/466439.htm本文介紹了I3C在實(shí)現更快、更簡(jiǎn)單、更靈活的 集成電路 (IC)間通信上的 特性 。文章還通過(guò)一些支持I3C的元器件,如MCU、傳感器和開(kāi)關(guān)等,展示I3C如何通過(guò)提高數據速率、減少線(xiàn)數和增加總線(xiàn)控制的靈活性來(lái)擴展傳統I 2 C和SPI接口的實(shí)用性。
用于 集成電路 (IC) 間通信的板載串行接口由內部 集成電路 (I 2 C) 和串行外設接口 (SPI) 主導,兩者自 20 世紀 80 年代起就已問(wèn)世。這些接口廣泛用于將低速 傳感器 和 IC 連接到微控制器單元 (MCU),以實(shí)現板內短距離通信。然而,隨著(zhù)數字系統的速度越來(lái)越快,這些接口已成為限制因素,I 2 C的典型數據速率僅為 1 Mbit/s,而SPI 也不過(guò) 10 Mbit/s。其他限制因素,包括專(zhuān)用中斷或芯片使能線(xiàn)路,需要額外的信號連接,這就增加了線(xiàn)數以及總線(xiàn)連接的復雜性。改進(jìn)型內部 集成電路 (I3C) 總線(xiàn)旨在對 IC 間通信進(jìn)行升級。該總線(xiàn)具有更高的數據速率、更大的靈活性,以及真正的雙線(xiàn)接口,支持帶內中斷 (IBI) 而非外部中斷。本文討論了 I3C 接口的特征,以及為什么說(shuō)它是 I 2 C 和 SPI 串行接口的理想升級品。我們將使用典型的 MCU、IC 開(kāi)關(guān)和 傳感器 設備來(lái)展示其應用。
嵌入式通信總線(xiàn)
多年來(lái),I 2 C 和 SPI 等嵌入式串行互連器件一直被用于板內通信。這些器件主要用作 傳感器 和用戶(hù)界面設備及其控制處理器之間的通信總線(xiàn)。典型系統中的 傳感器 數量不斷增加,在手機中已達到 10 到 20 個(gè),在汽車(chē)中則更多。與此同時(shí),隨著(zhù)對更高速度、更低功耗和更少導線(xiàn)的需求不斷上升,對設計人員而言,通信要求也變得更具挑戰性。設計人員必須滿(mǎn)足這些要求,同時(shí)通過(guò)中斷和使能線(xiàn)保持處理器控制(圖 1)。
圖 1:嵌入式通信應支持更高速度、更低功耗和最少線(xiàn)數。 (圖片來(lái)源: NXP Semiconductors )現行技術(shù)使用兩線(xiàn)制 I 2 C 或四線(xiàn)制 SPI 接口實(shí)現 傳感器 和用戶(hù)控制設備接口。中斷、使能和其他控制線(xiàn)路與時(shí)鐘和數據線(xiàn)路分開(kāi),因此每個(gè)接口有更多線(xiàn)路。設計人員需要一種更具前瞻性的接口方法,這種方法可以消除互連器件中的這些額外導線(xiàn),僅使用時(shí)鐘和數據線(xiàn)路在帶內處理這些操作。此外,總線(xiàn)應具有更高的運行速度,以及更低的功率損耗。
I3C接口
為了滿(mǎn)足這些要求,移動(dòng)行業(yè)處理器接口 (MIPI) 聯(lián)盟開(kāi)發(fā)了 I3C。該接口面向 MIPI 會(huì )員提供 MIPI I3C,面向非會(huì )員提供功能簡(jiǎn)化版 MIPI I3C Basic。與傳統的 I 2 C 和 SPI 接口一樣,這種改進(jìn)型也是串行接口,采用兩線(xiàn)制,盡可能減少了引腳數以及元器件之間的信號路徑數量。其數據速率高達 12.5 Mbits/s,采用單倍數據速率 (SDR) 模式,時(shí)鐘頻率為 12.5 MHz。該接口 運行功率水平較低,采用簡(jiǎn)單而靈活的設計架構 。值得注意的是,I3C 標準保留了與 I 2 C 系統有限的向后兼容性,可讓現有 I 2 C 設備連接到 I3C 總線(xiàn),同時(shí)仍允許總線(xiàn)在符合 I3C 標準的設備之間進(jìn)行通信時(shí)切換到更高的數據速率。系統配置的比較見(jiàn)圖 2。
圖 2:通過(guò)對 I3C、I 2 C 和 SPI 接口的基本配置進(jìn)行比較,可以看出 I3C 的速度更快,布線(xiàn)更簡(jiǎn)單。(圖片來(lái)源:NXP Semiconductors)四線(xiàn)制 SPI 接口運行速度更快,并支持全雙工通信。I 2 C 通過(guò)由時(shí)鐘 (SCL) 和數據 (SDA) 線(xiàn)路組成的雙線(xiàn)制總線(xiàn)進(jìn)行半雙工通信。兩者都需要額外的線(xiàn)路來(lái)支持中斷和其他控制功能(如片選)。 I3C 將接口中使用的線(xiàn)數減少至兩條,消除了 I 2 C 和 SPI 中單獨使用的中斷、使能和片選線(xiàn)路。 對于需要 10 到 20 個(gè) 傳感器 與處理器相連且每個(gè) 傳感器 都有數條輔助線(xiàn)的系統來(lái)說(shuō),減少線(xiàn)數是一大優(yōu)勢。中斷和其他控制線(xiàn)路被 IBI 取代。在這種方法中,目標 傳感器 或設備會(huì )將其地址輸入 I3C 總線(xiàn)地址標頭,以通知處理器發(fā)生中斷。I 2 C 和 I3C 的時(shí)鐘速率相差甚大。I 2 C 的時(shí)鐘速率一般為 100 kHz、400 kHz 或 1 MHz,而I3C 的時(shí)鐘速率可達 12.5 MHz。以前,SPI 用于時(shí)鐘速率高于 1 MHz 的應用。設計時(shí)需要在時(shí)鐘速率與線(xiàn)數之間進(jìn)行選擇。 I3C 采用真正的雙線(xiàn)制拓撲結構,具有更高的時(shí)鐘和數據速率 ,從而改變了這一現狀。推挽輸出的開(kāi)關(guān)速度比開(kāi)漏或集電極驅動(dòng)器更快,是 I3C 提高時(shí)鐘速率的重要因素。 為了保持與 I 2 C 設備的兼容性,I3C 可根據總線(xiàn)狀態(tài)在開(kāi)漏和推挽驅動(dòng)器之間切換。開(kāi)漏或集電極設計在初始尋址或仲裁期間使用,此時(shí)線(xiàn)路上可同時(shí)存在 I 2 C 和 I3C 設備。在進(jìn)行單向通信時(shí),I3C 采用推挽方式,不會(huì )出現 I 2 C 設備同時(shí)通信的情況。除標準 SDR 外,I3C 還支持多種可選的高數據速率 (HDR) 模式。 這些 HDR 模式以相同的時(shí)鐘速率運行,但傳輸的數據密度更高。第一種 HDR 模式是 HDR 雙倍數據速率(HDR-DDR),數據在時(shí)鐘信號的兩個(gè)邊沿進(jìn)行傳輸,速率是原來(lái)的近兩倍。對于 12.5 MHz 時(shí)鐘,DDR 模式可實(shí)現 20 Mbits/s 的有效數據速率。HDR 三元符號有兩個(gè)版本:HDR 純總線(xiàn)三元符號 (HDR-TSP) 僅適用于 I3C 設備,而 HDR 傳統三元符號 (HDR-TSL) 則適用于包括 I 2 C 和 I3C 器件在內的總線(xiàn)。三元符號模式通過(guò)在 SCL 和 SDA 線(xiàn)路上編碼三位(三元)符號來(lái)實(shí)現每個(gè)時(shí)鐘三個(gè)數據位。HDR 批量傳輸 (HDR-BT) 模式支持通過(guò)四路、雙路或單路 SDA 數據線(xiàn)路進(jìn)行通信,從而提供最高數據速率。因此,在相同的時(shí)鐘速率下,這是原始單倍數據速率性能的 8 倍、4 倍或 2 倍。數據傳輸速度的提高使設備的啟動(dòng)時(shí)間更短,從而降低了總線(xiàn)功率占空比。這與 I 2 C 相比降低了功耗(圖 3)。從帶有外部上拉電阻器的開(kāi)集驅動(dòng)器轉變?yōu)橥仆祢寗?dòng)器進(jìn)一步降低了功耗,因為上拉電阻器需要很大的功率才能運行。
圖 3:與 I 2 C 相比,I3C 在數據速率和功耗方面均有改進(jìn)。(圖片來(lái)源:NXP Semiconductors)
尋址
I 2 C 對每個(gè)總線(xiàn)設備使用 7 位或 10 位長(cháng)度的靜態(tài)地址。這在I3C 中已更改為 7 位動(dòng)態(tài)尋址,即總線(xiàn)主設備在動(dòng)態(tài)地址分配(DAA) 時(shí)設置設備地址,并將其存儲在設備寄存器中。在 I3C 中仍可像在 I 2 C 外設中一樣使用靜態(tài)尋址。由于采用動(dòng)態(tài)尋址,設備地址可在以后更改。 這支持熱連接,允許在總線(xiàn)運行時(shí)添加新設備。連接到 I3C 總線(xiàn)的新設備通過(guò)發(fā)送熱連接請求向 I3C 主設備發(fā)出其存在的信號。主控制器確認請求并分配一個(gè)地址,以將設備添加到總線(xiàn)上。
IBI
I3C 是真正的雙線(xiàn)制總線(xiàn),使用 IBI 而不是 I 2 C 那樣的專(zhuān)用中斷線(xiàn)路。 IBI是指目標設備通過(guò)拉低 SDA 線(xiàn)路向主設備發(fā)出可用性信號的情況。然后,主設備會(huì )啟動(dòng) SCL 線(xiàn)路上的時(shí)鐘,目標設備將其地址傳輸到 I3C 總線(xiàn)上,以通知控制器發(fā)生中斷。
常用命令代碼
常用命令代碼 (CCC) 是標準化命令,控制器可將其作為一般廣播同時(shí)發(fā)送給所有 I3C 設備或特定目標設備。這些命令用于與總線(xiàn)管理有關(guān)的項目。CCC 協(xié)議的格式以 I3C 廣播地址開(kāi)始,總線(xiàn)上的所有 I3C 設備都能識別該地址??偩€(xiàn)上的任何 I 2 C 設備都不會(huì )確認該請求,因為這是一個(gè)保留的 I 2 C 地址。
每條命令都包括一個(gè) 8 位描述符 ID 字段,后面還可能有一個(gè)命令有效載荷。向特定設備發(fā)送的命令會(huì )在有效載荷的第一個(gè)字節中傳遞設備地址。有四十多個(gè) CCC 命令,包括:
輸入動(dòng)態(tài)地址分配 (ENTDAA)
設置新動(dòng)態(tài)地址分配 (SETNEWDA)
啟用事件 (ENEC)/禁用事件(DISEC)
復位動(dòng)態(tài)地址分配 (RSTDAA)
輸入高數據速率模式 (ENTHDRx)
獲取設備特征寄存器 (GETDCR)
供應商可以使用一系列專(zhuān)用的 CCC ID 來(lái)執行自己的命令。
錯誤檢測和恢復
與 I 2 C 不同,I3C 包含錯誤檢測和恢復功能。 對于目標設備,有六種強制性錯誤和恢復方法,還有一種可選方法。此外,還有專(zhuān)門(mén)針對主設備端錯誤的其他錯誤和恢復方法。
支持 I3C 的元器件
如圖 2(左)所示,基本的 I3C 網(wǎng)絡(luò )至少包括一個(gè)主控制器和一個(gè)或多個(gè) I3C 目標設備或從設備 。 主設備可以是 MCU,例如 NXP Semiconductors 的 LPC5534JHI48-00MP (圖 4)。該器件是一款 32 位 Arm ? Cortex ? -M33 MCU,具有 128 KB SRAM 和256 KB 閃存。其 Flexcomm 接口支持八個(gè)不同的串行接口,包括 I3C。
圖 4:LPC5534JHI48/00MP MCU 包括一個(gè) I3C 接口和其他七個(gè)串行接口。(圖片來(lái)源:NXP Semiconductor)
I3C 總線(xiàn)允許添加作為從設備引入總線(xiàn)的輔助主設備。I3C可以有多個(gè)主設備,但只能有一個(gè)是控制器。一旦注冊,輔助主設備即可請求獲取當前主設備狀態(tài),如果當前主設備同意,其控制權將移交給提出請求的輔助主設備。
NXP 的 P3T2030CUKAZ 就是一種典型的 I3C 傳感器 。該溫度 傳感器 可將 -40°C 至+125°C 的溫度轉換為12 位數值,精度為 ±2°C。該器件包括一個(gè) I 2 C和一個(gè) I3C SDR 模式串行接口。
TDK InvenSense 的 ICM-42605 三軸微機電系統 (MEMS) 陀螺儀和加速計是更為復雜的 傳感器 。作為速率陀螺儀,該器件可測量 ±15.2 至 ±2000 °/s 的旋轉速率。而作為加速計,其量程為 ±2 至 ±15 g 。該器件可檢測運動(dòng)、傾斜、輕擊或步數(計步器)。作為 I3C 傳感器 ,其在SDR 模式下的工作頻率為 12.5 MHz,在 DDR 模式下為 25 MHz。
諸如 NXP P3S0200GMX I3C 開(kāi)關(guān)之類(lèi)的 IC 可在 I3C 控制器和多組目標設備之間,或在由外部 MCU 確定的單個(gè)目標設備和多個(gè) I3C 控制器之間路由 I3C 總線(xiàn)信號,從而重新配置 I3C 總線(xiàn)(圖 5)。
圖 5:P3S0200GMX I3C 開(kāi)關(guān)可用于在 I3C 控制器和多組目標設備之間,或在單個(gè)目標設備和多個(gè) I3C 控制器之間路由 I3C 總線(xiàn)信號,從而重新配置 I3C 總線(xiàn)。(圖片來(lái)源:NXP Semiconductors)
如果兩個(gè)目標具有相同的地址,且不能位于同一總線(xiàn)上,則可能需要在兩個(gè)目標之間進(jìn)行切換。另外,兩個(gè)進(jìn)程可能須共享一個(gè)目標,這需要在兩個(gè) I3C 控制器之間進(jìn)行切換。
結語(yǔ)
I3C 是一種串行接口,通過(guò)提高數據速率、減少線(xiàn)數和增加總線(xiàn)控制的靈活性來(lái)擴展 I 2 C 總線(xiàn)。這種增強版總線(xiàn)可擴展傳統 I 2 C 和 SPI 接口的實(shí)用性。
小編的話(huà)
正如文章中所分析的,I3C以其高速率、低功耗、多主設備支持、動(dòng)態(tài)地址分配等特性,在提高數據傳輸速度、增強系統靈活性、降低功耗、提高系統集成度等方面具有顯著(zhù)優(yōu)勢。您對于I3C的這些特性是否了解?您是否正在采用支持I3C的器件進(jìn)行系統設計?您對于I3C的優(yōu)勢有哪些心得或疑問(wèn)? 歡迎留言,分享交流!
評論