DSP SMBus总线通信

news/2024/12/29 3:55:46/

参考文档:System Management Bus (SMBus) Specification Version 3.0.pdf

简介:

SMBus(System Management Bus)于1995年被 Intel 提出,应用于低速率通信,是一种二线制串行总线,该总线大部分基于 IIC 总线规范,为 IIC 总线的扩展。

一般特性:

设备可能由总线 VDD 供电或通过其他电源 Vbus 供电,只要他们符合 SMBus 电气规范。

SMBus 拓扑结构

第一层 - 物理层

SMBus 通用 AC 规范:

高功率和低功率的 SMBus 设备共享一个通用的 AC 规范:

SMBus 通用 AC 规范

 

高低功率 DC 规格:

 

第二层:数据链路层 

数据有效性:

数据有效性

 起始和停止条件:

起始和停止条件

时钟低延展

SMBus 提供了一种时钟同步机制来允许不同速率的设备在总线上共存。除了总线仲裁程序,此种时钟同步机制可以在位传输或字节传输期间使用,使得较慢速度的从设备可以应付速度较快的主设备。

在位级,设备可通过周期性地延展时钟低间隔来降低总线速度。

设备可以在一条信息的的过程中在 AC 规范的最大范围内来延展时钟。尽管如此,设计用于周期性地延展每个时钟周期的设备必须保持最小频率为10khz(1/fSMB,MIN=100µs),以维持 SMBus 的带宽。

时钟低延展必须在 SMBCLK 的高到低的下降跳变后才开始,并限制在时钟信号低电平时间最低值到数据设置时间的范围(tLOW:MIN - tSU:DAT)内。

通过 SMBus 从设备进行周期性时钟延展
随机时钟延展

 第三层:网络层

主设备(Master devices)、从设备(Slave devices)、主机(Host

主设备:

主设备发出命令、生成时钟并且终止传输。

从设备:

用于接收或响应命令。

主机:

为 CPU 或系统管理处理器提供了主要接口。主机必须是主从主机,并且必须支持 SMBus 主机通知协议。

 

总线通信协议

1. 快速命令协议(开关/使能控制)【Quick Command Protocol】

从机地址的 R/W 位表示该命令。R/W 位可用于简单地打开或关闭设备功能,或启用/禁用低功耗待机模式。该命令适用于对 SMBus 规范支持有限的非常小的设备,它还限制了简单设备总线上的数据。

2. 发送字节协议【Send Byte Protocol】

一个简单的设备可以识别它自身的从地址并且接收跟在地址后面的一个字节,多至256种组合的编码命令 。

3. 接收字节协议【Receive Byte Protocol】

接收字节协议与发送字节协议类似,唯一的区别在于数据传输的方向。一个简单的设备可能包含主机需要的信息,因此需要使用此协议。同一设备同时具有接收字节和发送字节协议。在读传输结尾需要 NACK (“1”在 ACK 位)。

4 写字节/字协议【Write Byte/Word Protocol】

写字节/字协议的第一个字节是访问命令代码。接下来的一或两个字节,依次是将要写入的数据。

主设备发送带写位的从设备地址,从设备发出响应,主设备传递命令代码,从设备在主设备发送数据字节或数据字(先发低字节)之前再次响应,从设备响应每个字节的传输,最后整个操作随着停止位结束。

5 读字节/字【Read Byte/Word】

读数据比写数据稍为复杂。

首先主机(host)必须对从设备写命令代码,然后紧跟命令代码发送重复开始位(Repeated START)来表明开始从从设备读数据,然后从设备返回一个或者两个字节数据。

注意,在重复开始位前没有停止位,NACK表示读传输结束

6 过程调用协议【Process Call】

过程调用协议就是发送一些命令数据,等待从设备返回基于数据的值。

7 块写协议【Block Write】

块写最多允许传输 255 字节数据。 

8 块读协议【Block Read】

块读最多允许传输 255 字节数据。

9 块写-块读过程调用【Block Write-Block Read Process Call】

10 SMBus 主机通知协议【SMBus Host Notify Protocol】

当一个 SMBus 主设备要和 SMBus 主机(作为从设备)通信时必须用这个协议。

11 写32位协议【Write 32 Protocol】

此协议用来对从设备发送最多32位(4字节)的数据。

12 读32位协议【Read 32 Protocol】

此协议用来对从设备读取最多32位(4字节)的数据。

13 写64位协议【Write 64 Protocol】

14 读64位协议【Read 64 Protocol】

 

 

 


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

相关文章

SMBus总线与I2C总线的区别

reference: http://smbus.org/specs/ 1、介绍 系统管理总线(SMBus)是一个两线接口。通过它,各设备之间以及设备与系统的其他部分之间可以互相通信。它基于I2C操作原理。SMBus为系统和电源管理相关的任务提供一条控制总线。一个系统利用SMBus可以和多个设备互传信息…

什么是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 完成…