SMBUS(系統管理總線)基於I2C總線,主要用於電池管理系統中。它工作在主/從模式:主器件提供時鍾,在其發起一次傳輸時提供一個起始位,在其終止一次傳輸時提供一個停止位;從器件擁有一個唯一的7或10位從器件地址。
SMBus只工作在從10kHz到最高100kHz(I2C則有100K/400K/3.45MHZ)。最低工作頻率10kHz是由SMBus超時功能決定的,當SCL(主機提供)太低而超過35 ms時,從器件將復位正在進行的通信。相反,I2C采用主器件硬件復位。
SMBus需要一定數據保持時間(300nS),而 I2C總線則是從內部延長數據保持時間。
SMBus具有一種警報響應地址(ARA),因此當從器件產生一個中斷時,它不會馬上清除中斷,而是一直保持到其收到一個由主器件發送的含有其地址的ARA為止。
上拉電阻的區別:SMBus(14k ohm@5V Vdd,8.5k ohm@3V Vdd不過這個定義並非牢不可破,就一般實務而言,在SMBus上也可用2.4k~3.9k ohm范疇的阻值);而I2C(1.6k ohm@5V Vdd,1k ohm@3V Vdd)。
ACK與NACK:I2C可以ACK也可NACK;但SMBUS必須ACK,安全可靠性要求更高。
命名的區別:I2C(SDL/SCL);
SMBUS: SMBDat,SMBCLK;SMBSUS(OC門,需要上拉,終端提醒主設備,低有效)
電氣特性區別:
I2C的Hi/Lo邏輯准位有兩種認定法:相對認定與絕對認定(Vdd的電壓),Hi為0.7 Vdd,Lo為0.3Vdd,
絕對認定則與TTL准位認定相同,直接指定Hi/Li電壓,Hi為3.0V,Lo為1.5V。
SMBus只有絕對認定,且准位與I2C有異,Hi為2.1V,Lo為0.8V,與I2C不全然吻合但也算部分交集。不過,SMBus后來也增訂一套更低電壓的准位認定,Hi為1.4V,Lo為0.6V,這是為了讓運用SMBus的裝置能更省成本而有的作法。
電流的區別:I2C(正常工作電流3mA,漏電流10uA);SMBUS(正常工作電流100uA,漏電流1~5uA)
SMBUS總線協議:
數據在SMBCLK為高時必須穩定,在SMBCLK為低時才允許變化;
- 開始和結束條件並不總是由總線主器件產生的。在開始條件產生后,總線就被認為處於忙碌狀態。當出現結束條件或SMBCLK和XMBDAT兩條線維持在高電平的時間超過THIGH:MAX后,總線處於閑置狀態。
-
每個字節包含八個比特。在總線上每個字節傳輸完都必須緊跟一個確認比特。字節在傳輸時都都先傳送最高位(MSB)
-
為了確認一個字節,接收端必須在時鍾脈沖的高電平階段,根絕SMBus的時序規范,將SMBDAT拉到低
4 SMBUS除了和I2C一樣具有0x00的廣播地址外,還有b0001000R/W來表示警報響應地址
數據有效性 圖4-2:開始和結束條件
圖4-4:SMBus的ACK和NACK信號