基于ARM与FPGA的运动控制平台研究

2012-10-16 06:23陈永忠俞路阳
核技术 2012年3期
关键词:接口板光栅尺束流

晏 宇 陈永忠 俞路阳

(中国科学院上海应用物理研究所 上海 201800)

束流截面是表征束流性能的重要参数,束流截面测量系统可获得束流截面的形状和大小、束流发射度、能散度以及能量等参数,对加速器调试、运行和研究必不可少。上海深紫外自由电子激光(SDUV-FEL)[1]的束流截面测量系统[2]包括图像采集、气动控制和步进电机控制三大子系统,均由分立模块组成,其中步进电机控制子系统选用美国Galil公司的DMC-21x3运动控制卡[3],配合驱动器细分控制,定位精度达1 mm。

随着SDUV-FEL控制步进电机数量的增加,原有电动控制系统的安全保护需额外定制的软件系统实现,对束流测量系统的安全性和精确性有较大影响,亟需对现有设备提出改进方案。上海光源采用的束流位置测量(Beam Position Monitor, BPM)系统参考斯洛文尼亚Instrumentation Technology公司的Libera EBPM处理器[4],采用RF信号直接采样处理的工作模式,利用带通欠采样技术对RF信号进行量化后,在FPGA(Field- Programmable Gate Array)中完成数字下变频、滤波、抽取等处理而得到束流位置,典型的采样率为百MHz。这类处理器能同时进行闭轨、逐圈位置、快轨道反馈用束流位置的精确测量,数据服务器内置其中。参考该 BPM 系统的成功案例,本文提出基于 ARM(Advanced RISC Machines)与FPGA的运动控制平台方案。

选用ARM与FPGA作为运动控制的嵌入式通用平台,用于束流截面测量系统的电动位置和气动位置控制。ARM用于接入EPICS系统、电机速度控制及位置控制;FPGA完成步进电机的闭环控制,用于接收并处理步进电机的脉冲控制信号,同时处理光栅尺提供的反馈信号。本文对嵌入式束流截面测量系统的总体结构,硬件接口设计和软件设计进行了分析。

1 嵌入式系统总体设计

电机控制模块是运动控制平台的核心功能模块,主要性能指标包括:外接八路步进电机,每路步进电机通过限位信号和光栅尺反馈信号实现电机闭环控制,提供多个I/O扩展接口,以便接入图像采集系统和气动控制系统。束流截面测量系统采用ARM与FPGA芯片作为主控芯片,硬件系统包括ARM模块、FPGA模块、步进电机接口板模块。系统总体设计方案如图1所示。

在同行评审结束之后,相关美国国立卫生研究院中心还将对拟资助课题进行一系列评估,包括与美国国立卫生研究院资助原则的一致性、课题经费预算评估、申请人课题组织管理系统评估、申请人能力评估、与公共政策及需求的一致性评估等。

2.3.9 肾小球滤过率 2项研究[6,16]报道了肾小球滤过率,各研究间有统计学异质性(P=0.001,I2=90.4%),采用随机效应模型进行分析,详见图10。Meta分析结果显示,两组患者肾小球滤过率比较,差异无统计学意义[WMD=3.97,95%CI(-6.87,14.81),P=0.47]。

图1 系统总体设计原理框图Fig.1 Block diagram of overall system design.

采用基于 ARM 和 FPGA的控制平台,移植Linux操作系统到ARM中,通过IOC编程即可接入现有EPICS环境。ARM作为主控芯片,发送脉冲控制信号;利用FPGA的I/O端口多、功耗低、主频高的优点,充分实现电机控制器的功能。ARM和FPGA平台的优点在于:便于对系统控制策略进行修改;根据实际需求对控制信号参数进行设置,使系统具有良好的可靠性、可维护性及可扩展性;降低了硬件采购的成本。控制平台可在步进电机控制器基础上,利用空余的FPGA的I/O端口进行功能扩展,满足后续的扩展功能,系统保护通过FPGA硬件实现,不需使用额外的软件。这样充分利用了ARM的网络传输功能和FPGA的并行数据处理功能,提高了电机控制系统的可靠性和扩展性。

2 系统硬件方案

2.1 ARM和FPGA选型

秦锡麟,1942年出生于江西南昌,1964年毕业于景德镇陶瓷学院美术系,原任景德镇陶瓷学院党委书记、院长,现任景德镇陶瓷学院名誉院长、教授、中国工艺美术大师。中国工艺美术大师评审委员会评委、中国陶瓷艺术评审委员会主任委员、中国陶瓷协会副理事长、中国工艺美术学会副理事长、中国美术家协会陶瓷专业委员会委员。

(2) 输出控制信号接口设计。输出信号为步进电机的两路脉冲控制信号,每路都有使能、脉冲和方向信号,8路共24个输出信号。FPGA输出信号经电平转换和光电隔离后输到步进电机驱动器。

运动控制平台系统软件设计包括FPGA控制模块、Linux系统的驱动开发、控制界面编程和EPICS的移植。FPGA编程采用模块化设计,单独控制各路步进电机,以完善系统的控制功能,便于提高电机的控制精度和步进电机控制器的灵敏度,增强系统的可靠性;ARM部件编程在嵌入式Linux操作系统环境下实现。

S3C2440的CPU主频400 MHz,最高533 MHz;Flash容量64 MB,可供移植嵌入式Linux操作系统。

FIFO存储器内部有读写指针,使用数据寄存器访问,当ARM读取一个数据后,FIFO读指针会指向下一个数据,再次读取时读取下一个数据,写入端操作同理。

XC3S400-4PQ208芯片的系统门数400 k,等效逻辑单元8064,分布式RAM容量56 kb,块RAM容量288 kb,专用乘法器5个,数字时钟管理单元4个,最大用户IO数141个。

2.2 步进电机接口板设计

FPGA到ARM的接口包括上行异步FIFO和下行异步FIFO,判断两个异步FIFO的状态。上行异步和下行异步 FIFO分别用来缓存来自或发送给ARM的数据。

图2 X路步进电机接口电路Fig.2 X-axis of stepper motor interface circuit.

图3 步进电机接口板实物图Fig.3 PCB of stepper motor interface board.

(1) 输入限位信号接口设计。输入限位信号包括限位信号 LIMITX+、LIMITX-~LIMITE+、LIMITE-,检测到限位信号后,限位信号触发,立即停止相应电机的运动;限位消除,电机才能在该方向上继续运动。

FPGA模块的主要功能是利用XC3S400的I/O端口设计电机控制信号的输入输出、光栅尺信号的输入以及外围的扩展输入输出。还可通过JTAG接口编程对I/O进行重配置,增加了系统的灵活性。

(3) 光栅尺信号接口设计。光栅尺信号提供三对差分信号A+、A–、B+、B–、Z+、Z–作为反馈,三对信号需经差分电路转换为单路信号A、B、Z。差分电路由 26LS32构成,将输入的一对极性相反的光栅尺反馈信号转换为单极性的方波信号。其中A、B两路信号为正交脉冲信号,Z路信号每转产生一个低电平脉冲,用于回零时的定位控制。

经比较选用:①水功能区水质达标率;②城市污水处理率;③水土流失治理率。通过这3项指标反映区域对水质、水生态保护和修复方面所取得的成效。

2.3 ARM与FPGA通信接口设计

FPGA内部逻辑功能主要完成控制信号的转发,与S3C2440的接口连接如图4所示。FPGA中的状态/命令寄存器用于对 FPGA内部交换表进行控制操作;设置两个FIFO分别用作FPGA与ARM间数据传输的输入与输出缓冲;一个用作 FIFO数据寄存器,用于读取 FIFO存储器的数据,一个用作控制寄存器。S3C2440提供了 16位宽数据总线DATA[0:15]和8位宽地址总线ADDR[0:7],并采用4组控制信号进行控制数据传输:nGCS2为片选使能控制信号,即选择BANK2,nOE为使能信号;nWE为写数据信号,nRD为读信号,nINT0为FPGA对ARM的中断信号。该控制信号须由GPIO控制寄存器单独设定。由于S3C2440的总线时钟频率为100 MHZ,总线操作周期很短,FPGA可通过控制ARM9的nWAIT引脚延长ARM总线操作周期[5]。

图4 S3C2440与XC3S400的接口连接Fig.4 Interface connection between S3C2440 and XC3S400.

步进电机接口板中X路控制电路见图2,其余7路与X路类同;接口板印刷电路板实物见图3。

束流截面测量系统硬件实物如图5,步进电机接口板位于正中,接口板上方小板是FPGA实验板,接口板左边是ARM实验板,机箱两侧是电源,机箱下部是步进电机驱动器;FPGA与步进电机接口板通过总线插槽连接,FPGA与ARM间的数据通信接口通过外接总线连接。图中接口板各器件焊接及接口连接全部手工实现,检测并保证了开发板中各功能模块的信号完整性。

几个月下来,媪妇谱的万千种变局,师徒四人闭门苦研,都已经烂熟于心,这飞来的棋局,果然是玄之又玄,打开了围棋的众妙之门,有时候他们连夜打谱,听着夜雨打着窗外的新荷,不知东方之既白,这种梦幻般的体会,也是从前没有过的,星雨常想,比较起画画、弹琴、书法,也许围棋才是我的真爱?这样一闪念,林师父、苏师父、颜师父的影像便在她眼前一一浮现,按下葫芦浮起瓢,让她自己都觉得内疚起来。

图5 束流截面测量系统硬件实物图Fig.5 Photo of the prototype beam profile diagnostic system.

3 系统软件设计

推荐理由:1.十三五重点图书,国家出版基金资助项目 2.主编系中科院院士,参与编写的人员均为国内该领域成果比较突出的学者,图书原创性高,内容权威,包括很多发表在Science,Nature等国际一流期刊上的研究成果。3.代表了我国近年来在电催化纳米材料科学和技术研究中的最新进展。

基体元素信号值远远高于其空白值,且基体元素信号值的稳定性也是影响测定结果稳定性的主要因素,故实验选择63Cu的信号强度为考核对象。在表1中其他条件参数不变的情况下,采用纯铜光谱标准样品T02逐级优化了激光剥蚀系统的激光能量、剥蚀孔径、扫描速率以及载气流速4个影响激光剥蚀固体进样产生瞬时信号的关键参数,使63Cu的信号强度稳定并达到最大值[11]。

3.1 FPGA控制模块

FPGA控制模块软件设计控制逻辑如图6所示。FPGA编程需实现FIFO逻辑控制、时钟发生器、步进电机控制和光栅尺反馈信号处理。

本方案中ARM芯片采用韩国Samsung公司的ARM9系列处理器S3C2440,FPGA芯片采用美国Xilinx公司的Spartan 3系列的XC3S400-4PQ208。

图6 FPGA模块控制逻辑Fig.6 Control logic of the FPGA module.

“微型探究”策略引导:提升学生的数学抽象能力是课堂探究教学的中心环节,因此在课堂中教师要设计富有思考性的“微型探究”活动,引导学生经历一个从“形”到“数”的认识过程,也就是要经历从几何直观到理性认识的过程,使学生在探索、体验和感悟中促成思考方法的不断优化,提升数学抽象能力,催生学习的智慧.

时钟发生器产生FIFO读写时钟信号,FIFO通过写时钟信号将数据读入,FIFO数据半满时(存入4096个bit)产生半满中断信号,通知ARM读取数据。

步进电机闭环控制通过接收ARM发送的脉冲控制信号,使用Verilog HDL编程实现步进电机的逻辑控制功能。光栅尺反馈信号将反馈的数据信号存入FIFO中,待ARM进行读取。FPGA模块中FIFO功能测试使用逻辑分析仪及ModelSim仿真观察程序波形,可实时获取和调试信号逻辑。

3.2 Linux系统移植和驱动开发

嵌入式Linux系统采用2.6.24的内核版本,系统移植主要使用U-boot实现,文件系统的烧写和程序配置参照 ARM 开发板的在线文档实现。FPGA设备驱动开发采用通用的编程方案,使FPGA驱动程序不限于固定的FPGA芯片。FPGA设备在Linux系统中属字符设备,Linux将所有字符设备都作为文件进行操作,对FPGA设备完成初始化后,系统编程需实现的操作函数接口封装在 file_operations结构体中,接口封装主要函数包括对文件的基本操作如 read()、close()、read()、write()等,根据 FPGA与ARM的连接逻辑对模块函数进行定制,通过改写ioctl()函数功能,实现对FPGA设备的控制。FPGA设备驱动程序整体调用过程如图7。

图7 FPGA设备驱动数据流图Fig.7 Dataflow of FPGA device driver.

FPGA驱动程序的主要功能是:对FPGA设备进行初始化和释放操作;把控制信息从内核传到FPGA以及从FPGA读取数据;读取用户区间应用程序的数据,传给FPGA设备文件;回送应用程序请求的数据、检测和处理FPGA使用时出现的中断请求和数据处理。Linux通用中断程序的流程是在应用程序向Linux申请了中断通道后,系统会响应外部中断IRQ_EINT0,进入中断处理程序。中断处理接受各中断接收的信息反馈给设备,并根据服务的中断类型进行数据处理。FPGA设备驱动需准确快速实现数据的读写操作和阻塞操作,实现 ARM和FPGA的全双工数据通信。驱动程序编写后,需在FPGA端对上行和下行FIFO环回。

4 实验结果

FPGA设备的编程通过Verilog HDL语言完成,波形仿真结果通过Modelsim分析,RTL电路图由Synplify生成,图8为FIFO模块的波形仿真图。ARM 端嵌入式平台下测试用的图形界面用 Qtopia编程实现,图9为ARM与FPGA通信控制界面图。

图8 FPGA光栅尺信号仿真波形图Fig.8 Simulation wave of FPGA’s encoder signals.

图9 ARM与FPGA通信控制界面Fig.9 ARM embedded system control GUI.

实验室环境下硬件测试系统的编码器回馈频率最高可达12 MHz,步进输出频率最高达3 MHz (脉冲及方向),可实现光栅尺回馈、原点复归、正负极限控制、支持1–8轴电机控制,单轴控制下配合驱动细分控制器的定位精度为 2 μm,与 DMC-21x3运动控制卡的定位精度相差1 μm。

5 结语

搭建了ARM和FPGA运动控制平台后,控制系统的扩展性得到提高,实现了预想中的要求。后续的开发工作包括在Linux中完善步进电机控制的GUI开发及EPICS环境的移植,进一步改进FPGA的控制逻辑,提高步进电机控制安全性和定位精度。

ARM和FPGA架构的束流截面测量系统进展顺利,对单个步进电机控制可达到2 μm的定位精度,有效实现了单个步进电机的闭环控制。考虑到FEL隧道中同时操作多个电机的需求,后期开发需进一步完善系统功能,在进行现场在线测试后,争取替代现有隧道中的电机控制系统,从而提高FEL装置数据采集可靠性和扩展性,并改善束流测量的效率和准确率。

1 ZHAO Zhentang. Design study for the sduv-fel facility[R].Proceedings of APAC, Gyeongju, Korea, 2004: 161–163

2 Takano S, Masaki M. OTR based monitor of injection beam for top-up operation of the spring-8[R]. Proceedings of the DIPAC, 2005: 72–74

3 Galil Motion Control Inc. DMC-21x2/21x3 Manual[Z].Rocklin, California, US, 2008

4 Instrumentation Technologies Company. Libera electron specification 1.91[Z]. 2007

5 刘 源, 朱善安. 基于ARM9和CPLD的嵌入式工业控制系统[J]. 机电工程, 2007, 24(1): 39–49 LIU Yuan, ZHU Shanan. The embedded industry controlling system based on ARM9 and CPLD[J]. Mech Electr Eng Mag, 2007, 24(1): 39–49

猜你喜欢
接口板光栅尺束流
国产光栅尺在校直机设备上的应用
光栅尺在高精度数控机床中的重要性
客运交通装备内话系统的话机板卡设计
高能同步辐射光源低能束流输运线设计研究
中国散裂中子源加速器注入束流损失调节研究
伊宁CINRAD CC雷达两类故障分析
光栅尺在数控机床中的应用
ECR中和器束流引出实验研究
合肥光源钮扣型束流位置检测器的离线标定
论绝对光栅尺