1.4 引入外部定时中断
在Windows 2000操作系统下要获得高精度定时时钟还可以通过引入外部定时时钟的方法。即在PC机的外部提供一个高精度的时钟,在PC机的内部,在Windows 2000操作系统下,通过编写WDM程序的方式来响应这个外部的中断。
通过对这几种实时控制方案解决方法的分析,可以看到,利用Windows系统提供的常规定时器及多媒体定时器,其定时精度太低,无法满足数控系统对高精度定时时钟的需求;利用系统的定时时钟,一旦处理不当,很容易使系统工作不稳定,因此不适合于数控系统对控制可靠性的要求;通过修改CMOS实时时钟的方法来获得高精度的定时时钟,因为受到输入晶振频率的限制,其最大输出频率也只能可达到122μs,仍然无法满足数控系统对较高加工速度的要求。
综合以上原因,本文提出通过ISA总线引入外部时钟的方法来获得高精度、稳定的定时中断。在程序上通过编写WDM驱动程序来响应该时钟中断。利用这种方法完全避开了依靠操作系统提供的中断的弊端。采用这种方法有两点好处:首先,利用外部提供的时钟,其时钟的频率可以根据实际的需要提供,也就是说可以灵活地提供所需要的任何频率的定时时钟。其次,利用外部定时中断提供高精度的定时时钟与利用PC机系统提供的定时时钟相比较,可避免使用不当而导致的系统工作不稳定。
2 线接触加工数控系统高精度定时时钟的解决
通过对Windows操作系统下高精度定时时钟引入方法的分析,采用了第四种方法,即通过引入外部定时时钟中断的方法,在操作系统的内部通过编写系统WDM程序来响应这个外部中断。图1是线接触加工数控系统高精度定时时钟解决方法的方框图,即在PC机的外部提供一个高精度的定时中断源,在PC机一侧则是利用ISA总线通过中断IRQ5接入PC机,在Windows操作系统内部通过WDM程序响应这个外部中断。
为了方便试验以及测试需要,选用了华邦公司生产的W77E58单片机来产生不同频率的时钟。W77E58是与Intel51系列单片机完全兼容的8位单片机,但是它比51系列单片机的工作速度更快。该单片机一个机器周期仅需要4个时钟周期,外接晶振最高频率为40 MHz。经计算这种单片机的单周期指令仅需要O.1μs,通过如下的循环指令很容易就实现1μs的定时周期。
输出的中断脉冲如图2所示。在上面的循环指令中插入适当个数的Nop指令便可以得到一系列小于1 MHz时钟的输出脉冲。
将上面输出的方波脉冲作为外部中断经过ISA总线连接至中断请求IRQ5以此作为线接触加工数控系统的基准中断时钟。为了试验的需要,本文将单片机输出的时钟连接到了ISA总线的几个不同的中断上,并另外做了一个小的键盘用来选择ISA总线上不同频率的时钟源。
为了能够使系统实时响应外部的IRQ5中断,必须通过编写Windows操作系统下的设备驱动程序。WDM驱动程序是*.sys系统驱动程序。在WDM程序中对中断的响应可以通过下面的方法实现:
该WDM设备程序是非即插即用的ISA驱动程序,因此驱动程序的资源分配必须在.inf文件中进行。线接触加工数控系统对资源的分配是在.inf文件的资源分配中按下面的方式分配端口资源和中断资源的:
3 结 语
在Windows操作系统结构理论的基础上,研究了Windows 2000操作系统下实现实时性控制的几种解决方案,并对这几种方案进行了具体的分析比较,最后提出了适合于数控系统的最优的实时控制方案——引入外部定时中断的方式,并具体研究了此方法的实现过程,同时用实验手段验证了线接触加工数控系统,最终实现了控制系统的极限加工进给速度可达到1 500 mm/min,系统的最小脉冲当量是O.037 μm。