ARM 具有较强的事务管理功能,可以运行具有良好人机界面的多线程应用程序,其优势主要体现在程序控制上。CPLD具有较强的逻辑运算能力,可用于进行插补运算及运动控制等。Windows CE是嵌入式实时操作系统,其独特体系结构和运行机制使其能够快速响应外部中断,并调度相关程序进行处理[3],可以满足数控系统的实时性要求。本文提出一种基于ARM9和CPLD的开放式数控系统。该系统中ARM9移植了Windows CE嵌入式操作系统,通过开发应用程序实现信息输入、运动显示和粗插补等功能; CPLD实现精插补和运动控制。整个系统具有结构紧凑、集成度高、可靠性强和友好人机交互等特点。
Windows CE应用程序是基于多线程的。应用程序包括信息输入、译码、运动显示、故障管理、电机启动停止和插补等功能模块,每个功能模块都是一个独立的线程。信息输入、译码是非实时任务,线程优先级设为默认值251;故障管理、电机启动停止是实时非周期性任务,属于弱实时任务,线程优先级设为247,即用户态实时级别;插补、运动显示是实时周期性任务,属于强实时任务,线程优先级设为3,即核心态实时级别。
Windows CE是实时操作系统,其实时性体现在6个方面:(1)具有256个线程优先级;(2)应用程序可以控制提供给每个线程的时间片,计时器精确到1 ms;(3)优先级倒置处理机制;(4)支持嵌套中断;(5)中断延迟时间短;(6)更细粒度的内存管理控制[4-5]。Windows CE以上机制特别是中断体系保证了数控系统的实时性。
Windows CE的中断体系包括核心态的中断例程ISR和用户态的中断线程IST两部分。ISR主要响应中断请求,识别中断源,给操作系统内核返回相应的中断标识。 ISR具有最高的优先级。本系统采用ISR完成中断服务。进入ISR以后,系统中所有的同级或下级中断均被屏蔽。为了不降低系统执行多任务的性能,ISR 应非常短小精干,以使其他中断也能够获得及时的服务。