印刷電路板(PCB)上的晶片通訊,常使用兩種協定:序列周邊介面(SPI)和內部整合電路(I2C);此外,還有I2C協定經過改良,衍伸而出的I3C協定。本文將比較I3C、I2C、SPI三種協定的特性,說明各協定適合的應用場景。
I2C的特性和用途
(承前文)I2C是一種使用於主機板、嵌入式系統等的串列通訊匯流排。I2C使用兩條線(SDA資料線、SCL時脈線)進行通訊(不包括電源線和地線),節省PCB空間和引腳數量。I2C的典型應用電路類型如圖4所示。
I2C的參考設計使用一個七位元長度的位址空間,但保留了16個位址,在一組匯流排最多可和112個節點進行通訊。如此一來便可支援多個Master/Slave架構,靈活、兼容性高且成本低,適合各種嵌入式應用。
I2C支援同一匯流排上具有多個Master的情況,如果有兩個Master同時發出訊號,其中一方會在稱為「仲裁」的過程中退出,等另一個Master傳輸完畢再發出訊號。
理論上,任意數量的Master/Slave可以連接至同一個匯流排。SDA和SCL線都是Open-drain輸出。Master/Slave需要將每條線電位拉低,並利用電阻將電位上拉。I2C允許相對大的工作電壓範圍,但典型的電壓準位為+3.3V或+5V。
通訊傳輸時,Master將發出START命令,這時SDA電位被拉低,而SCL線仍為高電位。接著,Master在匯流排上發出預期接收者的七位元位址,後面跟著寫入位元(0)或讀取位元(1)。如果匯流排上的裝置具有該特定位址,它將透過拉低SDA線(ACK位元)來回應。
Master或Slave可以一次以一個位元組的資料包的形式發送資料,每個位元組都應該由接收方使用ACK位元進行確認。一旦通訊完成,Master將在SCL為高電位時釋放SDA線,以發出停止條件(圖5)。
I2C最初的資料速率限制為100kbps(標準模式)。1992年,飛利浦將速度上限提高至400kbps(快速模式)。六年後增加了特殊的3.4Mbps模式(高速模式),必須在Master和Slave之間以較低的速度發出一組特殊的命令,以建立高速連接。
雖然理論上I2C匯流排可連接的設備數量不受限制,但七位元位址實際上仍限制了可連結的設備數量。由於某些位址已被保留,同一匯流排上只能存在112個不同的設備。如有必要,可以啟用特殊的十位元尋址模式以連結更多裝置。
I2C使用時脈伸展來控制流量,Slave可以將SCL時脈線保持在低電位,以告訴Master降低傳輸速率。該技術允許Slave在回應之前,有一些時間來處理資料。
由於I2C所需的引腳數較少,許多感測器製造商在其晶片中使用此協定,例如溫度感測器、加速度計、類比數位轉換器等,都可以用I2C來實現。
SPI的特性和用途
SPI使用四條主動訊號線(不包括電源線和接地線)在零件之間進行通訊,四條線分別為:
- SCLK:串列時脈(Master控制)
- MOSI:Master輸出Slave輸入(Master控制)
- MISO:Master輸入Slave輸出(Slave控制)
- SS:Slave選擇(Master控制)
透過這四條線,Master可以與另一個Slave進行通訊。SPI的典型應用電路類型如圖6所示。
Master可以在MOSI線上發送資料,同時對MISO線進行取樣,因此,資料可以在Master和Slave之間同時發送(全雙工)。
每新增的一個Slave,就必須新增一條SS線。例如圖7範例中,共三個Slave,因此需要SS1、SS2、SS3;一次只能有一個Slave與Master進行通訊。
SPI有四種不同的模式可以設置,將決定時脈的運作方式,同時Master和Slave必須使用相同的模式進行通訊。四種模式分別為:
- 模式0:在時脈上升沿取樣資料,時脈空閒為低電位
- 模式1:在時脈下降沿取樣資料,時脈空閒為低電位
- 模式2:在時脈下降沿取樣資料,時脈空閒為高電位
- 模式3:在時脈上升沿取樣資料,時脈空閒為高電位
另外,SPI並未指定任何特定的電壓位準、最大速率或位址,可由使用者自行決定。SPI對於傳輸大量資料非常有用,常用於需要快速更新速率的感測器,例如加速計、顯示裝置、LCD和快閃記憶體裝置。
I3C、I2C、SPI於不同應用發揮所長
總結來說,這三種協定各有其適用場景:I3C具備高效能和低功耗特性,特別適合物聯網裝置和智慧型手機等應用;I2C具有簡單、低功耗和成熟技術帶來的低成本等優勢,適合溫度感測器、即時時鐘和顯示器等低速率應用,或重視成本考量的設計;SPI則因其高傳輸速率和全雙工通訊,廣泛應用於顯示模組、儲存設備等具有高速資料傳輸需求的應用。
I2C、I2C和SPI彼此之間並無高低之分,重點在於選擇合適的協定,根據需求和研發設計時的操作能力範疇,綜合考量最佳使用方式。其中,I3C作為最新協定,也持續透過插拔大會(Plugfest)為業界人士提供設計、研發交流以及驗證自家產品穩定性的機會,例如MIPI聯盟(MIPI Alliance)2024年9/9~9/10於台北舉行的第67屆MIPI Alliance Member Meeting聯盟成員大會中,便針對I3C相關協定(MIPI I3C/I3C Basic和MIPI Debug Over I3C)舉辦互通性插拔大會。由翔宇科技代理的美國原廠Binho也參與此次I3C Plugfest,並提供高性價比的I3C、I2C、SPI量測解決方案,協助業者進行產品驗證。
(本文作者任職於翔宇科技)
(針對I3C技術,如欲瞭解更多,請參考MIPI I3C和I3C Basic介紹白皮書)
找出PCB匯流排最佳解 I3C、I2C、SPI特性全面剖析(1)
找出PCB匯流排最佳解 I3C、I2C、SPI特性全面剖析(2)