I3C 是一種用于嵌入式系統的新型串行通信協議,可提供比 I 2 C高得多的數據吞吐量和更多功能。借助 I3C,工程師和設計人員可以提高其設計的性能,同時還可以添加熱連接等新功能,在帶中斷 (IBI) 和高數據速率 (HDR) 模式。此外,I3C 向后兼容并且可以與傳統 I 2 C 目標進行通信。表 1總結了 I3C 和 I 2 C之間的差異。
![wKgZomYjJoGAXqEFAAKq4gOYr5s244.png](https://file1.elecfans.com/web2/M00/D1/78/wKgZomYjJoGAXqEFAAKq4gOYr5s244.png)
表 1上述數據展示了 I3C 如何提供比 I 2 C 高得多的數據吞吐量和更的功能。資料
筆記:
標稱值。不允許使用其他值。
時鐘延展可由活動控制器(而非目標)執行,但對時序和總線狀態有限制。
基本 I3C 通信不需要 HDR。即使連接了不支持的設備,I3C 總線也支持 HDR 通信。有關詳細信息,請參閱高數據速率 (HDR) 模式。
總線速度
I 2 C 和 I3C之間顯著的變化是時鐘速度。I 2 C 通常為 100 kHz、400 kHz 或 1 MHz,而 I3C 可以達到高達 12.5 MHz 的速度。這種增長的主要因素之一是在 I3C 中使用推挽輸出。I3C 根據總線狀態在漏極開路和推挽驅動器之間切換。開漏在初始尋址或仲裁期間使用,其中多個目標可能同時控制線路。相比之下,當通信是單向的時使用推拉,并且沒有其他設備同時通信的機會。
電氣特性
與 I 2 C 不同,I3C 不需要外部上拉電阻,因為總線上的主控制器提供這些功能。I 2 C 具有很寬的工作范圍,常見的是 3.3 V 和 5 V。I3C 具有三個標稱電平:1.2 V、1.8 V 和 3.3 V。但是,允許使用其他工作范圍。
設備尋址
I 2 C 支持目標設備的 7 位和 10 位尋址。使用 I3C,僅支持 7 位尋址。但是,I3C 使用動態尋址,主動控制器為每個目標分配一個地址以防止地址沖突。這與 I 2 C 形成對比,在 I 2 C 中,開發人員必須跟蹤當前使用的地址以防止兩個設備共享同一地址。目標的動態尋址發生在總線初始化期間。
帶內中斷和熱連接
在 I 2 C 中,沒有一種機制可以讓目標在不使用額外 I/O 線的情況下向控制器指示數據已準備就緒。但在 I3C 中,目標設備可以使用串行數據 (SDA) 和串行時鐘 (SCL) 線發出中斷信號,從而使其成為真正的雙線協議。同樣,這種帶內信令也用于在 I3C 中實現熱加入功能,因此設備可以在初始地址分配后加入。帶內中斷 (IBI) 和地址仲裁部分將對此進行更詳細的討論。
主動和輔助控制器
I 2 C 支持多控制器總線,其中多個設備作為控制器運行,但只有一個主動通信。但是,在 I3C 中,只有一個設備可以成為主動控制器;其他有能力的設備可能會請求成為總線上的活動控制器。這種設備稱為輔助控制器。當輔助控制器不充當主動控制器時,它充當 I3C 目標。
我2 C 支持
I3C 支持與 I 2 C 目標設備的通信。為了能夠進行通信,I 2 C 目標必須:
有一個7位地址
不延長時鐘
還強烈建議 I 2 C 目標在其輸入端包含 50-ns 濾波器。如果滿足這些要求,則 I 2 C 目標與 I3C 總線兼容。此外,一些 I3C 設備可以作為 I 2 C 目標運行,直到分配了一個動態地址。在 I 2 C 模式下,I3C 設備有一個用于通信的靜態地址。該靜態地址不一定與動態地址相同,但如果需要,可以分配相同的地址。I3C 總線的示例如下所示。
![wKgZomYjJouAdmJiAAC1kzbRhA8385.png](https://file1.elecfans.com/web2/M00/D1/78/wKgZomYjJouAdmJiAAC1kzbRhA8385.png)
圖 1該圖突出顯示了 I3C 總線。資料
I3C通信基礎
在 I3C 總線上開始任何通信之前,必須配置總線,并且必須將動態地址分配給目標。
然后,像 I 2 C 一樣開始通信。生成 START 條件,然后發送 7 位動態地址,R/nW 位后跟來自目標的 ACK 或 NACK。接下來,I3C 和 I 2 C一樣使用 9 位串行傳輸,但是第 9位的功能位已從 ACK/NACK 更改為轉換位或 T 位。T位有兩個功能;當控制器寫入目標時,T 位是發送數據字節的奇校驗位。當控制器從目標讀取時,T 位用作數據結束標志。此標志可以由控制器斷言,以表示它已完成讀取數據,或由目標來斷言,以表示它沒有更多數據可返回。為完成數據傳輸,控制器在總線上生成停止或重啟條件。請注意,如果使用 RESTART,則報頭將以推挽方式傳輸,因為沒有仲裁。
![wKgZomYjJpOAJvpcAAEkBEkIXYE264.png](https://file1.elecfans.com/web2/M00/D1/78/wKgZomYjJpOAJvpcAAEkBEkIXYE264.png)
圖 2顯示了 I3C 中數據傳輸的簡化圖,其中包含 1 個數據字節。資料
I3C 的一個重要變化是沒有時鐘延展。I 2 C 使用時鐘延展給目標設備更多的時間來處理返回數據之前。使用 I3C,時鐘僅由活動控制器驅動——在單數據速率 (SDR) 模式下。因此,時鐘延展只能由控制器在有限的情況下執行。
然而,目標設備可以在總線初始化過程中指示速度限制,以指示工作頻率、讀寫周轉時間和其他時序參數。
通用命令代碼 (CCC)
通用命令代碼 (CCC) 是 I3C 中的一個新概念。主動控制器使用 CCC 來初始化和/或配置 I3C 總線。CCC 可以廣播給每個目標,也可以私下針對特定目標。要發送 CCC,首先發送地址 7‘h7E/W。所有 I3C 設備都必須確認并偵聽此地址。I 2 C 設備無法匹配此地址,因為根據 I 2 C 規范保留 7’h7E 。接下來,發送 CCC 代碼。對于將數據寫入目標的 CCC,繼續發送數據直到完成。對于讀取值的 CCC,發送任何參數(根據需要),重新啟動總線,然后開始讀取數據。
有太多的 CCC 需要討論,但這里有一些重要的選擇:
輸入動態地址分配 (ENTDAA)
Enter Dynamic Address Assignment 通知所有目標,活動控制器正在分配動態地址。如果一個目標已經被分配了一個地址,它將 NACK 這個命令。
設置新的動態地址分配 (SETNEWDA)
Set New Dynamic Address Assignment 用于更改設備的動態地址。
啟用事件 (ENEC)/禁用事件 (DISEC)
啟用或禁用事件命令指示總線上當前是否允許熱加入或帶內中斷等事件。
重置動態地址分配 (RSTDAA)
Reset Dynamic Address 清除當前分配的地址但不重新分配地址。在 I3C 規范的 v1.1 中,重置動態地址分配的直接形式已被棄用。
設置讀取長度 (SETMRL)/獲取讀取長度 (GETMRL)
設置或獲取讀取長度指定可以讀取的字節數。
設置寫入長度 (SETMWL)/獲取寫入長度 (GETMWL)
設置或獲取寫入長度設置可以讀取或寫入的字節數。
設備特性寄存器或 DCR 是指定目標設備類型的寄存器。這方面的一個例子是代碼 0xC6,微控制器的代碼。I3C 規范定義了 DCR 值。MIPI 聯盟提供了這些代碼的列表。
獲取總線特性寄存器 (GETBCR)
總線特性寄存器或 BCR 是定義目標上存在哪些 I3C 功能的寄存器。該寄存器還用于確定目標是否需要速度限制。
目標休息動作 (RSTACT)
CCC 中的目標重置操作定義了當檢測到帶內重置模式時目標會發生什么。為產生復位,SDA 保持低電平,同時 SCL 計時 14 次,然后是重啟,然后是停止。目標檢測帶內重置模式并根據分配給它們的內容進行操作。此 CCC 不會觸發重置,但會分配目標行為。如果未按照此命令復位,則下一個啟動條件將清除分配的操作。
進入高數據速率模式 (ENTHDRx)
,還有高數據速率,或 HDR,Entry CCC。此 CCC 表示活動控制器正在進入四種 HDR 模式(0、1、2 或 3)之一。
高數據速率 (HDR) 模式
I3C 規范目前定義了四種 HDR 模式。
HDR 雙倍數據速率 (HDR-DDR) [模式 0]
HDR 三元符號純總線 (HDR-TSP) [模式 1]
HDR 三元符號傳統包含總線 (HDR-TSL) [模式 2]
HDR 批量傳輸 (HDR-BT) [模式 3]
在 HDR 中,時鐘速率不會改變數據編碼方式的變化。I3C 基本通信不需要 HDR。不支持 HDR 的設備會忽略通信,直到它們檢測到 HDR 退出模式。
硬盤驅動器
HDR-DDR 是一種使用時鐘的兩個邊沿來傳輸數據的模式。這顯著增加了總線的數據速率(但由于協議中的額外開銷而不會加倍)。
HDR-TSP 和 HDR-TSL
在 HDR-TSP 和 HDR-TSL 中,數據以三進制傳輸,三個定義的符號從 SDA 和 SCL 線創建。根據規范,符號的電氣定義如下:
只有 SCL 變化
只有 SDA 變化
SCL 和 SDA 都改變
HDR-TSP 和 TDR-TSL 之間的選擇基于是否存在I 2 C 目標。HDR-TSP 只能在存在 I3C 目標時使用,而 HDR-TSL 則在存在傳統 I 2 C 目標時使用。
高動態范圍藍牙
HDR-BT 允許同時使用多個數據通道以實現更高的并行性。為了兼容性,只有 SDA 線的有效位或 LSB 用于單數據速率 (SDR) 通信。HDR-BT 支持雙線和四線配置。圖 3顯示了一個示例配置。
![wKgZomYjJpqAVDMvAAC1yQ8icBw289.png](https://file1.elecfans.com/web2/M00/D1/78/wKgZomYjJpqAVDMvAAC1yQ8icBw289.png)
圖 3該圖提供了支持 HDR-BT 的混合 I3C 總線示例。資料
帶內中斷 (IBI) 和地址仲裁
與 I 2 C 不同,目標可以在總線空閑(或空閑)時為 IBI 生成啟動條件。如果在一定時間內沒有交易發生,就會發生這種情況。當活動控制器檢測到來自目標的啟動條件時,它提供時鐘信號以完成事務。如果兩個目標試圖同時通信,尋址仲裁就會發生。
仲裁是確定允許哪個設備與控制器通信的過程。例如,假設兩個設備 A 和 B 想同時與活動控制器通信。設備 A 的地址為 7‘h10,而設備 B 的地址為 7’h14。當帶內中斷產生時,兩個設備都會嘗試將它們的地址傳輸到活動控制器。在這種總線狀態下,數據線是漏極開路的。在開漏通信期間,線路通過上拉電阻被動返回“1”,并可以主動斷言為“0”。這可以防止同時傳輸 1 和 0 的兩個設備發生短路。
![wKgaomYjJqCAXwsyAABBuDkhc0Y232.png](https://file1.elecfans.com/web2/M00/D2/58/wKgaomYjJqCAXwsyAABBuDkhc0Y232.png)
圖 4 SDA 線的簡化視圖顯示了上拉電阻是如何內置在主控制器中的。資料
仲裁中的獲勝地址是控制器收到的地址。跟隨圖5,首先,從每個設備地址發送兩個零。接下來,兩者都將釋放其地址中“1”的數據線。然后,另一個 0 將由雙方傳輸。此時,兩個設備都沒有贏得仲裁,因為此時接收到的地址與兩者匹配。但是,對于下一位,其中一個目標將釋放數據線以發送“1”,而另一個目標將嘗試發送“0”。
![wKgZomYjJqaAMOtzAAFQ4pOUur4897.png](https://file1.elecfans.com/web2/M00/D1/78/wKgZomYjJqaAMOtzAAFQ4pOUur4897.png)
圖 5該示例顯示地址為 7‘h10 和 7’h14 的 I3C 仲裁。資料
“1”的發送器將失去仲裁,因為“1”由開漏配置被動驅動,而另一個目標主動斷言“0”。完成剩余的傳輸序列后,您可以看到控制器接收到地址 7‘h10,而不是 7’h14。因此,設備 B 仲裁失敗并停止通信。在 I3C 仲裁中,高地址設備總是輸給低地址設備。
I3C:一系列新功能
I3C 帶來了串行總線帶寬的顯著增加,以及一系列新功能。本文觸及了總線的特性和功能,但它并不是可能的特性和命令的詳盡列表。MIPI 聯盟提供了有關I3C 規范的更多詳細信息。
評論