smbus协议的command_SMBus总线概述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在电脑上显示未知发布者怎么办_电脑提示未知发布者 - 卡饭网

IE浏览器提示未知发布者安全警告怎么办IE浏览器提示未知发布者安全警告怎么办 IE浏览器提示未知发布者安全警告的解决方法, IE浏览器提示未知发布者怎么办?安下小编就来分析一下. 1.打开IE浏览器,从右上角打开Internet选项; 2.点击切换到"高级"选项卡; 3.在设置列表…

linux 邮件日志,linux下如何建立邮件日志

先关闭sendmailservice sendmail stopchkconfig sendmail off安装DNSmount /dev/cdrom /mntyum install bind-*配置主DNS服务器vim /var/named/chroot/etc/named.confoptions {directory "/var/named";};zone "daijingjie.com" {type master;file &qu…

linux 修改网卡报错xe,centos修改端口出现Failed to start OpenSSH server daemon 启动报错和-xe报错的解决方法...

修改SSH端口:# vi /etc/ssh/sshd_config里面找port 22,在前面加上#,去掉注释,然后把22改成你想要的端口。#port 22建议去掉注释之前,先增加你需要的端口,比如:12345端口,生效后在删除…

python中issubset是什么_python3解释器执行 {2, 3, 4}.issubset({2, 3, 4})的结果为__。

【单选题】一个1拖4的USB集线器,用外接电源供电的情况下,为下游USB供电的电流是()?【单选题】组成容量为128K32位的存储器,需用( )片具有16位地址码可同时存取8位数据的RAM集成芯片。【判断题】在排料过程中,系统可以自…

scp linux 自动化,expect(spawn) 自动化git提交和scp拷贝---centos(linux)

在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式#!/usr/bin/expect# 设置参数set src [lindex $argv 0]set dest [lindex $argv 1]set password [lindex $argv 2]set appId [lindex …

java或异运算_java中与运算,或运算,异或运算,取反运算

//与运算 & 规则 :都为1时才为1System.out.println( 7 & 9);/** 7二进制 0111* 9二进制 1001* -----------* 0001 1* *///或运算 | 规则:有一个为1,则为1System.out.println(7 | 9);/** 7二进制 0111* 9二进制 1001* ---…

迷你linux操作系统,自己动手做一个迷你型Linux操作系统

本文要构建的这个迷你型的 Linux 系统只能在一台特定的单机上运行,如果读者朋友们有兴趣的话,在这个系统的基础上加以改进,是可以构建出通用的、可以在大多数常规 PC 机上即插即用的系统来的。但是这已经不在本文的话题之内了,读者…

linux查看vtk版本,vtk在linux下的安装(12月8日更新)

安装前准备运行环境:ubuntu14.04 LTS, 64bit //本人在ubuntu 14.10下安装失败安装版本:vtk6.1.0.tar.gz vtkdata6.1.0.tar.gz编译器:g$ sudo apt-cache search gcc*g以保证能搜索到g,然后$ sudo apt-get install gmak…

手动开启群辉php_如何使用Synology从php页面连接到mysql服务器?

我有一个较旧的Synology设备(DSM v5.2-5967 Update 4,phpmyadmin v4.4.7-0103),它有一些带有工作php页面的本地网站.我想将其迁移到我的新Synology设备(DSM V6.1.3-15152 Update 1,phpmyadmin v4.6.6-0172).从Package Center安装新版本的phpmyadmin时,我也需要下载Maria DB和PH…

瑞斯康达nms_瑞斯康达接入网设备维护手册免费.pdf

瑞斯康达接入网设备维护手册免费瑞斯康达接入网设备维护手册瑞斯康达科技发展股份有限公司广东办事处编制二零一三年五月瑞斯康达接入网设备维护手册目录一、 MSAP 产品介绍 41、OPCOM3500E-12 设备简介 42、OPCOM3500E-6 设备简介 53、 ITN2100-12 设备简介 64、 ITN203 设备简…

linux gcc延时怎么写,Clang / GCC是否真的支持延迟加载功能?

如果您 确实经历过与上述标题相关的事情,您是否愿意对此发表评论?我试图使共享对象在Ubuntu上同时被Clang和GCC延迟加载(我实际上不介意使用哪个编译器),但是它们看起来并没有真正支持任何延迟加载功能(我期望延迟加载功能)在需要此功能时&am…

常数乘以无穷大等于多少_请教一个数学问题:无穷大乘以无穷小等于多少?

实在受不了了,只好出来说两句。好歹也是数学这一行的,看她被你们糟蹋成这样实在不忍心。“无穷大量”和“无穷小量”在高等数学中都是趋于特定极限的变量的称呼,一个变量在某一极限过程中趋于无穷大(小),那么此变量称为“无穷大(小…

深度linux支持安卓,深度操作系统 V20(1003)内测版招募:新增手机助手,支持安卓和 iOS 端,管理手机应用、文件...

IT之家9月28日消息 深度操作系统今天发布深度操作系统 20(1003)内测活动招募说明,IT之家获悉,本次操作系统将新增手机助手,支持安卓和iOS端,方便管理手机应用、文件等。更新说明:1、新增手机助手,支持安卓和…

java socket发送定长报文_java socket报文通信(二)报文的封装

昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文。什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料。我们今天要谈的报文主要友以下几个部分组成:3位同步校验位8位报文长度报文头报文体32位MD5校…

linux nginx 安装stream,Centos7-64bit-编译安装配置Nginx stream四层负载均衡 动态加载

Centos7-64bit-编译安装配置Nginx stream四层负载均衡 动态加载2018-08-10 17:12分享人:老牛yum install screen -y && screen -S nginxsudo yum -y groupinstall "Development Tools" && yum -y epel-release wget gc autoconf automake…

选择排序(java)

选择排序 选择排序是默认前面都是已经排序好的,然后从后面 选择最小的放在前面排序好的的后面,首先第一轮循环的时候默认的排序好的为空,然后从后面选择最小的放到数组的第一个位置,第二轮循环的时候默认第个元素是已经 排序好的…

asp:dropdownlist如何去掉三角箭头_科目二倒库打轮早会压库角,教练9图详解如何快速调车避免压线?...

大家都知道,科目二考试五项中,最难的项目就是倒车入库。史教练在给科二学员指导时,总是强调,练车时不要只记死点。科目二考试过程瞬息万变,学员在倒库过程中,因为脚下离合没控制好,速度快了&…

linux以太网连接树莓派,如何在没有Internet的情况下直接连接到树莓派

描述Raspberry Pi的多功能性意味着您一定会在室外使用它,而这超出了无线网络的范围。那么,如何在不插入键盘和显示器的情况下与之通信呢?不言而喻,在不实际的情况下,要拖着人为输入设备并随身携带显示器。首先需要满足…

ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)

下面小编将分几段分别讲述不同的钢笔工具的快捷干货操作哈,学会这些再加上勤学苦练保证玩的六六哒!一、AI软件使用钢笔绘图如何断开路径绘制其他路径?钢笔绘制在AI中和PS的操作是一样的,不过有些细节大家都需要注意就是在绘制的过…

交换次数c语言,插入排序 - C中的比较和交换计数

如何计算插入排序中的比较次数和交换次数?我有10个随机数组。如果有人帮助我如何在这个程序中添加20,50,100,200,500,1000,2000和5000个随机数,我将会非常高兴。我一直在想这个很长时间,但仍然找不到解决办法。插入排序 - C中的比较和交换计数…