I2C總線和SMBus?是流行的2線總線,基本上相互兼容。通常,設備(主機和從設備)可以在兩條總線之間自由互換。兩條總線都具有可尋址從站(盡管兩者之間的特定地址分配可能有所不同)。總線以相同的速度工作,最高可達100kHz,但I2C總線具有400kHz和2MHz版本。兩條總線之間的完全兼容性僅在100kHz以下得到保證。本應用筆記重點介紹I2C和SMB之間的顯著差異。
I2C總線和SMBus是流行的2線總線,基本上相互兼容。通常,設備(主機和從設備)可以在兩條總線之間自由互換。兩條總線都具有可尋址從站(盡管兩條總線之間的特定地址分配可能有所不同)。總線以相同的速度工作,最高可達100kHz,但I2C總線具有400kHz和2MHz版本。顯然,使用所有器件的兩條總線之間的完全兼容性僅在100kHz以下才能得到保證。
本應用筆記重點介紹兩條總線之間的顯著差異。雖然假設讀者對I2C總線和/或SMBus有一定的了解,但讓我們首先回顧一些協(xié)議基礎知識:
啟動和停止事件。這些尤其重要,因為 它們是向接口發(fā)出信號的方式,表明它需要轉到 已初始化或重置狀態(tài)。
數(shù)據(jù)和時鐘必須很高才能生成啟動和停止。一位大師 無法生成啟動或停止,除非數(shù)據(jù)(I2C的SDA和 SMBData for SMBus)和時鐘(SCL 用于 I2C,SMBClk 用于 SMBus)線路 是自由的(不是拉低的)。這是成為開放收藏家的結果 總線。
啟動和停止條件是唯一的時間 在時鐘為高電平時成為數(shù)據(jù)線上的過渡。
僅當通信期間時鐘為低電平時,數(shù)據(jù)才能更改狀態(tài)。 數(shù)據(jù)上的數(shù)據(jù)必須始終在時鐘高電平之前準備就緒 并且僅在時鐘變低后更改(除了 啟動和停止)。
圖1.典型的通信,顯示啟動和停止條件。
超時和時鐘速度
超時和(由于超時)最小時鐘速度是I2C總線和SMBus之間最重要的區(qū)別。
I2C 總線 = 直流 (無超時)
SMBus = 10kHz (35mS 超時)
超時是指每當時鐘變?yōu)榈碗娖降臅r間超過超時時間(通常為 35 毫秒)時,從設備就會重置其接口。超時的使用也決定了時鐘的最低速度,因為它永遠不會靜止。因此,SMBus 具有最低時鐘速度規(guī)格。相比之下,I2C總線可以無限期地變?yōu)殪o態(tài)。在I2C總線中,主站或從站都可以根據(jù)需要保持時鐘低電平以處理數(shù)據(jù)。
所有這些都是兩條總線如何處理從站錯誤并從這些錯誤中恢復的結果。要了解錯誤恢復,請考慮有兩種狀態(tài),即啟動和停止,在正確設計的I2C或SMBus從機上,這兩種狀態(tài)指示從接口進入特定狀態(tài)。在 Start 的情況下,接口應自行初始化并準備好接收通信。無論啟動條件之前是什么,都應該發(fā)生這種情況(例如,如果從站處于通信過程中,主設備感到困惑并不得不重新開始)。在 Stop 的情況下,接口應再次初始化自身,但應在任何新通信之前期待啟動。“開始”和“停止”都是時鐘為高電平時發(fā)生的唯一數(shù)據(jù)轉換。為了使數(shù)據(jù)上的轉換發(fā)生,數(shù)據(jù)線(和時鐘線)必須是“自由的”,以允許主站根據(jù)需要在線上放置高點和低點。
在I2C總線中,如果從機鎖定并保持時鐘或數(shù)據(jù)低電平,則無法進行錯誤恢復。實際上很少有從設備能夠保持時鐘。因此,最常見的總線錯誤是從設備最終處于數(shù)據(jù)(數(shù)據(jù)線)低電平的狀態(tài)。在I2C總線中,主機通過時鐘時鐘直到數(shù)據(jù)為高電平,然后發(fā)出啟動后停止信號來完成錯誤恢復。
與I2C總線相比,只要時鐘處于低電平,時間超過SMBus規(guī)范中規(guī)定的35ms超時,SMBus從站就會復位其接口。因此,英特爾 PIIX4 等 SMBus 主站沒有內置任何錯誤恢復例程。實際上,從設備需要檢查時鐘和數(shù)據(jù),即使SMBus規(guī)范沒有規(guī)定這一點。應該這樣做,因為經(jīng)驗表明,處于錯誤狀態(tài)的從站可以保持低數(shù)據(jù),即使時鐘可能很高。完全按照 SMBus 規(guī)范實現(xiàn)超時并不能解決此錯誤模式。
I2C Slave |
SMB Slave |
I2C Slave |
I2C Master | I2C Master | |
SMB Master | Potential for bus lockup | SMB Master |
SMBus的時鐘速度限制為100kHz,而I2C允許高達400kHz的速度。
邏輯電平
盡管兩條總線之間的邏輯電平規(guī)格存在差異,但通常器件可以混合使用,并可以放棄匹配。事實證明,SMBus或I2C總線很少因電平差異而發(fā)生故障。當我們比較相應的電平規(guī)格時,這可能會令人驚訝,如圖1所示。
圖2.這是I2C總線和SMBus之間電平規(guī)格的比較。I2C-VDD顯示了 3 V 至 5 V 電源的相關高值和低值范圍。
為了進一步比較,表 2 一起列出了規(guī)格。
High | I2C VDD Dependent | 0.7 × VDD |
I2C Fixed | 3.0V | |
SMBus | 2.1V | |
Low | I2C VDD Dependent | 0.3 × VDD |
I2C Fixed | 1.5V | |
SMBus | 0.8V |
盡管電平規(guī)格之間似乎存在相當大的差異,但在這方面,器件互換性并未被證明是一個問題。這是因為主機和從站的輸出電壓擺幅幾乎總是接近全電源電壓。
在討論電壓電平時,不明顯的是,這些電平也由總線之間的不同電流指定。SMBus的最小灌電流為100μA,最大灌電流為350μA,而I2C總線的最小灌電流為3mA。這反過來又將確定上拉電阻的最低可接受值,其示例如下表所示。
3V VDD | 5V VDD | |
I2C 總線 | > 1k | > 1.6k |
SMBus | > 8.5k | > 14k |
實際上,在SMBus系統(tǒng)中遇到上拉電阻值并不罕見,因為上拉電阻值低于推薦值,因此違反了此規(guī)范。即使在某些SMBus系統(tǒng)中,上拉電阻值的一個非常普遍的范圍似乎是2.4k至3.9k。
一般呼叫和警報響應
I2C總線有一個稱為通用呼叫的地址,即0000 000,所有設計用于響應通用呼叫的從站都將相應地采取行動。這是一種可以同時與系統(tǒng)上的多個設備通信的方法。
SMBus還規(guī)定了一條名為ALERT#的線路,不要與I2C通用呼叫地址混淆。此行充當 SMBus 主服務器的中斷。收到中斷后,SMBus 主服務器可以發(fā)出警報響應。此警報響應被發(fā)送到地址 0001 100,任何生成中斷的從設備都試圖通過將自己的地址放在總線上來識別自己。地址最低的設備將占主導地位(由于集電極開路總線)。如果它被維修和清除,主服務器可以重復該過程并通過可能發(fā)生的任何其他中斷進行處理。
其他小細節(jié)
有一些與上升和下降時間和總線電容有關的微妙問題通常不是問題。此外,在使用“確認”和“不確認”條件方面,還存在一些很少遇到的協(xié)議差異。對于大多數(shù)主流的主人和從屬選擇,這些因素通常都不是問題。
顯著差異總結
超時和最小時鐘速度
電壓等級
上拉電阻值和電流水平
I2C | SMBus | |
Timeout | No | Yes |
Minimum Clock Speed | DC | 10kHz |
Maximum Clock Speed | 100kHz (400kHz and 2MHz also available) | 100kHz |
VHIGH | 0.7 × VDD, 3.0V Fixed | 2.1V |
VLOW | 0.3 × VDD, 1.5V Fixed | 0.8V |
Max I | 3mA | 350μA |
Clock Nomenclature | SCL | SMBCLK |
Data Nomenclature | SDA | SMBDAT |
General Call | Yes | Yes |
Alert# | No | Yes |
審核編輯:郭婷
-
總線
+關注
關注
10文章
2903瀏覽量
88393 -
SMBus
+關注
關注
1文章
117瀏覽量
22155 -
I2C總線
+關注
關注
0文章
14瀏覽量
2162
發(fā)布評論請先 登錄
相關推薦
SMBus與I2C有什么差別?
PCA9519 4通道I2C-bus SMBus 中繼器
PCA9511—熱插拔型I2C與SMBus總線緩存器產(chǎn)品數(shù)據(jù)手冊
PCA9519—4通道I2C-bus SMBus中繼器產(chǎn)品數(shù)據(jù)手冊
MSP430硬件I2C如何實現(xiàn)SMBus
LTC4303/LTC4304 - 可恢復阻塞總線的 I<sup>2</sup>C/SMBus 緩沖器
![LTC4303/LTC4304 - 可恢復阻塞<b class='flag-5'>總線</b>的 <b class='flag-5'>I</b><sup>2</sup><b class='flag-5'>C</b>/<b class='flag-5'>SMBus</b> 緩沖器](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TCAL9538 8位I2C總線,SMBus I/O擴展器數(shù)據(jù)表
![TCAL9538 8位<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>,<b class='flag-5'>SMBus</b> <b class='flag-5'>I</b>/O擴展器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TCAL9539-Q1汽車類低壓16位I2C總線SMBus I/O擴展器數(shù)據(jù)表
![TCAL9539-Q1汽車類低壓16位<b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>SMBus</b> <b class='flag-5'>I</b>/O擴展器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TCA39306-Q1雙路雙向I3C、I2C總線和SMBus電壓電平轉換器數(shù)據(jù)表
![TCA39306-Q1雙路雙向<b class='flag-5'>I3C</b>、<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>和<b class='flag-5'>SMBus</b>電壓電平轉換器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TCA9509電平轉換I2C和SMBUS總線中繼器數(shù)據(jù)表
![TCA9509電平轉換<b class='flag-5'>I2C</b>和<b class='flag-5'>SMBUS</b><b class='flag-5'>總線</b>中繼器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
具有阻塞總線恢復功能的TCA4307熱插拔 I2C 總線和 SMBus緩沖器數(shù)據(jù)表
![具有阻塞<b class='flag-5'>總線</b>恢復功能的TCA4307熱插拔 <b class='flag-5'>I2C</b> <b class='flag-5'>總線</b>和 <b class='flag-5'>SMBus</b>緩沖器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
TCA9511A熱插拔I2C總線和SMBus緩沖器數(shù)據(jù)表
![TCA9511A熱插拔<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>和<b class='flag-5'>SMBus</b>緩沖器數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論