top of page

【媒體合作】比較 I3C、I2C、SPI 協定:特性、操作方式及適用場景

感謝《新通訊》媒體平台邀稿:


前言


PCB 印刷電路板上的晶片通訊,常使用兩種協定:SPI(串行週邊介面)和 I2C(內部積體電路);此外,還有 I2C 協定經過改良,衍伸出 I3C 協定,彌補 I2C 單一主機、不支援 IBI 等特性。


這三種協定雖然傳輸速率、距離都不比 USBSATA 等表現,但優勢是相對操作容易,需要的組件和程式碼少,適合在簡單嵌入式系統中使用。本篇文章,將討論 I3C、I2C、SPI 三種協定的特性比較,以及各自適合的應用場景。



快速比較:I3C、I2C、SPI 協定


I3C

I2C

SPI

傳輸速率

最高達 33.4 Mbps

標準模式: 100 kbps

快速模式: 400 kbps

高速模式: 3.4 Mbps

超高速模式: 5 Mbps

最高達 100 Mbps

線數

2 線:SDA、SCL

2 線:SDA、SCL

4 線:MISO、MOSI、SCLK、SS

功耗

帶內中斷IBI

支援

不支援

不支援

結束數據讀取方式

Master 發出 STOP 信號

Master 發出 STOP 信號

透過 Slave Select 

(SS)

熱插拔

支援

支援,但需要特定硬體

不支援

故障檢測

有先進的故障檢測功能

基本的應答檢測

不支援

內置集成命令

有更複雜的內置命令集

基本命令

Master/Slave

多 Master

多 Slave

單 Master

多 Slave

多 Master

多 Slave

從機地址

48 位唯一標識符

7 位或 10 位地址

無限制

流量控制

先進的流量控制功能

由主控器控制

由硬體控制



I3C、I2C、SPI 的優勢和劣勢


綜合以上,簡單來說:SPI 優點在於其高傳輸速率和靈活性,I2C 注重簡化電路和功耗;I3C 則結合了兩者的優點,提供更高的傳輸速率、加上多樣化的功能。三種通訊協定特性不同,應該根據場合,選擇最佳應用:


I3C

I2C

SPI

優點

結合 I2C 的簡單性和 SPI 的高效性,傳輸速率更高。


支援 IBI 和先進的流量控制。


向後兼容 I2C 設備,支援熱插拔和更高的功率效率。

雙線通訊,節省 PCB 空間和引腳數量。


1 Master、多 Slave 架構,低功耗。

高傳輸速率,全雙工通訊,不需地址編碼。


多 Master、多 Slave 支援。


缺點

複雜性增加,市場普及度低,但逐漸增加中。

傳輸速率有限,半雙工通訊。


若 Slaves 使用同樣地址可能發生衝突。

線數較多,無標準化規範。


缺少流量控制和錯誤檢測標準。

應用場景

適合需要高性能和多功能的應用。如高功能傳感器網絡、智慧型手機和其他需要高效能和低功耗的設備。

溫度感測器、即時時鐘(RTC)、EEPROM、LCD 顯示器 和其他需要低速率和簡單連接的應用。

廣泛應用於傳感器數據收集、高速 ADC/DAC、顯示模組、記憶體卡和其他需要高頻寬和低延遲的設備。



I3C 特性和用途


I3C(Improved Inter Integrated Circuit)基本上可視為改良版本的 I2C,其與 I2C 的差異比較,可參考本文前述的表格。


I3C 的介面使用類似 I2C,一樣使用 2 條線:SDLSCL 時脈線。I3C 可向下兼容 I2C 匯流排協定,也就是說:I3C 的 Master 可以架接 I2C 接口的 Slave(但是不兼容 10 bit 的 I2C 擴展位址)。


I3C 大部份的 Message 都是由 Master 所發動的,但也允許 Slave 對Master 的提出 Request,稱之為 START Request。


I3C 的應用電路類型如下圖所示:

 I3C 的典型應用電路類型
I3C 的典型應用電路類型
I3C 兼容連接 I2C
I3C 兼容連接 I2C

I3C 最初是為行動應用設計的,隨著物聯網感測器的興起,對傳輸功耗、性能和速率的要求變得更嚴格,I3C 被設計出來解決 I2C 的功耗問題;成為可用於任何感測器的單一介面。現在的 I3C 協定,已成功被應用於汽車、消費品和其他智慧手機以外的領域。在物聯網應用中,I3C 因其高速資料傳輸和極低功耗的優勢,成為理想選擇,特別適合有嚴格功耗限制的嵌入式系統。


I3C 的一個重要改良,是沒有 I2C 的時脈展延,讓 Slave 回傳資料的速度加快;在單一資料速率(SDR)模式下,I3C 的時脈僅由 Master 驅動。不過,Slaves 也可以在匯流排初始化過程中指示速度限制,確保工作頻率、讀寫週轉時間和其他時序參數在可運作範圍內。


典型的 I3C 物聯網裝置架構
典型的 I3C 物聯網裝置架構

I3C 的改良優勢:多元傳輸方式與不同速度


I3C 有多種不同的 資料傳輸模式,基本時脈速率最高可達 12.5 MHz:


  • 標準資料傳輸率(SDR)模式:

與 I2C 相同,SDA 由 SCL 時脈控制


  • 高資料傳輸率(HDR);這其中又有四種不同的模式,速度均快於 SDR 模式:


  1. 雙倍數據率(HDR-DDR)模式 SDA在每個SCL邊緣轉換時(而不是每個時脈周期)被時脈控制,有效地使資料傳輸速率翻倍,而時脈速率本身並未增加。

  2. 三元符號純匯流排(HDR-TSP)模式(不包括在 I3C 基本規範中): 在此模式下,SDA 和 SCL 失去了一般的功能,資料以三元符號的形式傳送,有效資料傳輸速率大致增加了三倍,但是,在 TSP 模式下,無法在 I3C 匯流排上使用 I2C 裝置。

  3. 三元符號傳統(HDR-TSL)模式(不包括在 I3C 基本規範中): 類似於 TSP 模式,但與 I2C 相容,並且僅具有 2.5 倍的速度增益(略有降低)。

  4. 批量傳輸(HDR-BT)模式 類似於 SDR 模式,但以區塊為導向(block-oriented),使用第 9 個位元(在 SDR 模式中為奇偶校驗位元或 T 位元)作為資料,相對於 SDR 模式,可實現20%的資料傳輸速率增益,資料完整性透過 CRC 進行檢查。



I3C 獨有的通用指令代碼(CCC)


通用指令代碼(Common Command Code, CCC)是 I3C 中的一個新概念。Master 使用 CCC 來初始化、或開始/結束匯流排。Master 使用 CCC 時,可以廣播給每個 Slave,也可以針對特定一個 Slave。


CCC 的好處在於:


  • 簡化操作:CCC 使多個設備之間的數據傳輸更為簡便,減少複雜的通訊協定設計。

  • 節省功耗:通過統一的指令集,降低了不必要的功耗。

  • 提高兼容性:不同廠商的設備能更容易互相操作,增強系統的靈活性。


使用 CCC,首先 Master 要發送 Broadcast Address:7'h7E(W),所有 Slaves 都必須確認此位址;接下來,Master 發送 CCC,將資料寫入目標 Slave 的 CCC,繼續傳送資料直到完成。



I2C 特性和用途


I2C(Inter-Integrated Circuit 內部整合電路),是一種使用於主機板、嵌入式系統等的串列通訊匯流排;使用 2 條線:SDA 資料線、SCL 時脈線進行通訊(不包括電源線和地線)節省 PCB 空間和引腳數量


I2C 的參考設計使用一個 7 位元長度的位址空間,但保留了 16 個位址,所以在一組匯流排最多可和 112 個節點通訊;如此一來能支援多個 Master/Slave 架構,靈活、兼容性高、且成本低,適合各種嵌入式應用。


I2C 的典型應用電路類型
I2C 的典型應用電路類型

由於 I2C 支援同一匯流排上的有多個 Master,如果有兩個 Master 同時發出信號,其中一方會在稱為「仲裁」的過程中退出,等另一個 Master 傳輸完畢在發出訊號。


理論上,任意數量的 Master/Slave 可以連接到同一個匯流排。 SDA 和 SCL 線都是 Open-drain 輸出。Master/Slave 需將每條線電位拉低,並利用電阻將電位上拉。I2C 允許相對大的工作電壓範圍, 但典型的電壓準位為 +3.3V 或 +5V


通訊傳輸時,Master 將發出 START 指令,這時 SDA 電位被拉低,而 SCL 線仍為高電位。然後,主機在匯流排上發出預期接收者的 7 位元位址,後面跟著寫入位元 (0) 或讀取位元 (1)。如果匯流排上的裝置具有該特定位址,它將透過拉低 SDA 線(ACK 位元)來回應。


然後,主設備或週邊設備可以一次以 1 個位元組的資料包的形式發送資料;每個位元組都應由接收方使用 ACK 位元進行確認。一旦通訊完成,主機將在 SCL 為高電位時釋放 SDA 線,以發出停止條件。



數據速率最初限制為 100 kbps(標準模式)。 1992 年,飛利浦將速度上限提高到 400 kbps(快速模式)。 6年後增加了特殊的3.4Mbps模式(高速模式)。必須在主設備和周邊裝置之間以較低的速度發出一組特殊的命令,以建立高速連接。


雖然任意數量的設備可以實際連接到 I2C 匯流排,但 7 位元位址限制了設備的實際數量。某些位址被保留,因此在同一匯流排上只能存在 112 個不同的設備。如有必要,可以啟用特殊的 10 位元尋址模式以允許更多裝置。


I2C 使用「時脈展延」來控制流量,週邊設備可以將 SCL 時脈線保持在低電平,這告訴主設備降低傳輸速率。該技術允許外設在回應之前有一些時間來處理資料。


由於 I2C 所需的引腳數較少,許多感測器製造商在其晶片中使用此協定。例如,溫度感測器、加速度計、類比數位轉換器等都可以用 I2C 來實現。



SPI 特性和用途


SPI 使用 4 條主動訊號線(不包括電源線和接地線)在零件之間進行通訊,4 條線分別是:


  • SCLK:串列時脈(Master 控制)

  • MOSI:主機輸出從機輸入(Master 控制)

  • MISO:Master In Slave Out(Slave 控制)

  • SS:從機選擇(Master 控制)


透過這 4 條線,主機(Master)可以與另一個從機(Slave)進行通訊。:

SPI 的典型應用電路類型
SPI 的典型應用電路類型

Master 可以在 MOSI 線上發送數據,同時對 MISO 線進行取樣,因此,資料可以在 Master 和 Slave 之間同時發送(全雙工)


每新增的一個 Slave,就必須新增一條 SS 線。例如下圖範例中,共 3 個 Slave,因此需要 SS1、SS2、SS3;一次只能有一個 Slave 與 Master 通訊


SPI 多加 Slave 的電路型態
SPI 多加 Slave 的電路型態

SPI 有 4 種不同的模式可以設置,這將決定時脈的運作方式:


  • 模式 0:在時脈上升沿取樣數據,時脈空閒為低電平

  • 模式 1:在時脈下降沿取樣數據,時脈空閒為低電平

  • 模式 2:在時脈下降沿取樣數據,時脈空閒為高電平

  • 模式 3:在時脈上升沿取樣數據,時脈空閒為高電平

※Master 和 Slave 必須使用相同的模式通訊


另外,SPI 沒有指定任何特定的電壓位準、最大速率或地址,由使用者決定。SPI 對於傳輸大量資料非常有用。 SPI 通常用於需要快速更新速率的感測器,例如加速計、顯示裝置、LCD 和快閃記憶體裝置。



結論


總結來說,這三種協定各有其適用場景;I3C 的高效能低功耗,特別適合物聯網裝置和智慧型手機等應用。I2C 由於其簡單性、低功耗和成熟技術帶來的低成本,適合溫度感測器、即時時鐘和顯示器等低速率應用或有成本考量的設計。SPI 則因其高傳輸速率和全雙工通訊,廣泛應用於顯示模組、存儲設備等高速數據需求的場景。


I3C、I2C 和 SPI 彼此之間並無高低之分,重點在於選擇合適的協定,根據需求和研發設計時的操作能力範疇,綜合考量最佳使用的方式。




本文由《翔宇科技》提供,感謝《新通訊》媒體平台邀稿


《翔宇科技 EagleTek》將於〈10月30日台北〉、〈10月31日新竹〉舉辦科技產業知識講座,歡迎追蹤翔宇官網的活動公告,免費報名參加!



延伸閱讀:





參考資料:








歡迎 訂閱翔宇科技主題式電子報 >,您將可同步掌握最新的產業新訊以及技術文章。
bottom of page