基于ARM+FPGA架构的嵌入式数控雕刻系统的设计
2014-03-07李腾飞凌有铸刘敬猛
李腾飞,凌有铸,刘敬猛
(1.安徽工程大学安徽省电气传动与控制重点实验室,安徽芜湖 241000;2.北京航空航天大学自动化学院,北京 100191)
基于ARM+FPGA架构的嵌入式数控雕刻系统的设计
李腾飞1,凌有铸1,刘敬猛2
(1.安徽工程大学安徽省电气传动与控制重点实验室,安徽芜湖 241000;2.北京航空航天大学自动化学院,北京 100191)
针对数控雕刻机,设计了ARM+FPGA架构的硬件平台和基于μC/OS-Ⅱ实时操作系统的软件平台。ARM微处理器具有高速的运算能力,且FPGA拥有非常强大的逻辑处理能力,使系统的外围接口器件大幅减少并降低了设计复杂度。采用μC/OS-Ⅱ嵌入式实时操作系统作为软件开发平台,使系统很好地进行多任务处理,保证了雕刻机运动控制的实时性、稳定性,满足了高速高精加工的要求,同时具有良好的人机界面。
数控系统;ARM;FPGA;实时操作系统
此设计采用了32位的ARM微处理器S3C2410芯片和Cyclone系列的FPGA器件作为数控系统硬件平台的核心器件,ARM+FPGA架构控制系统则用于实现运动控制的功能。之所以采用 ARM+FPGA作为数控的核心架构,是因为ARM拥有大容量的存储器,足以存储所要编写的数控应用程序。其芯片配置有存储器接口、通信接口、LCD显示接口等;PC平台开发环境比较好,具有相当丰富的资源以及用户界面友好的优点。ARM微处理器有优点同时也有缺点,缺点是不能直接管理数控系统复杂I/O控制,需利用FPGA去实现I/O处理、产生脉冲信号以及复杂逻辑运算[1]。软件平台则采用了开放性源代码的μC/OC-II实时操作系统,负责数控雕刻系统的任务调度和管理,使整个数控系统的实时性得到了很大的提高,从而实现了高速、高精的要求。
1 数控系统的硬件设计
该系统采用ARM+FPGA结构。系统软件在ARM处理器上执行,FPGA负责脉冲信号的产生、操作键盘的扫描、复杂时序逻辑运算和外设I/O口控制。具体的说就是ARM完成人机界面的设计、译码、刀补、粗插补、辅助控制等任务,FPGA接收ARM的控制指令完成细插补功能和伺服更新,控制伺服电机的运动;扫描键盘,控制机床的I/O。ARM2410与FPGA之间是通过总线连接,多中断源中断方式传递信号的[2]。图1为系统硬件设计结构图,图2为系统硬件设计实物图。
1.1 电源模块设计
电源模块设计了系统板上所需的5.0、3.3、1.8和1.5 V等。开关电源提供3种电压输出,分别是24、12和5 V。24 V通过电源模块产生用于模拟电路器件所需的5 V模拟电压;12 V用于通过逆变器为LCD背光产生一个上千伏电压;开关电源输出的5 V电压通过电源模块产生FPGA和ARM内核所需的1.5和1.8 V,以及通用IO所需的3.3 V。需要注意的是给数字器件提供的5 V(称数字电压)和给模拟器件提供的5 V(称模拟电压)不是同一个电压,它们不共地。之所以这样设计是为了减少干扰信号,保证系统能正常工作。
图1 系统硬件设计结构图
图2 系统硬件设计实物图
1.2 主控模块设计
该系统采用了成本低、性能优越的ARM9系列芯片S3C2410,ARM的主要任务是移植操作系统、内存管理、程序管理、I/O输入输出、界面操作设计、LCD显示管理、键盘管理、粗插补处理等。
该系统的外扩存储器设计时选用64MB的非易失性NandFlash和64MB的SDRAM。NandFlash选择芯片K9F1208作为系统的辅助存储器,用来存储系统引导代码、系统数据及相关文档;SDRAM采用两片HY57V561620,每片32 MB,总的SDRAM为64 MB,用于存储运行时的主程序。HY57V561620数据宽度16 B,内部分为 4个 Bank,每 Bank为 4 MB。HY57V561620第20和21脚 BA [1∶0] 接 S3C2410的LA25∶24。这里的 Bank和 S3C2410地址空间的Bank不是一个概念,S3C2410的 Bank是128 MB,SDRAM连接到S3C2410的 Bank6上,地址为0x30000000。
S3C2410通过viviBootloader(引导装载器)将引导程序下载到NandFlash中,从NandFlash引导,通过NCON脚接高电平来配置其控制器的寻址空间,对系统作初始化处理,完毕后便加载到SDRAM中。ARM从SDRAM中读取已经加载到其中的数据 (比如G代码),然后进行译码、刀补运算,进行粗插补。
1.3 运动模块设计
运动控制模块是采用FPGA设计一个产生控制脉冲的插补器模块,使用VerilogHDL在QuateusII开发环境中编程实现用户要求的插补功能。FPGA从ARM中接受控制指令并读取数据,完成精插补功能,输出对电机的控制脉冲。需通过软件编程实现精插补功能及其他辅助功能,保证插补算法的实时性同时又保留了接口的灵活性,利于产品性能的升级换代;伺服接口同时也利用了FPGA精于复杂逻辑时序控制的优点,可以方便灵活地为各种伺服器提供接口。
1.4 人机界面模块设计
界面模块部分只有两部分组成,即LCD显示器和数控键盘,如图3所示。看似简单,但在数控系统中扮演了极其重要的角色,它是人机友好交互的一个平台,用户能够通过此界面对系统进行现场编码、参数设置、信息反馈和实时状态监控等。
图3 数控界面图
1.5 通信模块设计
通信接口模块包括 ARM-JTAG接口、FPGAJTAG接口、RS422串行接口、RS232串行接口和USB接口。上位机通过JTAG接口使用J-Link和USBBlaster下载器分别与ARM和FPGA进行通信,实现系统运行程序的下载和仿真调试。RS232串行接口电路中,使用MAX3232进行电平转换,兼容3~5.5 V的电平,可以直接与3.3 V的 S3C2410连接。通过RS232与PC通信,实现 NC文件的上传与下载。该系统共设计了3个RS422全双工通信接口,2个供使用,1个供扩展。一个接口是与操作键盘通信,另一个是与外接口板通信。外扩USB接口实现对U盘NC文件的读写。
2 数控系统的软件结构设计
该系统的软件设计包括两个部分:μC/OS-Ⅱ实时操作系统和数控系统应用程序。
2.1 实时操作系统的运行机制
为了实现多任务,μC/OS-Ⅱ为每个任务设定一个优先级,采用优先级的调度策略。每个任务有自己的栈空间,并认为自己独占CPU,这也就是所谓的抢占式调度算法。任务的调度完全由μC/OS来完成,包括插入任务队列、选择最高优先权的任务、执行任务和撤消任务等。μC/OS-Ⅱ 可以分配 CPU的运行时间,而CPU的运行时间优先分配给中断事件,其次是分配给当前任务队列中优先级最高的任务。若要实现各个不同任务之间的通信,需要通过这几种通信机制去完成,如信号量、消息以及邮箱等。每一个任务都存在5种运行状态:休眠、就绪、运行、挂起、被中断[3]。
2.2 数控系统的应用软件设计
在搞清楚μC/OS-Ⅱ嵌入式操作系统占先式内核的任务调度原理之后,就要着眼于系统的应用层面上,开发并嵌入系统所需的应用软件,通过操作系统保证任务的执行效率和实时性,同时极大地提高软件开发效率。将数控系统的应用软件设计分为3个部分:用户界面模块、数据处理模块和运动控制模块,如图4所示。
图4 软件设计框图
(1)用户界面设计
GUI系统结构用以下方法设计:首先,该GUI系统是基于线程的,μC/OS-II系统的每一个任务都是一个进程,因此GUI的运行可以作为一个任务,运行于μC/OS-II系统上;其次,是基于消息传递机制的GUI系统,因此,数控加工过程中系统实时数据的显示,可以通过系统的各个任务传递消息给GUI系统进行刷新,因为μC/OS-II系统是实时的,就保证了数据显示的实时性;第三,构建数控系统图形界面中使用的控件。
(2)数据处理模块
此模块主要完成译码和刀具补偿功能。总的来说,译码就是将所要加工工件的信息按照某种规律译成数控系统能够识别的数据形式。数据处理的信息主要有工件轮廓信息(如起点、直线或圆弧等)、加工速度和其他辅助信息 (M、S、T)等。由于编制零件加工程序时,一般只考虑零件的轮廓外形,而实际切削控制时,刀具总有一定的半径,所以刀具中心的运动轨迹并不等于所需加工零件的实际轮廓,数控机床进行轮廓加工时必须作相应的刀具半径补偿。
(3)插补模块
运动控制的核心是插补,往往插补精度的高与低就取决于是否具有优良的插补算法。为了提高系统的加工精度,采用了最小偏差法实现数控系统的插补功能[4]。此法在进给之前先判定一下向x坐标方向或y坐标方向进给一步的偏差和向对角线 (向x轴与y轴同时进给一步)进给一步的偏差,选择偏差小的那个方向进给。
以第一象限直线插补为例进行简要说明。如图5所示,若有一直线位于第I象限,终点在Z(xz,yz)。当xz≥yz时,进给方向为x轴方向或者对角线方向;当xz<yz时,进给方向为y轴方向或者对角线方向。
图5 最小偏差法直线插补示意图[5]
3 测试结果及分析
在ARM+FPGA的硬件平台上嵌入μC/OS-Ⅱ操作系统的设计在雕刻机上得到了测试,主要目的是测试系统的加工精度以及尺寸的一致性。图6为数控测试平台及圆形加工图。
图6 数控测试平台及圆形加工图
要求加工的圆形直径分别是50、100、150 mm,加工完成后由表1可看出:测量各种圆形尺寸直径最大误差小于0.032 5 mm,可以很好地满足数控系统的要求。
表1 加工尺寸误差分析 mm
4 结论
设计了ARM+FPGA的硬件系统的总体构架,确定了芯片的选型以及它们的功能划分。采用 FPGA技术设计了一种硬件插补器,用硬件描述语言实现了插补功能,并利用μC/OS-Ⅱ实时操作系统作为开发工具,使数控雕刻系统满足了高速度、高精度的加工要求,很好地解决了传统CNC系统中存在的问题。
[1]王田苗,陈友东,孙恺,等.基于 uC/OS-Ⅱ嵌入式数控系统研制[J].北京航空航天大学学报,2006,32(4):471-480.
[2]田家林,陈利学,寇向辉.基于ARM与FPGA的嵌入式数控系统设计[J].机床与液压,2007,35(2):93-94.
[3]王田苗,魏洪兴.嵌入式系统设计与实例开发[M].3版.北京:清华大学出版社,2008.
[4]闫华,汪木兰,王保升.基于FPGA的最小偏差法插补器设计与实现[J].机械设计与制造,2008(12):14-16.
[5]李恩林.数控系统插补原理通论[M].北京:国防工业出版社,2008.
Design of Embedded CNC Carving System Based on ARM+FPGA Architecture
LITengfei1,LING Youzhu1,LIU Jingmeng2
(1.Anhui Electric Power Transmission and Control Key Laboratory,Anhui Engineering University,Wuhu Anhui241000,China;2.Automation School,Beihang University,Beijing 100191,China)
A hardware platform with“ARM+FPGA”architecture and a software platform based onμC/OS-Ⅱreal-time operating system were designed for NC carvingmachine.For the hardware platform,due to the high computing performance of the ARM microprocessor and high logical processing performance of the FPGA,both the number of the peripheral components and the design complexity were reduced.For the software platform,usingμC/OS-Ⅱembedded real-time operating system,not onlymultiple tasks could be done concurrently,the real-time character and stability of carving machine motion control was guaranteed,and the high speed and precision processing requirements weremet,but also the system had a good man-machine interface.
CNC system;ARM;FPGA;Real-time operating system
TP273
B
1001-3881(2014)10-016-3
10.3969/j.issn.1001-3881.2014.10.004
2013-04-19
安徽省自然科学基金 (11040606M115);芜湖市科技计划基金资助项目 (芜科计字[2011]47号文,[2012]95号文)
李腾飞 (1987—),男,在读硕士,现从事嵌入式数控系统研究与学习。通信作者:凌有铸,E-mail:dianzi3053ltf@126.com。