嵌入式经济型数控系统的设计

2012-02-20 09:07朱道明
装备制造技术 2012年2期
关键词:驱动程序数控系统寄存器

朱道明,雷 攀

(桂林电子科技大学机电工程学院,广西 桂林 541004)

近年来,嵌入式技术和数控技术相结合,成为了现代数控系统的研究热点。本文基于嵌入式ARM9微处理器S3C2440和DSP专用的运动控制芯片MCX314As,并结合源代码开放的实时Linux操作系统,通过软硬件的自主开发,设计了一种嵌入式经济型数控系统。

1 系统的硬件设计

本系统选用了ARM9高性能开发板TQS3C2440做主控板,用于人机交互界面、加工程序编辑、数控译码、外部通讯等工作;设计了由专用DSP运动控制芯片MCX314As及其外围电路组成的运动控制板,以运动控制板为下位机,根据主控板传输来的命令和数据进行处理,并根据处理结果输出控制脉冲,从而控制伺服电机的运转。该系统的硬件结构图如图1所示。

图1 数控系统硬件结构图

1.1 运动控制芯片的性能

ARM9的S3C2440芯片,具有集成度高、运算速度快、功耗低等优点,主频高达400 MHz[1]。这样高的主频,使处理器能够轻松地运行数控软件,以及进行复杂的信息处理,从而使数控系统能够保持较高的工作效率。

MCX314As是专为精密控制伺服电机或步进电机而设计的DSP运动控制芯片。其有8/16位数据总线接口,4位地址总线接口,通过总线对MCX314As的命令、数据及状态寄存器进行读写,实现四轴三联动的运动控制和实时监控,实现直线、圆弧、位元三种模式的插补方式,输出脉冲频率达4 MHz,精度低于±0.1%PPS[2]。

采用这种的专用运动控制芯片,能够很大程度上减轻研发数控插补算法的工作量,缩短开发周期。实际工作中,MCX314As芯片主要用来处理极其复杂的实时运动控制工作,而这些工作仅需主控板通过总线向MCX314As芯片发出一些简单的控制信息便能实现。

1.2 S3C2440与MCX314As的接口设计

在主控板上预留了总线接口电路,该电路将S3C2440芯片上的一些数据线、地址线、片选信号和读写控制信号线等引出,方便用户扩展应用电路[3]。运动控制芯片MCX314As与S3C2440处理器的连接,就是通过该总线接口电路,将两者的数据线、地址线、读写控制线、片选信号和中断等信号连接起来(如图2所示)。

图2 芯片连接图

MCX314As运动控制器的性能,直接影响系统的整体性能。其所有功能都是通过特定的寄存器控制的,如命令寄存器、数据寄存器、状态寄存器和配置寄存器。图中S3C2440的A1-A3与MCX314As的地址线A0-A2相连接,用于产生MCX314As内部寄存器的地址。当MCX314As控制器从主控板得到加工信息的基本数据后(如直线的起始点、进给速度、刀具参数等),在理论轮廓的起终点之间自动计算出若干中间点,将工件轮廓描述出来,并为系统提供运动控制的驱动速度及运动轨迹,从而实现其运动插补功能。

为了使数控系统运行稳定,从图2中可以看出,在MCX314As芯片向外界输出的脉冲信号或者外界伺服系统给MCX314As反馈的信号之间,都用光耦进行了光电的隔离,并使用了一些电阻和电容组成RC电路,来进行电路信号的滤波。总之,整个数控系统的硬件在接地电路、数字电路和模拟电路的设计上,都力求达到工业控制上所要求的高稳定和高可靠性要求。

2 数控系统软件设计

数控系统的软件,是数控系统的重要组成部分,在数控系统的软件开发中,主要任务是操作系统、MCX314As驱动程序及应用软件的设计与开发。

2.1 实时操作系统的设计

本数控系统选用Linux作为其操作系统,因为Linux具有运行可靠、源代码开放、支持多任务等优点,而且Linux具有模块化的结构,这样可以根据不同的使用场合,对其进行裁剪和定制。然而,Linux是一种分时操作系统,可以满足数控系统多任务的要求,但其实时性不能满足数控系统硬实时性的要求。为此,对Linux操作系统进行了实时化改造。

通过Linux的实时内核补丁Xenomai,在硬件平台上增加一个硬实时内核,将Linux内核当作Xenomai的优先级最低的任务执行,这样Linux内核的任务,可以被其他的高优先级的任务抢占CPU,从而保证运动控制的实时性。该抢占机制使得其响应速度特别快。在ARM平台上Xenomai的中断响应时间,在内核态不会超过45μs,在用户态中断响应时间也在70μs以下[4],因此能够满足数控系统硬实时性的要求。

这样,操作系统被分成了2个区域:非实时域和实时域,非实时域建立在普通Linux内核基础上,而实时域建立在实时内核基础之上。操作系统结构图如图3所示。

图3 操作系统结构图

数控系统的任务分为两类:一类为实时任务,例如设备急停、故障检测等,它们由实时内核负责完成;另一类为非实时任务,如加工信息显示、加工信息译码等,它们由普通Linux内核来处理。两个内核之间,可以通过管道、共享内存等方式相互通信,共同完成数控系统实时和多任务的要求。

2.2 MCX314As驱动程序设计

驱动程序是上层应用程序操作外部设备的一个桥梁,MCX314As驱动程序主要是由驱动程序的入口函数、出口函数、设备结构体以及file-operations结构体这4部分组成。其中,入口函数完成设备的注册、中断资源的申请和初始化工作;出口函数完成设备的注销和中断资源的释放;file-operations结构体完成设备打开、读、写、I/O控制、释放等函数等初始化。MCX314As驱动程序可以编译成模块,动态加载到Linux系统中。应用程序对MCX314As设备文件的读写操作,实际上就是对MCX314As芯片相应寄存器的读写操作,进而完成一系列数控操作。

2.3 应用软件设计

应用程序主要包括人机交互界面、数控加工代码译码、刀具补偿、加工控制和刀具信息数据库等模块。通过人机交互模块,可以新建加工文件,编辑加工程序,然后通过译码和刀补模块将加工程序转化为对MCX314As的操作信息,最后通过加工控制模块来控制MCX314As的工作。

将功能强大的应用程序开发框架Qt4/Embedded用于数控系统应用软件开发,Qt4/Embedded完全面向对象,与C++语言具有良好的兼容性,因此可以将应用程序中的每一功能模块封装为一个类,便于开发。图4为开发的数控系统的实物图。

图4 数控系统实物图

3 结束语

基于嵌入式S3C2440微处理器和MCX314As专用运动控制芯片的数控系统硬件设计方案,为经济型数控系统的研制,提供了一个可选的较为合理的硬件基础,以实时Linux为操作系统,同时满足了数控系统硬实时性和多任务的要求,这种方案能够大量地减轻研发任务量,提高研发速度。这种新型的嵌入式数控系统,是数控技术的发展方向之一,对企业开发高性能、低成本的经济型数控系统具有一定的借鉴参考价值。

[1]Samsung Electronics.32-Bit CMOS Microcotroller User’s Manual Revision 1[DB/OL].http://www.samsung.com.

[2]叶佩青,汪劲松.MCX314运动控制芯片与数控系统设计[M].北京:北京航空航天大学出版社,2002.

[3]冯习宾.一种新型嵌入式局域网数控系统的研究[D].桂林:桂林电子科技大学,2010.

[4]韩首谦,裴海龙,王清阳.基于Xenomai的实时嵌入式Linux操作系统的构建[J].计算机工程与设计,2011,(1):96-98.

猜你喜欢
驱动程序数控系统寄存器
Lite寄存器模型的设计与实现
阻止Windows Update更新驱动程序
二进制翻译中动静结合的寄存器分配优化方法
计算机硬件设备驱动程序分析
移位寄存器及算术运算应用
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
数控系统中GUI软件平台设计和实现
Lx5280模拟器移植设计及实施