PMBus > SMBus > I2C 关系解析

一、SMBUS

    SMBus 全称 System Management Bus,即系统管理总线。一种基于I2C而扩展出来的协议,是 I2C 协议的一个子集。但SMBus 要求更严格,规定了更多细节与规范。有一些更为复杂的操作,但是原理都还是基于I2C。

    SMBus 为系统和电源管理这样的任务提供了一条控制总线,使用 SMBus 的系统,设备之间发送和接收消息都是通过 SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。

    SMBus可用于需要对参数进行关键监控的应用。包括系统传感器,EEPROM 通讯设备等等,它最常见的应用是计算机主板和嵌入式系统。对于温度、电源电压、风扇监控和或控制集成芯片,它有额外的监控规范。

    SMBus器件每次收到其自己的地址时,无论在做什么,它都必须应答(ACK),这是一个明确要求,目的是确保主器件可以准确地判断总线上哪些器件处于活动状态。所有SMBus事务都通过指定的SMBus协议之一执行。

    SMBus还有一个可选信号SMBALERT#,节点器件可以使用该信号块速通知主器件或系统主机,它有主器件需要的信息,例如报告故障情况。 

SMBus 拓扑结构 

  

SMBus 拓扑结构 

    SMBus是一种2线总线。两个主要信号是时钟(SMBCLK)和数据(SMBDAT)。I2C Primer和SMBus相互兼容,但存在明显差异。 

    I2C规范仅描述了2线总线的物理层、时序和流控制。I2C规范没有(像SMBus协议那样)描述消息的格式,也没有描述消息的内容。

  I2C、SMBUS的区别

SMBUS总线与I2C总线存在很大不同,具体体现在以下几个方面:

  • SMBUS逻辑电平阈值是固定的,和器件电源电压无关。所以,不同电源电压系统(1.8V、3.3V、5V),可以同时运行在SMBUS总线上。I2C 协议的范围很广,甚至讨论了高达 12V 的情况,而SMBus规定了在1.8V~5V。

  • 时钟的最高频率为100kHz,但I2C总线最高时钟频率可为100kHz和2MHz两个版本。I2C 没有时钟频率限制,一般最常见的是100k、400k,而SMBus规定时钟频率必须在10k~100k内。

  • SMBus规定了最低时钟速度速率为10kHz(与其超时时间有关)。并限制了时钟在一个事务中可以延展的量。违反超时限制会导致所有SMBus器件复位其I⁄O逻辑以允许总线重启。这种设计增强了总线的鲁棒性。

  • 二者的超时也不同。I2C Primer没有超时,而SMBus有超时——对于10 kHz最低时钟速度,可以考虑35 ms的超时。

  • 总线超时功能,当时钟信号保持低电平超过35ms时,将引发从设备的超时复位;I2C总线只能通过硬件进行复位。当设备需要处理内部事情时,可将时钟线拉低,I2C 没有规定拉低时长,而SMBus有规定时限。

  • 地址应答规定不同。一个 设备接收到它的设备地址后,I2C 协议没有强制要求必须发出回应信号,而SMBus:强制要求必须发出回应信号。

  • 提供分组差错检验(PEC)功能。分组差错校验(PEC)最初是为SMBus定义的。在每个事务的末尾添加一个分组错误码字节。

  • 较强的实时性,从设备每次接收到自己地址时,无论在做什么,都会有限回复应答信号(ACK),其主要的目的是为了让主设备知道各个从设备当前的状态。

  • 数据格式规定不同。I2C 没有定义数据的格式,格式由设备来定义,而SMBus 协议明确了数据的传输格式。

  • SMBus 有低功耗的版本

  • SMBUS还有一个可选信号SMBALERT#,从设备可以通过该信号快速通知主设备一些重要的信息,例如故障等。

  • 其余的一些差异涉及传输类型、警报线、暂停线、关断或上电。

     附注:I2C的时钟线称SCK或SCL,数据线称SDA。SMBus的时钟线称SMBCLK,数据线称SMBDAT。

二、PMBUS

   PMBus全称Power Management Bus,即电源管理总线,是系统管理总线 (SMBus) 的变体,是基于SMBUS,是一种开放标准电源管理协议,具有支持电源管理要求的命令和结构,旨在实现电源的数字管理。这意味着I2C Primer和PMBus在电气要求和命令语义上是兼容和可互操作的。

   PMBus在物理传输上,和SMBUS是完全一致的。由于 PMBus 是 SMBus 协议的扩展,因此它共享其大部分物理层以及总线的运行方式,除了电源控制和管理组件所需的一组特定命令和数据结构。

   PMBus同时与SMBus、I2C标准中的任何一个不同,它定义了大量特定于域的命令,而不仅仅是说如何使用读者定义的命令进行通信。

   PMBus基本参数之一是过压电平监控,PMBus提供了设置和读取该值的命令。PMBus可以附加在I2C Primer和SMBus的已有特性 上,充当现有标准(尤其是SMBus)之上的协议层。         

   PMBus规范是一个完整的电源管理协议。它说明了如何将比特和 字节从一个器件传送到另一个器件(即传输)。它还描述了一 种命令语言,赋予这些比特和字节以意义。

图片

物理层/传输

    PMBus 是一种低成本的双线接口,包括时钟信号 SMBCLK 和数据信SMBDAT。可选信号将换成两个 GPIO 引脚,包括 CONTROL 和 SMBALERT# 信号。

    与 I2C 相比,PMBus 支持更强大的协议,因为 PMBus 提供超时和可选的数据包错误检查 (PEC) 以增强数据完整性。超时可防止较慢的从器件将时钟线保持超过指定的超时间隔,从而避免总线挂断。PEC字节是使用CRC-8算法生成的,该算法用于验证事务的完整性,这在电源管理系统中通常至关重要。与 SMBus 一样,PMBus 包括用于通信的系统主机/总线主站和从设备(PMBus 设备)。

图片

数据格式

    与 I2C 类似,PMBus 是一个由 8 位数据字节组成的可变长度数据包。PMBus 的基本数据包结构包括一个地址字节,该地址字节由一个 7 位地址组成,以 1 位读取或写入信号结尾。然后是一个 8 位命令字节(包括命令代码),然后是一个或多个 8 位数据字节。(可选)也可能有一个 8 位 PEC 字节。每个字节都包含自己的接收方确认,并且每个事务都包含在主机的"启动"位和"停止"位之间。

电气性能

    PMBus 电气接口遵循与 SMBus 规范类似的规范。对于电源电压要求,工作电压范围(V断续器)电压可能为3 V至5 V±10%(2.7 V至5.5 V)。对于 400 kHz PMBus 设备,所需的下拉电流为 4 mA。

上拉电阻
电源内部的SCL或SDA线上只能使用弱上拉电阻。主要上拉电阻由系统提供,可以连接到3.3 V或5 V。对于系统设计,主要上拉电阻应位于电源外部,并从备用电源轨获取电源。

数据速度
电源中的PMBus器件应以100 kbps SMBus全速运行,并尽可能避免使用时钟延展,因为它会减慢总线速度。

应用方向

  PMBus 已越来越多地用于系统内的数字电源管理。PMBus 可与各种电源管理产品配合使用,例如 AC-DC 电源、隔离式 DC-DC 断开转换器、非隔离式负载点 (POL) 转换器、电源定序器和负载点电压编程器,以及监视器和风扇控制器。

专属优势

PMBUS优点

  • 易于设计。

  • 缩短了设计时间。

  • 能够监测电源,并筛选出设计不太好的电路板。

  • 使用全新的特定用途集成电路 (ASIC) 时,能够优化功率级(测量实际汲取的电流值,并且不必过度设计输出电感器和输出电容器)。

  • PMBus可以在不需要外部模拟组件的情况下,轻松创建全新电源设计,这样的话,您就不必在工作台上尝试新的电阻器和电容器时忍受烟熏火燎的痛苦了。

  • 通过一个图形化用户界面 (GUI),PMBus能够实现编程、排序、配置、控制、电压裕量调节、输出电压调节、以及参数和故障监视,这样可快速实现重新设计,并更加智能地对参数和观察到的故障做出响应。

  • PMBus IC可以免除对外部硬件监视器、监控器、温度传感器,以及针对延迟的分立逻辑电路的需要。

    图片

    图片

    图片

三、PMBUS、SMBUS的区别

  

四、I2C、SMBus、PMBus有何关系?
   

    SMBus最初开发用于协助电池管理系统,使用I2C硬件,但增加了第二级软件,最终允许器件热插拔,而无需重新启动系统。PMBus扩展了SMBus,定义了一组专门用于管理功率转换器的器件命令,暴露了器件的测量电压、电流、温度等属性。一般而言,I2C Primer、SMBus和PMBus器件可以共享总线而不会发生什么大问题。

五、I2C、SMB、PMB的共同点

优势

1、仅使用两条线

2、具有ACK/NACK位

3、广为人知的协议

4、支持多个主器件和多个节点

5、硬件比UART简单

6、广泛使用的方法

缺点

1、数据传输速率比SPI慢

2、数据帧的大小限制为8位

3、实现所需的硬件比SPI复杂

六、I2C、SMBus、PMBus规格总结

 

具体三者总线的地址和时序等详解见地址:

https://download.csdn.net/download/weixin_45365488/88844815

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/394549.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

05.QT坐标系

1. 坐标系原点 坐标系原点就是屏幕/窗口的左上角,X向右增长,Y向下增长。 2.设置控件位置 设置控件位置,就相当于是需要指定控件的坐标,对于该控件来说,其坐标原点是其父窗口/父控件的左上角。 设置方法就是通过控件的…

8.可观测性

可观测性 readinessProbe 就绪探针 Pod生命周期有几个不同阶段,Pod会有不同的状态。 刚创建Pod时,Pod处于Pending状态。调度程序会尝试找出放置Pod的位置。如果调度程序找不到要放置Pod的节点,它将保持Pending状态。 运行kubectl describe po…

【DBeaver+mysql】如何在DBeaver中创建mysql服务的连接并新建数据库

一、创建步骤 1、下载安装mysql 8.0(注意,安装过程会启动mysql服务,这才是能用命令行执行node处理sql语句的关键) 下载地址:https://dev.mysql.com/downloads/file/?id526407 2、下载安装DBeaver数据库管理IDE 3、在…

循环队列|超详细|数据结构学习讲解与笔记

队列元素先进先出队列只允许在线性表的一端进行操作,是一种操作受限的线性表 队列的基本操作 InItQueue(&Q)初始化队列,构造一个空队列 QEmptyQueue(Q)队列判空FullQueue(Q)队列判满EnQueue(&Q , x)入队操作DeQueue(&Q , &x)出队操作G…

铌酸锂芯片与精密划片机:科技突破引领半导体制造新潮流

在当今快速发展的半导体行业中,一种结合了铌酸锂芯片与精密划片机的创新技术正在崭露头角。这种技术不仅引领着半导体制造领域的进步,更为其他产业带来了前所未有的变革。 铌酸锂芯片是一种新型的微电子芯片,它使用铌酸锂作为基底材料&#x…

HTTP/1.1 如何优化?

问你一句:「你知道 HTTP/1.1 该如何优化吗?」 我们可以从下面这三种优化思路来优化 HTTP/1.1 协议: 尽量避免发送 HTTP 请求在需要发送 HTTP 请求时,考虑如何减少请求次数减少服务器的 HTTP 响应的数据大小 下面,就针对这三种思路具体看看有哪些优化…

【代码移植】UNIX/Linux/POSIX代码程序移植到Windows系统平台技术汇总与经验分享

​ 图片来源 UNIX (Linux) to Windows代码移植技术路线 MinGW MinGW/MinGW-W64是用Windows原生系统API实现的,在Windows上运行的GCC编译工具链,可以编译出Windows原生应用程序。 MinGW编译工具链的生态位和微软官方的MSVC类似。 优点 MinGW编译出…

(每日持续更新)jdk api之ObjectInputValidation基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整理、总结、定稿&…

fish终端下conda activate失败

【问题】fish终端下激活conda环境报错: >> conda activate base CondaError: Run conda init before conda activate ## 然而运行 conda init fish 仍旧无法解决【解决】 参考:https://github.com/conda/conda/issues/11079 方法一&#xf…

SQL-Labs靶场“1-5”关通关教程

君衍. 一、准备工作二、第一关 基于GET单引号字符型注入1、源码分析2、联合查询注入过程 三、第二关 基于GET整型注入1、源码分析2、联合查询注入过程 四、第三关 基于GET单引号变形注入1、源码分析2、联合查询注入过程 五、第四关 基于GET双引号字符型注入1、源码分析2、联合查…

JDBC核心技术

第1章 JDBC概述 第2章 获取数据库连接 第3章 使用PreparedStatement实现CRUD操作 第4章 操作BLOB类型字段 第5章 批量插入 第6章 数据库事务 第7章 DAO及相关实现类 第8章 数据库连接池 第9章 Apache-DBUtils实现CRUD操作图像 小部件

提高供应商收发文件效率的同时,如何保障数据的安全流转?

数据文件是制造业企业的核心竞争力,一旦发生数据外泄,就会给企业造成经济损失。之前就出现过像小米二级供应商因对其下游供应商管理不善,泄露了小米汽车前后保险杠的早期设计稿事件。制造业企业与供应商之间业务联系紧密,文件流转…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(二)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

AWK语言

一. awk awk:报告生成器,格式化输出。 在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行…

预检请求:为跨域请求保驾护航(下)

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Python面向对象:什么是面向对象程序设计

编程范式 编程即写程序or代码,具体是指程序猿用特定的语法数据结构算法编写代码,目的是用来告诉计算机如何执行任务。 如果把编程的过程比喻为练习武功,那么编程范式指的就是武林中的各种流派,而在编程的世界里最常见的两大流派就…

numpy模块:从基础到高级的完整指南【第88篇—NumPy数组操作】

numpy模块:从基础到高级的完整指南 在Python的科学计算领域,NumPy模块是一个不可或缺的利器。它提供了丰富的数学函数和矩阵操作,使得数据处理、分析和科学计算变得更加高效。本文将带你初步了解NumPy模块,并通过实例代码深入解析…

JUC并发编程

JUC并发编程 JUC概述 JUC是java.util.concurrent包的简称,即Java并发编程工具包,目的是为了更好地支持高并发任务,让开发者进行多线程编程时有效减少竞争条件和死锁线程。 并发编程 一些基本概念: 进程与线程: 进…

C#,二叉搜索树(Binary Search Tree)的迭代方法与源代码

1 二叉搜索树 二叉搜索树(BST,Binary Search Tree)又称二叉查找树或二叉排序树。 一棵二叉搜索树是以二叉树来组织的,可以使用一个链表数据结构来表示,其中每一个结点就是一个对象。 一般地,除了key和位置…

基于 Python 深度学习的车辆特征分析系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…