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

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

ID:30801237

大小:53.00 KB

页数:4页

时间:2019-01-03

基于windows的线接触加工数控系统实时性研究_第1页
基于windows的线接触加工数控系统实时性研究_第2页
基于windows的线接触加工数控系统实时性研究_第3页
基于windows的线接触加工数控系统实时性研究_第4页
资源描述:

《基于windows的线接触加工数控系统实时性研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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

2、键。木文归纳了Windows环境下实时操作系统实现的儿种方案,并通过分析比较,提出了线接触加工数控系统中实时控制的解决方案——引入外部高精度的定吋吋钟,在Windows环境中编写WDM程序来响应高精度定吋吋钟,从而实现线接触加工数控系统的强实时控制问题。1Windows2000操作系统进行实吋控制的解决方案在Windows2000操作系统环境中进行实时控制时,根据对定时精度以及实时性要求不同,通常可采用以下几种方法。1.1利用Windows系统提供的常规定时器及多媒体定时器PC机中,最小的定时间隔是55ms申请一次屮断请求。在一般的应用软

3、件开发平台上部提供了一个具有定时功能的Timer控件用于响应这个屮断,如C卄Builder屮的Timer控件,用户可以通过Windows提供的API函数SctTimcr和KillTimcr来实现定时,但是由于系统时钟的限制,釆用这种方式所获得的吋钟周期是不会超过55ms的。同吋这些常用的定时器事件也是山消息机制驱动的,定时消息被放在消息队列里与其他消息一起排队,而定时消息的优先权很低,一旦遇到系统比较忙时,就有对能在消息队列里同时阻塞很多条定时消MoWindows系统对定时消息的处理是:当在队列屮同时有几条时间消息时,系统就会丢弃其他的时

4、间消息,而仅仅处理其小最后的一条定时消息。由此可见,利用系统提供的定时器只能处理一些对定吋精度、实吋控制要求不高的悄况。另外也可以利用Windows操作系统中mmsystem.dll多媒体扩展库提供的定时器,它是利丿IJ设置定时器回调函数TimeSetEvent,定时时间一到,系统就会调用回调两数,从而实现定时。定时回调函数是通过挂接定时屮断來实现的,从而避开操作系统的消息驱动机制。采用这种方法最高可以获得1ms的定吋梢度。1.2利用系统定吋中断利用PC机中8254定芯片产牛•的中断请求0获得定时间隔。操作系统在工作时,工作时钟主要由PC

5、机的8254时钟芯片提供。8254.共有三个独立的16位计数器,计数器0,1,2的地址分别是40H,41H和42H,43H是控制寄存器的端口地址。其中计数器0为日时钟的中断源,同时也是系统的定时中断源。在系统加电后,:BIOS对8254初始化,设置计数器0的初值为0,脉冲输出方式是方式3(输出方波脉冲)。这样,就可以在输出端得到频率为f=l.91318MHz/65535=18.2Hz(其中1.91318MHz是8254时钟输入端的输入脉冲频率,65535是16位计数器的计数宽度)的方波输出脉冲作为输出中断频率,即每隔55ms提起一次屮断请

6、求,CPU响应后转入日时钟屮断处理程序,即屮断请求()的屮断服务程序。通过上面的分析,要想获得高精度的定时时钟,可以通过两步实现:首先,根据盂要修改8254计数器0的计数初值,从而改变计数器0的输出吋钟中断频率。然后通过修改小断请求0中断服务程序的中断地址,将中断请求0挂接到中断服务程序上。具体挂接屮断服务程序的办法是通过编写WDM驱动程序,修改IDT(InterruptDescriptorTabic)中断描述符表。IDT是定义硬件中断映射的表,其工作原理类似于MS-DOS环境中的屮断向最表,它在内存中的地址是从0000:0000开始,每

7、个表项共占4个字节,共有8192个中断描述符,但是CPU能够利用的只有前血的256个。在Windows2000操作系统中这些IDT表项及其所对应的中断地址可以通过在SoftICE中执行IDT指令显示出来。当中断到来时,要执行屮断服务程序,可以通过将IDT屮8号中断对应的屮断服务例程地址改为屮断服务程序所在的地址。硕件屮断发住的时候,CPU就会直接把控制权交到IDT的相应ISR中去运行。通过修改8254.定时器0的定时初值,并挂接中断服务程序,可以获得一个稳定的时钟中断。但是由于8254定时器除了提供系统的日时钟中断源外,还是系统工作的定时

8、中断源,当把屮断请求()挂接到屮断服务程序上时,为确保系统稳定工作,必须保存原来系统的中断服务程序地址,当8254计数器0的定时时间达到55ms时,必须将中断请求8的中断服务程序地址恢复为原来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。