基于STM32与RS485网络的直流电机驱动模块设计
2015-07-07王楠楠
林 丹,王楠楠
(1.河北工程大学 信息与电气工程学院,邯郸 056038;2.邯郸学院 软件学院,邯郸 056038)
0 引言
随着控制科学、计算机科学、网络及通信技术的发展和交叉渗透,运动控制系统经历了从直流到交流,从开环到闭环,从模拟到数字,直到基于网络的运动控制的发展过程[1]。通过网络实现电机远程控制及控制系统的指令和参数透明传输,已经成为电机远程运动控制系统的研究方向之一。本系统采用STM32微处理器为控制器核心设计具有高抗干扰能力的数字式直流电机驱动模块;采用先进数字电流传感器及温度传感器实现故障诊断及保护功能、电机精确控制及事后数据可靠分析;采用RS485总线网络实现驱动模块与上位机之间数据交换,最终实现分布式远程控制。
1 方案设计
模块由主控芯片、电源电路、电流采样电路、编码器信号倍频鉴相电路、H桥控制电路及485通信模块等部分组成[2]。系统结构框图如图1所示。
图1 系统结构框图
1.1 主控芯片选择
模块主控芯片选择ST公司32位增强型系列微控制器STM32F103C8T6。
控制器基于Cortex-M3内核,最高工作频率可达72MHz,单周期乘法和自带硬件除法器,运算能力大幅提高;控制器内定时器强大的边沿捕获能力及PWM功能均为电机高精度控制提供保证。片上集成温度传感器、USART接口等资源,大大简化硬件设计,系统总体功耗降低。
1.2 控制方法选择
双闭环控制参数易于调整,抗负载扰动及抗电网电压扰动性能均有提高。上位机对模块发送命令,控制电机运转采用电流速度双闭环PID控制方法。如果上位机没有发送命令,则默认转速为0rpm。数字化PID差分方程表达式为:
1.3 网络总线选择
本系统设计基于网络的直流电机运行驱动模块,利用RS485总线网络实现驱动模块与上位机之间数据网络化传输[3]。RS485总线支持多点对多点通信,实现联网功能;标准采用平衡发送、差分接收方式,共模干扰抑制能力强;可以达到1200m远距离传输,保证实现上位机对现场设备远程控制。
2 系统硬件设计
2.1 电源电路设计
驱动模块的电源电路包括两部分:给主控芯片STM32微处理器供电电源3.3Vd、给通信接口及触发器供电电源5Vd;给光电耦合器电路供电5Va、给电流传感器供电12Va等。模拟电源和数字电源均由24V蓄电池供电,两路电源实现模数隔离,防止主回路影响控制电路。电源电路如图2所示。
图2 数字、模拟电源电路
首先,24V电源通过LM2576系列开关型稳压芯片LM2576-5、LM2576-12生成数字电路电源5Vd、模拟电路电源12Va。主控芯片电源3.3Vd由5Vd经三端线性稳压芯片LM1117-3.3生成。12Va经芯片MC34063生成5Va。电路所用芯片功耗低,内部保护电路完善,且输出电压稳定,为模块稳定工作提供保证。
2.2 通信接口电路设计
现代多节点工业现场中,节点之间共模电压很高,RS485总线网络差分传输方式无法完全抑制共模干扰。模块设计带隔离RS485电路,如图3所示。
图3 通信接口电路
收发器MAX1487与主控制器电源不共地,同时采用光电耦合器可保证在维持信号联系前提下实现收发器与主控制器电路电气隔离,有效抑制现场多节点之间的共模电压,提高现场通信稳定性。R21为匹配电阻,便于实现远距离传输。
2.3 倍频鉴相电路设计
模块采用光电式旋转编码器实现对电机高精度、强分辨能力的数字测速。利用构造简单的增量式编码器、触发器以及或非门电路实现对电机运行的倍频鉴相功能。电路如图4所示。
图4 倍频鉴相电路
为了取得检测信号,编码器与电机之间距离较近,导致增量式编码器使用过程中会因抖动使输出波形夹杂毛刺。模块设计采用施密特触发器对编码器输出A、B端信号进行调节,施密特触发器两个阀值电压调节检测信号成为标准脉冲信号。两路施密特触发器输出信号一方面作为D触发器输入端与时钟信号,然后D触发器输出端接主控芯片引脚用于判断电机转向;一方面作为或非门电路输入端,与主控芯片上、下边沿捕获功能结合,从而获得4倍频原始信号脉冲数,提高测速精度。
2.4 驱动及保护电路设计
模块H桥由MOSFET搭建,由驱动芯片控制MOSFET的开通、关断,进而控制电机运行。通过电流检测电路,在电机过载时,主控芯片关闭PWM输出信号,实现对电机保护[4]。驱动及保护电路如图5所示。
图5 驱动及保护电路
模块驱动半桥控制芯片采用集成IR2130控制MOS管,芯片自带过电流保护等,方便对被驱动的MOS管进行保护,同时采用光电耦合器加强系统工作稳定性。电机电流经过一个阻值很小的采样电阻,电阻两端电压由IR2171芯片转化为PWM波形;电压值由PWM占空比来反映,电压值过大时,通过程序控制电机停止运行,达到保护功能。
3 系统软件设计
系统软件采用模块化方法设计,包括数字控制模块、系统保护模块、通信模块。编程时,应用STM32固件函数库,可以大大降低编写程序的时间,降低成本。
3.1 系统程序设计
数字控制模块完成对速度、电流调节的PID算法编程实现。保护模块通过传感器采集数据与上位机设定的限制值比较,在异常情况时控制模块控制电机停转,同时输出报警信号,完成保护。
系统程序流程图如图6所示。
图6 主程序流程图
3.2 通信协议选择
通信模块采用MODBUS协议完成与上位机之间通信,该协议是工控领域中一种标准通信协议,不同厂商生产的设备通过该协议连接成工业网络,实现集散控制。
标准MODBUS协议有两种工作模式:ASCII模式和RTU模式[5]。相对于ASCII模式,在相同波特率下,RTU模式能够传送更多数据,因此控制器采用RTU模式来实现MODBUS通信协议。
RTU消息帧典型格式如表1所示。采用RTU模式通信时,消息发送至少要以3.5个字符时间的停顿间隔开始。在最后一个传输字符之后,一个至少3.5个字符时间的停顿标定消息的结束。
表1 RTU消息帧
4 实验结果分析
实验时,上位机软件在LabVIEW环境下编写,用于监控驱动模块运行情况,以及对目标速度的改变。过程中,对驱动模块施以不同类型干扰如外部电源的电压突变、负载转矩的突变等。实验证明,模块可以快速、准确并稳定达到要求。模块驱动电机从0rpm加速到2000rpm时监控界面如图7所示。
图7 上位机监控界面
5 结论
驱动模块采用高性能STM32微处理器与电流传感器结合,通过电路模、数隔离,实现对直流电机数字化、安全、可靠驱动。通过RS485网络,实现上位机对现场多个节点远程控制。
[1]闫晓娟,刘景林.嵌入式无刷直流电机网络控制系统[J].计算机测量与控制,2010,18(6):1335-1338.
[2]孙环阳,黄筱调,洪荣晶.全数字永磁同步电机运动控制系统的设计[J].微电机,2010,43(7):50-80.
[3]吕金华.基于DSP控制的无刷直流电机网络控制方法的研究[J].武汉船舶职业技术学院学报,2006(4):60-62.
[4]商丽娜,张荣标.基于ARM的无刷直流电动机网络控制研究[J].微电机,2007,40(7):86-89.
[5]汪义旺,崔鸣,祁春清.RS-485/Modbus在FFU控制系统中的应用[J].自动化仪表,2010,31(6):39-44.