




已阅读5页,还剩79页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海交通大学硕士学位论文基于WINDOWS2000内核驱动程序的实时控制器的研究与应用姓名:方伟申请学位级别:硕士专业:机械电子工程指导教师:杨汝清2003.2.1们对这种控制器作了性能测试实验实验结果证明这种方法是可行的我们使用这种基于WINDOWS2000内核驱动程序的实时控制器来进行空气滤芯生产线控制系统的开发论文详细介绍了改进后的滤芯生产线控制系统的软硬件结构和实现方法改进后的滤芯生产线完全实现了厂商提出的新要求而且生产线柔性强监控功能强人机界面美观操作迅速简易在江苏靖江市申达净化设备有限公司投入使用后取得了良好的效果我们在前面的研究基础上针对双臂教学机器人控制系统设计要求对这种实时控制器进行了更深入的研究并加以应用论文详细介绍了我们采用这种实时控制器来设计双臂教学机器人控制系统的过程详细说明了系统的硬件和软件结构整个机器人控制器的设计体现了开放式控制的思想而且在使用中表现良好关键词实时控制器内核驱动程序WINDOWS2000滤芯生产线机器人STUDY AND APPLICATION FOR AREAL-TIME CONTROLLER BASED ON KERNEL-MODE DRIVER IN WINDOWS2000 SYSTEMABSTRACTWe use IPC and Windows OS as the platform to do real-time controlboth in the improvement design of air-condition filter production line andin the design of the dual-arm-education robot controller. So theres onecommon problem: how to realize the real-time control in a non-real-timeoperation system.This paper gives a model of the real-time controller based on kernel-mode driver in Windows 2000 OS, using the kernel-mode driver (WDM)to solve the real-time problem. We develop a kernel-mode driver tohandle the hardware interrupt, by this way we get a high-resolution timer.In the Interrupt Service Routine (ISR) we do the real-time task. The ISRruns in the high Interrupt Request Level (IRQL) and has few delay time.Its dispatched periodically, so the task can be performed in time. Thiscontroller can use the universal hardware and software to construct anopen-architecture system, such as the IPC and Windows. The software isin a layered-architecture, there are 3 layers: function layer, interface layerand kernel-mode driver layer. The layered software brings an openperformance. The change in each single layer will not influent the others,so the new function module can be easily introduced. We did theperformance test and got a good result.We apply this controller on the air-condition filter production line.This paper gives a detailed description of how to realize the new controlsystem, both in hardware and software. The new control system matchesall the demands from the users. Moreover, its more flexible, powerfuland easy to operate. This new control system is now running in theShenda Cleaning Equipment Corporation and performs very well.On the basis of the study we have done, we develop this controller touse it as the dual-arm-education robot controller. The method and processof the design are clearly described in the paper. The controller has goodopen performance and works well.KEY WORDS: real-time controller, kernel-mode driver, Windows2000,filter production line, robot上海交通大学学位论文原创性声明本人郑重声明所呈交的学位论文是本人在导师的指导下独立进行研究工作所取得的成果除文中已经注明引用的内容外本论文不包含任何其他个人或集体已经发表或撰写过的作品成果对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明本人完全意识到本声明的法律结果由本人承担学位论文作者签名日期 年 月 日上海交通大学学位论文版权使用授权书本学位论文作者完全了解学校有关保留使用学位论文的规定同意学校保留并向国家有关部门或机构送交论文的复印件和电子版允许论文被查阅和借阅本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索可以采用影印缩印或扫描等复制手段保存和汇编本学位论文 保密在年解密后适用本授权书本学位论文属于不保密请在以上方框内打学位论文作者签名指导教师签名日期年月日日期年月日1第一章 绪论1.1 课题来源本课题的研究源自对江苏省靖江市申达净化设备有限公司空气滤芯生产线控制系统进行的改进以及985项目双臂教学机器人为了满足申达有限公司提出的改进要求我们设计了基于WINDOWS2000内核驱动程序的实时控制器并应用在滤芯生产线控制系统上面这种实时控制器建立在通用的硬件结构上使用了通用的操作系统和高级编程语言而这些正好是开放式机器人控制器的研究方向因此我们在985项目双臂教学机器人的资助下对这种实时控制器展开了进一步的研究工作把它应用到双臂教学机器人的控制上面实现了在一台工控计算机上软件化的机器人控制器从而体现了开放式机器人控制器的基本思想1.1.1空气滤芯生产线我国国民经济处在高速发展之中特别是一些高科技产业正在迅速成长在这些领域的生产企业例如IC制造工厂等等对生产车间空气洁净度的要求非常高导致需要大量高质量的空气过滤器材此外近年来中央空调得到了越来越广泛的应用在中央空调中同样需要使用空气过滤器因此空气过滤器有很好的市场前景这一行业的竞争也越来越激烈目前国内过滤器的滤芯生产厂家很多但是大部分是小企业通常是手工生产效率低下质量不稳定他们迫切需要自动化的生产设备来生产滤芯然而目前国内还没有提供这种设备的厂商进口设备则价格昂贵在这种背景下上海交通大学机器人研究所开发了一套空气滤芯生产设备并在江苏靖江市申达净化设备有限公司投入使用取得了良好的效果针对新的市场要求申达净化设备有限公司开发了新规格的产品需要对原系统进行升级此外这套设备控制系统的设计也存在一些不足之处他们提出了一些改进要求考虑到这些要求我们经过分析后发现如果仅在原控制系统上进行改进是很难实现的因此需要设计一种全新结构的控制系统在这种背景下我们设计了基于WINDOWS2000内核驱动程序的实时控制器并成功应用在滤芯生产线控制系统上21.1.2双臂教学机器人双臂教学机器人是985项目及教学改革项目设计目标是建立一个多学科交叉的创新实践型机电一体化系统教学实验平台可以为多门课程的教学提供实验课题比如机器人技术控制理论机电控制技术机械设计等等在双臂教学机器人的设计中控制系统是一个很重要的部分具体来说双臂教学机器人的控制器设计必须考虑下述要求1) 良好的柔性教学机器人不同于普通的特殊用途工业机器人要求能完成各种复杂的任务例如写字绘图倒立摆控制下棋等等1) 提供简单高效的开发环境给控制任务开发者提供一个容易使用的开发环境比如提供易于操作的示教编程功能丰富实用的用户编程接口友好的用户界面1) 控制策略具有良好的开放性开发者可以根据控制目标自行设计控制软件来证明自己的设计思想也可以调整各种不同的控制参数例如PID控制的各个环节尝试最佳控制效果1) 良好的通用性和扩展性通过添加或者替换一些硬件软件不用大的改动就可以使控制器适用于其它类型的机器人系统现阶段广泛应用的机器人控制器基本上都是一种封闭式结构的专用系统很难或者不可能集成外部硬件修改封闭系统的代价非常昂贵如果不进行重新设计多数情况下技术上是不可能的可见这种封闭式结构的机器人控制系统并不适合应用在双臂教学机器人上针对封闭式结构的机器人控制器的缺点研究开放式结构的机器人控制器成为当前机器人研究的一个重要方向国内外在这个问题上面都作了大量的研究当前机器人控制器的发展方向是开放化标准化模块化最终目标是基于通用硬件和通用操作系统的开放式结构控制器考虑到双臂教学机器人控制器的设计要求采用开放式体系的机器人控制器系统是很合适的我们设计的基于WINDOWS2000内核驱动程序的实时控制器正是一种使用通用硬件和通用操作系统的开放式结构很适合应用到双臂教学机器人控制器上面1.2 本论文的主要研究内容本论文涉及到两个课题空气滤芯生产线控制系统和双臂教学机器人控制系统在这两套系统的设计过程中我们使用了相同的策略采用通用硬件IPC+通用操作系统WINDOWS2000作为控制平台来进行实时控制因此都碰到了共3同的问题如何在非实时操作系统上开发实时控制系统我们采取了相同的解决办法编写内核驱动程序本论文提出了一种基于WINDOWS2000内核驱动程序的实时控制器模型并把它分别应用到空气滤芯生产线控制系统和双臂教学机器人控制系统上1.2.1在WINDOWS2000系统下解决实时性问题的方法为了在WINDOWS2000系统下面开发具有实时性要求的控制系统我们分析了WINDOWS2000系统的实时性能特征和其结构体系特点在此基础上提出了一种解决实时性的办法编写内核驱动程序内核驱动程序常用的一种模型是WDM工作在系统的核心模式是WINDOWS2000下面用户程序访问硬件的唯一方法我们在编写的内核驱动程序中加入了对硬件中断处理利用中断来获得高精度的定时时钟在中断处理例程ISR中加入实时任务处理ISR具有较高的IRQL设备中断请求级执行延迟时间小也不会受到系统线程调度的影响ISR被周期性地调度保证了ISR中处理的任务的实时性我们提出了一种基于WINDOWS2000内核驱动程序的实时控制器模型介绍了如何设计和实现这种实时控制器1.2.2空气滤芯生产线控制系统的设计我们在对空气滤芯生产线控制系统进行改进的过程中发现原控制系统具有封闭式的结构很难满足厂商的改进要求需要重新设计控制系统的结构在这种背景下我们把基于WINDOWS2000内核驱动程序的实时控制器应用到空气滤芯生产线控制系统上面改进后的控制系统利用通用硬件IPC+通用操作系统WINDOWS作为控制平台具有开放式的软硬件结构充分利用IPC机强大灵活的功能把所有的控制监测显示等任务集中到IPC上来完成大大提高控制系统的柔性充分降低成本便于进行扩展和改动并能够实现网络化等其它功能论文详细说明了改进后的滤芯生产线控制系统的软硬件结构和实现方法1.2.3 双臂教学机器人控制器的设计经过查阅资料研究了国内外在机器人控制器领域的发展我们发现基于通用硬件和通用操作系统的开放式控制器是当前研究的一个重点方向此外机器人控制器也是一个具有很强的实时性要求的控制系统因此本论文在空气滤芯生产线控制系统研究的基础上针对双臂教学机器人控制系统设计要求对基于WINDOWS2000内核驱动程序的实时控制器进行了更深入的研究并加以应用在一台使用WINDOWS2000操作系统的IPC上设计和实现了一种开放4式的机器人控制器1.3 本论文的实用意义本论文研究的基于WINDOWS2000内核驱动程序的实时控制器可以用来构成开放式实时控制系统在工业控制领域制造业领域具有广泛的需求它的研究和应用可以促进我国落后的制造行业提高技术水平进行改造和优化促进生产力水平的提高因此本课题的研究具有一定的实用意义4式的机器人控制器1.3 本论文的实用意义本论文研究的基于WINDOWS2000内核驱动程序的实时控制器可以用来构成开放式实时控制系统在工业控制领域制造业领域具有广泛的需求它的研究和应用可以促进我国落后的制造行业提高技术水平进行改造和优化促进生产力水平的提高因此本课题的研究具有一定的实用意义5第二章 空气滤芯生产线控制系统改进要求分析2.1 空气滤芯生产过程常用的空气过滤器使用纸质滤芯外面加上框架固定图2-1是空气过滤器成品图2-1 空气过滤器滤芯的生产过程可以概括为按照固定的折叠高度折叠滤纸然后涂上胶水从两侧压紧胶水粘合就成为具有一定牢固度的滤芯过程如图2-2所示图2-2 滤芯的生产过程2.2 原生产线控制系统分析目前国内生产空气滤芯的厂家很多这一行业的竞争也越来越激烈国内的生产厂家大部分是小企业通常是手工生产效率低下质量不稳定无法适应新的竞争形势少部分企业开始采用国外设备这些设备实现了自动化的生产例如美国公司开发的滤芯生产线高效微型折纸生产线热熔胶但是这套设备非常昂贵大部分企业难以承受为此上海交通大学机器人研究所曾经开发了一套经济型的滤芯生产线设备并在江苏省靖江市申达净化设备有限公司投入使用这套设备的设备原理简图如图2-3所示工作过程是这样的作为原料的滤纸卷筒经过拖动轧辊的拉动不断展开滤纸进入压痕轧棍从正反两面5第二章 空气滤芯生产线控制系统改进要求分析2.1 空气滤芯生产过程常用的空气过滤器使用纸质滤芯外面加上框架固定图2-1是空气过滤器成品图2-1 空气过滤器滤芯的生产过程可以概括为按照固定的折叠高度折叠滤纸然后涂上胶水从两侧压紧胶水粘合就成为具有一定牢固度的滤芯过程如图2-2所示图2-2 滤芯的生产过程2.2 原生产线控制系统分析目前国内生产空气滤芯的厂家很多这一行业的竞争也越来越激烈国内的生产厂家大部分是小企业通常是手工生产效率低下质量不稳定无法适应新的竞争形势少部分企业开始采用国外设备这些设备实现了自动化的生产例如美国公司开发的滤芯生产线高效微型折纸生产线热熔胶但是这套设备非常昂贵大部分企业难以承受为此上海交通大学机器人研究所曾经开发了一套经济型的滤芯生产线设备并在江苏省靖江市申达净化设备有限公司投入使用这套设备的设备原理简图如图2-3所示工作过程是这样的作为原料的滤纸卷筒经过拖动轧辊的拉动不断展开滤纸进入压痕轧棍从正反两面6在滤纸上每隔一定距离交叉压出折叠痕迹然后滤纸经过拖动轧辊的拉动通过胶水喷头在每两个压痕之间喷上一段热熔化的胶条接着在折叠机构处进行折叠并压紧到一定程度胶条冷却后粘合最后按照所需的长度进行切割1- 滤纸2-压痕轧辊3-位置传感器4-拖动轧辊5-喷头6-拖动轧辊7-折叠机构图2-3设备工作原理简图生产线控制系统结构示意图如图2-4所示图2-4 空气滤芯生产线控制系统示意图这套设备控制系统的特点是1) 使用三套伺服电机分别驱动拖动机构压痕机构和折叠机构电机驱动压痕轧辊2和拖动轧辊4电机2驱动拖动轧辊6电机3驱动折叠机构7伺服电机型号为松下系列三相伺服电机伺服电机使用电压输入的速度控制方式用电位器进行调速2) 采用控制喷胶过程喷胶系统使用了一台外购的喷胶机胶粒在熔化炉里加热熔化成为液体最后输送到喷头处用电磁阀控制喷头的开关如图所示喷出的胶条要求是断续的而且位于两条折痕的中间这样胶条粘合以后在折叠的滤纸外侧控制面板PLC电机1电机2电机3位置传感器喷头驱动器13265747不会留下胶条产品美观也节省了原料喷胶机使用的胶粒是特制的价格较贵根据上述要求喷胶机喷胶水的位置有严格的要求生产线的运行速度有变化在喷胶的时候必须实时检测滤纸的具体位置因此使用了一个位置传感器来确定滤纸的位置在压痕轧辊2的轴上装有一个检测齿轮齿轮齿数和压痕轧辊转动一周的压痕数相等位置相对应如图3所示喷头5设计成可以在上下垂直方向微调通过调节喷头的位置使滤纸从压痕轧辊2到喷头5之间走过的距离正好是折叠高度的整数倍这样传感器两次脉冲信号的间隔时间就是滤纸在喷头处经过一个折叠长度所用的时间如图2-5所示喷胶位置可以用喷胶时间来等效代替如果一个折叠长度滤纸通过时间为T那么 T= t1 + t2 + t3 2-1其中 t1 从当前周期开始到喷胶开始的延迟时间t2 喷胶时间t3 喷胶完成到当前周期结束的时间图2-5 喷胶位置示意图传感器的脉冲信号输入PLCPLC进行计时并按照预设的时间间隔打开和关闭喷头电磁阀PLC使用了西门子的S7-200/CPU2213) 控制面板上布置了各种开关按钮主要包括开关电源启动关闭电机急停报警还有电机调速电位器等2.3 改进要求与分析这套设备交付申达净化设备有限公司使用后运行情况良好给厂家带来了可观的经济效益不过这套设备控制系统的设计也存在一些不足之处此外申达净化设备有限公司也根据他们的生产需要提出了一些改进的要求现在归纳如下1) 同一条生产线上能够生产三种规格的滤芯目前这套设备只能用来生产折叠高度为25.4mm的滤芯申达公司希望能够在同一条线上还能够生产40mmt3t2t1T8和70.7mm这两种折叠高度的滤芯他们同时要求更换产品规格的操作简单希望只更换压痕轧辊和位置检测齿轮其它硬件和软件上不做改动2) 添加速度显示功能能够显示各个伺服电机的速度这样在调速时能够边观看速度数值边调整3) 添加产量监控功能申达公司希望能够实时获得当天从启动设备开始的滤芯生产产量信息并且每天工作结束后把当天的总产量数据记录成文件存档并可以打印出来4) 加强对喷胶的控制按现在的喷胶功能设计设备开始正常工作后就开始周期性的喷胶这样从折叠机构出来的所有滤纸都是粘合在一起的操作工人再根据需要量出预定长度的一段滤纸进行切割这个过程是很麻烦的而且切割处由于滤纸粘在一块很不好分割他们希望能够在到达预定的长度后停止喷胶一段时间这样可以直接在没有喷胶的地方进行分割省去了测量长度的麻烦分割也容易5) 增加联网功能在改进过程中我们提出希望加上联网功能这样能够进行远程故障诊断和软件升级等功能也能够和工厂其他设备共享资源例如打印机考虑以上要求如果仅在原控制系统上进行改进我们发现是很难实现的具体分析见如下说明1) 改变产品规格需要通过电位器重新设定各个电机速度可以看一下申达公司提供的在各种规格下的生产线运行速度表2-1 不同产品规格下的生产线速度折叠高度H(mm)电机1转速(r/m)电机2转速(r/m)电机3转速(r/m)25.412201240280401085111215670.7待测待测待测从表中可以看出如果改变产品规格电机速度改变较大而原系统的电位器是用作速度微调的采用了多圈式10圈电位器为了提高灵敏度转动电位器电机转速改变很小调节范围在200r/m左右范围太小而且调节起来很不方便2) 难以添加速度显示功能如果外接专用的显示设备代价较高3) 很难进行产量监控可以考虑的办法是加上一台工控机进行监控显示产量记录数据并存档如果使用工控机还可以解决速度显示问题联网9问题4) 加强喷胶控制的结果是PLC程序复杂并且需要经常重新下载我们可以在PLC程序中设置经过一定数量折叠数N的滤纸后停止喷胶几个折叠周期就可以满足厂家的要求但是这样一来如果产品规格改变导致滤芯长度变化结果是必须改变设定的折叠数N这样就必须改变PLC程序更严重的是在生产中发现由于不同批次的原料滤纸差异或者是生产线运行速度的细小差异可能造成需要随时调整N的数值这样一来随时可能需要停止设备运行来重新装载PLC程序这是无法忍受的2.4 控制系统改进设计思路我们可以看到原控制系统具有封闭式的结构柔性差不能适应多种规格产品也很难满足厂商的改进要求所以必须考虑设计一种全新结构的控制系统经过考虑我们准备不再使用PLC改用一台工控机选择Windows操作系统为平台开发空气滤芯生产线控制系统在Windows下开发控制系统具有以下优点丰富的开发工具大量成熟的商业开发软件便于进行开发节约时间和成本友好的用户界面由于Windows系列产品占据了大部分市场用户非常熟悉其操作良好的开放性和适应性Windows系统具有良好的硬件兼容性方便了控制系统进行扩展和移植如果改用IPC+Windows来设计控制系统上面的大部分改进设计要求很容易得到满足见下表表2-2 改进设计内容和相应措施改进内容对应措施改变产品规格通过DA输出设置伺服电机输入电压从而设定不同规格的速度并进行速度的调节速度显示通过IPC的屏幕显示使用AD端口来获得速度信息并实时显示产量监控计算总的折叠数得到当天的产量信息在IPC屏幕上显示出来一天工作结束后把当天的生产情况记录为日志文件存档联网功能加网卡或Modem10但是在Windows下面进行控制系统开发会遇到一个很大的困难那就是实时性问题无法得到保障而从下面的分析我们可以知道空气滤芯生产线的控制系统正是一个具有实时性要求的控制系统这就要求我们的设计方案必须首先解决这个问题生产线运行速度不是恒定的为了准确控制喷胶时间必须实时获取一个折叠长度滤纸的通过时间利用这个时间来确定喷胶头开关动作的时刻在公式2-1中我们设定t1 = t3 = T/6t2 = 2T/3 2-2本生产线的设计最高速度约为7000mm/min若折叠高度为25.4mm则在最高运行速度下大约每秒钟折叠数为4.6可见喷胶频率约等于4.6赫兹一个折叠周期大约为218ms这时t1 = 218/6=36ms因此喷胶的时间控制需要精确到毫秒级在喷胶过程中必须保证喷头严格按照规定的时间执行任务否则就会影响到产品质量可见喷胶控制是一个有严格实时性要求的任务2.5 本章小结本章介绍了空气滤芯生产的行业背景和现有的滤芯生产线控制系统的特点通过分析得出结论现有的控制系统不能满足新的控制要求为此提出使用IPC+WINDOWS为平台来设计控制系统但是必须首先解决控制实时性问题在下一章中将详细讨论这个问题并给出我们的解决办法11第三章实时性问题的解决方法3.1问题提出通过上一章的分析我们得出结论空气滤芯生产线控制系统具有实时性要求所谓实时对于计算机控制系统而言意味着不但要求逻辑结果正确而且有时间要求即这个结果必须产生在截止期限之前1因此开发空气滤芯生产线控制系统要求所用的操作系统是一个实时操作系统非常遗憾WINDOWS不是一个实时操作系统它的设计目标是作为一个通用的操作系统它针对平均性能进行优化而不是对最坏情况进行优化而对于一个实时系统来说后者是必须的如果单纯从实时性的角度出发可以考虑采用专用处理器专用的操作系统专用的硬件但是这样无疑会大大提高成本和开发的难度而且再想进行改动和升级困难因此我们的研究重点是如何在通用的硬件平台IPC和通用的操作系统WINDOWS的环境下实现空气滤芯生产线的实时控制下面我们将分析WINDOWS的实时性能是否能够满足空气滤芯生产线的控制要求3.2 WINDOWS实时性不能满足生产线控制要求在分析WINDOWS的实时性之前首先让我们对WINDOWS的体系结构作一个简单的分析WINDOWS系列产品目前在操作系统市场上占据了主导地位其中用得最多的是WINDOWS 98和WINDOWS2000WINDOWS 2000是基于NT内核技术构造的相对于WINDOWS 98来说稳定性还有实时性都要好所以我们使用WINDOWS 2000来开发空气滤芯生产线控制系统下面的讨论都是基于WINDOWS 2000操作系统3.2.1 WINDOWS2000的体系结构和特点WINDOWS2000融合了分层操作系统和微内核操作系统的设计思想使用面向对象的分析与设计采用整体式的实现WINDOWS2000是一个很复杂的系统为了找到解决问题的办法下面简要介绍它的体系结构并对它与我们的生产线控制系统设计相关的一些特点加以描述3.2.1.1 WINDOWS2000的体系结构WINDOWS2000操作系统的体系结构可以图3-1来表示可以看到它是12分层式的有多个独立的模块我们称之为组件图3-1 WINDOWS2000操作系统的体系结构下层是系统的内核工作在核心模式它使得执行体和设备驱动程序同硬件无关通过提供一组在多个体系结构上可移植同语义的接口来实现核心态组件主要包括以下几个部分系统核心kernel执行体硬件抽象层HAL设备驱动程序Device Drivers窗口和图形系统等NTDLL主要用于子系统动态链接库的特殊系统支持库上面是工作在用户模式的可执行层用户态组件主要包括系统支持进程system support process服务进程service process环境子系统environmentsubsystems应用程序user applications 子系统动态链接库等与实时控制系统设计相关的特点从图3-1中可以看出WINDOWS2000是一个很复杂的系统下面把它与我们的生产线控制系统设计相关的一些特点加以描述n 抢先式多任务系统系统支持进程服务进程应用程序环境子系统服务管理器本地安全验证服务登陆会话管理器任务管理器浏览器用户级应用程序子系统动态链接库系统级线程用户态核心态系统级服务调度进程核心态可调用接口图形驱动程序设备管理器设备、文件系统驱动程序局部过程调用注册表配置管理器进程和线程虚拟存储器电源管理器即插即用设备管理器对象管理器文件系统缓存管理器系统核心硬件抽象层()硬件接口安全指向监视器13WINDOWS2000设计为一个通用的操作系统它同时允许多个任务同时运行通过线程调度来为不同的任务分配CPU时间线程是基本的运行和调度单位采用严格的抢先式动态优先级调度系统依据优先级和分配时间配额来进行调度每个优先级的就绪线程排成一个先进先出队列当一个线程状态变成就绪时它可能立即运行或排到相应优先级队列的尾部系统总运行优先级最高的就绪线程当一个高优先级线程进入就绪状态时正在处于运行状态的低优先级线程被抢先n 中断响应WINDOWS2000操作系统要求处理器支持两个模式用户态和核心态参考上面图3-1应用程序运行在用户态时权限受到限制可以保护操作系统内核不受破坏操作系统内核可以做任何事情可以访问任何的内存中断和异常是WINDOWS操作系统停止处理器正在做的事情并要求做其他事情的办法当异常或中断发生时硬件或软件可以检测到处理器会从用户态切换到核心态并将控制转交给内核的陷阱处理程序该模块检测异常和中断的类型并把控制交给处理相应情况的代码中断是异步事件可能随时发生与处理器正在执行的内容无关中断主要由I/O设备处理器时钟或定时器产生可以被启用或禁用中断的类型包括系统中断设备中断和软件中断异常是同步事件它是某一特定指令执行的结果在相同条件下异常可以重现内核负责处理中断当中断产生时内核的陷阱处理程序将保存机器状态确定中断源将控制权转交给设备驱动程序的中断服务程序ISR或交给内核代码处理为了优化中断响应性能WINDOWS系统采用了一种被称为延迟过程调用(DPC)的机制一般来说在硬件中断中只处理最紧迫的任务如果有额外的工作需要做(例如完成一个IRP)内核或设备驱动程序会请求软件中断登记一个DPC对象并清除中断然后返回过一段时间DPC例程被调用时设备完成对中断的处理3.2.2 WINDOWS2000在实时性上的局限性WINDOWS2000的体系结构决定了它不是一个实时系统利用WINDOWS2000来开发空气滤芯生产线控制系统会遇到以下的困难定时器精度空气滤芯生产线运行速度不是恒定的为了准确控制喷胶时间必须实时获取一个折叠长度滤纸的通过时间来确定喷胶头开关动作的时刻经过分析这14个时间需要精确到毫秒级对于计算机控制系统喷胶控制任务可以这样来完成系统设置一个定时长度为Ts的定时器每隔Ts检测传感器的输入端口如果检测到有脉冲输入记录当前的时刻T1下一次检测到传感器端口有脉冲输入记录当前时刻T2一个叠纸周期时间即为T = T2 T1 代入到公式2-2中求出t1 和 t2 下一个折叠周期开始后设置一个定时器Timer1定时长度为t1到达定时时间后触发一个回调函数来处理喷头动作控制打开电磁阀进行喷胶同时设置一个定时器Timer2定时长度为t2到达定时时间后触发一个回调函数来关闭喷头电磁阀停止喷胶在执行上述任务的同时获得本次叠纸周期的时间T作为新的t1 和 t2 的计算依据方法同上空气滤芯生产线运行时喷胶控制是一个周期性执行的实时任务它的处理是通过高精度的定时器周期性的触发的因此需要系统提供一个高精度的定时器根据上一章的分析t1大约为36毫秒那么比较理想的情况下Ts应该选择定时长度为5ms以下的定时器WINDOWS 2000系统提供两种方式获取定时时钟一种是WM_TIMER时钟一种是多媒体定时器PC机系统定时器每隔0.84us计数一次WINDOWS2000系统初始化时设定每隔11949次计数相当于每隔10.0144ms产生1次时钟中断在WINDOWS98中这一数值为55ms将应用程序所创建的每个定时器对象中时间计数减1当它被减为0时时间计数又被回置为原先所设定的值同时定时器对象将定时器消息WM_TIMER放入应用程序的消息队列中所以对于应用程序设置的小于10ms的时间周期WINDOWS2000都是每隔10ms才能收到1次中断应用程序调用函数SetTimer创建定时器对象在函数SetTimer中指定的计时周期时间值以ms为单位这个数值被该函数换算为需要时钟中断的次数在这种换算中一定会产生舍入误差因为中断次数只能为整数例如如果定时周期t1设定为36毫秒那么调用SetTimer 函数得到的定时周期实际上是40ms而且定时器消息WM_TIMER的处理具有不确定性以及被合并的可能性对应用程序而言时钟中断事实上是不可感知的应用程序只处理WM_TIMER消息然而尽管时钟中断是实时发生的但WM_TIMER消息并不是在计数值减为零时就立即被发送到应用程序中而是首先存在于应用程序的消息队列中并与其他消息一起排队应用程序只有通过消息循环主动地检索到该消息才有机会处理该消息因此WM_TIMER消息什么时间才能被处理就带有很15大的不确定性同时WM_TIMER又是低优先级消息它在应用程序队列中的其他消息处理完之后才被处理此外WINDOWS在应用程序的消息队列中只为1个定时器保存1条WM_TIMER消息若该定时器在应用程序的消息队列中已存在1条WM_TIMER消息而WINDOWS又要向其中放置另1条WINDOWS将它们合并为1条WM_TIMER消息因此应用程序不可能得到全部的WM_TIMER消息而且也不能确定由于这种处理而丢失的WM_TIMER消息的数目从上面的分析可以得出结论WM_TIMER时钟是无法满足空气滤芯生产线的需要的现在只能希望多媒体定时器可以满足要求多媒体定时器是Microsoft公司提供的底层API支持它在多媒体扩展库mmsystem.dll中提供了高精度定时服务多媒体定时器在Windows API中主要是用timeGetDevCapstimeBeginPeriodtimeSetEvent等几个函数来实现高精度定时可以设置的最小定时间隔是1ms多媒体定时器是一种基于软件中断的方法它的精度受到WINDOWS系统中断处理方法的影响在基于WINDOWS的弱实时控制系统中使用多媒体定时器是一种很常用的方法文献2详细介绍了一种使用多媒体定时器在WINDOWS系统下进行实时控制的方法也指出了这种方法的缺陷要求定时间隔最好不要低于10ms否则会急剧增加对系统资源的消耗还要求处理器不要同时处理其他的任务否则定时器精度下降为了确定多媒体定时器是否适合使用在空气滤芯生产线上我们对其特性作了一些测试方法是用QueryPerformanceFrequency函数获得系统的CPU时钟频率在多媒体定时器的回调函数中调用QueryPerformanceCounter函数获得当前的高精度计数器数值前后两次的这个计数器数值之差除以CPU时钟频率就是一个多媒体定时器的定时周期我们在定时周期为20ms 1ms之间对多媒体定时器的性能进行了测试每一个定时周期在无系统负载和启动磁盘I/O负载下各测10组数据每组1000个数据无系统负载是指仅运行我们的测试程序启动I/O负载是指在线收看视频点播在测试程序中记录每组数据的最大值最小值平均值并统计测得数值的分布规律测试平台CPU赛扬900M内存128MWIN2000操作系统得到的结果如表3-1所示从表中可以看出定时周期越小精度越低启动I/O操作比系统空载时的精度要低可以看出定时间隔越小或者启动I/O操作测得的数据在平均值附16近的波动越明显根据我们的实验结果在10ms以上的定时任务中使用多媒体定时器可以获得比较理想的结果定时间隔在5ms以下误差非常大空气滤芯生产线的喷胶控制所需要的定时器精度要为5ms以下而且执行控制任务的IPC还要同时进行电机速度控制生产线监控等涉及大量的I/O操作所以使用多媒体定时器不是很合适表3-1 多媒体定时器性能测试结果单位ms定时周期最大值最小值平均值10%(百分比)20%(百分比)50%(百分比)其它(百分比)系统载荷2028.39318.03720.14698.71.1670.1330无2028.28717.91220.15997.50.520启动I/O1018.4517.63510.06297111无1018.1495.69710.08287.54.571启动I/O816.4813.8278.061962.750.251无818.0646.0388.0419261.50.5启动I/O613.5760.0196.04797.251.750.250.75无614.0552.9316.04486.57.54.51.5启动I/O512.4590.7815.02496.82.20.60.4无514.8252.4185.05684.333113.6671启动I/O411.6030.7754.02396.51.251.50.75无412.7870.0544.03082.667104.3333启动I/O311.1850.0093.01797.6250.51.1250.75无316.3060.0523.04287.755.54.52.25启动I/O210.1800.0092.00497.30.90.81无216.3440.0092.02091.752.52.753启动I/O19.5640.0090.99393.93.90.31.9无111.3410.0091.00869.213.310.57启动I/O线程调度以及中断响应中断调度程序根据中断请求级IRQL确定中断服务程序的优先级高中断请求级的代码可以中断低中断请求级的代码与线程优先级不同中断请求级是中断源的属性所有基于线程优先级的核心态和用户态线程都在最低的中断请求级上运行如图3-2所示WINDOWS2000内核支持32个中断请求级31级为最高0级为最低17图3-2 中断请求级IRQL线程调度程序就是以DPC的方式运行在DISPATCH_LEVEL中断请求级上的运行于高中断请求级的代码会造成低中断请求级的代码或线程切换的延迟这些高中断请求级的代码主要分布在操作系统核心和设备驱动程序中另外系统高速缓存以及分页内存的命中率也会影响到响应性能文献3对WINDOWSNT的内核的实时性能做了重要的数据测定由于WINDOWS2000的内核是基于NT内核的因此性能相似现将有关的实验结果引用如下表3-2 不同中断请求级的代码执行的最大延迟时间从表中可以看出高中断请求级的代码例如硬件中断会给用户程序的运行造成很大的延迟这是因为应用程序的线程运行在最低IRQL上的也就是PASSIVE_LEVEL任何高于它的IRQL的代码都会抢占给当前线程的运行另一方面当前所有运行在PASSIVE_LEVEL上的线程也会根据其不同的线程硬件中断高优先级电源故障处理器内部中断时钟中断软件中断设备设备低优先级正常线程执行配置文件18优先级共享CPU时间WINDOWS 2000专业版中CPU给线程的时间配额为6每次时钟中断时钟中断服务例程从线程的时间配额中减少一个固定值3一个线程的缺省运行时间为2个时钟中断间隔前面说过系统的时钟中断间隔为10毫秒因此一个线程的缺省运行时间为20ms在这种情况下要想实现空气滤芯生产线的喷胶实时控制是不可能的因为一方面高中断请求级的代码会给我们的用户程序执行造成很大的延迟另一方面由于多线程的抢先运行可能喷胶控制代码所在的线程会被其它线程抢先运行在几十个毫秒甚至更长时间内得不到CPU时间毫无疑问出现上述情况会造成喷胶过程的失控而且是无法避免上述情况发生的也就是说控制系统的实时性无法满足3.3 实时性问题的解决办法现在解决在WINDOWS平台下的控制系统实时性问题成为设计滤芯生产线的首要问题在WINDOWS操作系统下解决实时性问题的一个办法是使用实时扩展市场上有一些实时扩展软件Radisys公司的 INTimeVenturCom公司的RTXImagination Systems公司的 Hyperkernel等等4不过这些软件价格昂贵我们希望找到一种经济实用的方法来解决喷胶控制的实时性问题从表3-2中我们可以得到启发既然高中断请求级的代码会给用户程序执行造成很大的延迟那么如果我们的喷胶控制程序运行在较高的IRQL上就只会有较小的延迟也不会受到系统线程调度的影响只有内核程序才能运行在提升的IRQL上进入WINDOWS2000内核模式的一种方法是利用内核驱动程序使用内核驱动程序的另一个好处是它支持硬件处理可以处理硬件中断利用中断来获得高精度的定时时钟在中断处理例程ISR中加入实时任务处理ISR具有较高的IRQL设备中断请求级执行延迟时间小也不会受到系统线程调度的影响ISR被周期性地调度保证了ISR中处理的任务的实时性我们通常所用的中断请求IRQ1IRQ15,对应的IRQL是2612因此我们考虑利用WINDOWS2000内核驱动程序来进行喷胶实时控制具体办法是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 等离子体辅助打印-洞察及研究
- 手指画菠萝课件
- 手指挤压砸伤安全培训课件
- 化肥厂成品保质期管理细则
- 江西省赣州市信丰县第四中学2024-2025学年八年级下学期3月月考生物试题(含答案)
- 第26章 反比例函数 单元测试(含答案)人教版数学九年级下册
- 2024-2025学年浙江省杭州市多校联考人教版三年级上册期中测试数学试卷(无答案)
- 脱水信号感知-洞察及研究
- 学生日常安全培训课件
- 学生心理安全健康培训课件
- 科技研发公司保密管理制度
- 激素与子宫内膜容受性-洞察及研究
- 医院科教相关管理制度
- 无锡信捷校招笔试题目及答案
- 2024第41届全国中学生物理竞赛预赛试题(含答案)
- 《慢性硬膜下血肿》课件
- PRP治疗注意事项
- 2025年泰和县工投建设集团有限公司及子公司招聘笔试参考题库含答案解析
- 企业事业部制信息化与数字化转型
- (新版)中国心理卫生协会心理咨询师考试复习题库(浓缩400题)
- 南昌大学 2018-2019学年第二学期期中考试大学英语试卷
评论
0/150
提交评论