基于FPGA的多轴步进电机控制系统
王刚1,2,3, 林佳本1,2, 郭晶晶1,2,3, 张鑫伟1,2,3, 佟立越1,2,3, 白阳1,2,3, 陈垂裕1,2,3     
1. 中国科学院国家天文台, 北京 100101;
2. 中国科学院太阳活动重点实验室, 北京 100101;
3. 中国科学院大学, 北京 100049
摘要: 观测技术及仪器的进步推动了太阳物理的研究,步进电机是各类观测仪器精密结构调整部件中经常采用的驱动源,步进电机控制系统的性能直接影响太阳望远镜的数据精度和时间分辨率。介绍了一套怀柔太阳观测基地自主研制的多轴步进电机控制系统。该系统以现场可编程门阵列为核心控制器,利用中断处理机制及输入/输出寄存器产生多路晶体管-晶体管逻辑电平(TTL)方波信号,结合驱动器实现多轴步进电机控制;通过周期信号化简处理算法缩短电机调整时间;以霍尔器件作为位置传感器实现系统闭环控制,通过对霍尔信号的软、硬件滤波处理,提高信号识别的准确率;设计了板载存储电路,实时保存系统关键参数,大幅提高系统整体的可靠性。同时,该系统设计了丰富的输入/输出接口、通讯接口,提高系统的可集成性。目前该系统已在多台太阳望远镜中投入使用。
关键词: 太阳望远镜    多轴步进电机控制    中断处理机制    闭环控制    存储电路    
Multi-axis Stepper Motor Control System Based on FPGA
Wang Gang1,2,3, Lin Jiaben1,2, Guo Jingjing1,2,3, Zhang Xinwei1,2,3, Tong Liyue1,2,3, Bai Yang1,2,3, Chen Chuiyu1,2,3     
1. National Astronomical Observatories, Chinese Academy of Sciences, Beijing 100101, China;
2. Key Laboratory of Solar Activity, Chinese Academy of Sciences, Beijing 100101, China;
3. University of Chinese Academy of Sciences, Beijing 100049, China
Abstract: Observation is the main technical method of solar physics research. Stepper motor is often used as the driving source of precision structure adjustment in various observation instruments. Stepper motor control system is an important part of the electronic system of solar observation telescope. This paper introduces a multi-axis stepper motor control system independently developed by Huairou Solar Observation Base. The system uses FPGA as the core controller, uses the interrupt processing mechanism and input/output registers to generate multiple TTL square wave signals, and combines the driver to realize multi-axis stepper motor control. The Hall device is used as the position sensor to realize the closed-loop control of the system. In the design, the Hall signal is filtered to improve the signal recognition accuracy. The MFC class library is used to complete the human-computer interaction interface design, and the serial communication protocol is used to realize the information interaction between the computer and the controller. In addition, external storage circuits have been added to the basic functions to improve the overall reliability of the system.
Key words: Solar telescope    Multi-axis stepper motor control    The interrupt processing mechanism    Closed-loop control    External storage circuits    

观测是太阳物理研究中最重要的技术手段之一,自1612年伽利略开始使用望远镜观测太阳黑子至今,每一次太阳观测仪器或技术的革新都极大地推动了太阳物理学研究进展[1]。怀柔太阳观测基地(Huairou Solar Observation Station)是中国科学院国家天文台的重要观测基地之一。自1984年建站至今30余年,怀柔基地在太阳磁场与速度场的观测研究领域已跻身世界前列[2-4]。太阳磁场望远镜以及多通道太阳望远镜[5]的研制成功,极大地推进了国内外实测太阳物理事业的发展。

太阳望远镜主要由光学系统、机械结构以及电子学系统3部分组成。为保证望远镜的高质量运行,怀柔太阳观测基地技术团队结合现有的先进技术,对望远镜进行了全面的升级改造[6-7]。本文介绍的多轴步进电机控制系统,是望远镜电子学系统的重要组成部分。以怀柔多通道太阳望远镜为例,仪器内部采用17个步进电机作为驱动源,对滤光器以及偏振分析器中可移动光学器件的空间位置进行精确调整,以实现对不同波长磁敏感线的窄带测量。步进电机控制系统的准确性、稳定性以及控制效率直接影响太阳磁场观测数据的精度和时间分辨率。

怀柔基地早期采用的步进电机控制架构以计算机为控制核心,集成数字输入/输出(I/O)卡生成控制信号,结合电机驱动器实现对步进电机的精确控制[8]。这种设计方式的不足之处在于:(1)系统整体复杂性较高;(2)系统可移植性较弱。为解决上述问题,怀柔基地研制出第2代滤光器电机控制系统,该系统使用嵌入式设计理念,大幅度减少对计算机的依赖性。但由于系统采用控制、驱动一体化集成设计,电路专用性较强,无法满足对不同类型步进电机的通用控制。为弥补上述两类控制系统存在的不足,本文在已有研究的基础上,提出了一种新的控制策略,即以嵌入式系统作为控制核心,配合计算机和通用型驱动器实现对多轴步进电机的控制。系统的设计要求是,在保证太阳望远镜观测过程中对多路步进电机所有控制功能需求的前提下,降低控制系统的复杂度,提高系统的可移植性、稳定性以及扩展性。

1 系统硬件设计

本文介绍的多轴步进电机控制系统整体结构采用分离式设计(图 1),主要包括上位机、控制器以及驱动器3个模块。分离模块化设计方式可有效降低系统的耦合度,提高系统的可移植性以及故障排查效率,其中,电机控制器是系统主要的硬件设计部分。

图 1 系统结构示意图 Fig. 1 System structure diagram
1.1 基于现场可编程门阵列的片上系统构建

使用Altera公司生产的Cyclon IV E型现场可编程门阵列作为片上系统构建平台,该芯片拥有15 408个逻辑单元、504 KB的嵌入式存储器以及343个用户输入输出接口。丰富的逻辑资源及接口数量为多路电机控制提供了硬件保障。选用NIOSII/e软核作为系统的嵌入式微处理器,该处理器为哈佛结构,最高工作频率为100 MHz/s,数据总线与地址总线采用分离式设计,可在占用较少逻辑资源的前提下实现最优性能。除处理器外,根据具体使用需求添加了其他知识产权核(Intellectual Property core, IP),以构建完整的片上系统。知识产权核信息与功能如表 1

表 1 片上系统知识产权核信息表 Table 1 System-on-chip IP core information table
IP Core Information Function Description
SDRAM Controller Communicate with external memory chip
EPCS Controller Communicate with EPCS chip
Interval Timer Internal timer to control TTL square wave signal frequency
PIO TTL square wave signal generation
UART Communication chip driver
SPI SPI bus driver to communicate with the external memory chip
1.2 板级硬件电路设计

片上系统构建属于集成电路设计范畴,即将最终的设计结果集成至芯片内部。由于其能力有一定的限制,需设计外围支持电路,用以实现信号电平转换以及配置信息存储。本系统设计的支持电路从功能上可划分为以下几部分:

(1) 串口通信电路:采用标准的RS232串口电路与计算机实现控制指令及状态数据的信息交互;

(2) 控制信号放大电路:由于现场可编程门阵列管脚输出信号为3.3 V TTL电平,电压值与驱动器不匹配,选用74HC245芯片对控制信号进行放大。

(3) 数据存储电路:使用铁电存储器FM25L256实现多路步进电机位置实时存储功能,存储器采用I2C总线协议与片上系统进行连接,通信速率可达10 MB,且不存在读写次数上限问题,正常工作环境中的数据保存时间为10年。

(4) 信号识别电路:使用上拉电阻的方式对霍尔传感器产生的跳变信号进行增强,使片上系统中的输入/输出核可以准确识别沿跳,进入中断处理程序段。

1.3 控制器硬件集成

对设计完成的步进电机控制器硬件电路进行装配集成(图 2)。控制器包括48路信号输出端口、20路中断信号输入端口以及8路自定义扩展口。最高可实现14路步进电机同步控制。

图 2 步进电机控制器 Fig. 2 Stepper motor controller
2 系统软件设计

为了降低系统对计算机的依赖性,提高系统的可移植性。本文在嵌入式软件系统设计中完成了包括外部信号识别、控制信号生成、数据存储、位置信息反馈以及路径优化算法的所有功能。这种设计方式可以降低计算机端软件设计的复杂度,且有利于望远镜自主观测控制总系统的设计。由于嵌入式软件系统内容较多,本文仅介绍关键功能部分。

2.1 电机控制信号生成

单路步进电机所需控制信号包括:公共信号(高电平有效)、方向信号、脱机信号(低电平有效)以及脉冲信号(上跳沿有效)。利用NIOSII软核的内部定时器中断处理机制,等间隔改变输入/输出寄存器状态值,产生空比为50%的TTL脉冲电平信号。利用NIOSII对输入/输出寄存器状态值进行修改,生成其他3路控制信号。

电机控制信号软件模块如图 3。首先对自定义的内部指令进行解码。解码信息包括电机号、旋转速度值、运动方向以及旋转步数值。根据电机号信息使能对应步进电机的公共端信号、拉低脱机信号并设置方向信号电平值。然后根据旋转速度信息对定时器周期寄存器初始值进行设定。寄存器初值与步进电机旋转速度关系式为

$ \mathit{\Omega}=\frac{2 \pi}{D} \frac{C L K}{2 n}, $ (1)
图 3 电机信号生成模块软件流程 Fig. 3 Motor signal generation module software flow

其中,Ω(rad/s)为步进电机旋转角频率;D(步/圈)为电机驱动器细分值;CLK为系统工作频率(100 MHz);n为寄存器初始设定值。完成周期设定后开启定时器,待产生中断信号后进入中断函数体,对脉冲信号端口寄存器状态值进行取反操作,从而产生周期性TTL脉冲信号。在波带整移过程中,对超过旋转波片光学周期(90°)部分进行取余操作,优化了电机转动控制,减少步数,提高执行效率。

2.2 位置信息存储

为提高嵌入式系统的集成度,本文在硬件设计部分加入了外置存储芯片,用于保存步进电机的位置信息。存储芯片选用FM25L256型铁电存储器,支持串行外设接口(Serial Peripheral Interface, SPI)总线通信协议,存储器阵列为8 × 237 68 bit共256 KB。在软件设计中编写对应芯片驱动模块,以实现数据的读写操作。驱动指令由8位操作代码、16位地址码以及数据构成。设计时需申请临时数据存储空间,用于存放读出或写入的数据。为方便其他函数的调用,将该驱动代码部分封装为独立的模块,并留出相应的数据接口及操作模式接口。当步进电机位置变动时,对其变动后的新位置进行存储。控制器断电重启时,自动读取断电前保存的位置信息。除此之外,还可根据不同项目需求对其他配置信息进行存储,例如滤光器控制中的线心位置信息存储以及定天境轴系控制中的恒动、快动以及慢动速度值的存储。

2.3 位置信号识别

为实现步进电机的闭环控制,通过霍尔传感器标识绝对位置(亦称机械零位),修正电机旋转过程中产生的位置误差。霍尔传感器本质是一种磁场传感器,当受控机械结构上的磁块运动至识别范围时,霍尔信号管脚会产生由高到低的电平跳变信号。利用NIOSII的外部中断机制识别该跳变信号,进而反馈至步进电机控制过程。为了提高信号识别的准确性,在软件中添加了滤波代码,消除短时强磁场或电源电压波动产生的干扰信号。

3 实验结果

为验证本设计的功能完备性、稳定性以及控制精度,应用该控制系统完成了多通道太阳磁场望远镜滤光器波带控制系统(17路电机)的设计及升级工作,并对系统更换后的设备进行了相关测试验证。图 4为多通道望远镜观测波段线心位置标定测量数据,图中横坐标为滤光器定标位置相对偏移量,纵坐标为探测器接收光强值。从图 4可以看出,测量曲线光强变化平滑,未出现单级波片(电机)控制失效的情况;测量曲线与太阳谱线吻合度较高,已实现波带整移(多通道同步控制)功能。图 5为不同波段太阳磁场测量结果,说明电机控制系统达到了太阳观测系统所需的控制精度。目前系统运行稳定,并已承担相关科研观测工作。

图 4 (a) 517.3 nm,(b) 525 nm,(c) 524.7 nm线心标定结果 Fig. 4 Line center position
图 5 (a) 517.3 nm,(b) 525 nm,(c) 524.7 nm磁场测量数据 Fig. 5 Solar magnetic field measurement data
4 结论

采用可编程逻辑器件,结合知识产权核以及片上处理系统设计概念,实现了多轴步进电机控制系统设计。在研究过程中解决了信号识别不准确、数据掉电存储以及通信过程数据丢失等问题,目前所研制的控制器单板可实现对12路步进电机闭环控制,且可以多块控制器并联使用,缩减控制系统的整体体积。已使用该系统实现了怀柔观测基地多通道太阳望远镜滤光器波带控制系统设计(17路步进电机),新疆温泉县磁场望远镜滤光器波带控制系统设计以及北京师范大学太阳塔定天境轴系控制系统的设计。

致谢: 系统的设计、调试过程得到国家天文台怀柔观测基地张洋、王丙祥、汪国萍等同事的大力支持,在此深表感谢。本系统研制过程中使用了国家天文台所级公共技术服务中心高精度电子学系统研制测试平台相关设备。

参考文献
[1] 刘睿, 陈耀, 邓元勇, 等. 中国太阳物理学研究进展[J]. 科学通报, 2019, 64(19): 2011–2024
[2] SU J T, LIU Y, SHEN Y D, et al. Imaging observation of quasi-periodic disturbances' Amplitudes increasing with height in the polar region of the solar corona[J]. The Astrophysical Journal, 2014, 790(2): 1–9.
[3] 张洪起, 杨尚斌, 徐海清, 等. 探讨我国在太阳物理领域中螺度研究的进展[J]. 科学通报, 2014, 59(36): 3561–3569
[4] ZHANG M, LOW B C. Magnetic energy storage in the two hydromagnetic types of solar prominences[J]. The Astrophysical Journal, 2004, 600(2): 1043–1051.
[5] 艾国祥, 胡岳风. 太阳磁场望远镜的提出和工作原理[J]. 天文学报, 1986, 27(2): 173–180
[6] 林佳本, 邓元勇, 胡柯良, 等. 实时相关跟踪图像处理系统[J]. 天文研究与技术, 2016, 13(4): 345–354
[7] 林佳本, 沈洋斌, 朱晓明, 等. 怀柔太阳观测基地全日面磁场自动化观测系统[J]. 天文研究与技术——国家天文台台刊, 2013, 10(4): 392–396
[8] 肖江, 胡可良, 邓元勇, 等. 基于USB协议的望远镜多波带控制系统设计[J]. 天文研究与技术——国家天文台台刊, 2007, 4(4): 360–368
由中国科学院国家天文台主办。
0

文章信息

王刚, 林佳本, 郭晶晶, 张鑫伟, 佟立越, 白阳, 陈垂裕
Wang Gang, Lin Jiaben, Guo Jingjing, Zhang Xinwei, Tong Liyue, Bai Yang, Chen Chuiyu
基于FPGA的多轴步进电机控制系统
Multi-axis Stepper Motor Control System Based on FPGA
天文研究与技术, 2020, 17(2): 185-190.
Astronomical Research and Technology, 2020, 17(2): 185-190.
收稿日期: 2019-08-22
修订日期: 2019-09-24

工作空间