对于电脑和服务器而言,SMBus是一种通用的低速通信协议,用来控制主板上的各种监控设备,虽然SMBus速度较慢,却以其结构简洁造价低廉的特点,已经成为了业界普遍欢迎的接口标准。我们日常生活中看到的Windows中显示的各种设备的制造商名称和型号,温度等信息,都是通过SMBus总线来手机信息的。 由于SMBus的广泛应用,掌握SMBus对于服务器及笔记本的研发和调试将大有裨益。
SMBus (System Management Bus,系统管理总线) 是1995年由Intel提出的, 主要是希望通过一条廉价并且功能强大的总线(由两条线组成),来控制主板上的设备并收集相应的信息。
SMBus的数据传输率为100kbps,用于低速率通讯,但其结构简洁造价低廉。
SMBus器件存在现有7层OSI网络模型中的前3层,即物理层,数据链路层和网络层。
SMBus有两条信号线:SMBCLK和SMBDAT,即一条时钟线和一条数据线。 SMBCLK和SMBDAT线是双向的,当总线空闲时,这两条线是高电平。设备可能由总线VDD供电或VBUS供电或通过其他电源供电。
下图是INTEL服务器中应用SMBus的实例,可以看到SMBus也大量用在电源管理上,也称为PMBus,也就是从SMBus中发展过来的,PMBus主要应用在智能电源管理,其规范中增加了用于电源设计和控制的语言,具有分组错误检查和主机通信功能。
![da7db1ed6c3ea407973b98ce68c25949.png](https://i-blog.csdnimg.cn/blog_migrate/d116da50bca2776652fa93554b7d20ab.jpeg)
而下图比较全面的反映了SMBus管理服务器主板的情况,可以看到BMC和PCH都可以作为主设备和从设备,并且BMC可以通过SMBus管理主板上所有电源电压和温度信息,可以收集DIMM的信息和工作情况,同时可以管理网口信息。
![dd0e3067cfbaf6f9f66720749a798ecf.png](https://i-blog.csdnimg.cn/blog_migrate/3ee6d74283e5d2b0b400ed1f93eea5d0.jpeg)
SMBus拓扑结构,所有设备通过线与逻辑连接到SMBus上
![972dc9801c4a0a9f67c83c0c77dba27a.png](https://i-blog.csdnimg.cn/blog_migrate/460a7e2b6c1b2fb9bc681798acd1ccb0.jpeg)
而线与逻辑主要通过漏极开路门电路实现,结构简图如下:
其中,线与Z=z1*z2*z3
![070a99994fbea3f983be0a6f22727572.png](https://i-blog.csdnimg.cn/blog_migrate/5fb2c375245b73c6b237b183094c0cd7.jpeg)
SMBus操作时序
![e8045f404a15ea13244e3d0b6134719d.png](https://i-blog.csdnimg.cn/blog_migrate/75a627b5d050a372e463b66b23850ca3.jpeg)
数据的有效性
时钟信号高电平时,数据必须保持稳定;
时钟信号低电平时,数据可以发生高低电平变化。
![f84ac20b1b749fdce24211b586fa8d1e.png](https://i-blog.csdnimg.cn/blog_migrate/ebeaabb682f17be07b25a33098215cab.jpeg)
起始和停止条件
1. 在 SMBCLK 线是高电平时,SMBDAT 线从高电平向低电平切换,表示信号的起始条件。
2. 当 SMBCLK 线是高电平时,SMBDAT 线由低电平向高电平切换,表示信号的停止条件。
![6dc06dcf1ee5215f61212fed9b165174.png](https://i-blog.csdnimg.cn/blog_migrate/2ed7b42537cf94b3f44cafc3abc61437.jpeg)
SMBus数据传输
每个字节必须为8位,每次传输可以发送的字节数量不受限制,每个字节后必须跟一个响应位(ACK),所以每次传输九位,首先传输的是数据的最高位(MSB)。
在启动条件(S)之后,主器件放置7位从地址到总线上。第8位指示数据传输(读/写)方向;0表示传输(写)而1表示有数据请求(读)。一个数据传输总是以一个主机产生停止条件(P)结束。
![b7666d058163af743577e2ca43361210.png](https://i-blog.csdnimg.cn/blog_migrate/2ce698ba1ee3e0e2a810a4540f7747dd.jpeg)
SMBus只工作在从10kHz到最高100kHz。最低工作频率10kHz是由SMBus超时功能决定的。
附SMBUS建立时间和保持时间的实测波形图,以便理解
保持时间:
![17e4d230713075139bd742a2c9b7eb27.png](https://i-blog.csdnimg.cn/blog_migrate/96ed6ecde09c28f8366f473b0ca2bbbc.jpeg)
![bf1cb567a7ebd48e40fb01f6fb88763c.png](https://i-blog.csdnimg.cn/blog_migrate/112ec423695aa36b3e7795a5c24cabdc.jpeg)
建立时间
![09c51753b6a9a30e747745bcdf455f00.png](https://i-blog.csdnimg.cn/blog_migrate/f8f1781b36bc3f9d89f210d46b22e987.jpeg)
![a056edb10c491d72d8adc00e67952bd8.png](https://i-blog.csdnimg.cn/blog_migrate/26c7ce0d01b30b831a6ce7d1bbf5b4ce.jpeg)