基于Windows的线接触加工数控系统实时性研究_第1页
基于Windows的线接触加工数控系统实时性研究_第2页
基于Windows的线接触加工数控系统实时性研究_第3页
基于Windows的线接触加工数控系统实时性研究_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于windows的线接触加工数控系统实时性研究2011-06-11 19:46:49 来源:互联网0引言数控系统是一种典型的工业控制软件,其系统的实时检测以及控制时序都需要时间基 准。尽管windows操作系统因其具有强人的功能和友好的通信用户界面,而使得它不仅被 广泛的用作管理事务型工作的平台,也被工业领域的工程人员所关注。但windows系统顶 层的应用程序并非是基于优先级來调度任务的,无法立即响应外部事件的中断,因此也就不 能满足工业应用坏境屮实时事件处理和实时控制应用的要求,因此如何在windows坏境f 实现实时控制是实现人多数实时系统的关键。木文归纳了 windows环境下实时操

2、作系统实 现的儿种方案,并通过分析比较,提出了线接触加工数控系统中实时控制的解决方案引 入外部高精度的定吋吋钟,在windows环境中编写wdm程序来响应高精度定吋吋钟,从 而实现线接触加工数控系统的强实时控制问题。1 windows 2000操作系统进行实吋控制的解决方案在windows 2000操作系统环境中进行实时控制时,根据对定时精度以及实时性要求不 同,通常可采用以下几种方法。1. 1利用windows系统提供的常规定时器及多媒体定时器pc机中,最小的定时间隔是55 ms申请一次屮断请求。在一般的应用软件开发平台上 部提供了一个具有定时功能的timer控件用于响应这个屮断,如c卄bu

3、ilder屮的timer控 件,用户可以通过windows提供的api函数scttimcr和killtimcr来实现定时,但是由于 系统时钟的限制,釆用这种方式所获得的吋钟周期是不会超过55 ms的。同吋这些常用的定 时器事件也是山消息机制驱动的,定时消息被放在消息队列里与其他消息一起排队,而定时 消息的优先权很低,一旦遇到系统比较忙时,就有对能在消息队列里同时阻塞很多条定时消 mo windows系统对定时消息的处理是:当在队列屮同时有几条时间消息时,系统就会丢弃 其他的时间消息,而仅仅处理其小最后的一条定时消息。由此可见,利用系统提供的定时器 只能处理一些对定吋精度、实吋控制要求不高的悄况

4、。另外也可以利用windows操作系统 中mmsystem. dll多媒体扩展库提供的定时器,它是利丿ij设置定时器回调函数timesetevent, 定时时间一到,系统就会调用回调两数,从而实现定时。定时回调函数是通过挂接定时屮断 來实现的,从而避开操作系统的消息驱动机制。采用这种方法最高可以获得1 ms的定吋梢 度。1. 2利用系统定吋中断利用pc机中8254定芯片产牛的中断请求0获得定时间隔。操作系统在工作时,工作 时钟主要由pc机的8254时钟芯片提供。8254.共有三个独立的16位计数器,计数器0, 1, 2的地址分别是40h, 41h和42h, 43h是控制寄存器的端口地址。其中计

5、数器0为日时钟 的中断源,同时也是系统的定时中断源。在系统加电后,:bios对8254初始化,设置计数 器0的初值为0,脉冲输出方式是方式3(输出方波脉冲)。这样,就可以在输出端得到频率 为f=l. 913 18 mhz/ 65 535=18. 2hz(其中1. 913 18 mhz是8254时钟输入端的输入脉冲 频率,65 535是16位计数器的计数宽度)的方波输出脉冲作为输出中断频率,即每隔55 ms 提起一次屮断请求,cpu响应后转入日时钟屮断处理程序,即屮断请求()的屮断服务程序。通过上面的分析,要想获得高精度的定时时钟,可以通过两步实现:首先,根据盂要修 改8254计数器0的计数初值

6、,从而改变计数器0的输出吋钟中断频率。然后通过修改小断 请求0中断服务程序的中断地址,将中断请求0挂接到中断服务程序上。具体挂接屮断服务程序的办法是通过编写wdm驱动程序,修改idt(interrupt descriptor tabic)中断描述符表。idt是定义硬件中断映射的表,其工作原理类似于ms-dos环境中的 屮断向最表,它在内存中的地址是从0000: 0000开始,每个表项共占4个字节,共有8 192 个中断描述符,但是cpu能够利用的只有前血的256个。在windows 2000操作系统中这些 idt表项及其所对应的中断地址可以通过在softice中执行idt指令显示出来。当中断到

7、来 时,要执行屮断服务程序,可以通过将idt屮8号中断对应的屮断服务例程地址改为屮断 服务程序所在的地址。硕件屮断发住的时候,cpu就会直接把控制权交到idt的相应isr 中去运行。通过修改8254.定时器0的定时初值,并挂接中断服务程序,可以获得一个稳定的时 钟中断。但是由于8254定时器除了提供系统的日时钟中断源外,还是系统工作的定时中断 源,当把屮断请求()挂接到屮断服务程序上时,为确保系统稳定工作,必须保存原来系统的 中断服务程序地址,当8254计数器0的定时时间达到55 ms时,必须将中断请求8的中断 服务程序地址恢复为原来的中断服务程序地址,以完成系统定吋需要。这种通过修改中断服

8、务程序地址的方法获得高精度的定时中断,由于涉及到系统工作的定时中断源,一旦处理不 当,很容易使系统工作不稳定,严重时会造成系统的崩溃。1. 3通过对系统cmos实时吋钟编程windows 2000操作系统中要获得高精度的定时中断,可以通过修改cmos实时时钟的 方法来获得,即利用pc机的屮断请求8来获得。在pc机中都存在一个cmos实时时钟芯 片,该时钟山于采用的是独立品振、用独立的电池供电,因此可以永不间断地运行。它的主 要功能是为系统提供备用时钟、三个对屏蔽的中断和一个通用的中断输iii. 4编程方波发生 器等。另外,它与操作系统相互独立,修改它的定时屮断频率对操作系统工作的彫响不人, 所

9、以,通过修改cmos中断频率的办法可获得与前面利用系统定时中断相比较,更可靠、 更稳定的高精度定时吋钟中断。pc机的cmos实时时钟一般采用mc146818芯片,该芯片上包含了一个实时时钟和一 个64 b的cmos内存。在这64个字节的内存中00dh是与实时时钟相关的信息,0e 3fh屮包含的是关于计算机的硬件配置信息。其屮cmos内存的地址口的地址为70h,数 据口的地址为71h。实时时钟有4个状态寄存器a, b, c, do其屮寄存器a主要功能是 用来开启、关闭振荡器,并选择不同的输出频率,它的具体位定义如表1所示。寄存器b 川來控制实时时钟各种功能的使能状态等。寄存器c与d是只读寄存器,

10、寄存器c主要是 提供各种屮断状态标志位。因此,当设證好a, b寄存器后,要想读岀cmos内存的数据, 只需将要读数据所在内存地址送到70h,再从71h中将数据读出即可,向cmos内写入数 据的过程正好与上面的操作相反。表2列出了寄存器a的周期性中断速率和方波输出频率,可以看到,通过修改cmos 实时时钟的a寄存器选择不同的方波输出频率,具最人输出速率可达到122u so与上面利 用系统捉供的中断请求0相比较,irq0是每隔55 ms中断一次,而irq8因为用的是自己 的晶振,中断频率则要高很多,软件上的实现上同前面利用系统定时中断中的方法相同,即 通过编写wdm 5|x:动程序,修改屮断描述表

11、(idt),然麻通过hook挂接屮断服务程序,从而 抢先实现任务。1. 4引入外部定时中断在windows 2000操作系统下要获得高精度定时时钟还可以通过引入外部定时时钟的方 法。即在pc机的外部提供一个高精度的吋钟,在pc机的内部,在windows 2000操作系统 下,通过编写wdm程序的方式來响应这个外部的中断。通过对这儿种实时控制方案解决方法的分析,可以看到,利用windows系统提供的常 规定时器及多媒体定时器,英定时精度太低,无法满足数控系统对高精度定时时钟的盂求; 利用系统的定时时钟,一旦处理不当,很容易使系统工作不稳定,因此不适合于数控系统对 控制可靠性的要求;通过修改cmo

12、s实时时钟的方法來获得高梢度的定时时钟,因为受到 输入晶振频率的限制,其最大输出频率也只能可达到122 h s,仍然无法满足数控系统对鮫 高加工速度的要求。综合以上原因,本文提出通过isa总线引入外部时钟的方法來获得高精度、稳定的定 时中断。在程序上通过编写wdm驱动程序来响应该吋钟中断。利用这种方法完全避开了 依靠操作系统提供的中断的弊端。采用这种方法有两点好处:首先,利用外部提供的时钟, 具时钟的频率可以根据实际的需耍捉供,也就是说可以灵活地提供所需要的任何频率的定时 时钟。其次,利用外部定时屮断提供高精度的定时时钟与利用pc机系统提供的定时时钟相 比较,可避免使用不当而导致的系统工作不稳

13、定。2线接触加工数控系统高精度定时时钟的解决通过对windows操作系统下高精度定时时钟引入方法的分析,采川了第四种方法,即 通过引入外部定吋时钟中断的方法,在操作系统的内部通过编写系统wdm程序來响应这 个外部中断。图1是线接触加工数控系统高精度定时时钟解决方法的方框图,即在pc机的 外部提供一个高精度的定时中断源,在pc机一侧则是利用isa总线通过屮断irq5接入pc 机,在windows操作系统内部通过wdm程序响应这个外部中断。为了方便试验以及测试需要,选用了华邦公司生产的w77e58单片机来产生不同频率 的时钟。w77e58是与intcl51系列单片机完全兼容的8位单片机,但是它比5

14、1系列单片机 的工作速度更快。该单片机一个机器周期仅需耍4个时钟周期,外接晶振最高频率为40 mhz。经计算这种单片机的单周期指令仅需要0s,通过如下的循环指令很容易就实现1 us的定时周期。输出的中断脉冲如图2所示。在上面的循环指令屮插入适当个数的nop指令便可以得 到一系列小于1 mhz吋钟的输出脉冲。将上面输出的方波脉冲作为外部中断经过isa总线连接至中断请求irq5以此作为线接 触加工数控系统的基准屮断时钟。为了试验的需要,本文将单片机输出的时钟连接到了 isa 总线的儿个不同的中断上,并另外做了一个小的键盘用来选择isa总线上不同频率的时钟 源。为了能够使系统实时响应外部的1rq5中断,必须通过编写windows操作系统下的设备 驱动程序。wdm驱动程序是*. sys系统驱动程序。在wdm程序屮对屮断的响应对以通过 下而的方法实现:该wdm设备程序是非即插即用的isa驱动程序,因此驱动程序的资源分配必须在.inf 文件中进行。线接触加工数控系统对资源的分配是在.inf文件的资源分配中按下血的方式 分配端口资源和中断资源的:3结语在windows操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论