之前写过一篇关于SMBus的帖子(《还有不了解SMBus的吗?快点开帖子看看吧!还有不了解SMBus的吗?快点开帖子看看吧!》https://forum.eepw.com.cn/thread/379130/1
一、介绍系统管理总线(SMBus)是一个双线接口,各种设备可以通过它相互通信,其基于I2C的工作原理。 SMBus为系统和电源管理相关任务提供控制总线。 系统可以使用SMBus在设备之间传递消息。
SMBus规范中定义了三种类型的设备:
1、slave,是接收或响应命令的设备;
2、master,是一种发出命令、生成时钟和终止传输的设备。主机是为系统CPU提供主接口的专用主机。
3、host,必须是master,并且必须支持SMBus主机通知协议。一个系统中只能有一个host;
二、SMBus与I2C的相似点1、两者均是2线制,对于SMBus有一条可选的额外告警信号线;
2、两者均是主-从通讯方式,主机提供同步时钟;
3、兼容多主机模式;
4、SMBus的通讯帧格式与I2C的7位地址帧格式近似;
三、SMBus与I2C的差异点四、SMBus应用用途利用系统管理总线,设备可提供制造商信息,告诉系统它的型号/部件号,保存暂停事件的状态,报告不同类型的错误,接收控制参数,和返回它的状态。SMBus为系统和电源管理相关的任务提供控制总线。
五、设备标识在系统管理总线上,任何一个作为从模式的设备都有一个唯一的地址,叫做从地址。保留的从地址表请参考SMBus规范。
六、总线协议SMBus技术规范支持9个总线协议。有关这些协议的详细资料和SMBus地址类型,请参考SMBus规范。这些协议由用户的软件来执行。
七、地址解析协议(ARP)SMBus从地址冲突可以通过给每个从设备动态分配一个新的唯一地址来解决。ARP有以下的属性:
地址分配利用标准SMBus物理层仲裁机制;
当设备上电期间,分配的地址保持不变,并允许设备在断电时保留其地址;
在地址分配后,没有额外的SMBus的打包开销(也就是说访问分配地址的设备与访问固定地址的设备所用时间是一样的);
任何一个SMBus主设备可以遍历总线。
为了提供一种为进行地址分配目的而区分每个设备的机制,每个设备必须拥有一个唯一的设备标识符。关于在ARP上128位的UDID细节的信息,参考SMBus规范。
九、SMBus提醒模式SMBus提醒是一个带中断线的可选信号。SMBALERT和SCL和SDA信号一样,是一种线与信号。SMB-ALERT通常和SMBus广播呼叫地址一起使用。与SMBus有关的消息为2字节。单一的从设备可以通过SMB-ALERT发信号给主机表示它希望进行通信,这可通过设置I2C_CR1寄存器上的ALERT位实现。主机处理该中断并通过提醒响应地址ARA(Alert Response Address,地址值为0001100x)访问所有SMB-ALERT设备。只有那些将SMB-ALERT拉低的设备能应答ARA。此状态是由 I2C_SR1寄存器中的SMBALERT状态标记来标识的。主机执行一个修改过的接收字节操作。由从发送设备提供的7位设备地址被放在字节的7个最高位 上,第八个位可以是0或1。如果多个设备把SMB-ALERT拉低,最高优先级设备(最小的地址)将在地址传输期间通过标准仲裁赢得通信权。在确认从地址后,此设备不得再拉低它的SMB-ALERT,如果当信息传输完成后,主机仍看到SMB-ALERT低,就知道需要再次读ARA。没有执行SMB-ALERT信 号的主机可以定期访问ARA。有关SMBus提醒模式的更多详细资料,请参考SMBus规范。
十、超时错误