SMBus總線與I2C總線的區別

reference: http://smbus.org/specs/

1、介紹
系統管理總線(SMBus)是一個兩線接口。通過它,各設備之間以及設備與系統的其他部分之間可以互相通信。它基於I2C操作原理。SMBus爲系統和電源管理相關的任務提供一條控制總線。一個系統利用SMBus可以和多個設備互傳信息,而不需使用獨立的控制線路。
系統管理總線(SMBus)標準涉及三類設備。從設備,接收或響應命令的設備。主設備,用來發布命令,產生時鐘和終止發送的設備。主機,是一種專用的主設備,它提供與系統CPU的主接口。主機必須具有主-從機功能,並且必須支持SMBus通報協議。在一個系統裏只允許有一個主機。

2、SMBus和I2C之間的相似點
2條線的總線協議(1個時鐘,1個數據) + 可選的SMBus提醒線
主-從通信,主設備提供時鐘
多主機功能
SMBus數據格式類似於I2C的7位地址格式

3、SMBus和I2C之間的不同點
下表爲SMBus和I2C的不同點。

SMBus與I2C的比較
     SMBus                              I2C
最大傳輸速度  100kHz                 最大傳輸速度400kHz
最小傳輸速度  10kHz                  無最小傳輸速度
35ms時鐘低超時                       無時鐘超時
固定的邏輯電平                        邏輯電平由VDD決定
不同的地址類型(保留、動態等)            7位、10位和廣播呼叫從地址類型
不同的總線協議(快速命令、處理呼叫等)     無總線協議


4、SMBus應用用途
利用系統管理總線,設備可提供製造商信息,告訴系統它的型號/部件號,保存暫停事件的狀態,報告不同類型的錯誤,接收控制參數,和返回它的狀態。SMBus爲系統和電源管理相關的任務提供控制總線。

5、設備標識
在系統管理總線上,任何一個作爲從模式的設備都有一個唯一的地址,叫做從地址。保留的從地址表請參考2.0版的SMBus規範

6、總線協議
SMBus技術規範支持9個總線協議。有關這些協議的詳細資料和SMBus地址類型,請參考2.0版的SMBus規範)。這些協議由用戶的軟件來執行。

7、地址解析協議(ARP)
SMBus從地址衝突可以通過給每個從設備動態分配一個新的唯一地址來解決。ARP有以下的屬性:
地址分配利用標準SMBus物理層仲裁機制
當設備維持供電期間,分配的地址仍保持不變,允許設備在斷電時保留其地址。
在地址分配後,沒有額外的SMBus的打包開銷(也就是說訪問分配地址的設備與訪問固定地址的設備所用時間是一樣的)。
任何一個SMBus主設備可以遍歷總線。

8、唯一的設備標識符(UDID)
爲了提供一種爲進行地址分配目的而區分每個設備的機制,每個設備必須擁有一個唯一的設備標識符。
關於在ARP上128位的UDID細節的信息,參考2.0版的SMBus規範

9、SMBus提醒模式
SMBus提醒是一個帶中斷線的可選信號,用於那些希望擴展他們的控制能力而犧牲一個引腳的設備。SMBALERT和SCL和SDA信號一樣,是一種線與信號。SMBALERT通常和SMBus廣播呼叫地址一起使用。與SMBus有關的消息爲2字節。單一的從設備可以通過SMBALERT發信號給主機表示它希望進行通信,這可通過設置I2C_CR1寄存器上的ALERT位實現。主機處理該中斷並通過提醒響應地址ARA(Alert Response Address,地址值爲0001100x)訪問所有SMBALERT設備。只有那些將SMBALERT拉低的設備能應答ARA。此狀態是由 I2C_SR1寄存器中的SMBALERT狀態標記來標識的。主機執行一個修改過的接收字節操作。由從發送設備提供的7位設備地址被放在字節的7個最高位上,第八個位可以是0或1。如果多個設備把SMBALERT拉低,最高優先級設備(最小的地址)將在地址傳輸期間通過標準仲裁贏得通信權。在確認從地址後,此設備不得再拉低它的SMBALERT,如果當信息傳輸完成後,主機仍看到SMBALERT低,就知道需要再次讀ARA。沒有執行SMBALERT信號的主機可以定期訪問ARA。有關SMBus提醒模式的更多詳細資料,請參考2.0版的SMBus規範

10、超時錯誤
在定時規範上I2C和SMBus之間有很多差別。SMBus定義一個時鐘低超時,35ms的超時。SMBus規定TLOW:SEXT爲從設備的累積時鐘低擴展時間。SMBus規定TLOW:MEXT爲主設備的累積時鐘低擴展時間。更多超時細節請參考2.0版的SMBus規範I2C_SR1中的狀態標誌Timeout或Tlow錯誤表明了這個特徵的狀態。

11、如何使用SMBus模式的接口
爲了從I2C模式切換到SMBus模式,應該執行下列步驟:
設置I2C_CR1寄存器中的SMBus位
按應用要求配置I2C_CR1寄存器中的SMBTYPE和ENARP位。
如果你想把設備配置成主設備,產生起始條件的步驟見15.4.2 I2C主模式。否則,參見15.4.1I2C從模式。
軟件程序必須處理多種SMBus協議。
如果ENARP=1且SMBTYPE=0,使用SMB設備默認地址。
如果ENARP=1且SMBTYPE=1,使用SMB主設備頭字段。
如果SMBALERT=1,使用SMB提醒響應地址。

12、I2C與SMBUS區別,及smbus實例

13、總結
I2C是多主控總線,所以任何一個設備都能像主控器一樣工作,並控制總線;
SMBus 爲系統和電源管理這樣的任務提供了一條控制總線,使用 SMBus 的系統,設備之間發送和接收消息都是通過 SMBus,而不是使用單獨的控制線,這樣可以節省設備的管腳數。
所以它們的區別很明顯了,一個是該總線上連接設備自身可以控制總線(I2C,速率較高),想幹嘛就幹嘛,另一個是設備之間可以通過它來傳送信息,但是速率比較慢,比如用在檢測各元件狀態並更新硬件設置引腳等,同時廉價是它的優點。**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章