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工作中就是 透过界面看数据. 掌握上面的这样的本领 ...
随机推荐
- C#设计模式(4)——抽象工厂模式
一.引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创 ...
- C#中 ToString 和 override ToString 的区别
public class p { public string ToString(){ return "p"; } } public class c:p{ public string ...
- 第十七章:android解析JSON
一.解析JSON数据: 首先引入包import org.json.JSONObject;(android sdk 14以后应该自带了 ) Android端的程序解析JSON和JSON数组: packa ...
- 实验七 状态机设计ADC0809采样控制电路
一.实验目的 学习用状态机实现A/D转换器ADC0809的采样控制电路. 二.实验内容 利用QuartusⅡ实现A/D转换器ADC0809的采样控制电路状态机设计:给出仿真波形.最后进行引脚锁定并进行 ...
- [WinAPI] API 12 [获取程序所在的目录、程序模块路径,获取和设置当前目录]
Windows系统提供一组API实现对程序运行时相关目录的获取和设置.用户可以使用GetCurrentDirectory和SetCurrentDirectory获取程序的当前目录,获取模块的路径使用G ...
- DDD Example
PART 1: http://www.infoq.com/presentations/model-to-work-evans PART 2: http://www.infoq.com/presenta ...
- Vue学习笔记1
目录 前言 1.vue和avalon一样,都不支持VM初始时不存在的属性 2.input元素中属性与v-model同时存在以属性为优先 3.VM中的函数放到data属性和methods属性中的区别,以 ...
- 浅谈压缩感知(二十六):压缩感知重构算法之分段弱正交匹配追踪(SWOMP)
主要内容: SWOMP的算法流程 SWOMP的MATLAB实现 一维信号的实验与结果 门限参数a.测量数M与重构成功概率关系的实验与结果 SWOMP与StOMP性能比较 一.SWOMP的算法流程 分段 ...
- 利用nodejs模块缓存机制创建“全局变量”
在<深入浅出nodejs>有这样一段(有部分增减): 1.nodejs引入模块分四个步骤 路径分析 文件定位 编译执行 加入内存 2.核心模块部分在node源代码的编译过程中就编译成了二级 ...
- paip.操作符重载的缺失 Java 的一个大缺点
paip.操作符重载的缺失 Java 的一个大缺点 #----操作符重载的作用 1.提升用户体验 操作符重载..可以让代码更加自然.... 2.轻松实现代码代码移植 例如 java代码会直接移植到 ...