印刷電路板(PCB)上的晶片通訊,常使用兩種協定:序列周邊介面(SPI)和內部整合電路(I2C);此外,還有I2C協定經過改良,衍伸而出的I3C協定。本文將比較I3C、I2C、SPI三種協定的特性,說明各協定適合的應用場景。
印刷電路板(PCB)上的晶片通訊,常使用兩種協定:序列周邊介面(SPI)和內部整合電路(I2C);此外,還有I2C協定經過改良,衍伸而出的I3C(Improved Inter Integrated Circuit)協定,彌補I2C單一主控器(Master)、不支援頻內中斷(IBI)等特性。
這三種協定雖然在傳輸速率和距離的表現都比不上USB、SATA等協定,但具有操作相對容易的優勢,需要的組件和程式碼少,適合在簡單嵌入式系統中使用。本文將比較I3C、I2C、SPI三種協定的特性,說明各協定適合的應用場景。
I3C、I2C、SPI比較
表1簡單對I3C、I2C、SPI三個協定進行比較。綜合表1資料,簡單來說,SPI的優點在於其高傳輸速率和靈活性;I2C注重簡化電路和功耗;I3C則結合了兩者的優點,提供更高的傳輸速率,並加上多樣化的功能。三種通訊協定具有不同特性,應該根據場合選擇最佳應用(表2)。
I3C的特性和用途
I3C基本上可視為改良版的I2C,其與I2C的比較可參考前述表格。I3C的介面類似I2C,一樣使用兩條線:SDL和SCL時脈線。I3C可向下兼容I2C匯流排協定,也就是說,I3C的Master可以架接I2C介面的從屬設備(Slave)(但是不兼容十位元的I2C擴展位址)。
I3C大部分的訊息(Message)皆由Master發起,但也允許Slave向Master提出Request,稱為START Request[1]。
I3C的應用電路類型如圖1和圖2所示。
I3C最初為行動應用所設計,隨著物聯網感測器的興起,對傳輸功耗、性能和速率的要求變得更嚴格,I3C可解決I2C的功耗問題,成為可用於任何感測器的單一介面。現在,I3C協定已成功被應用於汽車、消費品和其他智慧型手機以外的領域。在物聯網應用中,I3C因其高速資料傳輸和極低功耗的優勢,成為理想選擇,特別適合具有嚴格功耗限制的嵌入式系統(圖3)。
I3C的其中一項重要改良,是沒有I2C的時脈伸展(Clock Stretching),讓Slave回傳資料的速度加快。在單一資料速率(SDR)模式下,I3C的時脈僅由Master驅動。不過,Slave也可以在匯流排初始化過程中指示速度限制,確保工作頻率、讀寫周轉時間和其他時序參數在可運作範圍內。
多元傳輸方式與不同速度
I3C具有多種不同的資料傳輸模式,基本時脈速率最高可達12.5MHz。在SDR模式下,I3C與I2C相同,SDA由SCL時脈控制;在高資料速率(HDR)模式下,其中包括四種不同的模式,速度均高於SDR模式:
- 雙倍資料速率(HDR-DDR)模式:SDA在每個SCL邊緣轉換時(而不是每個時脈周期)被時脈控制,有效地使資料傳輸速率翻倍,而時脈速率本身並未增加。
- 三元符號純匯流排(HDR-TSP)模式(不包括在I3C基本規範中):在此模式下,SDA和SCL失去了一般的功能,資料以三元符號的形式傳送,有效資料傳輸速率大致增加了三倍。在TSP模式下,無法在I3C匯流排上使用I2C裝置。
- 三元符號傳統(HDR-TSL)模式(不包括在I3C基本規範中):類似TSP模式,但與I2C相容,並且速度增益略微降低,僅達2.5倍。
- 批量傳輸(HDR-BT)模式:類似SDR模式,但以區塊為導向(Block-oriented),使用第九個位元(在SDR模式中為奇偶校驗位元或T位元)作為資料。相對於SDR模式,HDR-BT模式可實現20%的資料傳輸速率增益,資料完整性透過CRC進行檢查。
I3C獨有的通用命令代碼(CCC)
通用命令代碼(Common Command Code, CCC)[1]是I3C帶來的新概念。Master使用CCC來初始化或開始/結束匯流排。Master使用CCC時,可以廣播給每個Slave,也可以僅針對特定Slave。
CCC的好處包括:
- 簡化操作:CCC使多個設備之間的資料傳輸更為簡便,減少複雜的通訊協定設計。
- 節省功耗:透過統一的命令集,降低了不必要的功耗。
- 提高兼容性:不同廠商的設備將更容易互相操作,增強系統的靈活性。
使用CCC時,Master首先需要發送Broadcast Address:7'h7E(W),所有Slave都必須確認此位址;接下來,Master發送CCC,將資料寫入目標Slave的CCC,繼續傳送資料直到完成。
找出PCB匯流排最佳解 I3C、I2C、SPI特性全面剖析(1)
找出PCB匯流排最佳解 I3C、I2C、SPI特性全面剖析(2)
參考資料
[1] https://www.linkedin.com/pulse/20200817-i3c基礎篇-瑞春-陳/