SMBus基础知识

概念

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位和广播呼叫从地址类型
总线协议 (快速命令、处理呼叫等) 无总线协议
从机地址 自动分配 硬件实现
用途 系统/电源管理 外设访问
标识符 唯一标识符 无要求
从机通知 中断线 无要求
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章