首页 > 代码库 > linux PMBus总线驱动设计分析

linux PMBus总线驱动设计分析

PMBus协议规范介绍

技术分享

 

PMBus是一套对电源进行配置、控制和监控的通讯协议标准。其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus、AVSBus等特性。在其官网上有详细的规范文档,本节不尝试翻译规范文档,重点记录作者在了解PMBus过程中的疑问和解答。

PMBus与I2C、SMBus的区别?

PMBus在SMBus(System Management Bus)基础上增加了一套电源配置、控制和监控规范。SMBus最初是为电池智能管理而开发的一套标准,其基于I2C协议,并针对I2C协议的弱健壮性做了如下改进:

  • 支持SMBALERT#中断;
  • 支持错包检测(PEC);
  • 支持包超时;
  • 支持START/STOP保护;
  • 支持Host Notify Protocol协议;

PMBus监控哪些参数?告警分为几级?不同告警级别有什么样的应对措施?

技术分享

 

PMBus支持电压、电流、功率、温度和风扇等参数的上下限监控,支持warning和fault 2级告警级别(如上图所示)。

  • warning告警:表示监控参数异常,系统需引起关注,但可以继续运行,系统无需任何响应措施;
  • fault告警:比warning告警级别高,系统会根据异常对设备的危害情况,进行设备控制电路重启(restart)或输出切断(shutdown)等处理;

告警产生时如何上报给主机?

告警上报一般有如下几种方式:

  • 主机轮询PMBus设备;
  • PMBus设备通过SMBALERT#中断通知主机;
  • Host Notify Protocol(PMBus设备临时切换成总线主机(bus master),并发送一组特定协议通知系统主机)。

什么情况下告警会取消或清除?重启是否会清除告警?

任何warning或fault告警一旦上报,只有通过如下几种方式可以取消清除:

  • PMBus设备接收到CLEAR_FAULTS命令;
  • PMBus设备RESET引脚生效;
  • PMBus设备通过CONTROL引脚或OPERATION命令关闭并重新打开;
  • 断电;
  • 如果异常一直存在,那么即使进行告警清除操作,告警会马上重新上报。

linux PMBus驱动设计分析

linux PMBus总线驱动设计分析