C8051 SMBus 原理
一、SMBus总线
SMBus串行I/O接口完全符合系统管理总线规范 1.1 版。它是一个双线的双向串行总线,与I2C串行总线兼容。系统控制器对总线的读写操作都是以字节为单位的,由SMBus接口自动控制数据的串行传输。其接口工作电压3.0V~5.0V之间,总线上不同器件的丁作电压可以不同。时钟线SCL和数据线SDA都是双向的,按照SMBus的标准,两条线上都需要上拉电阻将他们接到电源电压。在没有数据传输时,两条线都处于高电平.使得器件能够检测到总线的空闲状态。
二、工作过程
一次典型的 SMBus 数据交换包括一个起始条件(START)、一个地址字节、一个或多个字节数据和一个停止(STOP)条件。每个地址字节和每个数据字节后面都跟随一个来自接收器的确认(ACKNOWLEDGE)位。地址字节包含一个 7 位的地址和一个方向位(R/W)。方向位占据地址字节的最低位。方向位被设置为逻辑‘1’时表示这是一个“读”(READ)操作,方向位为逻辑‘0’表示这是一个“写”(WRITE)操作。所有从器件都能识别一个通用呼叫地址(0x00 + R/W),这就允许一个主器件同时访问多个从器件。
所有的数据交换都由主器件启动,可以寻址一个或多个目标从器件。主器件产生一个起始条件,然后发送地址和方向位。如果本次数据交换是一个从主器件到从器件的写操作,则主器件每发送一个数据字节后等待来自从器件的确认。如果是一个读操作,则由从器件发送数据并等待主器件的确认。在数据传输结束时,主器件产生一个停止条件,结束数据交换并释放总线
写操作:首先发送该器件的7位地址码和写方向位(0)。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为响应,单片机收到应答后就可以传送数据了。传送数据时,单片机首先发送被写入器件的存储区的首地址。收到存储器器件的应答后,单片机就逐个发送各数据字节,每发送一个字节后都要等待应答。当要写入的数据传送完后,单片机应发出终止信号以结束写入操作。具体过程如下图所示:

读操作:首先发送该器件的7位地址码和写方向位(0:伪写)。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为响应。然后,单片机再发送要读出器件的存储区的首地址。收到存储器器件的应答后,单片机要重复一次起始信号并发出器件地址和读方向位(1)收到器件应答后就可以读出数据字节。每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。

C8051 SMBus 原理的更多相关文章
- SMBus总线概述
1.概述: 系统管理总线是一种两线制接口.它基于I2C 总线原理演变而来,可以认为是简化版的I2C总线. SMBus最初是应用到智能电池,如电池充电器和一个微控制器.其提供一个系统和电源管理相关的任务 ...
- I2C(smbus pmbus)和SPI分析
2C和SPI作为两种非常常用的低速外部总线 I2C I2C是以前的飞利浦半导体制定的标准,也就是如今的NXP. I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成.设备分主从,主设备提供时钟, ...
- 奇异值分解(SVD)原理与在降维中的应用
奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 线性判别分析LDA原理总结
在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...
- [原] KVM 虚拟化原理探究(1)— overview
KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...
- H5单页面手势滑屏切换原理
H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...
- .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理
.NET Core中间件的注册和管道的构建(1)---- 注册和构建原理 0x00 问题的产生 管道是.NET Core中非常关键的一个概念,很多重要的组件都以中间件的形式存在,包括权限管理.会话管理 ...
- python自动化测试(2)-自动化基本技术原理
python自动化测试(2) 自动化基本技术原理 1 概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...
随机推荐
- ".NET Core Open Source Update"阅读笔记
原文链接:.NET Core Open Source Update [Immo Landwerth发布于2015年1月28日] corefx在github上的forks已经超过1000. 从2014年 ...
- glyphicons-halflings-regular.woff 404
此乃服务器不支持这种文件,因此需要修改一下配置,让IIS支持这种文件的访问 <system.webServer> 下增加节点: <staticContent> <rem ...
- PHP读取日志里数据方法理解
需要函数: fopen($file, "r")打开文件 fgets($file, 1024 * 10)读取一行,注意设置字节数大小,默认的1024B可能太小了 strpos($lo ...
- centos 防火墙设置
1.安装iptables防火墙 怎么知道系统是否安装了iptables?执行iptables -V,如果显示如: iptables v1.3.5 说明已经安装了iptables. 如果没有安装ipta ...
- SQL 2012 镜像 图解(解决1418)
概念:http://blog.chinaunix.net/uid-11231963-id-2150268.html 写的不错 1.环境准备 1.WIN7+SQL 2012 两台机器 如:10.58.8 ...
- HTML5骨骼动画Demo | 使用min2d、createjs、pixi播放spine动画
Spine做骨骼动画是比较流行的,使用起来可能相对复杂,但功能毕竟强大,所以市场占有率较大. 在unity.cocos2d.starling中使用spine已经很成熟了,而HTML5这一块可能刚刚起步 ...
- JAVA的安装与软件使用
1.JAVA的安装与环境 2.练习: (1)初识java (2)使用eclipse输出自己的名字
- C#中使用DES和AES加密解密
C#中使用DES和AES加密解密 2008-01-12 09:37 using System;using System.Text;using System.Security.Cryptography; ...
- HtmlDocument
HtmlDocument HtmlDocument类对应着一个HTML文档代码.它提供了创建文档,装载文档,修改文档等等一系列功能,来看看它提供的功能. 一.属性 int CheckSum { get ...
- Windows Server 2012 如何实现多个用户远程桌面登陆?
Windows Server 2012 如何实现多个用户远程桌面登陆?说明:Windows Server 2012默认情况下,只运行2个用户远程桌面登陆,这里我们可以通过安装远程桌面会话主机配置来实现 ...