I2C Bus 與 SMBus 有什麼不同?

傳統的i2c Bus裡的 slave device並無法主動通知master 有事件發生;而SMbus因為有另外支援SMBus Alert signal, 所以Host收到Alert可另外發出ARA Protocol詢問是那一個slave device發出Alert,進一步針對此slave device加以處理。

SMBus與I2C同樣都是屬於匯流排的標準,由於SMBus Specification的制定是依據I2C,因此二個標準有許多相似的地方,以下將列出SMBus與I2C之間相同與差異之處。

SMSBUS 系統管理匯流排(System Management Bus)

SMbus 最早是由 Intel 公司提出來的. 現在由 SBS 管理維護這一個規格. 此規格是用 Philips 的 I2C 簡化而來. SMbus 是由兩條訊號所組成的一種匯流排. 是為了在系統上較慢速的裝置及電源管理裝置之間的溝通使用. 使系統可取得這些裝置的製造廠商,型號,一些控制資訊,錯誤訊息及狀態.這兩條訊號為 SMBCLK 和 SMBDATA. 這和 I2C 上的 Clock(SCL) 和 Data(SDA) 是一樣的.

I2C bus 內部整合電路匯流排(Inter-Integrated Circuit Bus)

傳統上,當有多項裝置要連接到處理器時,各項裝置的住址線以及資料線會個別接到處理器上,如此一來,就佔用了處理器的腳位,使得處理器的IC腳數目增加。為了解決這個問題,飛利浦公司在1980年代發展出所謂的交互整合電路(I2C)匯流排。I2C是一個低頻寬、短距離的通訊協定。所有的裝置藉由兩條線連接在一起,這兩條線分別為串列資料線(SDA)和串列時脈線(SCL)。由於所有的通訊只在這兩條線上動作,所以每一個裝置必須有一個獨一無二的住址,讓處理器來辨識它。

下面將更深入的來介紹交互整合電路(I2C)匯流排介面單元

  • I2C單元允許應用程式處理器透過I2C匯流排來服務master和slave裝置。
  • I2C單元啟動應用程式處理器與I2C周邊設備作溝通以及使用微控制器達成系統管理功能,I2C匯流排需要極少數的硬體來傳送有關於應用程式處理器系統到一個外部裝置的狀態和資料。
  • I2C單元是屬於應用程式處理器內部匯流排的一個周邊設備,資料是經由一個緩衝介面來傳送到I2C匯流排以及從I2C匯流排來接收,控制和狀態資訊是透過一組記憶體映像暫存器來傳送

文件:I2C Bus 與 SMBus 有什麼不同?

關於I2C Bus與SMBus,許多人很少去談論與瞭解兩者的細節差異,包括很多國外的簡報文件也經常將兩者混寫、交雜描述、交替運用。確實,在一般運用下,I2C Bus與SMBus沒有太大的差別,從實體接線上看也幾乎無差異,甚至兩者直接相連多半也能相安無誤地正確互通並運作。不過若真要仔細探究,其實還是有諸多不同,如果電子設計工程師不能明辨兩者的真實差異,那麼在日後的開發設計的驗證除錯階段時必然會產生困擾,為此本文將從各層面來說明I2C Bus與SMBus的細微區別,期望能為各位帶來些許助益。
ref

3 thoughts on “I2C Bus 與 SMBus 有什麼不同?

發表迴響