top of page

【Tech Tip】了解I2C通訊協定及其測試與除錯

I2C協定是什麼?


I2C的歷史


當將多個設備連接到微控制器 (microcontroller) 時,傳統上需要將每個設備的位址和資料線分別連接,這將佔用微控制器寶貴的引腳資源,導致PCB上出現許多線路,並需要更多元件來將所有部分連接在一起;這使得這些系統生產成本高昂,容易受到干擾和雜訊的影響。


為了解決這個問題,飛利浦 (Philips) 在1980年代開發了Inter-IC匯流排(Inter-Integrated Circuit),或稱I2C;I2C是一種用於主板上通訊的低頻寬、短距離協定,所有設備透過兩條線路連接:串行資料線(Serial Data Line, SDA)和串行時脈線(Serial Clock Line, SCL)。

I2C 雙線匯流排的布局
I2C 雙線匯流排的布局

I2C通訊協定僅使用兩組Open-Drain或開Open-Collector,即串行資料線(Serial Data Line, SDA)和串行時脈線(Serial Clock Line, SCL),設備可以將線路拉低(Low)或者釋放為高阻態(High-Impedance),但無法主動拉高(High);然後使用電阻上拉(Pull-up, 在SDA和SCL線上連接上拉電阻,以確保在沒有主動驅動時,線路上的電平為高電位,防止訊號的電平漂移);傳統上,常用的電壓為5V或3.3V;然而,近年來2.5V、1.8V和1.2V變得更加常見。


I2C作業原理


I2C是一種主從協定,主控器 (Master) 發起通訊,從屬設備則相應作出回應,通訊的事件序列如下:

  1. 主控器 (Master) 發送起始條件:此條件通知所有從屬設備在串行資料線上等待指令。

  2. 主控器 (Master) 發送目標從屬設備的位址和讀/寫旗標。

  3. 匹配位址的從屬設備以肯定確認(ACK)或否定確認(NACK)訊號作出回應。

  4. 主控器 (Master) 和從屬 (Master) 設備之間,在資料匯流排上進行通訊,根據通訊的讀寫操作,主控器和從屬設備均可接收或發送資料;發送方向向接收方發送8位元資料,接收方回覆1位元確認碼。

  5. 當通訊完成時,主控器發送停止命令,表示通訊結束。

I2C運作原理
I2C運作原理

I2C協定最多可以處理128個從屬 (Master) 設備,它是一個同步匯流排,這意味著匯流排上的所有設備都與中央時脈訊號同步,與並行匯流排相反,I2C是一個串行匯流排,因此所有資料都透過單一的資料線傳輸,而不是多條線路。


I2C的速度


I2C有五種定義的速度:標準模式 (Standard)、快速模式 (Fast Mode)、快速模式Plus (Fast Mode Plus)、高速模式 (High Speed) 和超高速模式 (Ultra-Fast Mode);最大速度如下:

1. 標準模式 (Standard) = 100 kHz

2. 快速模式 (Fast Mode) = 400 kHz

3. 快速模式Plus (Fast Mode Plus) = 1 MHz

4. 高速模式 (High Speed) = 3.4 MHz

5. 超高速模式 (Ultra-Fast Mode) = 5 MHz

I2C經常用於相機鏡頭中
I2C經常用於相機鏡頭中

I2C通訊協定的應用範圍


常見的使用I2C通訊協定的設備


一些通常使用I2C的常見設備包括:OLED顯示器、加速度計 (accelerometers)、特定的壓力/溫度感測器和EEPROM;任何需要進行相對簡單互動的地方都非常適合使用I2C;由於I2C是一種雙線匯流排,如果空間有限,使用I2C是一個不錯的選擇,因為執行命令所需的佔用空間非常小;這在考慮小型壓力感測器時尤其明顯,壓力感測器並不是非常複雜的系統,而且傳感器通常非常小,因此,I2C是一個出色的通訊協定選擇。


特定的I2C應用


作為最受歡迎的串行協定之一,I2C在各種不同的應用中被使用,從物聯網到程式記憶體裝置的編程,I2C幾乎無所不在;由於I2C只需要兩根線,因此非常適合於具有多個互連設備的電路板,這有助於降低系統中添加額外設備時的成本和複雜性;常見的應用包括:串行資料的傳輸與外設的通訊、EEPROM的編程、以及透過輪詢來檢索或接收感測器資料 (retrieving polling)。

在 Digi-Key I2C搜尋,使用I2C的設備
在 Digi-Key I2C搜尋,使用I2C的設備

使用I2C通訊協定


I2C的優勢

通常,使用I2C協定的使用者也熟悉SPI協定。I2C和SPI在性質上非常相似,但在實際使用中有所不同。這兩種協定都用於簡單的應用,它們在相互比較時都提供了優點和限制。


I2C相對於其他串行協定的一些優點包括:

  • 僅需兩條線,佔用相對較小的系統空間

  • 獨特的設備位址

  • ACK/NAK確認成功傳輸

  • 能夠添加多個主機和從機,增加功能性

  • 簡單的主從關係

  • 符合產業標準且廣泛部署

  • 能夠適應快速和慢速IC的工作

I2C的限制


I2C通訊並沒有太多的缺點。這個協定已經使用了30多年,這一事實突顯了這一點。然而,它還存在一些較小的限制。


I2C相對於其他協定的一些限制包括:

  • 由於匯流排上有許多從機和主機設備,可能存在位址衝突的可能性

  • 與更快的協定(如SPI)相比,速度較慢

  • 資料訊框限制為8位

  • 由於需要拉高電阻器,需要更多的空間

使用Mac進行嵌入式系統除錯

I2C除錯工具


在使用I2C時,擁有合適的工具組對於確保設計的實現正確性非常重要,增加示波器和邏輯分析儀在開發過程中始終是有幫助的;然而,這些選擇可能價格昂貴,有一些價格較低的工具可供選擇,其中一些是以軟體為基礎,另一些則是以硬體為基礎。


示波器是實現和設計I2C匯流排時的優秀工具,示波器可以提供對設計上對於電氣和訊號特性的廣泛洞察;然而,對於一些開發人員來說,示波器有時太昂貴,無法負擔;對於示波器這個工具來說,硬體和軟體領域都有一些很好的替代方案,可用的工具包括:主機適配器、燒錄器、協定分析儀(硬體和軟體版本)和邏輯分析儀。


每個設備的功能範圍差異很大,一些工具涵蓋廣泛的功能,而一些工具則專注於特定任務,例如:僅編程或探測 (sniffing, 監視和記錄通訊資料,以便分析和了解系統的通訊行為)。


I2C 的最新發展


在過去的二十年中,I2C在速度方面有了進一步的演進,剛開始引入時,它只有一個標準模式,最高速度為100 kHz;隨著科技趨於更小和更快,I2C被迫進行了調整,多年來,新的模式被引入,現在I2C的速度已經達到了最高5 MHz。


該協定的最新演進是一個名為I3C的新匯流排通訊協定,I3C將開發人員喜愛的I2C和SPI相結合,形成一個綜合的協定,I3C標準結合了I2C兩線匯流排的簡單性和SPI的速度優勢;I3C通訊協定的速度可達到12.5 MHz,為I2C上的超高速模式兩倍以上的速度,I3C也與大多數I2C應用具有向下相容性。


目前,I3C仍處於早期開發階段,其應用範圍不如I2C或SPI廣泛;然而,I3C開始逐漸於各類型的IC開始應用,包含目前最新的DDR5使用的SPD等中出現,並逐漸應用於未來的開發項目和實現中。

Total Phase與I2C的介接方式


Total Phase介接I2C協定的工具有多種不同類型,Total Phase提供的所有I2C工具 可以分為兩個主要類別:主機適配器和協定分析儀;主機適配器允許使用者直接連接到I2C系統,並進行I2C資料的編程;而協定分析儀則不直接與資料交互,而是監控匯流排上正在進行的通訊流量;主機適配器使使用者能夠與資料進行交互,而協定分析儀則使使用者能夠即時非侵入地監控資料。


Total Phase主機適配器


Total Phase為I2C提供了兩款主機適配器:Promira I2C/SPI/eSPI 多用協定分析平台 (以下簡稱Promira平台) 和 Aardvark I2C&SPI 封包產生器 (以下簡稱” Aardvark主機適配器”)。這兩種工具都與I2C協定進行介接,主要的區別在於速度和可擴展性方面。

Aardvark I2C&SPI 封包產生器
Aardvark I2C&SPI 封包產生器

Aardvark I2C/SPI 主機適配器能夠以最高 800 kHz 的速度充當 I2C 主機和從機,如果需要更高的速度,Promira 平台將成為更好的選擇,能夠達到最高 3.4 MHz 的訊號傳輸速度,憑藉這種速度,Promira 平台更適合與高速 I2C 設備進行介接。


Promira I2C/SPI/eSPI 多用協定分析平台
Promira I2C/SPI/eSPI 多用協定分析平台

Promira 平台還透過硬體內建整合了電平轉換器,可以透過軟體控制來改變電壓水平,而 Aardvark 適配器則受限於 3.3V(對 5V 具有容忍性),無需外部配件;Promira 平台提供多達 12 個通用輸入/輸出引腳(GPIOs),而 Aardvark 適配器最多可以啟用 6 個 GPIOs。


Promira 測試應用比較表
Promira 測試應用比較表

Promira串行平台的優勢


Promira是Total Phase迄今為止最多功能的工具,作為一個工具平台,意味著Promira平台在功能上從不受限制,如果需要更多功能,只需安裝正確的應用程式,以獲得完成手頭上任務所需的功能集,這是最靈活的開發工具;Promira平台還具有以下一些附加功能:

  • 整合了電平轉換 - 可以在不使用其他測試周邊、或外部連接線的情況下,處理從0.9V到5.0V的信號電壓範圍。

  • 遠端控制 – 透過以乙太網路進行自動化任務,將生產和初期的樣品的範圍,擴展到不僅僅透過USB介面與電腦介面。

  • 更大的目標電源 - 可以為目標設備提供高達200 mA的電源,這在許多情況下消除了對外部電源的需求。

  • 下載新的Promira串行平台應用程式 - 根據測試項目要求的變化,即時獲取並使用更多功能。



Aardvark I2C/SPI 主機適配器的優勢


Aardvark I2C/SPI Host Adapter logo
Aardvark I2C&SPI 封包產生器的產品標誌

Aardvark 適配器是Total Phase最受歡迎的開發工具,工程師們喜愛Aardvark適配器,因為它具有低成本和高性能,在與I2C進行介接時,Aardvark適配器提供了廣泛的功能包括:

  • I2C 主機模式時脈速度高達 800 kHz

  • I2C 從機模式時脈速度高達 800 kHz

  • 支援 3.3V 電壓(對 5V 具有容忍性)

  • 提供最多 6 個通用輸入/輸出(GPIO)

  • 小巧輕便的設計

Total Phase 協定分析儀


於匯流排監控應用,Total Phase 提供了協定分析儀,可提供有關特定匯流排的詳細訊息;對於 I2C,Beagle I2C/SPI 協定分析儀 是分析 I2C 資料的理想選擇,只需將 Beagle I2C/SPI 分析儀連接到一個I2C 匯流排上,即可將資料以即時串流的方式傳輸到系統中,使用者可以即時獲取和監測匯流排的資料訊息;這款匯流排分析儀的特殊之處,在於它提供了對匯流排資料的即時分析,當匯流排上進行通訊時,使用者可以立即在 Data Center 軟體中看到相應的訊息。


能夠即時監測 I2C 匯流排可為工程師提供了節省時間的優勢,與許多其他匯流排即時監測 (sniffers) 需要長時間下載的情況不同,Beagle I2C/SPI 分析儀在匯流排上進行傳輸時,可即時提供使用者所需的資訊,這提供了對系統運作方式寶貴的洞察,使工程師對如何對其系統進行除錯有更深入的了解。

Data Center 軟體
Data Center 軟體
Beagle I2C/SPI 協定分析儀的產品標誌
Beagle I2C/SPI 協定分析儀的產品標誌

Beagle I2C/SPI 協定分析儀的優勢


Beagle I2C/SPI 協定分析儀是一款非侵入式設備,在系統或設備上進行監測或分析的過程中,不會對系統的正常運作產生任何干擾或影響,可以監測高達 4 MHz 的 I2C 匯流排,多功能的 Beagle I2C/SPI 分析儀是嵌入式工程師開發以 I2C、SPI 或 MDIO 為通訊基礎的產品時的理想工具,Beagle I2C/SPI 分析儀以小巧便攜的外型,提供高性能的匯流排監測功能,非常適合產線和實驗室中的工程師使用。

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