1.概述:

系统管理总线是一种两线制接口。它基于I2C 总线原理演变而来,可以认为是简化版的I2C总线。
SMBus最初是应用到智能电池,如电池充电器和一个微控制器。其提供一个系统和电源管理相关的任务控制总线。如今,SMBus总线可以连接的设备类型更多样化,包括与电源相关的设备,系统的传感器,EEPROM的容量等设备的信息通信。
SMBus体现在OSI模型的下三层:物理,数据链路,网络。物理层定义了了SMBus的电气特性;数据链路层部分规范化位、字节的数据传输,仲裁和时钟信号;网络层处理处理SMBus地址解析协议和总线数据传输协议。
2.通用特性:
1)物理层:
DC特性:
AC特性:
2)数据链路层:
按通用思想,使用电平的高低代表逻辑的0和1:
数据有效性:数据必须在时钟的高电平周期保持稳定,数据的状态只能在时钟低电平的情况下才能改变;
开始和停止条件(与I2C相同):
        在SMBCLK 线是高电平时,SMBDAT 线从高电平向低电平切换,表示数据传输开始;

当SMBCLK 线是高电平时,SMBDAT 线由低电平向高电平切换,表示数据传输停止;

总线空闲:
SMBCLK 和SMBDAT 线都处于高电平期间,总线空闲。
 
数据传输:
数据传输以字节为单位,传输的字节数量不限,但是每个字节后必须紧跟一个ACK响应。
首先传输的是数据的最高位MSB。

我们知道在I2C协议中存在clock stretching特性:当一组数据传输完成,接收器也回传ACK信号后,如果接

收器需要一段时间来储存收到的数据,则可以利用控制SCL引脚为低电平的方式——将SCL维持为低电平,
直到接收器能够接受下一组数据为止(所以也可以理解为什么I2C的CLK为双向的原因)。
那么同样在SMBus总线中也存在这样的功能:从机要完成一些其他功能(例如一个内部中断服务程序) 后,才能接收或发送下一个完整的数据字节,可以使时钟线SCL 保持低电平,迫使主机进入等待状态,当从
机准备好接收下一个数据字节并释放时钟线SCL 后,数据传输继续。
 
3)网络层:
模型:
  支持SMBus的主、从器件。
从器件会被分配给唯一的地址,但有些地址是被协议保留,不能再分配给任何器件的,它们如下图所示:
总线协议:
下面已写、读字节/字为例,描述具体的协议过程:
写字节/字:
主器件在发送完从器件地址(Slave Address)后,发送写入位(Wr)。从器件响应ACK。主器 件再次发命令码
(Command Code),从器件再次确认ACK,主机发送数据字节或字(低字节在前)。 从器件ACK 每一个字
节,整个传输在停止条件后结束。
 

读字节/字:


读数据要比写数据稍微复杂一些。首先主机要写请求命令到从设备。重发一次起始条件(S+地址),从器
件 将返回一或两个字节的数据。重发起始信息之没有停止位,在读完成后主器件要发NACK。
SMBus协议还支持块的读写操作,在Command Code后加需要读写的字节数目:


在这里,地址的重复操作,起到了改变传输方向的作用。

 
3)SMBus的可选信号:
SMBSUS#信号:
系统进入待机模式时,SMBSUS#变低。待机模式是指当大部分设备休眠或断电时一个低功率模式。一旦恢
复,SMBSUS#电平拉高。之后,所有设备回到运行状态。
SMBALERT#:
该引脚连接至主器件,作为中断信号线使用。
多个从器件可以通过线与连接至一个主器件引脚,系统通过仲裁决定从地址通信的权利。
 
4)I2C与SMBus的区别:
DC spec:
I2C的Hi/Lo逻辑准位有两种认定法:相对认定与绝对认定,相对认定是依据Vdd的电压来决定,Hi为
0.7 Vdd,Lo为0.3 Vdd,绝对认定则与TTL准位认定相同,直接指定Hi/Li电压,Hi为3.0V,Lo为1.5V。
SMBus只有绝对认定,Hi为2.1V,Lo为0.8V,与I2C有部分交集。不过,SMBus后来也增订一套更低电压的准
位认定,Hi为1.4V,Lo为0.6V,这是为了让运用SMBus的装置能更省成本而有的作法。
电流:
SMBus在低功耗的表现方面优于I2C。
I2C 指定连接到总线上的每个设备的最最大漏电流为10 微安。SMBus 1.0 版本规定的最大漏电流为1 微
安。为减低SMBus 设备测试成本SMBus 1.1 版本规定要求放宽至5 微安。
相比于I2C对于总线电容的限制,SMBus并没有对此做任何规定。但是它指出了IPULLDOWN 的最大电流是
350uA。那么可以计算出VDD=3.3V时,电阻值应大于9.4K。
 
频率:
I2C提供了两种操作模式,标准模式(100 KHz)和快速模式(400 KHz);
SMBus的时钟频率在10KHz~100KHz之间。
 
时序:
I2C对信号的时序并没有强制的要求;
SMBus规定了数据的setuptime、holdtime必须满足一定的条件(参见上面SMBus的AC标准);
 
ACK与NACK
通常情况下,I2C协议中,主控端发送端(主控端)要与接收端(受控端)通讯前,会在总线上广播受控端的地址 信息,每个接收端都会接收到地址信息,但只有与该地址信息相切合的接收端会在地址信息发布完后发出 「已妥」的回应(Acknowledge;ACK),让发送端知道对应的接收端确实已经备妥,可以进行通讯。
但是,I2C并没有强制规定接收端非要做出响应不可,也可以默不作声,即便默不作声,发送端还是会继续
 工作,开始进行数据传递及下达读/写指令,如此的机制在一般运用中还是可行,但若是在一些实时 (Real Time)性的应用上,任何的动作与机制都有一定的时限要求,这种可有可无式的响应法就会产生问 题,可 能会导致受控端无法接收信息。 相同的情形,在SMBus上是不允许接收端在接收地址信息后却不发 出回应,每次都要回应,为何要强制回应? 其实与SMBus的应用息息相关,SMBus上所连接的受控装置有 时是动态加入、动态移除的,例如换装一颗新 电池,或笔记本电脑接上DOCK PORT等,如果接入的装置已 经改变却没有回应,则主控端的程序所掌握的并 非是整体系统的最新组态,就会造成误动作。
SMBus协议的格式属于I2C定义格式中的子集。I2C可以通过SMBus协议访问与SMBus兼容的设备。
 
参考资料:
1)SMBus系统管理总线;
2)https://www.kernel.org/doc/Documentation/i2c/smbus-protocol;
 转载自:http://blog.sina.com.cn/s/blog_a438e5290102w4df.html

SMBus总线概述的更多相关文章

  1. 第4章 PCIe总线概述

    随着现代处理器技术的发展,在互连领域中,使用高速差分总线替代并行总线是大势所趋.与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行数据信号才能达到的 ...

  2. CAN总线概述

    基本概念 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议.在汽车产业中,出于对安全性.舒适性.方便性.低公害.低成本的要求,各种各 ...

  3. Avalon总线概述

    Nios系统的所有外设都是通过Avalon总线与Nios CPU相接的,Avalon总线是一种协议较为简单的片内总线,Nios通过Avalon总线与外界进行数据交换. Avalon总线接口分类 可分为 ...

  4. 对 IIC 总线的理解、调用函数以及常见面试问题

    一.IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线.一根是数据线SDA, ...

  5. Linux驱动之I2C总线设备以及驱动

    [ 导读] 本文通过阅读内核代码,来梳理一下I2C子系统的整体视图.在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,导致没有一个清晰的思路.所以从高层级来分析一下I2C系统的设计思路,将有助于 ...

  6. SMBus set up a 2-byte EEPROM address for read/write

    Sequencer Engine spec: http://www.analog.com/media/en/technical-documentation/data-sheets/ADM1260.pd ...

  7. I2S (Inter—IC Sound) 总线

    I2S I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多 ...

  8. C8051 SMBus 原理

    一.SMBus总线   SMBus串行I/O接口完全符合系统管理总线规范 1.1 版.它是一个双线的双向串行总线,与I2C串行总线兼容.系统控制器对总线的读写操作都是以字节为单位的,由SMBus接口自 ...

  9. linux PMBus总线及设备驱动分析

    PMBus协议规范介绍 PMBus是一套对电源进行配置.控制和监控的通讯协议标准.其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus.AVSBus等特性.在其官网上有详细 ...

随机推荐

  1. Android Binder总结

    1. MediapplayerService 的启动,怎样在ServiceManager注冊的,不解说详细的细节 ServiceManager 是整个系统的Service总管,其余的系统服务都是通过d ...

  2. Appium+python自动化55-appium desktop每次启动安装Unlock和Appium Setting问题

    前言 部分真机可能会出现每次运行代码,启动app之前都会重复安装Unlock和Appium Setting这两个小工具,有的手机会自动安装,这个还好. 有的手机每次都会弹出一个安装确认框(如部分小米和 ...

  3. spm教程

    1.spm初学者教程:http://www.ernohermans.com/wp-content/uploads/2011/11/spm8_startersguide.pdf 2.spm官方mannu ...

  4. 尝试PWA

    1.一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能. 2.创 ...

  5. mysql中函数greatest 与MAX区别

    greatest (a,b,c,d,d)max(a) 这样就能看明白了,greatest 求的是某几列的最大值,横向求最大(一行记录)max(a) 一看就明白了,是给纵向求最大(多行记录).

  6. Python开发之AJAX全套

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  7. 【转】Ubuntu 18.04安装小记

    我的电脑是神舟z7 kp7s1,显卡1060,尝试了Ubuntu的16.04,安装完进入界面总是卡死了,后面换18.04依然无解,和版本无关,而是因为英伟达的显卡问题. 参考了如下这篇文章:Ubunt ...

  8. Fibre Channel和Fiber Channel

    Fibre Channel也就是"网状通道"的意思,简称FC.   由于Fiber和Fibre只有一字之差,所以产生了很多流传的误解. FC只代表Fibre Channel,而不是 ...

  9. 使用jQuery通过点击它删除HTML表格行-超简单

    jQuery的已成为所有时刻的最常用和最喜爱的JavaScript框架之一.它不仅不会减少在JavaScript编码简单的技术开销,而且也使您的代码的跨浏览器兼容.我已经写了许多关于jQuery教程, ...

  10. 【Web】Rest && 权限管理 && LDAP && OAuth && Nginx && Lua 等

    最好的8个 Java RESTful 框架:http://www.importnew.com/17138.html 如何设计RESTful的API权限:https://segmentfault.com ...