mos Modeling and Simulation 2324-8696 2324-870X beplay体育官网网页版等您来挑战! 10.12677/mos.2024.135470 mos-95922 Articles 信息通讯, 工程技术 四相步进电机驱动及电机参数采集系统设计
Design of Four-Phase Stepper Motor Drive and Motor Parameter Acquisition System
黄云龙 李丕丁 上海理工大学健康科学与工程学院,上海 30 08 2024 13 05 5191 5201 5 8 :2024 30 8 :2024 30 8 :2024 Copyright © 2024 beplay安卓登录 All rights reserved. 2024 This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/ 步进电机具有精确定位,高重复精度,高稳定性、高可靠性以及容易开环控制等优点,广泛应用于医疗器械、消费电子以及光学设备等精度要求较高的领域。而四相步进电机相较于两相步进电机具有更高的分辨率、平滑度以及动态性能等优点,于是需要加强对四相步进电机驱动系统研究,以应对更高需求的应用领域。本文设计了一款基于FPGA的四相步进电机驱动及参数采集系统,该系统可灵活地配置电机驱动电压和步进方式,并且采用以太网传输协议与DDR3存储器,为步进电机驱动需要的速度曲线提供大量数据存储空间,并且经过仿真与测试后该系统达到了相应功能,最终本系统实现了四相步进电机驱动,其中电机驱动电压最大可到20 V以及最大微步细分可达256细分,同时上位机可实时监测电机相电压、相电流、霍尔信号以及编码器等电机相关参数。
Stepper motor has the advantages of precise positioning, high repeatability, high stability, high reliability and easy open-loop control, etc., and is widely used in medical devices, consumer electronics and optical equipment and other fields with high precision requirements. The four-phase stepper motor has the advantages of higher resolution, smoothness and dynamic performance compared with the two-phase stepper motor, so it is necessary to strengthen the research on the four-phase stepper motor drive system to cope with the application field of higher demand. This paper designs a four-phase stepper motor drive and parameter acquisition system based on FPGA. The system can flexibly configure the motor drive voltage and stepping mode, and adopts Ethernet transmission protocol and DDR3 memory to provide a large amount of data storage space for the speed curve required by the stepper motor drive. After simulation and testing, the system achieves the corresponding function. Finally, the system realizes the four-phase stepper motor drive, in which the maximum motor drive voltage can reach 20 V and the maximum micro-step subdivision can reach 256 subdivision, and the upper computer can monitor the motor phase voltage, phase current, Hall signal, encoder and other motor related parameters in real time.
以太网,FPGA,步进电机
Ethernet
FPGA Stepper Motor
1. 引言

步进电机根据输入的脉冲信号转变成角位移或者线位移的开环控制电机,在医疗器械、数控机床以及光学设备等领域实现广泛应用 [1] 。在步进电机正常运作的情况下,电机的转速大小与停止位置只受脉冲信号频率与个数的控制,不受负载的影响。步进电机是以固定旋转角度运行的,可通过控制脉冲个数与频率来控制位移量,进而实现准确步进定位的目的 [2] 。近年来,研究人员提出基于单片机对步进电机进行控制系统设计 [3] - [5] ,但在实际应用中,基于单片机的控制系统对电机的控制精度相较于FPGA控制来说更低;基于FPGA的步进电机控制系统研究 [6] - [9] 使得电机启停频率进行精确控制、系统稳定性与抗干扰性更高;但目前四相电机驱动控制设备研究较少,并存在一定的不足:首先,电机的控制驱动策略单一,调节范围小,稳定性不足以及缺少更精细化的控制方式,难以满足一些需要高精度与高稳定性的应用背景;其次,在一些应用环境较为恶劣或对操作人员身体存在一定风险的地方,人员难以接近步进电机控制装置,若步进电机运作过程中出现过流情况,但因缺少监测装置导致相关人员不能及时应对突发情况,于是可能会引发安全事故。因此,本文基于上述问题,提出基于FPGA的四相步进电机驱动及电机参数采集系统设计,使步进电机驱动更加精细,运行更加安全。

2. 系统框架 Figure 1. System diagram--图1. 系统框图--

本设计的系统框图如 图1 所示,用户经上位机对四相步进电机的驱动电压、微步细分、目标转速等驱动参数进行配置,之后由FPGA内部相应的逻辑组合,对用户的配置进行实现;当电机运行时,经相应的数据采集电路对电机的相电压、相电流、霍尔信号以及编码器等数据进行采集,经FPGA内部对不同数据汇总后,定时上传至上位机以便用户实时监测电机相关性能参数。

<xref></xref>3. 各模块功能设计 <xref></xref>3.1. 高速网络接口搭建

在工业控制系统中,基于以太网协议进行数据传输已经得到广泛应用 [10] - [12] 。目前千兆以太网接口设计方案常采用端口物理接口收发器(PHY, port physical layer)芯片与媒体接入控制器(MAC, Media Access Control Address)来实现 [13] 。网络接口常用的有GMII (Gigabit Medium Independent Interface)和RGMII (Reduced Gigabit Medium Independent Interface)两种媒体独立接口,二者接口的传输速率都可达到1000 Mbps,区别在于GMII接口数据传输位宽为8位,而RGMII接口数据传输位宽为4位 [14] 。从FPGA引脚资源方面考虑,本设计采用RGMII接口作为PHY芯片与MAC的通信接口,接口信息如 图2 所示。

Figure 2. RGMII interface--图2. RGMII接口--

UDP协议和TCP协议都是位于开放式系统互联(OSI, Open System Interconnection)参考的模型中的第四层(传输层),属于无连接型的传输层协议,位于IP协议层(网络层)之上 [15] ,如 图3 所示为OSI参考模型。相较TCP协议而言,UDP协议的特点在于不需要握手操作,并且通信速率快,资源占用较少,所以本设计采用UDP协议作为FPGA主控和上位机通信的传输协议。

Figure 3. OSI model--图3. OSI模型--

以太网UDP传输数据帧的格式由 图4 所示。从图中可以看出,以太网的数据帧通过对各层协议组合封装后实现数据的传输。每帧数据包含前导码(preamble)、帧起始界定符(SFD, Start Frame Delimiter)、以太网帧头、IP首部、UDP首部、用户数据和帧检验序列(FCS, Frame Check Sequence)。

Figure 4. UDP data frame format--图4. UDP数据帧格式--

为使FPGA实现UDP通信功能,可通过如下两个方案架构:FPGA + CPU架构和FPGA + PHY + MAC架构,对于这两种方案架构,FPGA + CPU架构是通过CPU将经UDP协议发送来的数据进行解析后再交由FPGA进行数据处理;FPGA + PHY + MAC架构是运用FPGA的内部逻辑资源对UDP传输层协议进行构建,通过PHY芯片进行物理层的传递,并结合MAC实现数据链路层功能,以此实现UDP传输功能 [16] 。前者架构中,由于CPU进行网络传输会触发中断,所以将存在传输延迟不固定的隐患。于是本设计根据FPGA + PHY + MAC架构进行UDP协议的传输功能构建。本系统选用Xilinx公司型号XC7A35TFGG484-2的FPGA芯片开发板为主控,PHY芯片型号为RTL8211,运用三段式状态机实现其功能,其状态跳转如 图5 图6 所示。

Figure 5. UDP receive part of the state machine--图5. UDP接收部分状态机-- Figure 6. UDP transmit part of the state machine--图6. UDP发送部分状态机--
3.2. 电机驱动模块搭建

本文设计驱动的电机为四相步进电机,而电机驱动芯片中少有四相步进电机驱动芯片,于是本设计决定采用两片两相步进电机驱动芯片进行组合,搭建相应驱动电路对四相电机进行驱动。电机驱动芯片TMC2590具有5~60 V高驱动电压范围以及微步细分最高可支持256细分,符号本设计的设计需求。如 图7 所示为电机驱动电压电路,采用分压法控制数字电位器MCP41010的阻值大小,进而调节电机驱动电压VM的大小。为实现电机驱动电压范围为4~20 V,直接驱动MOS管的方案无法满足设计需求,因此决定采用外部栅极驱动IC芯片,如 图8 为电机的H桥驱动电路。

Figure 7. The motor drives the voltage circuit--图7. 电机驱动电压电路-- Figure 8. H-bridge circuit--图8. H桥电路--

步进电机作为感应负载,通过控制电机上的电流大小可实现对电机的步进控制。于是根据TMC2590芯片内的SPI驱动模式,为H桥电路提供高、低边的控制信号,结合FPGA主控内存储的微步表以及上位机下发的S型速度曲线,可使步进电机按照整步或微步的方式进行变速转动。如 图9 所示为电机控制模块功能结构。此模块根据上位机下发的电机启动和停止指令对此模块进行控制,根据上位机设定的目标转速、电机细分以及驱动模式进行相应环节响应,由S型速度曲线模块将存储的电机转速值按一定量输入该模块的ram中存储,然后对当前电机转速和目标转速进行比较,决定需要加速或是减速,再根据设置的微步细分将相应数据以SPI的接口协议输出给驱动芯片TMC2590进行配置。

Figure 9. Motor control module function structure--图9. 电机控制模块功能结构--

S型速度曲线广泛应用于对步进电机的控制中,S型速度曲线是一种平滑的速度曲线,其加减速过程更加平滑,能够避免因突变速度对电机和机械系统造成的冲击和振动 [17] 。而在加减速的过程中速度等级细分的越多,则会使步进电机的转动更加流畅。考虑到FPGA的内部资源有限,不适合使用RAM对S型速度曲线的数据存储,于是决定采用外部的DDR3存储器对其进行存储。

本系统采用的主控开发板上配有一个型号为MT41J128M16HA-125的2 Gbit (256 MB)的DDR3芯片,为高效的使用DDR3存储器,采用Vivado软件提供的MIG IP核作为存储器的控制器。MIG IP核主要由用户接口块(User Interface Block)、存储器控制器(Memory Controller)和物理层(Physical Layer)这三部分组成 [18] 。用户需线根据数据手册对接口时钟、存储器类型以及位宽等参数在配置页面进行MIG IP核的配置,待配置成功后则实现存储器控制器与物理层之间的连接,之后需要考虑用户接口块的读写逻辑。如 图10 为DDR3读写状态机。

Figure 10. DDR3 read/write state machine--图10. DDR3读写状态机--

本设计采用降压转换芯片TPS5450与数字电位器MCP41010组合进行可变分压操作,即可提供电机不同的驱动电压。电机驱动电压设置流程:首先由用户在上位机输入设定的电机驱动电压数值,之后由上位机根据降压转换芯片TPS5450数据手册中的计算公式,即公式(1)进行计算数字电位器的阻值大小,再将此阻值大小转换成二进制码值发送给主控,当主控接收到数据后,通过SPI接口将数据发送给MCP41010进行阻值配置。

R 2 = R 1 × 1.221 V O U T 1.221 (1)

式中 V O U T 为上位机输入的电机驱动电压数值, R 1 为用来串联分压的阻值,大小为10 KΩ, R 2 为数字电位器的阻值大小。

3.3. 数据采集模块搭建

本设计不仅需要对四相步进电机的相电压与相电流的测量分辨率达到毫伏与毫安级别,还需要对多通道进行同步采集,而AD7606C是一款8通道16位同步采样模数数据采集系统(DAS),其每个通道均包含模拟输入箝位保护、可编程增益放大器(PGA)、低通滤波器(LPF)和16位逐次逼近寄存器(SAR)模数转换器(ADC),可满足本文的设计需求,于是本文采用模数转换芯片AD7606C作为数据采集芯片,采集电路如 图11 所示。

Figure 11. Acquisition circuit--图11. 采集电路--

霍尔信号传感器有三根连接线,+5 V电源线、地线、霍尔信号输出线,霍尔信号输出有效为低电平,为便于主控采集,将其转换成3.3 V电平,如 图12 所示为霍尔信号电路。根据设计要求,通过相邻的霍尔信号之间的时间差来判断四相电机在匀速转动时是否出现丢步或振动等造成转动不稳定的现象,于是采用50 MHz的主时钟对相邻霍尔信号之间的时间差计时。

Figure 12. Hall signal circuit--图12. 霍尔信号电路--

感栅编码器与光电编码器相比具有更高的抗污染、抗冲击能力,于是本设计采用感栅编码器对电机位置信息进行采集。本设计采用的感栅编码器的传输协议为同步串行接口(Synchronous Serial interface, SSI)协议,而SSI协议是RS422通信协议上的单向串行协议,RS422接口电路如 图13 所示。

Figure 13. RS422 interface circuit--图13. RS422接口电路--
<xref></xref>3.4. 上位机与主控传输协议搭建

为实现上位机精准驱动四相步进电机与电机参数实时监测,需设计上位机与主控之间的传输协议,如 图14 为FPGA内部指令解析与数据上传框图。如框图中所示,上位机下发的数据帧经UDP收发单元接收后传输至指令解析模块进行指令区分,并将区分的指令分别流入对应模块以便于后续逻辑单元的使用。在四相步进电机运行时,电机的相电压、相电流、霍尔信号以及编码器等数据被采集后,经数据组帧模块将不同数据定时汇总上传至上位机,经上位机相应处理后进行实时显示对应参数的波形。

Figure 14. Instruction parsing and data upload block diagram--图14. 指令解析与数据上传框图--
4. 系统仿真与测试 4.1. 系统仿真

为验证主控数据上传的准确性,本设计决定采用信号发生器产生频率为1 KHz,幅值为2 V的正弦信号作为芯片AD7606C采集通道的输入信号,对比经上位机处理后存储的数据绘制的波形来测试数据采集上传的准确性。如 图15 为存储数据绘图,从图中可看出采集到的数据绘制出来是正弦波形,其幅值是2 V,周期为200个采样点,而此次测试对AD7606C设置采样频率是200 KHz,所以该正弦波形周期为1 μs。根据输入的正弦信号与上位机采集到的数据绘制出的波形对比,可认为本设计的数据采集上传准确无误。

Figure 15. Memory data plotting--图15. 存储数据绘图--
4.2. 系统测试

为确定本系统实现相应功能,于是对系统进行测试验证。本次测试设定的电机驱动电压为9 V、微步细分为全步模式,以及电机的目标转速为15 r/min,并设置霍尔信号时间间隔的上限值与下限值。四相步进电机达到匀速状态下四个相线上的相电压与相电流的波形图如 图16 图17 所示,根据此波形图可对电机运行时四相进行监测,观察四个相线上的电压值与电流值是否出现的异常状态,并且在电机运行过程中,可通过霍尔信号的时间间隔与编码器的位置信息分别计算出电机运行时的平均速度与瞬时速度,进而监测电机运行过程中是否出现丢步以及堵转等异常运行现象。

Figure 16. Motor phase voltage waveform--图16. 电机相电压波形-- Figure 17. Motor phase current waveform--图17. 电机相电流波形--
<xref></xref>5. 结论

本文基于FPGA设计出四相步进电机驱动及电机参数采集系统,主要具有以下几项优点:1. 电机驱动电压实现4~20 V可调,步进细分最高支持256细分,并且可自由组合,实现步进电机驱动灵活配置;2. 根据UDP协议与DDR3存储器的结合应用,为步进电机控制需要的变速曲线提供大量的存储空间,为实现更精细化的驱动步进电机提供可能;3. 在此基础上,本设计将步进电机相电压、相电流、霍尔信号以及编码器等电机相关参数进行采集、上传后进行实时波形显示,从而可对步进电机运行时的电压、电流、瞬时速度以及平均速度进行实时监测;4. 本设计不仅可对各电机参数进行设置阈值上下限,还有相应的报警方式,在出现异常现象可通过不同的报警方式定位到问题根源,为操作人员排查问题提供便利。本文设计了更加精细化的四相步进电机驱动方式以及对四相步进电机的运行进行实时监测,可实现高精度的四相步进电机驱动控制,并且通过实时监测四相步进电机运行以及相应的报警方式,为安全性提供更多保障,具有较高的工程应用价值。

References 刘旭辉, 简震, 丁志娟, 等. 基于Labview的步进电机闭环控制系统设计[J]. 电力电子技术, 2021, 55(2): 54-56. 张婧, 樊艳艳, 李勇. 基于STM32和TMC5160的步进电机控制系统[J]. 仪器仪表用户, 2020, 27(2): 63-66. 刘成淦, 王直. 基于STM32的一种步进电机系统的设计[J]. 电子设计工程, 2018, 26(1): 131-134+139. 张曼玲, 汪钊旭, 穆旭阳, 等. 基于单片机的步进电机控制系统探究[J]. 机电产品开发与创新, 2023, 36(3): 133-135+145. 谭人铭, 张仁杰, 江涛. 基于STM32的步进电机位置闭环控制系统设计[J]. 黑龙江工业学院学报(综合版), 2023, 23(1): 58-62. 孙磊. 基于FPGA的步进电机矢量控制研究[D]: [硕士学位论文]. 南京: 南京航空航天大学, 2019. 向云峰, 王秀莲. 基于FPGA的步进电机驱动控制系统的研究与设计[J]. 南方农机, 2023, 54(13): 148-151. 段简, 张奕婷, 郑晓峰, 等. 基于HDL/FPGA的步进电机驱动控制器设计[J]. 科技与创新, 2023(4): 5-7+12. 张华西, 陈佳宇, 刘卿卿, 等. FPGA的多通道步进电机控制系统设计[J]. 单片机与嵌入式系统应用, 2023, 23(3): 71-75. 陈乾. 基于以太网的带式输送机监控系统下位机的设计与实现[D]: [硕士学位论文]. 天津: 天津工业大学, 2019. 贺建华, 国芳, 崔洁. 基于FX5U以太网通信的多台电机联合控制系统设计[J]. 电工技术, 2023(22): 12-14+18. 齐国栋, 姚达毛, 仲崇峰. 类ITER多功能机械臂关节三电机控制系统设计[J]. 核聚变与等离子体物理, 2024: 1-6. >http://kns.cnki.net/kcms/detail/51.1151.tl.20240313.1529.002.html, 2024-08-30. 贺政. 基于FPGA的多轴运动控制系统的研究[D]: [硕士学位论文]. 广州: 广东工业大学, 2021. 孔德伟, 袁国顺, 刘小强. 基于FPGA的万兆以太网链路的设计与实现[J]. 微电子学与计算机, 2019, 36(12): 21-25. 潘忠英. 以太网与CAN总线通信的FPGA设计与实现[J]. 计算机时代, 2022(7): 44-48. 李杨, 苏和平, 张丹, 等. 基于FPGA + ARM多路千兆以太网通信接口设计[J]. 现代电子技术, 2022, 45(15): 25-29. 梁洪涛, 王一兵, 朱燕萍, 等. 旋转惯导中转位电机控制算法对导航精度的影响分析[J]. 宇航计测技术, 2023, 43(4): 41-47. 梁宽宽, 刘敏. 基于FPGA的多通道红外信号采集系统设计[J]. 工业仪表与自动化装置, 2023(1): 21-25.
Baidu
map