一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于GD32单片机的PMBUS接口电源板卡及其BMC控制方法与流程

2022-07-30 17:07:51 来源:中国专利 TAG:

一种基于gd32单片机的pmbus接口电源板卡及其bmc控制方法
技术领域
1.本发明属于电源管理领域,具体涉及一种基于gd32单片机的pmbus接口电源板卡及其bmc控制方法。


背景技术:

2.在航空航天、国防军工等领域所使用的工控设备具有使用周期长、部署地点偏远,人工维护成本高等特点,这些设备的稳定运行关系着国家安全等重大利益,因此对工控设备的可靠性有着很高的要求。工控设备一般由电源板卡、计算板卡、通信板卡、管理板卡等部件组成,而在这之中,电源板卡作为工控设备的基础性部件,对设备的稳定工作起着根本性影响。
3.近年来,设备维护的信息化、智能化要求不断提高。越来越多的工控设备在各板卡上增加了专用bmc管理芯片,布置多个传感器用于采集数据,以i2c作为健康管理总线连接各板卡bmc芯片,采用ipmi健康管理协议进行通信,最终在管理板卡汇总各模块健康管理数据。常规的电源板卡由交直流转换电路、单片机、监测传感器电路等组成。在电源板卡上布置多个电压监测电路、电流监测电路、热敏电阻温度监测电路等。单片机通过多个adc管脚采集电压、电流、温度等数据,将监测信息以ipmi协议上报管理板卡。但这种传统设计方式,元器件数量多,集成度低,且单片机adc采样精度不高,要通过多次采样取平均和软件补偿误差等方式进行特殊处理。


技术实现要素:

4.(一)要解决的技术问题
5.本发明要解决的技术问题是如何提供一种基于gd32单片机的pmbus接口电源板卡及其bmc控制方法,以解决现有的电源管理元器件数量多,集成度低,且单片机adc采样精度不高,要通过多次采样取平均和软件补偿误差等方式进行特殊处理的问题。
6.(二)技术方案
7.为了解决上述技术问题,本发明提出一种基于gd32单片机的pmbus接口电源板卡,该电源板卡包括pmbus接口电源模块和gd32单片机,电源模块负责交直流转换,gd32单片机具有2路i2c通信接口,第1路与pmbus接口电源模块连接,以pmbus协议从pmbus接口电源模块中读取供电电压、供电电流和工作温度,第2路i2c与外部的管理板卡连接,以ipmi协议方式向管理板卡上报监控信息。
8.进一步地,电源模块的输入交流220v电源,输出直流12v电源。
9.本发明还提供一种基于gd32单片机的pmbus接口bmc控制方法,该方法包括如下步骤:
10.s11、gd32单片机2路i2c控制器初始化,配置通信波特率参数;
11.s12、gd32单片机向pmbus接口电源模块发送使能信号;
12.s13、从管理板卡轮询接收ipmi请求消息;
13.s14、判断ipmi请求消息校验和是否正确,如果正确转入步骤s15,如果错误则重置i2c控制器,转入步骤s13;
14.s15、解析ipmi请求消息中的ipmi协议请求数据,获得请求数据中的命令,命令共有3种,分别是获取供电电压、获取供电电流和获取工作温度;
15.s16、根据请求数据中的命令,gd32单片机从pmbus接口电源模块中读取监测数据信息;
16.s17、根据ipmi协议规范,生成ipmi协议响应数据;
17.s18、向管理板卡发送ipmi协议响应数据,如果发送成功则结束本次轮询过程,如果失败则重置i2c控制器,转入步骤s13。
18.进一步地,对gd32单片机i2c应答缺失、接收溢出、仲裁丢失、总线错误四种i2c错误中断进行计数,当错误计数累计达到10次,判定i2c总线异常,进行重置i2c控制器操作。
19.进一步地,gd32单片机在发送i2c数据时,在判断总线空闲状态、产生起始信号、发送数据操作后,进行轮询状态标志位判断,若超过30ms标志位未正常置位,判定i2c总线异常,进行重置i2c控制器操作。
20.进一步地,gd32单片机设置有一个独立定时器,以1ms周期间隔监测i2c控制器busy标志位,若连续30个周期busy标志位置1,判定i2c总线异常,进行重置i2c控制器操作。
21.本发明还提供一种基于gd32单片机的pmbus接口bmc控制方法,该方法包括如下步骤:
22.s201、判断gd32单片机中的i2c控制器处于空闲状态,如果空闲转入步骤s202,如果忙碌,重置i2c控制器,转入步骤s202;
23.s202、产生i2c总线起始信号;
24.s203、在i2c总线上发送pmbus模块地址,判断是否接收到pmbus模块反馈的ack应答,如果接收到应答,转入步骤s204,如果无应答,转入步骤s201;
25.s204、在i2c总线向pmbus模块发送命令字数据,命令字为读取供电电压、读取供电电流或读取工作温度;
26.s205、重新产生i2c总线起始信号;
27.s206、在i2c总线上发送pmbus模块地址,判断是否接收到pmbus模块反馈的ack应答,如果接收到应答,转入步骤s207,如果无应答,返回步骤s201;
28.s207、接收pmbus模块反馈的传感器监测数据;
29.s208、产生i2c总线停止信号;
30.s209、判断从pmbus模块接收到的传感器监测数据校验和是否正确,如果正确转入步骤s210,如果错误则舍弃数据;
31.s210、解析传感器监测数据,得到电源模块供电电压、供电电流或工作温度。
32.进一步地,对gd32单片机i2c应答缺失、接收溢出、仲裁丢失、总线错误四种i2c错误中断进行计数,当错误计数累计达到10次,判定i2c总线异常,进行重置i2c控制器操作。
33.进一步地,gd32单片机在发送i2c数据时,在判断总线空闲状态、产生起始信号、发送数据操作后,进行轮询状态标志位判断,若超过30ms标志位未正常置位,判定i2c总线异常,进行重置i2c控制器操作。
34.进一步地,gd32单片机设置有一个独立定时器,以1ms周期间隔监测i2c控制器
busy标志位,若连续30个周期busy标志位置1,判定i2c总线异常,进行重置i2c控制器操作。
35.(三)有益效果
36.本发明提出一种基于gd32单片机的pmbus接口电源板卡及其bmc控制方法,pmbus接口电源模块同时具有交直流转换和传感器监测功能,gd32单片机作为bmc,从pmbus接口电源模块中直接以pmbus协议读取供电电压、供电电流、工作温度、故障告警等监测信息。本发明还设计了gd32单片机软件实现电源板bmc整体设计流程和gd32单片机以pmbus协议读取电源模块的供电电压、供电电流、工作温度数据的流程,该流程与电源板卡配合使用,能够显著提高硬件集成度,降低了软件设计复杂度且监测数据可靠性得到提升。
附图说明
37.图1为本发明的整体框图;
38.图2为本发明的gd32单片机bmc软件整体设计流程图;
39.图3为本发明的gd32单片机以pmbus接口获取数据流程图。
具体实施方式
40.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
41.名词解释:
42.bmc:baseboard management controller,基板控制器,用于读取传感器数据及实现ipmi协议的功能。
43.i2c:同步串行通信总线,用于bmc芯片间ipmi协议通信及bmc与pmbus接口模块通信。
44.ipmi:intelligent platform management interface,智能平台管理接口,是一种能够监视设备运行状态的协议。
45.pmbus:power management bus,电源管理总线协议,用于bmc芯片与电源模块间通信。
46.本发明提出基于gd32单片机的pmbus接口电源板卡,并提出完善的pmbus模块数据读取方式及bmc控制方法。第一步,介绍电源板卡功能需求及硬件设计方案。第二步,介绍gd32单片机软件实现bmc功能的整体设计流程。第三步,介绍在gd32读取pmbus接口电源模块数据,按照实现pmbus协议进行转换得到供电电压、供电电流、工作温度数据的方法。第四步,针对i2c通信不稳定问题,在错误中断、发送超时、错误监测位等方面提出针对性软件容错处理方法。
47.第一步,介绍电源板卡功能需求及硬件设计方案。
48.电源板卡将输入的交流220v电源转换为直流12v电源输出,同时具有ipmi协议管理功能。电源板卡包括pmbus接口电源模块、gd32单片机和辅助电路等,电源模块负责交直流转换,输入交流220v电源,输出直流12v电源,gd32单片机具有2路i2c通信接口,第1路与电源模块连接,以pmbus协议从电源模块中读取供电电压、供电电流和工作温度等信息,第2路i2c与外部的管理板卡连接,以ipmi协议方式向管理板卡上报监控信息。
49.第二步,介绍gd32单片机软件实现电源板bmc整体设计流程。如图2所示。
50.s11、gd32单片机2路i2c控制器初始化,配置通信波特率等参数;
51.s12、gd32单片机向pmbus接口电源模块发送使能信号;
52.s13、从管理板卡轮询接收ipmi请求消息;
53.s14、判断ipmi请求消息校验和是否正确,如果正确转入步骤s15,如果错误则重置i2c控制器,转入步骤s13;
54.s15、解析ipmi请求消息中的ipmi协议请求数据,获得请求数据中的命令,命令共有3种,分别是获取供电电压、获取供电电流和获取工作温度;
55.s16、根据请求数据中的命令,单片机从pmbus接口电源模块中读取监测数据信息;
56.s17、根据ipmi协议规范,生成ipmi协议响应数据;
57.s18、向管理板卡发送ipmi协议响应数据,如果发送成功则结束本次轮询过程,如果失败则重置i2c控制器,转入步骤s13。
58.第三步,介绍gd32单片机以pmbus协议读取电源模块的供电电压、供电电流、工作温度数据的方法。如图3所示。
59.s201、判断gd32单片机中的i2c控制器处于空闲状态,如果空闲转入步骤s202,如果忙碌,重置i2c控制器,转入步骤s202;
60.s202、产生i2c总线起始信号;
61.s203、在i2c总线上发送pmbus模块地址,判断是否接收到pmbus模块反馈的ack应答,如果接收到应答,转入步骤s204,如果无应答,转入步骤s201;
62.s204、在i2c总线向pmbus模块发送命令字数据,命令字为读取供电电压、读取供电电流或读取工作温度;
63.s205、重新产生i2c总线起始信号;
64.s206、在i2c总线上发送pmbus模块地址,判断是否接收到pmbus模块反馈的ack应答,如果接收到应答,转入步骤s207,如果无应答,返回步骤s201;
65.s207、接收pmbus模块反馈的传感器监测数据;
66.s208、产生i2c总线停止信号;
67.s209、判断从pmbus模块接收到的传感器监测数据校验和是否正确,如果正确转入步骤s210,如果错误则舍弃数据;
68.s210、解析传感器监测数据,得到电源模块供电电压、供电电流或工作温度。
69.第四步,针对i2c总线通信不稳定问题,在错误中断、发送超时、错误监测位等方面提出针对性软件容错处理方法。
70.1、对gd32单片机i2c应答缺失、接收溢出、仲裁丢失、总线错误四种i2c错误中断进行计数,当错误计数累计达到10次,判定i2c总线异常,进行重置i2c控制器操作;
71.2、gd32单片机在发送i2c数据时,在判断总线空闲状态、产生起始信号、发送数据操作后,进行轮询状态标志位判断,若超过30ms标志位未正常置位,判定i2c总线异常,进行重置i2c控制器操作;
72.3、gd32单片机设置有一个独立定时器,以1ms周期间隔监测i2c控制器busy标志位,若连续30个周期busy标志位置1,判定i2c总线异常,进行重置i2c控制器操作。
73.本发明的新的电源板卡的设计方案采用pmbus接口电源模块。其中,pmbus接口电源模块同时具有交直流转换和传感器监测功能,gd32单片机作为bmc,从pmbus接口电源模
块中直接以pmbus协议读取供电电压、供电电流、工作温度、故障告警等监测信息。此方案,提高了硬件集成度,降低了软件设计复杂度且监测数据可靠性得到提升。
74.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献