APP下载

基于STM32的多点电流采集与监视系统设计

2022-04-13

浙江水利水电学院学报 2022年1期
关键词:电流值串口单片机

孙 涛

(安徽粮食工程职业学院, 安徽 合肥 230011)

MSXF-240RS2型大米色选机的电源供电端、交流伺服电机供电端、PLC电源端、光电转换电路供电端组件需在合适的电流下工作,电流过低会影响组件的工作效率,而电流过高会导致组件过流或过热,机器受损[1-6],同时交流伺服电机又需进行电流闭环控制。因此,急需研制一种多点电流检测设备,以观测各部件工作电流变化趋势,并兼容多点电路电流采集以及为闭环控制算法或故障诊断算法提供必要的电流数据等。目前,对电流检测、器件保护、与电流控制技术的研究越来越多[7-11]。石砦等[12]提出一种基于混沌信号时域波形包络特征的触电电流混沌检测方法,解决了某些电流保护装置触电电流信号难提取的问题,结果表明,提出的混沌判据可准确判断系统周期状态和混沌状态,能够在较小检测误差情况下(4.64%)检测出总剩余电流中的电流信号。李捷等[13]设计了基于CAN总线的对脉冲电源模块充放电以及数据采集的分布式控制及在线电流检测装置,解决了高重频脉冲功率电源放电异常等问题,利用Linux操作系统实现对多个脉冲电源模块的快速控制与故障诊断。龙小丽等[14]认为在科学研究的多个领域中都需要进行微弱电流信号的检测,并提出了一种基于STM32+FPGA的微弱电流检测系统,提出检测系统可经由信号转换放大滤波电路模块、信号采集电路、STM32、FPGA、上位计算机等组成,其论述为多种传感器数据采集与检测设备提供了设计思路。目前针对多点电流检测系统的设计方案和传感器热插拔研究很少,且没有较友好的多点电流采集上位机解决方案。市场上主流的检测设备处理器包括51单片机、STC系列单片机、STM32高端处理器、DSP数据处理器、FPGA可编程门阵列等,通过某种传感单元将数据转换为数字量或电压模拟量,经过处理器对数据进行处理,并通过某些界面设计环境进行人机界面设计[15],如李明等[7]为增加酒精传感器测量点数,基于UCOS操作系统和STM32F4单片机,设计实现了一种可用于多种酒精检测场合的酒精检测装置,基于STemWin设计制作了系统图形化界面,并通过LCD触摸屏实现人机交互。

笔者基于STM32F4单片机,研制了一种9路电流采集与实时检测系统,通过单片机的ADC功能将9路WCS1800霍尔电流传感器传回的电流数据转换为数字量。通过CH340G串口转换芯片实现串口通信协议向USB通信协议的转换,以实现终端机与上位机的数据传输。在电流数据的末尾拼接字符串“A1”~“A9”区分1~9路电流数据。通过MATLABGUI开发环境,进行人机界面的设计。

1 硬件设计

1.1 整体组成

图1所示系统的整体组成包括:STM32F 429型单片机、USB电源、稳压与降压电路、电源接通LED指示灯、串口转换电路、上位机、传感器组(WCS1800-1-WCS1800-9)、复位电路、晶振电路、LED指示灯、按键模组等。单片机选择为STM32F429系列,该系列单片机集成了ARM的Cortex-M7内核,具有DSP指令和浮点运算单元,工作频率最大可配置为180 MHz,集成了3个12位的独立ADC,可以提供24个输入通道。因此,可为多点电流采集系统的设计提供强有力的硬件保障。

图1 系统整体组成

USB电源使用标准的USB线为终端机提供电源,由于STM32的工作电压为3.3 V,需使用稳压与降压芯片实现USB的标准5V电压到3.3 V电压的转换。电源LED用于在电源接通时点亮,以表明系统电源接通,单片机可在正常电压下工作。传感器组采用WCS1800霍尔电流传感器,共9路(WCS1800-1~WCS1800-9),传感器的电压模拟量输出口(DOUT引脚)分别与单片机的GPIOA1-GPIOA9引脚连接。上位机在MATLABGUI环境下设计,界面功能包括串口配置、当前数据显示、电流曲线显示和关于产品等。复位电路用于在系统工作出现异常时复位系统;晶振电路用于为单片机提供具有固定频率的晶振信号;按键模组用于终端机与上位机通信,以判断串口配置是否正常;LED指示灯用于指示当前的工作传感器,共9个,分别对应9路(WCS1800-1~WCS1800-9)霍尔电流传感器。

1.2 稳压降压电路

使用LM1086-3.3芯片实现5~3.3 V的降压与稳压调节。电源LED指示灯通过1 kΩ限流电阻与电源的高电平连接,电压高电平从LM1086-3.3芯片的2号OUT引脚输出(图2)。

图2 稳压降压电路

1.3 CH340G电路

如图3所示,采用CH340G芯片实现串口通信协议到USB通信协议的转换,二者在数据通信时可兼容使用。芯片的TXD和RXD引脚分别与单片机的PA10和PA9连接;UD-和UD+分别与标准四线的USB接口D-和D+连接,USB接口采用标准的5V电源供电。芯片的XI和XO引脚连接其工作晶振,设计芯片的工作晶振频率为12 MHz。

图3 3USB转串口CH340G电路

1.4 WCS1800霍尔电流传感器

选择使用WCS1800型霍尔电流传感器检测模块,兼具精确性和经济实用性,在模块上集成了LM393运放电路,工作电压为USB供电5 V电压。模块的电流检测范围宽直流35 A和交流25 A,过流信号设置分辨率为1.5 A,模块输出信号为一路模拟信号和一路高电平信号。对于直流电路,检测电流大小为

(1)

式中:V0为传感器模块输出电压;Vcc为参考电压,5V;K为传感器线性度,60 mV/A;正负号±为电流流入传感器反、正方向符号。

1.5 按键模组

按键模组包括4个机械按键,分别与单片机的PI4~PI7连接,当PI4~PI7按键按下时,单片机向串口发送字符串“I0.2”“I4.2”“I20.2”“I111.2”,通过字符串首字母“I”判断为电流数据,首字母“I”后的浮点数据代表电流值的大小(并非实际电流值),从小数位到百数位逐渐变化。通过上位机的串口接收数据本框查看单片机向上位机发送的数据是否正确。

2 软件设计

2.1 系统整体程序流程

系统整体程序流程经过一系列的初始化后再进行操作系统UCOSIII的初始化(图4),在UCOSIII操作系统打开后可创建系统任务启动函数AppTaskStart,在该任务函数中进行电流测量任务:传感器1任务—传感器9任务,任务启动后自动进入对应的传感器1任务循环—传感器9任务循环,此时STM32的PC指针将在这9个任务间切换。在传感器的任务循环中,经同一条串口总线将检测得到的电流数据发送至上位机,为了区分到底是哪一路传感器传回的数据,采用在电流数据的末尾拼接字符串“A1”~“A9”的方法区分传感器1~传感器9的电流数据,因此可实现传感器的热插拔操作。将系统任务设置为10个,包括:创建起始任务和9个传感器任务,设置起始任务的优先级为6,任务的堆栈容量为128 B,时间片长度为0 ms;9个传感器任务的优先级相同,均为5,任务的堆栈容量均为512 B,时间片长度为20 ms。

图4 系统整他程序流程

2.2 ADC初始化程序

以传感器1任务的使用的ADC为例(图5),进入初始化函数后首先进行GPIO的初始化,传感器1的ADC对应单片机引脚PA1,在引脚配置时需将PA1配置为模拟量输入模式,并设置ADC的工作模式为连续转换和禁止扫描采集的独立模式,将ADC转换频率设置为12 MHz;最后进行中断配置,将中断分组设置在1组,设置响应优先级为1,子优先级为1,简称“111”模式。

图5 ADC初始化程序

2.3 电流测量任务

9路电流测量任务的函数体基本相同,其测量任务如图6所示。

图6 电流测量任务

函数变量err用于操作系统出现故障时存储故障信息。函数变量cycle为for循环变量,用于循环cycle次对电流数据的采集,循环cycle次后自动退出for循环。函数变量sumADC_Current为循环cycle次后的电流数据总和,用于计算电流数据平均值使用。函数变量ADC_Current_Vol为电流数据值,在任务函数中两次使用,一次是保存传感器采集的电流数据,另一次为计算电流数据平均值使用。函数变量current_Vol为电流值变量,用于存储经转换公式转换后的电流值,该数据为最终的电流值。任务函数通过串口通信方式向上位机发送电流数据,函数最后对其堆栈中的变量进行清零操作。

2.4 上位机界面设计

上位机检测界面如图7所示,其界面包括“打开串口”按钮,串口调试窗口、9个电流数据曲线显示窗口、9个当前电流值显示文本框(在无电流数据时显示为NULL1—NULL9)、“启动”按钮、关于系统文本框。

图7 上位机界面

打开系统界面后,通过“启动”按钮启动系统,此时“启动”按钮文本更改显示为“关闭”。系统启动后将自动扫描电流采集系统终端机发送的信号,一旦接收到信号后,系统提示是否打开串口(图8),用户可通过“Yes”“No”和“Cancel”按钮进行选择,选择后用户通过“打开串口”按钮打开终端机所连接的串口,并将串口号显示在“串口号”文本框中。通过按下并松开按钮模组,向上位机发送串口数据,按钮按下瞬间进行按钮状态的读取,但不立刻向上位机发送数据,在上位机中的串口调试窗口显示终端机向上位机发送的串口数据,从而判断串口连接及串口数据传输是否正常。

图8 串口检测与询问窗口

9个当前电流值显示文本框用于显示9路电流传感器传回的9路电流值,在未检测到电流值或传感器未连接时显示NULLi(i=1,2,…,9),当有电流值时,对应的电流值文本显示框将实时显示当前采集到的电流值。9个电流数据曲线显示窗口用于以实时曲线的方式显示9路电流传感器传回的电流值,用户可根据曲线显示结果观测电流值历史变化情况。因此,该上位机界面可为用户提供当前电流值读取接口和电流值历史变化情况,通过对比观测更加充分地了解电流变化过程。

2.5 系统调试

对大米色选机的工业电源供电端、交流伺服电机供电端、PLC电源端、光电转换电路供电端的4个重要电路进行电流采集,并将传感器连接在系统的第1,3,5和7通道上,在产品正常工作的情况下,得到电流值的变化过程见图9。可知通道1、通道3、通道5、通道7,均检测出了电流值,在产品正常工作情况下,测得第1通道电流为1.3 A左右,变化幅值不超过0.02 A;测得第3通道电流为1.7 A,变化幅值不超过0.01 A;测得第5通道电流为0.6 A,变化幅值不超过0.02 A;测得第7通道电流为1.0 A,变化幅值不超过0.02 A,可知系统得到了较稳定电流测量值。

图9 电流变化过程

对第1通道进行短路连接测试,并在电路中加装继电器保护开关,用于在短路电流过大时及时断开电源,得到电流值的变化情况(图10)。可知在开始阶段电流基本稳定在1.3 A,变化幅值不超过0.02 A。在采集点为500时,将电路进行短路连接,得到的电流值瞬间增大。当电流值最大达500 A时,说明传感器已不再正常工作。此时继电器开关打开,电流值又瞬间变化到0 A,变化幅值不超过0.01 A。因此,可通过加装继电器开关保护装置等对产品的关键电路进行过电流保护,以避免短路情况发生时烧坏产品。

图10 短路测试

3 结 语

笔者研制了一种多点电流采集与监视系统,介绍了系统的硬件组成与软件设计。采用霍尔型电流传感器对电流值进行采集,使用单片机的ADC功能对数据进行模数转换,使用串口转换芯片将数据发送至使用MATLAB GUI开发的上位机界面中。通过电流检测和过电流短路试验验证了系统的工作稳定可靠,可应用于多种需电流测量的生产现场。

猜你喜欢

电流值串口单片机
制冷剂与润滑油混合物对空调器泄漏电流影响分析及研究
放疗中CT管电流值对放疗胸部患者勾画靶区的影响
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于API函数库实现串口数据通信的分析与设计
变压器差动斜率保护计算方法
基于EM9000工控板高性能双串口通信模型设计与实现
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪