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

相关文章

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

Java集合之Iterator迭代器实现代码解析

《Java集合之Iterator迭代器实现代码解析》迭代器Iterator是Java集合框架中的一个核心接口,位于java.util包下,它定义了一种标准的元素访问机制,为各种集合类型提供了一种统一的... 目录一、什么是Iterator二、Iterator的核心方法三、基本使用示例四、Iterator的工

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

Java中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例解析

《Java中的分布式系统开发基于Zookeeper与Dubbo的应用案例解析》本文将通过实际案例,带你走进基于Zookeeper与Dubbo的分布式系统开发,本文通过实例代码给大家介绍的非常详... 目录Java 中的分布式系统开发基于 Zookeeper 与 Dubbo 的应用案例一、分布式系统中的挑战二