基于Windows的线接触加工数控系统实时性研究.docVIP

基于Windows的线接触加工数控系统实时性研究.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Windows的线接触加工数控系统实时性研究.doc

基于Windows的线接触加工数控系统实时性研究 2011-06-11 19:46:49 来源:互联网 0 引 言 数控系统是一种典型的工业控制软件,其系统的实时检测以及控制时序都需要时间基准。尽管Windows操作系统因其具有强大的功能和友好的通信用户界面,而使得它不仅被广泛的用作管理事务型工作的平台,也被工业领域的工程人员所关注。但Windows系统顶层的应用程序并非是基于优先级来调度任务的,无法立即响应外部事件的中断,因此也就不能满足工业应用环境中实时事件处理和实时控制应用的要求,因此如何在Windows环境下实现实时控制是实现大多数实时系统的关键。本文归纳了Windows环境下实时操作系统实现的几种方案,并通过分析比较,提出了线接触加工数控系统中实时控制的解决方案——引入外部高精度的定时时钟,在Windows环境中编写WDM程序来响应高精度定时时钟,从而实现线接触加工数控系统的强实时控制问题。 1 Windows 2000操作系统进行实时控制的解决方案 在Windows 2000操作系统环境中进行实时控制时,根据对定时精度以及实时性要求不同,通常可采用以下几种方法。 1.1 利用Windows系统提供的常规定时器及多媒体定时器 PC机中,最小的定时间隔是55 ms申请一次中断请求。在一般的应用软件开发平台上都提供了一个具有定时功能的Timer控件用于响应这个中断,如C++Builder中的Timer控件,用户可以通过Windows提供的API函数SetTimer和KillTimer来实现定时,但是由于系统时钟的限制,采用这种方式所获得的时钟周期是不会超过55 ms的。同时这些常用的定时器事件也是由消息机制驱动的,定时消息被放在消息队列里与其他消息一起排队,而定时消息的优先权很低,一旦遇到系统比较忙时,就有可能在消息队列里同时阻塞很多条定时消息。Windows系统对定时消息的处理是:当在队列中同时有几条时间消息时,系统就会丢弃其他的时间消息,而仅仅处理其中最后的一条定时消息。由此可见,利用系统提供的定时器只能处理一些对定时精度、实时控制要求不高的情况。另外也可以利用Windows操作系统中mmsystem.dll多媒体扩展库提供的定时器,它是利用设置定时器回调函数TimeSetEvent,定时时间一到,系统就会调用回调函数,从而实现定时。定时回调函数是通过挂接定时中断来实现的,从而避开操作系统的消息驱动机制。采用这种方法最高可以获得1 ms的定时精度。 1.2 利用系统定时中断 利用PC机中8254定芯片产生的中断请求0获得定时间隔。操作系统在工作时,工作时钟主要由PC机的8254时钟芯片提供。8254.共有三个独立的16位计数器,计数器0,1,2的地址分别是40H,41H和42H,43H是控制寄存器的端口地址。其中计数器0为日时钟的中断源,同时也是系统的定时中断源。在系统加电后,:BIOS对8254初始化,设置计数器0的初值为0,脉冲输出方式是方式3(输出方波脉冲)。这样,就可以在输出端得到频率为f=1.913 18 MHz/65 535=18.2 Hz(其中1.913 18 MHz是8254时钟输入端的输入脉冲频率,65 535是16位计数器的计数宽度)的方波输出脉冲作为输出中断频率,即每隔55 ms提起一次中断请求,CPU响应后转入日时钟中断处理程序,即中断请求0的中断服务程序。 通过上面的分析,要想获得高精度的定时时钟,可以通过两步实现:首先,根据需要修改8254计数器0的计数初值,从而改变计数器0的输出时钟中断频率。然后通过修改中断请求0中断服务程序的中断地址,将中断请求0挂接到中断服务程序上。 具体挂接中断服务程序的办法是通过编写WDM驱动程序,修改IDT(Interrupt Descriptor Table)中断描述符表。IDT是定义硬件中断映射的表,其工作原理类似于MS-DOS环境中的中断向量表,它在内存中的地址是从0000:0000开始,每个表项共占4个字节,共有8 192个中断描述符,但是CPU能够利用的只有前面的256个。在Windows 2000操作系统中这些IDT表项及其所对应的中断地址可以通过在SoftICE中执行IDT指令显示出来。当中断到来时,要执行中断服务程序,可以通过将IDT中8号中断对应的中断服务例程地址改为中断服务程序所在的地址。硬件中断发生的时候,CPU就会直接把控制权交到IDT的相应ISR中去运行。 通过修改8254.定时器0的定时初值,并挂接中断服务程序,可以获得一个稳定的时钟中断。但是由于8254定时器除了提供系统的日时钟中断源外,还是系统工作的定时中断源,当把中断请求0挂接到中断服务程序上时,为确保系

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档