1. 程式人生 > 其它 >徹底搞懂IIC匯流排(5)I2C匯流排傳輸速度詳解

徹底搞懂IIC匯流排(5)I2C匯流排傳輸速度詳解

 

本文由德力威爾王術平原創,轉載、引用請註明出處,否則侵權。

 

摘要

本文件詳細闡述了I2C在快速模式、快速增強模式、高速模式、超快模式傳輸時的速度以及各種速度混合時的傳輸規則。

 

五. I2C匯流排速度

最初,I2C匯流排的執行速度被限制在100 Kbit /s。隨著時間的推移,對該規範進行了多次補充,現在有五種執行速度模式,如下圖1-54所示:

  

速度模式

最高位元率( bit/s)

備註

標準模式(Sm)

100K

雙向傳輸,

高速模式相容低速模式

快速模式(Fm)

400K

快速模式增強(Fm+)

1M

高速模式(HSm)

3.4M

超快速模式(UFm)

5M

單向傳輸,不相容其他模式


圖1-54  I2C匯流排執行速度表

 

5.1 快速模式

快速模式裝置可以以高達400 Kbit/s的速度接收和傳送。他們可以延長SCL訊號的低週期(時鐘拉伸),減緩傳輸,便於與更高速率器件通訊。SDA和SCL線路的協議、格式、邏輯電平和最大容性負載與標準模式I2C匯流排規範相同。快速模式器件向下相容標準模式,可以在0~100Kbit/s的I2C匯流排系統中與標準模式裝置通訊。

與標準模式相比,快速模式I2C匯流排規範具有以下附加特性:

①最大位元率增加到400 Kbit/s。

②序列資料(SDA)和序列時鐘(SCL)訊號的時序已經調整。不需要與CBUS等其他匯流排系統相容,因為它們不能以更高的位元率工作。

③快速模式器件的輸入在SDA和SCL輸入端集成了尖峰抑制和施密特觸發器。

④快速模式器件的輸出緩衝器集成了SDA和SCL訊號下降沿的斜率控制。

⑤如果快速模式器件的電源關閉,SDA和SCL I/O引腳必須懸空(OC/OD輸出),以免妨礙匯流排。

⑥連線到匯流排的外部上拉器件必須適應快速模式I2C匯流排較短的最大允許上升時間。對於高達200 pF的匯流排負載,每條匯流排的上拉器件可以是一個電阻;對於200 pF至400 pF的匯流排負載,上拉器件可以是電流源(最大3 mA)或開關電阻電路。

 

5.2 快速模式增強版

快速模式增強(Fm+)裝置提高了I2C匯流排傳輸速度和匯流排總容量。Fm+器件可以以高達1 Mbit/s的位元率傳輸資訊,但它們仍然完全向下相容快速或標準模式器件,以便在混合速度匯流排系統中進行雙向通訊。與快速或標準模式系統保持相同的序列匯流排協議和資料格式。與快速或標準模式器件相比,Fm+器件還提供更高的驅動電流,無需使用匯流排緩衝器即可驅動更長和/或負載更重的匯流排。

快速模式增強器件中的驅動器足夠強大,能夠在與標準模式器件相同的400 pF負載下滿足快速模式增強時序規格。為了向後相容標準模式,它們還允許標準模式器件的1 μs上升時間。在只存在快速模式增強器件的應用中,高驅動強度和緩慢上升和下降時間容差允許使用更大的匯流排電容,只要設定快速模式增強器件的最小低電平時間和最小高電平時間即可。

全部滿足下降時間和上升時間不超過標準模式的300 nsTf和1 μs Tr規格要求。匯流排速度可以與負載電容進行權衡,以將最大負載電容提高約10倍。

 

5.3 高速模式

高速模式HSm(Hs-mode)裝置提供了I2C匯流排傳輸速度的巨大飛躍。Hs模式器件可以以最高3.4 Mbit/s的位元率傳輸資訊,但對於混合速度匯流排系統中的雙向通訊,它們仍然完全向下相容快速模式增強版、快速模式及標準模式器件。除了在HSm傳輸期間不執行仲裁和時鐘同步之外,與快速模式和標準模式系統保持相同的序列匯流排協議和資料格式。

 

5.3.1  高速傳輸

為了實現高達3.4 Mbit/s的位傳輸速率,對常規I2C匯流排規範進行了以下改進:

①HSm主機裝置具有一個用於SDAH訊號的開漏輸出緩衝器,並在SCLH輸出端集成了開漏下拉和電流源上拉電路。這個電流源電路縮短了SCLH訊號的上升時間。任何時候只有一個主機的電流源被使能,並且僅在HSm下。

②在多主機系統中,HSm傳輸期間不執行仲裁或時鐘同步,從而提高了位處理能力。

③HSm主機器件產生一個高低比為1:2的序列時鐘訊號。這減輕了對建立和保持時間的時序要求。

④作為一個選項,HSm主機器件可以有一個內建的橋樑。在高速模式傳輸期間,高速模式器件的高速資料(SDAH)和高速序列時鐘(SCLH)線通過該橋與F/S模式的SDA和SCL線分開。這降低了SDAH和SCLH線的容性負載,從而加快了上升和下降時間。

⑤高速模式從機裝置、快速模式從機裝置以及標準模式從機裝置之間的唯一區別是它們執行的速度。高速模式從機在SCLH和SDAH輸出端具有開漏輸出緩衝器。SCLH引腳上的可選下拉電晶體可用於延長SCLH訊號的低電平(時鐘拉伸),時鐘拉伸僅允許在高速模式傳輸的應答位之後進行。

⑥高速模式器件的輸入在SDAH和SCLH輸入端集成了尖峰抑制和施密特觸發器。

⑦高速模式器件的輸出緩衝器集成了SDAH和SCLH訊號下降沿的斜率控制。

 

 

圖1-55  高速模式的I2C匯流排配置結構

 

圖1-55 顯示了只有高速模式裝置的系統中的物理I2C匯流排配置。控制器器件上的SDA和SCL引腳僅在混合速度匯流排系統中使用,在純高速模式系統中不連線。在這種情況下,這些引腳可以用於其他功能。

可選串聯電阻rs保護I2C匯流排裝置的I/O口免受匯流排線路上高壓尖峰的影響,並最大限度地減少振鈴和干擾。

當匯流排空閒時,上拉電阻Rp將SDAH和SCLH線保持在高電平,並確保訊號在所需的上升時間內從低電平上拉至高電平。對於較高容性匯流排負載(> 100 pF),可以用外部電流源上拉電阻代替電阻Rp,以滿足上升時間要求。除非有應答位,否則HSm傳輸中SCLH時鐘脈衝的上升時間會被主機裝置的內部電流源上拉電路MCS縮短。

5.3.2  高速模式下的序列資料格式

 

圖1-56  高速模式資料傳輸格式

 

圖1-56詳細地展示高速模式I2C匯流排序列資料傳輸格式。

高速模式下的序列資料傳輸格式符合標準模式I2C匯流排規範。啟用高速模式只能按下列順序操作(開始以Fm和Sm模式工作):①開始條件;②8位高速模式主機程式碼(0000 1XXX)(特殊保留地址);③不應答(NACK)。

8位高速模式主機程式碼有兩個主要功能:①它允許以Fm/Sm速度在競爭的主機之間進行仲裁和同步,從而產生一個獲勝的主機;②它表示HSm傳輸的開始。

高速模式主機程式碼是保留的8位特殊程式碼,不是用來從機定址或其他目的。此外,由於每個高速模式的主機都有自己獨特的主機程式碼,一個I2C匯流排系統上最多可以有八個高速模式主機(其中主機程式碼0000 1000保留用於測試和診斷目的)。高速模式主機器件的主機程式碼是軟體可程式設計的,由系統設計人員靈活設定。

仲裁和時鐘同步只發生在快速模式或標準模式下,高速模式下不允許仲裁和時鐘同步。仲裁和時鐘同步僅在主機程式碼和不應答位(NACK)傳輸期間發生,之後一個獲勝的主機保持控制權。主機程式碼向其它從機指示高速模式傳輸即將開始,所連線的從機必須符合高速模式規範。由於不允許任何器件應答主機程式碼,主機程式碼後會跟隨一個不應答(NACK)。

在不應答位(NACK)之後,SCLH線被上拉至高電平,獲取控制權的主機切換到高速模式並使能用於SCLH訊號的電流源上拉電路。在不應答(NACK)之後,重啟(Sr)之前,其他裝置可以通過延長SCLH訊號的低電平週期(時鐘拉伸)來延遲序列傳輸。所以主機要等到所有裝置都已經釋放SCLH線並且SCLH訊號已經達到高電平時,才啟用其電流源上拉電路,從而加速SCLH訊號的上升時間。然後,主機發送重複起始條件(Sr ),後跟7位從機地址(或10位目標地址)和R/W位地址,並接收所選從機的應答位(ACK)。

在每個應答位(ACK)或不應答位(NACK)後,主機要禁用自己的電流源上拉電路,這使得其他從機能夠通過延長SCLH訊號的低電平週期來延遲序列傳輸(時鐘拉伸)。當所有器件都已釋放且SCLH訊號達到高電平時,主機再次重新啟用自己的電流源上拉電路,從而加速SCLH訊號上升時間。

在下一次重啟 (Sr)後,資料傳輸繼續在高速模式下進行,只有在停止條件(P)後才切換回Fm/Sm模式。

圖1-56A是一個完整的高速模式I2C匯流排傳輸示例。


 

圖1-56A  高速模式I2C匯流排傳輸示例。

 

5.3.3  快速(標準)模式與高速模式的切換

復位和初始化後,高速模式裝置必須處於快速模式(相容標準模式)。每個高速模式器件可以在快速模式和高速模式之間來回切換,並由I2C總線上的序列傳輸控制。

如圖1-56所示,在時間t1之前,每個連線的裝置都以快速模式執行。在時間t1和tH之間(這個時間間隔可以被任何裝置延長),每個連線的裝置必須識別“00001XXX”主機編碼,並且必須將其內部電路從快速模式設定切換到高速模式設定。在時間t1和tH之間,連線的主機和從機裝置通過以下動作執行這種速度模式的切換。

仲裁成功的主機:

①根據高速模式下的尖峰抑制要求,調整其SDAH和SCLH輸入濾波器。

②根據高速模式要求調整建立和保持時間。

③根據高速模式要求調整其SDAH和SCLH輸出級的斜率控制。

④切換到高速模式位元率,這在時間tH之後是需要的。

⑤在時間tH使能其SCLH輸出級的電流源上拉電路。

仲裁失敗的主機:

①根據高速模式下的尖峰抑制要求,調整其SDAH和SCLH輸入濾波器。

②等待停止條件,以檢測匯流排何時再次空閒,以便發起下次仲裁。

所有的從機:

①根據高速模式下的尖峰抑制要求,調整其SDAH和SCLH輸入濾波器。

②根據高速模式要求調整建立和保持時間。這一要求可能已經通過輸入濾波器的適配得到滿足。

③如有必要,調整其SDAH輸出級的斜率控制。對於從機器件,斜率控制僅適用於SDAH輸出級,根據電路容差,無需切換其內部電路即可滿足快速模式和高速模式要求。

如圖1-56所示,在時間tFS,每個連線的裝置必須識別停止條件(P ),並將其內部電路從高速模式設定切換回快速模式設定(回到t1之前的狀態)。

 

5.3.4  高速模式裝置使用於低速模式

HSm模式裝置完全向下相容,可以連線到Fm/Sm模式I2C匯流排系統(參見圖1-57)。由於在這種配置中不傳輸主機程式碼,所有HSm模式主機器件都工作在Fm/Sm模式,並在內部電流源禁用的情況下以Fm/Sm模式速度通訊。SDAH和SCLH引腳用於連線到Fm/Sm模式匯流排系統,允許高速模式主機器件上的SDA和SCL引腳(如果有)用於其它功能。

 

圖1-57  高速模式裝置使用於低速模式

 

5.3.5  標準、快速、高速模式混合速度模式

如果系統具有高速模式、快速模式和標準模式裝置的組合,通過使用互連橋,就允許不同裝置之間有不同的傳輸速率(參見圖1-58)。

 

圖1-58  混合速度模式的I2C匯流排系統

 

在高速模式控制器裝置中集成了一個橋接器,該橋接器具有電平轉換功能,根據傳輸需要自動在高速模式訊號電平與Fm/Sm模式訊號電平之間相互轉換(如圖1-59所示)。TR1、TR2和TR3是N溝道電晶體。TR1和TR2具有傳輸門功能。如在兩個方向上傳輸低電平, TR1或TR2就導通;如果兩個方向傳輸高電平,TR1或TR2就截止,高電平為各自的上拉電源。注意,這裡的VDD2≥VDD1才行。

 

圖1-59  高速裝置內部電平轉換電路

 

在F/S模式速度期間,其中的一個高速模式主機的橋將SDAH和SCLH線連線到相應的SDA和SCL線,從而允許高速模式裝置以較慢的速度與F/S模式裝置通訊。在所有相連器件之間的全F/S模式傳輸期間,可以進行仲裁和同步。然而,在HS模式傳輸過程中,橋接器關閉,隔離高速和快速之間的匯流排,並允許HS模式器件以3.4 Mbit/s的速率相互通訊。HS模式器件和F/S模式器件之間的仲裁僅在高速主機程式碼(0000 1XXX)期間執行,其仲裁過程如下:一個高速模式主機發送主機程式碼(0000 1XXX),贏得匯流排仲裁,就關閉橋接器,以HS模式傳輸,如果高速模式主機失去仲裁,就開啟橋接器,傳輸以F/S模式進行。

 

在各種速度模式

之間通訊

序列匯流排系統速度模式配置

高速+快速+標準

高速+快速

高速+標準

快速+標準

高速 ↔ 高速

0-3.4 Mbit/s

0-3.4 Mbit/s

0-3.4 Mbit/s

-

高速 ↔ 快速

0-100 Kbit/s

0-400 Kbit/s

-

-

高速 ↔ 標準

0-100 Kbit/s

-

0-100 Kbit/s

-

快速 ↔ 標準

0-100 Kbit/s

-

-

0-100 Kbit/s

快速 ↔ 快速

0-100 Kbit/s

0-400 Kbit/s

-

0-100 Kbit/s

標準 ↔ 標準

0-100 Kbit/s

-

0-100 Kbit/s

0-100 Kbit/s

圖1-60  混合模式中的傳輸速率

圖1-60 給出了這種系統中可能的通訊速度。 例如以3.4 Mbit/s的速率工作時,高速器件與Fm和Sm器件隔離即可。匯流排速度始終受限於連線到匯流排的最慢器件的最大通訊速率。

 

5.3.6  標準、快速、快速增強模式混合速度傳輸

如圖1-58中所示的,各種速度模式的裝置通過橋接器互連連線到匯流排,形成一個序列匯流排系統。不傳送高速主機程式碼(0000 1XXX ),高速主機內部電流源上拉電路保持禁用,所有輸出級均為開漏。所有裝置,包括高速模式裝置,都根據Fm+/Fm/Sm模式I2C匯流排規範的協議、格式和速度相互通訊。

 

5.3.7  混合速度匯流排系統中的高速模式傳輸

圖1-61 顯示了完整的高速模式傳輸的時序圖,該傳輸由起始條件、主機程式碼和不應答NACK(以F/S模式速度)呼叫。儘管該時序圖分為兩部分,但應將其視為一個時序圖,其中時間點tH是兩部分的分界點。

主機程式碼由高速裝置內部的橋接器識別(參見圖1-58)。橋接器執行以下操作:

①在t1和tH之間(參見圖1-61),電晶體TR1斷開以分離SDAH線和SDA線,之後電晶體TR3閉合以將SDA線下拉到VSS。

②當SCLH和SCL都變為高電平時(參加圖1-61),電晶體TR2開啟,將SCLH線和SCL線分開。在重啟(Sr)後的SCLH變低之前TR2必須保持斷開。

高速模式傳輸在tH之後以重複起始條件(Sr)開始。在高速模式傳輸期間,SCL線處於高電平,SDA線處於低電平,因此為停止條件(P)的傳輸做好準備。

在每個應答位(ACK)或不應答位(NACK)之後,仲裁獲勝的主機禁用其電流源上拉電路。這使得其他裝置能夠通過延長SCLH訊號的低電平週期來延遲序列傳輸。當所有器件都釋放SCLH,並且SCLH訊號達到高電平時,主機再次開啟其電流源上拉電路,從而加速SCLH訊號上升時間。在非正常情況下,F/S模式裝置可以通過下拉SCL線至少1 μs來隨時關閉網橋(TR1和TR2關閉,TR3開啟)。

高速模式以停止條件結束,並將匯流排系統帶回到F/S模式。當停止條件滿足時,主機禁用其MCS電流源。橋接器也檢測這種停止條件,並採取以下行動(參考圖1-61):

①在tFS時間後開通電晶體TR2,連線SCLH和SCL(此時兩者都是高電平)。電晶體TR3在tFS之後斷開,釋放SDA線,並允許SDA被上拉電阻Rp拉高。TR3必須足夠快地斷開,以確保停止條件和最早下一個啟動條件之間的匯流排空閒時間符合快速模式規範。

②當SDA達到高電平(t2 時),電晶體TR1閉合以連線SDAH和SDA (注意:當所有SDAH和SDA線路都為高電平時,進行互連,從而防止匯流排線路上出現尖峰) 。根據快速模式規範,TR1和TR2必須在最短匯流排空閒時間內斷開。

 

圖1-61  混合速度中的高速模式傳輸完整過程

 

5.3.8  混合速度匯流排系統中橋的時序要求

從圖1-61可以看出t1、tH和tFS處的橋樑動作必須足夠快,以免影響SDAH和SCLH線。此外,橋接器開關必須滿足SDA和SCL線路快速模式規範的相關時序要求。

 

5.4 超快速模式

超快速模式(UFm)裝置提高了I2C匯流排的傳輸速度。UFm裝置可以以高達5 Mbit/s的速率傳輸資訊。UFm裝置提供推輓式驅動器,消除了上拉電阻,允許更高的傳輸速率。同一個系列匯流排協議和資料格式與Sm、Fm或Fm+系統保持一致。UFm匯流排裝置與雙向I2C匯流排裝置不相容。

 

 

未完待續,請繼續關注《徹底搞懂IIC匯流排(6)I2C匯流排電氣規範和傳輸時序》。

本文由德力威爾王術平原創;轉載、引用請註明出處,否則侵權。 

本文參考資料:

①https://www.nxp.com/docs/en/user-guide/UM10204.pdf。

②https://www.nxp.com/docs/en/application-note/AN10216.pdf。

https://www.i2c-bus.org