SMBus总线与I2C总线的区别

news/2024/12/29 4:24:21/

reference: http://smbus.org/specs/

1、介绍
系统管理总线(SMBus)是一个两线接口。通过它,各设备之间以及设备与系统的其他部分之间可以互相通信。它基于I2C操作原理。SMBus为系统和电源管理相关的任务提供一条控制总线。一个系统利用SMBus可以和多个设备互传信息,而不需使用独立的控制线路。
系统管理总线(SMBus)标准涉及三类设备。从设备,接收或响应命令的设备。主设备,用来发布命令,产生时钟和终止发送的设备。主机,是一种专用的主设备,它提供与系统CPU的主接口。主机必须具有主-从机功能,并且必须支持SMBus通报协议。在一个系统里只允许有一个主机。

2、SMBus和I2C之间的相似点
2条线的总线协议(1个时钟,1个数据) + 可选的SMBus提醒线
主-从通信,主设备提供时钟
多主机功能
SMBus数据格式类似于I2C的7位地址格式

3、SMBus和I2C之间的不同点
下表为SMBus和I2C的不同点。

SMBus与I2C的比较SMBus                              I2C
最大传输速度  100kHz                 最大传输速度400kHz
最小传输速度  10kHz                  无最小传输速度
35ms时钟低超时                       无时钟超时
固定的逻辑电平                        逻辑电平由VDD决定
不同的地址类型(保留、动态等)            7位、10位和广播呼叫从地址类型
不同的总线协议(快速命令、处理呼叫等)     无总线协议

4、SMBus应用用途
利用系统管理总线,设备可提供制造商信息,告诉系统它的型号/部件号,保存暂停事件的状态,报告不同类型的错误,接收控制参数,和返回它的状态。SMBus为系统和电源管理相关的任务提供控制总线。

5、设备标识
在系统管理总线上,任何一个作为从模式的设备都有一个唯一的地址,叫做从地址。保留的从地址表请参考2.0版的SMBus规范

6、总线协议
SMBus技术规范支持9个总线协议。有关这些协议的详细资料和SMBus地址类型,请参考2.0版的SMBus规范)。这些协议由用户的软件来执行。

7、地址解析协议(ARP)
SMBus从地址冲突可以通过给每个从设备动态分配一个新的唯一地址来解决。ARP有以下的属性:
地址分配利用标准SMBus物理层仲裁机制
当设备维持供电期间,分配的地址仍保持不变,允许设备在断电时保留其地址。
在地址分配后,没有额外的SMBus的打包开销(也就是说访问分配地址的设备与访问固定地址的设备所用时间是一样的)。
任何一个SMBus主设备可以遍历总线。

8、唯一的设备标识符(UDID)
为了提供一种为进行地址分配目的而区分每个设备的机制,每个设备必须拥有一个唯一的设备标识符。
关于在ARP上128位的UDID细节的信息,参考2.0版的SMBus规范

9、SMBus提醒模式
SMBus提醒是一个带中断线的可选信号,用于那些希望扩展他们的控制能力而牺牲一个引脚的设备。SMBALERT和SCL和SDA信号一样,是一种线与信号。SMBALERT通常和SMBus广播呼叫地址一起使用。与SMBus有关的消息为2字节。单一的从设备可以通过SMBALERT发信号给主机表示它希望进行通信,这可通过设置I2C_CR1寄存器上的ALERT位实现。主机处理该中断并通过提醒响应地址ARA(Alert Response Address,地址值为0001100x)访问所有SMBALERT设备。只有那些将SMBALERT拉低的设备能应答ARA。此状态是由 I2C_SR1寄存器中的SMBALERT状态标记来标识的。主机执行一个修改过的接收字节操作。由从发送设备提供的7位设备地址被放在字节的7个最高位上,第八个位可以是0或1。如果多个设备把SMBALERT拉低,最高优先级设备(最小的地址)将在地址传输期间通过标准仲裁赢得通信权。在确认从地址后,此设备不得再拉低它的SMBALERT,如果当信息传输完成后,主机仍看到SMBALERT低,就知道需要再次读ARA。没有执行SMBALERT信号的主机可以定期访问ARA。有关SMBus提醒模式的更多详细资料,请参考2.0版的SMBus规范

10、超时错误
在定时规范上I2C和SMBus之间有很多差别。SMBus定义一个时钟低超时,35ms的超时。SMBus规定TLOW:SEXT为从设备的累积时钟低扩展时间。SMBus规定TLOW:MEXT为主设备的累积时钟低扩展时间。更多超时细节请参考2.0版的SMBus规范I2C_SR1中的状态标志Timeout或Tlow错误表明了这个特征的状态。

11、如何使用SMBus模式的接口
为了从I2C模式切换到SMBus模式,应该执行下列步骤:
设置I2C_CR1寄存器中的SMBus位
按应用要求配置I2C_CR1寄存器中的SMBTYPE和ENARP位。
如果你想把设备配置成主设备,产生起始条件的步骤见15.4.2 I2C主模式。否则,参见15.4.1I2C从模式。
软件程序必须处理多种SMBus协议。
如果ENARP=1且SMBTYPE=0,使用SMB设备默认地址。
如果ENARP=1且SMBTYPE=1,使用SMB主设备头字段。
如果SMBALERT=1,使用SMB提醒响应地址。

12、I2C与SMBUS区别,及smbus实例

13、总结
I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线;
SMBus 为系统和电源管理这样的任务提供了一条控制总线,使用 SMBus 的系统,设备之间发送和接收消息都是通过 SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。
所以它们的区别很明显了,一个是该总线上连接设备自身可以控制总线(I2C,速率较高),想干嘛就干嘛,另一个是设备之间可以通过它来传送信息,但是速率比较慢,比如用在检测各元件状态并更新硬件设置引脚等,同时廉价是它的优点。**


http://www.ppmy.cn/news/571969.html

相关文章

什么是I3C总线?它和I2C和SMBus是什么关系?

计算机技术发展十分迅速,三十年前,一间房子大小的小型机的算力,到现在还比不上大家手机CPU的算力。令人吃惊的是,有这么一种38年前的技术,现在还在大家的电脑中运用十分广泛,甚至它的控制器在计算机中的个数…

SMBus总线概述

1.概述: 系统管理总线是一种两线制接口。它基于I2C 总线原理演变而来,可以认为是简化版的I2C总线。 SMBus最初 是应用到 智能电池,如电池充电器和一个微控制器。其提供一个系统和电源管理相关的任务控制总线。如今,SMBus总线可以连接的设备类型更多样化,包括与电源相关的设…

Long.valueOf 将字符串、integer类型转换为long类型

直接看代码: public class MyTest {public static void main(String[] args) {Integer a 1;String b "123";Long aLong Long.valueOf(a);Long bLong Long.valueOf(b);System.out.println(aLong);System.out.println(bLong);} }输出结果: …

系统管理总线(SMBus)介绍

SMBus介绍 系统管理总线协议概要系统管理总线 关键标记表SMBus接口函数1. SMBus Quick Command2. SMBus接收字节函数:i2c_smbus_read_byte()3. SMBus发送字节函数:i2c_smbus_write_byte()4. SMBus读取字节函数:i2c_smbus_read_byte_data()5. …

计算机内部总线详解

文章目录 总线概述地址总线位宽 数据总线位宽CPU性能指标 例题 总线概述 众所周知,总线就是用来帮助连接两个或多个计算机组件,用于数据传输,计算机内部存在三种类型的总线: 地址总线:用于传输指示计算机中的内存或外…

提高办公效率用什么?表单开发工具好不好用?

在办公流程化繁盛发展的今天,越来越多的企业希望通过专业的软件和工具提升办公协作效率,朝着数字化和流程化管理的方向靠近。那么,如何提高办公效率?如何提高表格制作质量和效率?表单开发工具是专业的办公软件平台之一…

出现“应用程序发生异常,未知的软件异常(0XC06D007E)”解决方法

winR-输入cmd→回车 然后把下面这行字符复制到黑色cmd框即在命令提示符后击鼠标右键→粘贴→回车,耐心等待,直到屏幕滚动停止。 (下面是要运行的代码): for %1 in (%windir%\system32*.dll) do regsvr32.exe /s %1 完成…

关于使用工具包,应用程序中发生了无法处理的异常。如果单击“继续”,应用程序忽略错误尝试继续运行。点击退出,应用程序将会“关闭”。异常来自HRESULT:0x80040228的错误问题!

项目场景: 在使用工具包导出图层的时候 问题描述 遇到了这样一个错误;应用程序中发生了无法处理的异常。如果单击“继续”,应用程序忽略错误尝试继续运行。点击退出,应用程序将会“关闭”。 原因分析: 这是我在使用表…