基于STM32肌电采集康复器的恒流源设计
扫描二维码
随时随地手机看文章
引言
直流电源在很多场合经常使用,比如企业研发产品时、高校实验室科研与教学实验时,在产品中也被广泛应用,例如在数字医疗设备中直流电源也常被使用。当前,虽然市面上有很多数控直流电源,但是市场上既采用STM32作为肌电诱发康复器的控制器,又采用STM32控制进行恒流输出的产品较少[1]。目前的状况是或者性能单一,或者功能齐全但价格昂贵,因此,研发一种精度高、功能强、成本低的基于 STM32的数控肌电诱发康复器的恒流电源具有现实意义,可以兼顾性能和成本。
1性能指标与总体设计方案
根据肌电诱发康复器的系统要求,采用STM32数控恒流源设计具有如下性能指标:
可调参数:电流值。
可调范围:电流0~3 000 mA。
可调精度:电流设定值和实际值相对误差为±5%。
工作方 式 : 具有步进“+ ”“—”调整功能 ,步进≤ 10mA,按键设置输出值。
系统总体组成框架图如图1所示。
本肌电诱发康复器设备第一路ADC监控肌电信号的电压值,即根据采集的肌电电压信号,经高输入阻抗的隔离放大器进行放大,并进行低通滤波后,送入STM32控制器内置模数转换模块进行A/D转换,得到数据经过数字滤波、运算处理,最终得到肌电信号值。第二路ADC监控恒流电源输出,将电流采集电路采集的信号进行放大,送入STM32控制器进行 ADC数据采集,并将得到的数据用于反馈PI调节控制,输出PWM控制波给驱动电路,从而形成闭环反馈恒定电流控制。
2主要模块的实现方案
2.1核心处理器选择
STM32微控制器(MCU)是意法半导体公司生产的,主要应用于项目要求运算速度比较快、主频较高、实时性好的中高端市场。本设计使用的是一款采用高性 能ARMCortex—M3 处理器内核的控制器 STM32F103VCT6。其采用32位RISC中央处理器,工作主频为72 MHz;包含3个12 bit的ADC转换器,转换范围0~3.6 V;64 KBSRAM和256KBFLASH;多达11个通用16位定时器,其中4个PWM定时器等片内资源。
2.2 PWM驱动与采样模块
采用N沟道金属氧化物半导体场效应管(NMOS)作为恒流源的开关管。由单片机控制输出PWM波电压控制信号[2],通过BUCK降压电路输出所需电流值。
PI调节[2]与驱动控制原理框图如图2所示。
2.3 量程切换与放大电路
本肌电诱发康复器的恒定电流源输出部分采用一片八选一的多路模拟开关CD4051实现量程切换,使输出放大倍数有8种选择,方便电路自动调节控制。STM32通过引脚PA0、PA1、PA2对其通道进行选择控制,从而实现量程自动切换。将该电路作为放大器LM358 的反馈通路进行放大倍数调整 , 经过LM358其中的一个运算放大器组成的电压跟随器后,对电路起到隔离缓冲作用,从而使进入STM32中的A/D转换信号更合理0量程切换与放大电路如图3所示。
2.4 PWM驱动控制仿真电路
脉冲宽度调制PWM (Pulse Width Modulation)控制输出开关管的通断时间,给后级BUCK电路形成恒流输出的电流源[3],BUCK电路由470μF电容、470μH电感、1N4148高速开关管构成。用5 Ω水泥电阻模拟负载,经过0.1 Ω采样电阻给LM358运放进行一级同向放大,放大倍数约为6。PWM驱动仿真控制硬件电路如图4所示。
3 软件设计
采用三个按键作为人机交互输入,按键1是恒流输出控制按键,实现对恒流输出启动和停止控制;按键2是恒流步进增加键,按键3是恒流步进减少键。
根据电路原理图电路板接入的负载电阻为5 Ω,加上采样电阻0.1 Ω,根据欧姆定律计算求得输出电流的可调范围为0~3 A。
程序流程图如图5所示。
图5程序流程图具体程序流程如下:
首先,对STM32的PWM、ADC、GPIO等相关片内外设进行初始化,并设置目标电流值。
然后,启动定时器TIM的PWM功能,通过配置寄存器设置PWM不同占空比。
通过检测按键触发事件,主要检测降低电流按键、提高电流按键和停止电流按键的触发,检测程序进行对应调整。
最后,完成ADC采样输出,这一过程中对采样电压转化得到的电流值与 目标电流值进行对比,若结果有较大偏差需进入反馈程序进行PI反馈调节校正,从而通过调整PWM占空比来减小偏差,直至两者对比一致或者误差(error)在所允许的精度范围内[4—5]。
4 实验数据及分析
实际肌电诱发康复器的输出恒流值如表1所示。
表1测量的恒流值数据
ADC 值 |
实测电压 值 /V |
PWM 寄存器值 |
实际电流 值 /A |
设置电流 值 /A |
0 |
0 |
0 |
0 |
0 |
4 |
0. 181 |
50 |
0.003 |
0.005 |
120 |
0.664 |
100 |
0.097 |
0.086 |
220 |
1. 19 |
150 |
0. 177 |
0. 176 |
295 |
1.72 |
200 |
0.238 |
0.234 |
365 |
2.25 |
250 |
0.294 |
0.294 |
438 |
2.77 |
300 |
0.353 |
0.353 |
510 |
3.31 |
350 |
0.411 |
0.413 |
585 |
3.84 |
400 |
0.471 |
0.470 |
676 |
4.38 |
450 |
0.545 |
0.546 |
750 |
4.88 |
500 |
0.604 |
0.605 |
825 |
5.32 |
550 |
0.665 |
0.670 |
915 |
5.96 |
600 |
0.737 |
0.739 |
1 005 |
6.56 |
650 |
0.810 |
0.806 |
1 105 |
7. 16 |
700 |
0.890 |
0.886 |
1 200 |
7.6 |
750 |
0.967 |
0.960 |
1 295 |
8. 16 |
800 |
1.043 |
1.044 |
1 350 |
8.6 |
850 |
1.088 |
1.091 |
1 400 |
9.04 |
900 |
1. 123 |
1. 120 |
1 540 |
9.54 |
980 |
1.257 |
1.254 |
由表1分析可知,恒流源输出的实际测量值与理论值的相对误差不超过±5%,满足测量的精度要求。
STM32的PWM占空比取值范围0~100%,对应寄存器设置的值域为0~1000,即步进10表征1%的占空比。信号频率为20 KHz,最高电压为参考电压3.3 V。输出电流与PWM占空比关系如图6所示。
5结束语
本肌电诱发康复器的恒流源设计,采用STM32F—103VCT6的微控制器,利用其内部集成的A/D模块中的两路模数转换模块进行A/D转换。对数控恒流电流源进行程序功能测试,分析测试结果数据,考虑器件实际温漂的影响,通过数据拟合方法以及程序的PI反馈校正功能,设置目标电流值,能得到较好的输出电流质量。同时,该恒流源对测量参数具有显示、数据上传等功能。实验数据表明,该康复器的恒流源输出具有测量精度高、稳定性好、体积小、成本低、便于携带等优点,大众家用前景很好。
[参考文献]
[1] 张红宾,李晓晨,赵二刚,等.基于STM32的便携式数控直流电源设计[J].实验室科学,2019,22(3):53-56.
[2] 李贵娇,鲁争艳,李金宝,等.一种可PWM调制的恒流源电路[J].电子制作,2023,31(15):92-95.
[3]张士飞,肖高博,刘志国,等.基于宽范围恒压源的恒流源设计[J].科学技术创新,2021(29):187-189.
[4]刘文胜,李宗平,谭亲跃,等.基于STM32的小纹波高精度恒流源系统设计 [J].现代电子技术,2023,46 (13):158-162.
[5]秦玲,杨兴林,蒋薇,等.智能PID算法在恒流源纹波抑制中的应用[J].通信电源技术,2014,31(1):5-7.
2024年第10期第12篇