文献标识码:A
文章编号: 0258-7998(2014)11-0026-03
0 引言
随着计算机技术的飞快发展,如今的开放式数控系统主要是基于 PC 的开放式数控系统[1],此类型的数控系统一般采用通用操作系统,存在CPU结构复杂、功耗大、硬件冗余不可裁剪且可靠性不高等诸多不足,很难满足数控系统对强实时性和稳定性的要求。近年来逐渐发展起来的嵌入式技术在工业领域得到了越来越广泛的应用。基于微处理器和嵌入式操作系统的数控转塔冲床数控系统具有传统数控系统不可比拟的优点: 嵌入式系统功耗低、可靠性高;功能强大,性能价格比高;实时性强,支持多任务;占用空间小,效率高;面向特定应用,可根据需要定制[2]。因此提出基于CORTEXA8微处理器和嵌入式操作系统(WinCE7)的嵌入式数控系统。
1 系统总体方案
设计采用ARM-CORTEXA8微处理器作为主CPU负责整个数控系统的任务管理调度。数控系统中上位机与嵌入式机床控制器之间采用无线通信代替传统的线缆通信。数控系统中,FPGA接受ARM以及外部RAM发送来的控制指令和数据信息并执行插补运算,产生控制步进电机运转的脉冲序列,然后通过接口将脉冲序列送到步进电机驱动器,实现对电机的控制[3]。嵌入式数控系统的操作系统,采用微软的最新一代嵌入式操作系统Windows Embedded Compact7(WinCE7),并根据数控系统的功能要求对内核进行了相应裁剪,提高了数控系统的实时性。数控转塔冲床数控系统总体结构如图1所示。
2 系统硬件平台设计
稳定、可靠的硬件系统是软件系统运行的物理基础,关系着整个数控系统性能的好坏。高配置的硬件系统是实现高性能数控系统的有力保障。合理的硬件系统结构可优化系统资源配置,使系统性能得到更好发挥。硬件结构如图2所示,采用TI公司的AM335X CortexA8处理器,运行主频最高可达1 GHz,集成了1路千兆网口、CAN总线控制器、IIC控制器、LCD控制器、Power VR SGX530图形处理器,非常适合工业控制。AM335X CortexA8处理器主要负责 LCD、串口、无线通信和 USB 接口的处理及运行嵌入式 WinCE7 操作系统,实现译码、文件系统、无线网络、图形显示和 PLC编辑功能。FPGA内在的并行机制决定了它的高速处理能力远远领先于其他串行执行架构的CPU,将其应用在嵌入式数控系统中将大大提高系统的响应速度,进而提高数控机床的加工精度[4]。FPGA作为精插补器在下位机系统中实现数控系统硬件插补以替代速度较慢的软件插补,克服了传统专用集成电路灵活性差、成本高的缺点。CPLD模块主要负责系统操作面板、键盘、LED等信号的处理。
2.1 系统无线通信的实现
设计选用低功耗、易组网、在工业领域得到越来越广泛应用的ZigBee无线网络技术。要实现数控系统的无线通信,ZigBee驱动的开发就显得尤为重要。
嵌入式操作系统中本机设备驱动程序适合于集成到WinCE平台上的设备,如LED和电源,WinCE以定制接口的方式来支持本机设备驱动,开发人员无需编写设备驱动程序。流接口驱动程序是为连接到WinCE平台的外围设备而设计的驱动程序[5]。因此ZigBee驱动采用流接口驱动模式编写,该驱动的主要作用是实现ZigBee模块数据的收发、组网、入网、获取RSSI值等。下面对基于流驱动开发模式下ZigBee驱动实现的几个主要的流接口函数进行介绍。
(1)DWORD CC2531_Init(DWORD dWContext)
{
RETAILMSG(l,(TEXT(“CC2531_Init----\r\n”)));
Serlnit();
CC2531init();
}
此函数功能是实现模块初始化串口寄存器使能和主要参数的设定。Serlnit( )函数的功能是完成物理地址的申请,虚拟地址到物理地址的映射和波特率设置。CC2531init()通过调用系统串口发送函数的方式来设置CC2531串口的波特率,停止位以及寄存器使能。
(2)BooL CC2531_IOControl(DWORD hopenContext,DW-
ORD dwCode,PBYTE PBufin,DWORD dwLenln,PBYTE PBu-
fout,DWORD dwLenout,PDWORD PdwActualout)
{
switch(dwCode)
{
case IO_CTL_CC2531_GDAIMA:
SendDate(0x l<< l);
case IO_CTL_CC2531_XITONGCANSHU:
SendDate(0x l<<2);
case IO_CTL_CC2531_DAOBUCANSHU:
SendDate(0xl<<3);
case IO_CTL_CC2531_RSSI:
SendDate(0xl<<4);
case IO_CTL_CC2531_REFNODE_REQUEST_CONFIG:
SendDate(0xl<<23);
……
……
}
}
此函数用于向设备发送命令。DeviceIOControl()函数实现操作系统对此函数的调用。参数dwCode用来告知驱动程序要执行的操作。驱动设计中,定义了较简单的几个命令,如G代码、嵌入式数控系统参数、刀补参数、RSSI值,其值分别为1、2、3、4。当CC2531收到应用程序与这几个命令相关时,无线模块就在网络中收集与之相关的数据,然后发送给与机床相连无线模块。
2.2 FPGA与ARM通信及配置接口设计
ARM微处理器系统与FPGA系统之间的通信接口包括串行与并行两种,其中串行方式通过它们自身配置的接口实现,并行接口则根据提供的总线模式进行设计。FPGA与AM335X CortexA8之间数据和控制命令的传输通过地址总线和数据总线方式完成,其接口示意图如图3所示,其中GPMC_A[11:0]为的12位地址总线;GPMC_D[l5:0]为16位数据总线;GPMC_WEn实现FPGA的写使能传输且低电平有效;GPMC_OEn传输FPGA的输出使能信号且为低电平有效;GPMC_CSn是传输FPGA的片选信号低电平有效;RESET传输给FPGA复位信号,高电平有效;INTO为FPGA传输给AM335X的中断信号且低电平有效。
要实现基于FPGA的逻辑功能,必须首先完成对FPGA的配置。FPGA主要有专用配置芯片,被动串行配置,被动并行同步配置,被动并行异步配置和JTAG配置五种配置方式。设计采用微处理器的被动串行配置方案,配置简化电路图如图4所示。
3 系统软件平台搭建
Windows Embedded Compact7(WinCE7)不仅支持X86和MIPS,同时支持最新的ARMv7架构和多核处理器并能在Visual Studio 2008中无缝集成Platform Builder 2008,可以为开发者提供更高效的、流畅的开发体验[6]。设计选择Windows Embedded CE系列最新一代操作系统 Windows Embedded Compact 7来进行软件系统的开发。
为了节约PC的磁盘空间和保证运行速率,首先,对操作系统进行裁剪,添加必要的特性,配置各个组件进行平台设置。结合设计的需要,安装VS2008时由于开发用到的语言是VC++语言其他开发语言无需安装;在搭建Platform Builder时由于Cortex-A8微处理器的平台遵从ARMv7架构规范,安装时只选“ARMv7 Architecture”即可。下面是Windows Embedded Compact7开发环境搭建步骤:(1)Visual Studio 2008,(2)MSDN Library for Visual Studio 2008,(3)Visual Studio 2008 SP1,(4)Microsoft Expression Blend,(5)Windows Embedded Compact 7,(6)Microsoft Virtual PC。接下来开发目标设备驱动程序,建立好定制的WinCE7映像文件,同时将目标文件下载到目标设备上进行调试。最后把定制好的操作系统内核,利用 PlatformBuilder导出SDK。
4 系统测试和实验结果
为了测试所设计数控系统的FPGA在线配置性能,实验用开发软件生成两种具有不同逻辑功能的RBF文件。待数控系统完成正常启动后,测试程序能否实现两种不同逻辑功能文件的配置,测试结果如图5所示。
实验机床选择南京华讯机械制造有限公司HPI-3047数控转塔冲床,实验环境为生产车间工作环境。利用 Packet Sniffer 软件抓取数控系统无线通信数据包如图6所示。
实验结果表明,设计的数控系统FPGA模块能够实现在线配置及功能升级。ZigBee无线通信模块能够实现上位机与机床嵌入式控制器之间的数据收发,无线模块通信性能稳定可靠,完全能够取代传统的线缆通信,降低了企业成本,提高了机床执行效率。
5 结论
数控转塔冲床数控系统的设计采用了实时操作系统WinCE7与高性能微处理器CORTEXA8,是嵌入式技术、微处理器技术与数控技术的完美结合,系统能够更好地适应高实时性加工的要求。把无线通信技术运用到数控系统通信中取代传统的线缆通信,有利于降低企业对通信方面的人力财力投资。运用运算速度快、设计灵活、可靠性高的FPGA作为硬件插补器,提高了系统插补速度。设计顺应了低功耗、低成本、实时性好和机床通信无线化的发展趋势。
参考文献
[1] 曹遂军,王会良.国内外开放式数控系统的研究与现状[J].机电工程技术,2003,32(5):20-22.
[2] 汤阳.基于WindowsCE的开放式数控系统关键技术研究[D].合肥:合肥工业大学,2003.
[3] 朱晓洁,舒志兵.基于ARM+FPGA的嵌入式数控系统[J].机床与液压,2008,36(7):311-313.
[4] 邵明,李光炀,杨惠灵.基于FPGA的嵌入式数控系统功能模块设计[J].机床与液压,2010,38(16):68-71.
[5] WILSON Y J.Windows CE device driver development[Z].Dr.Dobb′s Journal of Software Tools for Professional Progra-mmer,1998.
[6] 尹成.Windows CE7开发实战详解[M].北京:人民邮电出版社,2012.