概念
SMBus (System Management Bus,系統管理總線)
系統管理總線是一種二線制串行總線,它大部分基於I2C總線規範,是1995年由Intel提出的,應用於移動PC和桌面PC系統中的低速率通訊。希望通過一條廉價並且功能強大的總線來控制主板上的設備並收集相應的信息。
I2C是在設計電視應用時所發創的介面,首版於1992年發表;而SMBus(System Management Bus)則是Intel與Duracell(金頂電池)共同制訂筆記型電腦所用的智慧型電池(Smart Battery)時所發創的介面,首版於1995年發表,不過SMBus文件中也提及,SMBus確實是參考自I2C,並以I2C爲基礎所衍生成。
I2C起源於電視設計,但之後朝通用路線發展,各種電子設計都有機會用到I2C;而SMBus則在之後爲PC所制訂的先進組態與電源管理介面(Advanced Configuration & Power Interface;ACPI)規範中成爲基礎的管理訊息傳遞介面、控制傳遞介面。
雖然I2C與SMBus先後制訂時間不同,但都在2000年左右進入成熟化改版,I2C的過程改版以加速爲主要訴求,而SMBus以更切合Smart Battery及ACPI的需求爲多。
官網地址:http://www.smbus.org/
I2C的基本特性請移駕另一篇博客《I2C總線基礎知識》,裏面有非常詳細的講解。
用途
SMBus最初的目的是爲智能電池,充電電池和與其他系統通信的微控制器之間的通信鏈路而定義的。
SMBus也被用來連接各種設備,包括電源相關設備,系統傳感器,EEPROM通訊設備等等。SMBus 最適用於筆記本電腦上,檢測各元件狀態並更新硬件設置引腳 (pull-high 或 pull-low)。例如,將不存在的 DIMM 時鐘關閉,或檢測電池低電壓狀態。
SMBus 爲系統和電源管理這樣的任務提供了一條控制總線,使用 SMBus 的系統,設備之間發送和接收消息都是通過 SMBus,而不是使用單獨的控制線,這樣可以節省設備的管腳數。
使用 SMBus,設備還可以提供它的生產信息,告訴系統它的型號,部件號等,針對掛起事件保存它的狀態,報告不同類別的錯誤,接收控制參數,並返回它的狀態等。
與I2C的差異
雖然SMBus是參考I2C總線實現的,大部分特性和I2C一樣,但還是有部分特性兩者是有差異的。
SMBus與I2C總線之間在時序特性上存在一些差別。首先,SMBus需要一定數據保持時間,而 I2C總線則是從內部延長數據保持時間。SMBus具有超時功能,因此當SCL太低而超過35 ms時,從器件將復位正在進行的通信。相反,I2C採用硬件復位。SMBus具有一種警報響應地址(ARA),因此當從器件產生一箇中斷時,它不會馬上清除中斷,而是一直保持到其收到一個由主器件發送的含有其地址的ARA爲止。SMBus只工作在從10kHz到最高100kHz。最低工作頻率10kHz是由SMBus超時功能決定的
特性 | SMBus | I2C |
---|---|---|
最大傳輸速度 | 100kHz | 400kHz |
最小傳輸速度 | 10kHz | 無最小傳輸速度 |
超時錯誤 | 35ms時鐘低超時 | 無時鐘超時 |
邏輯電平 | 固定的邏輯電平 | 邏輯電平由VDD決定 |
地址類型 | (保留、動態等) | 7位、10位和廣播呼叫從地址類型 |
總線協議 | (快速命令、處理呼叫等) | 無總線協議 |
從機地址 | 自動分配 | 硬件實現 |
用途 | 系統/電源管理 | 外設訪問 |
標識符 | 唯一標識符 | 無要求 |
從機通知 | 中斷線 | 無要求 |