SMBUS与I2C
SMBUS(系统管理总线)基于I2C总线,主要用于电池管理系统中。它工作在主/从模式:主器件提供时钟,在其发起一次传输时提供一个起始位,在其终止一次传输时提供一个停止位;从器件拥有一个唯一的7或10位从器件地址。
SMBus只工作在从10kHz到最高100kHz(I2C则有100K/400K/3.45MHZ)。最低工作频率10kHz是由SMBus超时功能决定的,当SCL(主机提供)太低而超过35 ms时,从器件将复位正在进行的通信。相反,I2C采用主器件硬件复位。
SMBus需要一定数据保持时间(300nS),而 I2C总线则是从内部延长数据保持时间。
SMBus具有一种警报响应地址(ARA),因此当从器件产生一个中断时,它不会马上清除中断,而是一直保持到其收到一个由主器件发送的含有其地址的ARA为止。
上拉电阻的区别:SMBus(14k ohm@5V Vdd,8.5k ohm@3V Vdd不过这个定义并非牢不可破,就一般实务而言,在SMBus上也可用2.4k~3.9k ohm范畴的阻值);而I2C(1.6k ohm@5V Vdd,1k ohm@3V Vdd)。
ACK与NACK:I2C可以ACK也可NACK;但SMBUS必须ACK,安全可靠性要求更高。
命名的区别:I2C(SDL/SCL);
SMBUS: SMBDat,SMBCLK;SMBSUS(OC门,需要上拉,终端提醒主设备,低有效)
电气特性区别:
I2C的Hi/Lo逻辑准位有两种认定法:相对认定与绝对认定(Vdd的电压),Hi为0.7 Vdd,Lo为0.3Vdd,
绝对认定则与TTL准位认定相同,直接指定Hi/Li电压,Hi为3.0V,Lo为1.5V。
SMBus只有绝对认定,且准位与I2C有异,Hi为2.1V,Lo为0.8V,与I2C不全然吻合但也算部分交集。不过,SMBus后来也增订一套更低电压的准位认定,Hi为1.4V,Lo为0.6V,这是为了让运用SMBus的装置能更省成本而有的作法。
电流的区别:I2C(正常工作电流3mA,漏电流10uA);SMBUS(正常工作电流100uA,漏电流1~5uA)
SMBUS总线协议:
数据在SMBCLK为高时必须稳定,在SMBCLK为低时才允许变化;
- 开始和结束条件并不总是由总线主器件产生的。在开始条件产生后,总线就被认为处于忙碌状态。当出现结束条件或SMBCLK和XMBDAT两条线维持在高电平的时间超过THIGH:MAX后,总线处于闲置状态。
每个字节包含八个比特。在总线上每个字节传输完都必须紧跟一个确认比特。字节在传输时都都先传送最高位(MSB)
为了确认一个字节,接收端必须在时钟脉冲的高电平阶段,根绝SMBus的时序规范,将SMBDAT拉到低
4 SMBUS除了和I2C一样具有0x00的广播地址外,还有b0001000R/W来表示警报响应地址


数据有效性 图4-2:开始和结束条件
图4-4:SMBus的ACK和NACK信号

SMBUS与I2C的更多相关文章
- SMBus与I2C的差别
The I²C bus and the SMBus are popular 2-wire buses that areessentially compatible with each other. - ...
- Linux设备驱动模型之I2C总线
一.I2C子系统总体架构 1.三大组成部分 (1)I2C核心(i2c-core):I2C核心提供了I2C总线驱动(适配器)和设备驱动的注册.注销方法,提供了与具体硬件无关的I2C读写函数. (2)I2 ...
- Linux I2C总线控制器驱动(S3C2440)
s3c2440的i2c控制器驱动(精简DIY),直接上代码,注释很详细: #include <linux/kernel.h> #include <linux/module.h> ...
- Linux I2C设备驱动编写(一)
在Linux驱动中I2C系统中主要包含以下几个成员: I2C adapter 即I2C适配器 I2C driver 某个I2C设备的设备驱动,可以以driver理解. I2C client 某个I2C ...
- 【转】Linux I2C设备驱动编写(一)
原文网址:http://www.cnblogs.com/biglucky/p/4059576.html 在Linux驱动中I2C系统中主要包含以下几个成员: I2C adapter 即I2C适配器 I ...
- SMBus
SMBus (System Management Bus,系统管理总线) 是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯.希望通过一条廉价并且功能强大的总线(由两条线组成) ...
- I2C(三) linux3.4(内核分析)
目录 I2C(三) linux3.4(内核分析) (一)总线流程 bus.probe match i2c_device_probe (二)client注册 方式(一)静态加载 方式(二)指定设备 方式 ...
- 针对piix4_smbus ****host smbus controller not enabled的解决方法
SMBus 目录 SMBus与I2C的差别 SMBus 是 System Management Bus 的缩写,是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯.它主要是希望 ...
- i2c总线驱动,总线设备(适配器),从设备,从设备驱动的注册以及匹配
常用链接 我的随笔 我的评论 我的参与 最新评论 我的标签 随笔分类 ARM裸机(13) C(8) C++(8) GNU-ARM汇编 Linux驱动(24) Linux应用编程(5) Makefile ...
随机推荐
- win10 解决.net framework 3.5 安装报错 0x80240438
打开注册表:cmd+r 输入regedit,确定:找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU ...
- Java下载文件时文件名中的中文变成下划线,其他正常
将 utf-8 转换成 ISO8859-1 编码 response.addHeader("Content-Disposition", "attachment;filena ...
- Codeforces Global Round 3:B. Born This Way
Born This Way原文链接:[传送门] 题目大意:潇洒哥想乘坐飞机从A地到达C地,但是没有直达的航班,在A地和B地之间有一个可以中转的航班B,潇洒哥想早点到达C地(有航班就坐),但是很不幸他得 ...
- Can't bind to 'ngModel' since it isn't a known property of 'input'.
angular项目启动报错 Can't bind to 'ngModel' since it isn't a known property of 'input'. 原因:当前module模块未引入 ' ...
- 欧拉降幂 (a^t)%c 模板
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll a,c,p,mod; ]; ll phi(ll ...
- Go流程结构(if)
一.程序的流程结构 程序的流程控制结构一共有三种:顺序结构,选择结构,循环结构. 顺序结构:从上向下,逐行执行. 选择结构:条件满足,某些代码才会执行.0-1次 分支语句:if,switch,sele ...
- 移动APP漏洞自动化检测平台建设
移动APP漏洞自动化检测平台建设 前言:本文是<移动APP客户端安全笔记>系列原创文章中的第一篇,主要讲的是企业移动APP自动化漏洞检测平台建设,移动APP漏洞检测发展史与前沿技术,A ...
- 读写json文件
def read_json(path): """return dict""" with open(path,'r+')as f: retur ...
- AD10如何新建一个集成库
1.新建一个集成库工程 2.添加原理图库 3.添加封装库 4.最关键的一步:对这个工程需要进行编译 5.在界面的右边就能看到自己建的封装库了
- java8date
Java 8:新的时间和日期API 在Java 8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法.Java ...