PMBus > SMBus > I2C 关系解析

2024-02-18 23:52
文章标签 关系 解析 i2c pmbus smbus

本文主要是介绍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

这篇关于PMBus > SMBus > I2C 关系解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/722861

相关文章

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

使用Java实现一个解析CURL脚本小工具

《使用Java实现一个解析CURL脚本小工具》文章介绍了如何使用Java实现一个解析CURL脚本的工具,该工具可以将CURL脚本中的Header解析为KVMap结构,获取URL路径、请求类型,解析UR... 目录使用示例实现原理具体实现CurlParserUtilCurlEntityICurlHandler

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

深入解析Spring TransactionTemplate 高级用法(示例代码)

《深入解析SpringTransactionTemplate高级用法(示例代码)》TransactionTemplate是Spring框架中一个强大的工具,它允许开发者以编程方式控制事务,通过... 目录1. TransactionTemplate 的核心概念2. 核心接口和类3. TransactionT

数据库使用之union、union all、各种join的用法区别解析

《数据库使用之union、unionall、各种join的用法区别解析》:本文主要介绍SQL中的Union和UnionAll的区别,包括去重与否以及使用时的注意事项,还详细解释了Join关键字,... 目录一、Union 和Union All1、区别:2、注意点:3、具体举例二、Join关键字的区别&php

Spring IOC控制反转的实现解析

《SpringIOC控制反转的实现解析》:本文主要介绍SpringIOC控制反转的实现,IOC是Spring的核心思想之一,它通过将对象的创建、依赖注入和生命周期管理交给容器来实现解耦,使开发者... 目录1. IOC的基本概念1.1 什么是IOC1.2 IOC与DI的关系2. IOC的设计目标3. IOC

java中的HashSet与 == 和 equals的区别示例解析

《java中的HashSet与==和equals的区别示例解析》HashSet是Java中基于哈希表实现的集合类,特点包括:元素唯一、无序和可包含null,本文给大家介绍java中的HashSe... 目录什么是HashSetHashSet 的主要特点是HashSet 的常用方法hasSet存储为啥是无序的

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s