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 OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java+AI驱动实现PDF文件数据提取与解析

《Java+AI驱动实现PDF文件数据提取与解析》本文将和大家分享一套基于AI的体检报告智能评估方案,详细介绍从PDF上传、内容提取到AI分析、数据存储的全流程自动化实现方法,感兴趣的可以了解下... 目录一、核心流程:从上传到评估的完整链路二、第一步:解析 PDF,提取体检报告内容1. 引入依赖2. 封装

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.