前言
Windows CE是微软公司开发的一个开放、可升级的32位嵌入式操作系统。与Windows 95 /98、WindowsNT不同的是,Windows CE是所有源代码全部由微软自行开发的嵌入式新型操作系统、其操作界面虽来源于Windows 95 /98,但Windows CE是基于Win32 AP I重新开发的、新型的信息设备平台。Windows CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点[ 1 ] 。微软在2002 年推出了新一代Windows CE. NET后,其性能有了更进一步的提高,支持蓝牙技术、支持TCP / IPv6,并在实时多任务控制领域得到了成功的应用[ 2 ]。相对于DOS,Windows CE. NET是运行于保护模式的多线程32位操作系统,特别适合数控系统的多任务并行机制,而它的内存保护功能对于数控系统的稳定性具有重要意义: 相对Windows桌面操作系统,Windows CE. NET是嵌入式实时操作系统,其独特体系结构和运行机制使其能够快速响应外部中断触发,并调度相关应用程序进行处理[ 3 ] ,因此它可以满足数控系统的实时性要求。Win2dows CE. NET是一个实时操作系统,它提供了实时开发所需的重要技术,其中包括:
(1) 256级线程优先权为在嵌入式系统内控制
线程时序提供更大的灵活性。
(2)中断嵌套允许更高优先级的中断立刻被执行而不必等到较低优先级的中断服务程序执行完毕。内核能嵌套CPU所支持的全部数量的中断服务程序。
(3)每一线程的时间片允许应用程序在多线程原则上设置时间片,这就意味着能够使调度程序适应应用程序的当前要求。
(4)优先权倒置是指当两个线程竞争同一个资源时,资源被低优先级的线程占用而拖延了高优先级线程的执行的情形。为了纠正这种情形并释放高优先级的线程,Windows CE允许低优先级线程继承更加紧急的线程优先级并且以更高的优先级来运行直到它释放它所占用的资源。
1.Windows CE系统开发平台的定制
为了使用户可以方便的将Windows CE转向一个新的硬件平台,微软提供了完整的开发工具p latformbuilder 4. 2,它包括了一些必需的工具,以便开发人员可以为组件化的操作系统版本创建特定平台的软件开发包( SDK) 。平台向导( Platform Wizard)允许开发人员根据将要创建设备的类型简便快捷地建立新的平台,参见图1。
图1Windows CE系统平台定制示意图
要创建一个基于Windows CE. NET的操作系统平台,必须经过下面几个步骤: ①选择一个标准的开发板( SDB ) 来创建Windows CE 平台。②使用平台向导(Platform Wizard)中备选的设备及目录中所列举的特征对平台进行定制。③Build 并生成镜像文件( im2age) 。④将平台下载到目标设备,调试平台。⑤平台创建完毕,输出软件开发工具包( SDK) 。
定制平台时,用户可以开发自己的OEM硬件适配层(OAL) ,OAL是处于Windows CE系统内核与目标设备硬件之间,用来抽象硬件功能的连接层,实现操作系统的可移植性。OEM硬件适配层分为OEM抽象层和设备驱动程序两部分。
硬件开发平台是用于模拟嵌入式系统设备的目标设备,可用于开发、调试和验证定制平台的性能。Plat2form Builder支持基于PC机的硬件开发平台(CEPC) ,CEPC是最灵活的Windows CE设备,很适用于嵌入式系统的开发调试阶段。
2.开放式激光切割机数控系统的总体设计和实现
2.1数控激光切割机的组成
图2 激光加工系统示意图
数控激光切割机由激光切割机主机、CO2激光器、水冷机、外光路系统、数控系统及自动编程软件等组成[ 4 ] (见图2) 。其中激光器及外光路系统是数控激光切割机的关键配套部件,其性能指标将直接影响激光切割板材的切割质量,而激光切割机主机则是实现激光进行优质切割的载体。所以,对数控激光切割机主机的开发设计显得尤为重要。
2.2基于工业PC机的开放式数控系统的分析与构造
随着近年来计算机技术的发展,工业PC机和模块化的集成电路逐渐进入数控领域, PC机以其特有的开放性成为开放式数控系统的基础,它丰富了数控系统的硬、软件资源,有利于实现总线式、模块化、开放化的数控系统,该系统利用流行的操作系统平台作支撑,采用标准的应用开发环境,具有较好的互操作性、移植性、互换性和伸缩性,展现了良好的开放性能,同时又具有方便、灵活的特点。同时充分利用Windows CE强大的图形界面功能、多线程机制和多媒体定时器来解决数控软件的实时多任务处理能力,其良好的软硬件兼容能力能够实现建立在标准总线基础上的模块化开放式数控系统。开放式数控系统可采用分层的体系结构,如图3所示。各层之间实现隔离,层与层之间通过标准的接口进行通讯,实现了开放式控制系统应有的分层体系结构,使数控软件易于组装、扩充和维护。第一层为管理层。它是系统的界面部分,可完成系统的管理、显示、诊断和监控。通过响应状态选择控件产生的不同消息来进行不同界面之间的切换,其调用操作由操作系统管理完成。
第二层为功能单元层。它是系统的控制部分,包括代码生成、编译解释、插补运算和运动控制, I/O 处理和数据采集等,是相对独立的功能单元。它们之间通过在软件中建立的多个数据缓冲器来进行大量的数据交换。译码可将数控指令解释成为系统内部的数据格式,插补运算完成数据插补产生加工数据、速度处理和辅助功能设备控制。运动控制程序完成位置伺服的控制。I/O信号处理模块接收各种按键的输入,转化为程序变量或系统消息以供操作。数据采集模块负责采集各运动轴的信息和A /D信号,用于实现数据实时显示、实时控制等功能。
第三层为支撑层,包括运动控制卡、运动控制器的设备驱动程序、I/O卡和工业PC机。
2.3 开放式数控系统的硬件结构
图4示出了采用PMAC运动控制器构造的激光切割机开放式数控系统结构。
图4激光切割机控制系统图
3.数控系统软件的设计与实现
3.1 基于Windows CE的数控系统软件的总体结构
在已有的同类数控系统中,大多数系统是基于DOS环境的,其综合性能相对于Windows环境就弱一些,尤其是人机交互界面、多任务以及开放性方面比较差。主从计算机间的实时信息交换通讯是实现上下位机间协调工作的关键。本数控系统在实时性要求方面与机器人控制相似,如果使用Windows中专用的定时器控件Timer,虽然使用很方便,可以实现一定的定时功能,但最小计时精度仅为55ms,且定时器消息在多任务操作系统中的优先级很低,不能得到及时响应,无法满足实时控制环境下的应用。所以考虑使用精度更高的多媒体定时器,它可以实现精度为1ms的高精度定时,可以满足本系统的实时性要求。多媒体定时器不依赖于消息机制,而是由函数TimerSetEvent ( )产生一个独立的线程,在一定的中断次数到达后,直接调用预先设置好的回调函数进行处理,而不必等到应用程序的消息队列为空。因而设置该回调函数来完成周期扫描I/O卡的输入端口,以及向系统定时发送消息,使其及时更新界面和界面中的数据。为提高系统的可靠性,多媒体定时器在整个控制程序初始化时开启,并在系统退出时删除定时器以释放系统资源。每一个Windows应用程序都是一个进程,并由线程来负责执行包含在进程地址空间中的代码。实际上,每个进程可以拥有多个线程,它们在进程的地址空间中“同时地”执行代码。本数控系统软件中,采用了前后台型的多线程结构形式。前台程序由系统主线程和定时器控制,主要完成界面管理、功能控制、系统管理等,并负责响应按键与界面输入的数据,即实现管理层的功能。后台程序放在辅助线程中,负责进行数控代码的编译处理,向PMAC发送命令以及实时数据采集,实现了控制层的功能。
3.2 G代码转换模块的实现
为了使PMAC控制卡兼容G代码指令,专门开发了G代码编译转换模块,大大提高该控制系统的开放性和兼容性,为熟悉G代码编程的用户提供了方便。本编译模块使用了多线程的方法。多线程的应用使程序的并行处理得以实现,多线程使得不同的代码可以“同时”执行。本模块采用了工作者线程,其适用于处理后台任务,而不影响用户对应用程序的使用。工作者线程仅仅由一个函数体实现,其实现简单,便于编程者控制,与事件同步方法相配合能对中止消息做出较快反应。事件同步是通过将事件自身设置为有信号或无信号来通知其它线程的某一操作已完成或尚未完成,其设置可由编程人员手工完成,适合于工控程序应用。
与之相对应,本模块具有一个主线程和两个子线程,其中一个子线程为通信线程,另一个为计算线程。主线程是Windows下每个应用程序都具备的,负责线程间的同步、向计算线程和通信线程传递参数、管理人机界面、接收用户输入等功能。通信线程通过通信端口(本程序涉及的是PCI接口)负责与下端的设备进行通信并交换数据。计算线程负责核心算法的实现,根据系统的不同完成不同的数据处理任务。程序结构如图5。
图5多线程结构示意图
4.结论
Windows CE以其良好的实时性和对多线程的支持,为实现总线式、模块化、开放式的数控系统提供了便利。随着Windows CE. NET系统的不断完善, PC机速度的不断升级,其可以应用的软硬件资源不断发展,开放式数控系统必将受到国内外的普遍关注。