DSP SMBus总线通信

article/2025/9/13 21:03:57

参考文档: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://chatgpt.dhexx.cn/article/ytiLKCLk.shtml

相关文章

linux i2c smbus驱动

目录 目录 数据收发流程 驱动层 收发接口 驱动层注册 smbus控制器 i2c控制器 协议接口使用 总体流程 数据收发关键数据结构 使用示例--eeprom的读写 使用示例--smbus的读写接口 数据收发流程 驱动层 收发接口 首先了解,驱动层向协议(算法&a…

初学 SMBus

(这篇主要对象为固件工程师,简单介绍SMBus的一些基本概念而已) 概述 System Management Bus (简称SMBus或是SMB) ,是1995年由Intel提出的,用来访问主机板上的设备(EEPROM、温度感测器、电压感测器等) 并收集相应的资讯(SPD、温度、电压、版…

SMBus协议

SMBus协议 文章目录 SMBus协议参考资料:一、 SMBus是I2C协议的一个子集二、 SMBus协议分析2.1 symbols(符号)2.2 SMBus Quick Command2.3 SMBus Receive Byte2.4 SMBus Send Byte2.5 SMBus Read Byte2.6 SMBus Read Word2.7 SMBus Write Byte2.8 SMBus Write Word2.…

系统管理总线(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. …

SMBus学习记录

SMBus学习记录 注:本文基于对于smb3.0 spec的学习总结。更多时序要求需要查阅spec。 SMBus 是 System Management Bus 的缩写,译为系统管理总线,SMBus是一种二线制串行总线,1996年第一版规范开始商用。它大部分基于I2C总线规范。…

SMBus通信,与IIC通信的差异

SMbus总线 SMBus是System Management Bus的缩写,它是一种简单的串行通信总线,用于连接计算机上的系统管理芯片和其他设备,如电池、风扇、温度传感器等。SMBus是由英特尔公司开发的,它基于I2C总线协议,但是增加了一些额…

【Linux】特别篇--SMBus 协议

【Linux】特别篇--SMBus 协议 一、SMBus 简介二、SMBus 与 I2C 区别三、SMBus协议分析3.1 符号含义3.2 SMBus Quick Command3.3 SMBus Receive Byte3.4 SMBus Send Byte3.5 SMBus Read Byte3.6 SMBus Read Word3.7 SMBus Write Byte3.8 SMBus Write Word3.9 SMBus Block Read3.…

SMBUS的介绍与访问

博文是为了总结自己在bios学习上面的点点滴滴,并且加深印象,由于本人水平有限,难免存在不足之处,望指正,同时感谢CSDN提供的平台。本文主要介绍的是SMBUS。 1 SMBUS的简介 特点: SMBUS,System …

java完整开发环境搭建_如何搭建一个完整的Java开发环境

这篇文章主要教大家如何搭建一个完整的Java开发环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课。环境的配置,大概就分三个…

1.1-java开发环境搭建

java开发环境搭建 回到第一章:目录 文章目录 java开发环境搭建前言一、下载jdk1.安装前检查 二、安装jdk1.安装2.配置环境变量3.验证安装 前言 本节内容是搭建java的开发环境。 分为三步:下载jdk;安装jdk;配置环境变量&#xff…

Windows Java开发环境搭建

1.下载安装配置 JDK 8 打开 https://developer.oracle.com/找到 Java8 下载位置,点击下载链接,下载JDK 8 下载后如下图所示,双击安装一直选择选择下一步 2.下载安装 Eclipse点击官网下载 Eclipse下载后就是一个压缩包,只需解压即…

基于Centos7的Java开发环境搭建

基于Centos7的Java服务器搭建 前提:Centos常用命令安装 1. 安装wget yum -y install wget2. 安装gcc yum -y install gcc1. Centos7下的防火墙操作 systemctl status firewalld # 查看防火墙状态 systemctl start firewalld # 开启防火墙 systemctl stop fi…

Java开发环境的搭建与配置

Java开发环境的搭建与配置 1、JDK、JRE、JVM的关系 2、JDK的下载:http://java.sun.com 3、JDK安装:可以自定义安装路径 4、JDK环境变量配置: 鼠标右击【计算机】->【属性】->【高级系统设置】->【高级】->【环境变量】 系统变…

Java开发环境搭建实践

前言 刚刚弄完python的环境搭建,今年打算也要好好学习Java,所以把Java的环境弄起来 搭建过程 jdk下载和安装 下载 官网:Oracle 甲骨文中国 | 云应用和云平台 打开官网 点击产品后下拉找到Java点进去。 下载Java 我就下载最新的jdk把…

程序员福音 【完整的Java开发环境搭建】 系列篇

原文地址 BY Jason 文章目录 原文地址Java开发环境搭建统一问题解决(更新中)1. vim常用操作命令2. 关于Linux防火墙开放端口问题 环境安装目录(更新中)Docker安装容器安装SSHJDK安装MySQL安装Redis安装RabbitMQ安装 Java开发环境…

Windows下Java开发环境搭建

本文以Win7操作系统解压版Eclipse安装版JDK1.7为例,展示如何搭建初级Java开发环境。 第一步:根据自己电脑的操作系统的位数选择相应版本的安装包进行安装: (1)查看自己电脑操作系统位数:找到“计算机”图标…

Java开发环境搭建详细教程(JDK+Eclipse)

前言 学习 Java 编程的第一件事情就是把开发环境搭建起来,这样才能开始快乐的编程学习之旅。然而,很多萌新经常因为种种问题无法搭建好开发环境,导致自己信心受挫,学习兴趣和激情也大减,甚至因此彻底放弃学习 Java 编…

【Java编程进阶】Java开发环境搭建

文章详细讲述了 Java 开发环境的搭建,编写并运行第一个 Java 程序,为后续的 Java 学习做了准备工作。 推荐学习专栏:Java编程进阶之路 文章目录 1. 为什么安装JDK?2. JDK的下载安装3. 配置环境变量4. 第一个Java程序1. 为什么安装JDK? 什么是JDK? JDK是java软件开发包,…

Java开发环境搭建超全详解

在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必须阶段,只有开发环境搭建好了,方可进行开发,良好的开发环境搭建,为后续的开发工作带来极大便利。 对于大公司来说,软件开发环境搭建工…

JAVA开发环境的搭建(最新版)【2019.2.12】

JAVA环境搭建 JAVA(咖啡)这个名字很有意思这里我会教大家来找到泡咖啡需要的用品 一、下载环境包(找到茶杯) 首先,我们需要到Oracle官网去下载开发环境步骤如下 主页操作如下(可能会随着时间的变化网页布局会改变,不要慌&#…