2 基于RTOS的嵌入式数控系统软件平台的研究
以前的数控系统的软件结构设计通常通过一个无限循环来判断任务的标志量,通过中断(定时中断和键盘中断)来激活新的任务,进入固定的任务中断程序入口,来实现任务的调度。 在这种单任务且无任务运行环境调度方式下,系统的大多数时间被任务等待的无限循环占据了,在任务处理的过程中,其他的同等级的任务无法使用CPU 的资源,无法进行任务之间有效的上下文切换,导致了系统的实时性十分不可靠。 同时,如果任务在执行过程中需要等待信号,或延时信号处理,当这种延时不可预计的情况下,就可能占据大量的系统时间,就会造成对系统资源的大量浪费,导致无法响应更紧急的任务,这种无限的等待情况会导致许多不可预计的后果。 针对单任务系统的软件架构的不足,本设计在数控系统软件构建中引入基于VxWo rks嵌入式实时多任务操作系统(RTOS)作为系统的任务调度基础。
2.1 嵌入式实时操作系统VxWorks特点简介
VxWorks操作系统是美国W indR iver公司设计开发的一种嵌入式实时操作系统( RTOS)。 系统具有如下特点: ① 内核可裁剪,具有极好的伸缩性; ②成熟高效的任务调度机制,支持优先级和时间片轮番调度法; ③ 任务间通讯手段灵活快速,支持信号量、消息队列和互斥等多种通信方式; ④ 丰富的板级支持软件包( BSP) ,缩短了系统开发周期,减少了开发的工作量; ⑤ 强大的网络开发支持,简化了网络开发的工作,系统集成TCP / IP协议的支持; ⑥ 支持多种文件系统;⑦ 具有集成开发环境TORNADO 的支持,界面友好,能够对系统的任务调度和占用的时间片进行实时监控,提高系统的利用率,充分发挥系统性能; ⑧ 功能可扩展,根据千变万化的嵌入式应用,除提供基本的内核功能外,还可以根据需要加入功耗控制、嵌入式文件系统、嵌入式GU I系统和嵌入式数据库,用户也可以根据自己的需要利用VxWorks的功能扩展接口,开发出自己的功能; ⑨ 内核可剥夺性,即当前系统总是运行就绪状态下优先级最高的任务。
2.2 基于VxWorks的嵌入式数控系统层次化软件体系结构设计
本文设计的嵌入式数控系统的层次化软件体系结构如图2所示,它由以下3部分组成。
(1) 底层硬件驱动层。 硬件驱动程序的主要功能是为上层软件提供良好的函数调用接口,完成对系统硬件资源的抽象,屏蔽掉底层的硬件细节。 通过抽象底层硬件的物理行为,使上层用户实现对硬件功能的调用。 硬件驱动程序单独分层的编程思想为系统的升级提供了良好的条件,当系统硬件设计发生变化时,上层软件不用做过多的修改,仍可以通过原有的接口实现硬件的调用,只需要修改底层驱动就可以了。 另外,硬件驱动程序的提出能够方便项目开发,软硬件协同进行设计。
(2) 实时操作系统层。 设计采用了实时性操作系统VxWorks作为系统任务调度与开发平台,本层的主要功能是处理由外部或内部事件引发的中断、设备驱动层的激活以及执行任务的调度。
(3) 系统应用层。 它是在VxW orks的基础上,通过对VxWorks的接口函数的系统调用,实现系统的具体的应用功能,如交互模块、控制模块等。 在本设计中,各种任务以应用程序的形式集合在应用层,服务于不同的功能模块。 VxW roks根据每个任务的要求,进行资源管理,对MC68F375、MCX314、存储器和外设的资源进行合理分配,实现消息管理、任务调度和异常处理等工作。 在VxW orks的支持下,每个任务都被分配一个优先级,根据优先级别的高低,动态切换各个任务,以保证实时性要求。
可以看出,设计采用分层型模块化软件结构和实时性操作系统相结合的软件设计方案,这种设计方法的优势在于可以实现软硬件设计的并行开发,VxWorks作为系统的硬件驱动层与应用层之间的桥梁,使应用层的函数调用完全屏蔽掉了硬件细节,层与层之间只需要通过定义好的接口函数进行通讯,使得上层的软件开发不必顾虑硬件设计。 这种软件设计模式,实际上是软硬件交叉进行、并行设计的过程,在设计的开始阶段,通过软硬件的协商,定义系统的总体设计方案,一旦系统的体系结构设计完成,软硬件设计就可以独立进行了。 等软硬件设计完成后,再集成一体进行集成测试,使系统的开发周期缩短到最小,极大地提高了嵌入式系统的开发效率。
2.3 基于VxWorks的数控系统多任务调度机制的实现
2.3.1 数控系统中任务的划分
数控系统是一个专用性很强的多任务调度运行系统,按照任务运行实时性强弱的划分方法,一般将数控系统的任务划分为管理任务和控制任务2大类。 如图3所示,其中控制类任务的工作与数控加工直接相连,对实时性要求高,而管理类任务的工作对实时性的要求相对较低。 系统的控制任务又可细分为位置控制、轨迹插补、指令译码、I/O 控制、误差控制、状态实时监控与故障诊断等子任务; 系统的管理任务则包括人机交互管理、显示管理、数据管理、通信管理和网络管理等子任务。 而且,在实际的开发设计中可根据需要对各个子任务进行进一步细分,形成一个任务集合,任务集合中的任务都必须根据外部事件及时被激活运行,同时结合具体的加工情况,由V xWorks统一调度,动态地对任务进行优先级控制,以适应不同加工任务的要求。当有高优先级的任务进入任务列表时,内核通过优先级抢占调度方式切换到高优先级的任务; 当同等优先级的多个任务进入任务列表时,内核通过时间片轮转调度法实现多任务的并发控制。
2.3.2 数控系统中多任务调度机制的实现
图3中划分出的数控系统任务由VxWo rks进行统一调度,由前面分析可知VxW orks支持优先级和时间片轮番调度法,现将图3中的控制任务按照优先级由高到低的顺序排列如下: 位置控制、轨迹插补、误差控制、I/O 控制、指令译码、实时监控、故障诊断; 而管理任务的优先级要比控制任务的优先级都低,系统设计中对管理任务的5个子任务采用时间片轮番调度法,即它们拥有相同的优先级,任务调度的示意如图4所示。 在系统完成初始化后自动进入时间分配环中,在环中依次轮流处理各项管理任务。 在环中轮流处理各项管理任务时,只要当前时间片结束,不论当前任务是否完成,都要暂时释放CPU,把CPU 让给另一个就绪的任务,直到再次轮到该任务的时间片时,再重新占用CPU,自动跳转到断点处继续执行。 而对于系统中的实时性强于管理任务的控制任务则按优先级排队,分别分配不同的优先级,由于环外的任务优先级均高于管理任务,环外的任务可以随时通过优先级抢占的任务调度方式中断环内的任务执行,占用系统资源。 当有多个同等级的任务进入任务就绪队列时(如零件加工时多轴的位置控制任务),根据时间片轮转调度方式形成新的当前任务调度环,保证同优先级的任务并发进行。 同理,这种任务的抢占和调度机制也适用于其他不同优先级的任务。
3 数控系统引导型二次开发平台理论模型的研究
数控系统二次开发功能的强弱在一定程度上代表了其开放性的好坏,根据嵌入式系统的结构模式、设计特点和数控系统的功能特征,本文设计了一种适合嵌入式数控系统、具有引导功能的数控系统二次开发平台的理论模型,如图5所示。 二次开发平台采用一种引导开发的模式,借助于预先定义的各种信息库,将使用特殊语言描述的用户功能要求转换成信息库中特定策略的组合,然后通过与MCU 相匹配的代码编译器,将策略描述翻译并通过计算机的并口经由下载电缆传送至数控系统的仿真开发接口。
二次开发环境包括语言描述和引导设置2种开发方式。 语言描述方式采用结构化的功能机制,预先定义出系统扩展的算法结构,用户只需根据算法的提示加入自己功能要求的描述。 二次开发平台提供独立的结构化描述语言,采用面向对象的编程思想,以功能对象群组的构成方式来完整描述数控组件对象的特定工作状态。 语言描述方案,可以通过灵活定义的算法规范深入系统内部的软件构成细节,适用于系统底层策略方案的自定义配置。 引导设置采用开发向导的形式以图形化询问界面来定制用户的扩展需求,一般用于较为简单的扩展开发。
4 数控系统的设计实现
成功搭建出了以MC68F375+ MCX314为基础的硬件开发平台,规划出了以嵌入式实时操作系统(RTOS)VxWorks为核心的层次化系统软件体系结构和任务调度机制,开发出了TDNCM4 数控系统原型机,该系统能用于控制车床、钻铣床,可控制4个进给轴和1个模拟主轴三轴联动,具有直线插补和平面圆弧插补、螺旋线插补和空间圆弧( C IP) 插补等控制方式,能进行螺纹加工、变距螺纹加工等,可通过Internet进行数据传输和网络化制造,并将该系统应用于TDNC-M40A 四轴加工中心的设计上,如图6 所示。 经实验证明,该数控机床工作稳定,性能可靠,主轴转速最高可达6 000 r/m in,切削进给X、Y、Z 可达0~10 000mm /m in,定位精度X、Y、Z 可达? 0.005mm,重复定位精度X、Y、Z 可达? 0.003 mm,目前已被应用于天津大学数字化制造与测控技术研究所的一般金属切削加工和工业陶瓷加工的实验。
5 结 语
本系统设计的最大特点是将嵌入式技术应用到数控系统的设计中来,针对基于PC 的数控系统在稳定性、实时性等方面的不足,提出利用控制性能更加稳定和优异的MCU 以及运算性能更加强大的专用DSP芯片,为双CPU 架构构建嵌入式数控系统的硬件平台,利用性能优异的嵌入式实时操作系统VxWo rks作为数控系统的操作系统来统一调度系统运行的各个任务,使系统拥有了更佳的实时性和稳定性,初步研究了数控系统引导型二次开发平台的理论模型,开发设计出TDNCM4数控系统的原型机,探索出了一条数控技术研究和开发的新渠道-嵌入式数控技术。