WindowsXP环境下测控系统非标准设备驱动程序的开发.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:4 大小:266KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

WindowsXP环境下测控系统非标准设备驱动程序的开发.pdf

WindowsXP环境下测控系统非标准设备驱动程序的开发.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

万方数据设备驱动程序的开发Windows环境下测控系统非标准XP(1.华中科技大学水电学院,湖北武汉430074;2.空军第一航空学院,河南信阳464000)1驱动程序的主要开发方法WindowsXP系统的自我保护机制Manufacturing赵学军1,徐峰2f测控应用程序lEquipment摘要:在分析WindowsXP操作系统内核模式的基础上,对在这种操作系统下开发设备驱动程序的具体方法,尤其是非标准设备驱动程序的开发方法进行了讨论。关键词:测控系统WidowsXP操作系统;设备驱动程序中圈分类号:TP39文献标识码:A文章编号:1672—545X(2006)03--0060—03测控系统一般由硬、软两部分组成,其中的软件部分根据功能又可分为两大类,一类面向最终操作者,在层次上属于测控应用程序,它不和实际的系统硬件打交道。另一类软件则是针对系统硬件操作而编写的,一般被称为设备驱动程序。设备驱动程序的特点是不需要任何操作界面与操作者进行交流,它的位置在测控应用程序和系统硬件设备之间,作用是把测控应用程序传达的用户操作指令转换为硬件操作指令并传递给系统硬件,同时也能根据操作者的需要从系统硬件中获取必要数据,然后再把这些数据上传给测控应用程序以供操作者进行分析和处理。简单的说,这类软件就是测控应用程序和系统硬件之间沟通的桥梁。(对于三者之间的简单关系,这里可参见图1所示)用户操作指令●十供应必要的硬件数据设备驱动程序硬件操作指令+十发送硬件缓存区内容系统硬件图1测控应用程序、设备驱动程序以及硬件设备的关系相应于测控软件概念上的分类,目前测控软件的开发过程也常常采用应用程序和设备驱动程序分别进行的形式。由于现在大部分测控软件基本是在PC机上完成的,而某些XP操作系统内部又对直接硬件操作有所限制,让一般的最终用户编写技术性较强的设备驱动程序会存在一定困难。对于侧重于机电测控系统开发的单位来说,研究运行于WindowsOS之上的分离式测控软件的缩写方法已成为一项刻不容缓的工作,而开发其中的Windows设备驱动程序部分更成为此项工作的重点。目前,开发WindowsXP设备驱动程序主要有三种方法(以WINXP平台为例)。第一种:遵照Microsoft公司的WindowsXPDDK所述,同时借助于MASM6.01或更高版本的宏汇编工具,开发者可以编写出WindowsXP标准设备驱动程序,这种程序形式一般为★.VXD。第二种:利用近来国际软件市场上出现的WindowsXP设备驱动程序开发工具,比如VtoolsD、VxdWriter等。最终的开发结果绝大多数也是★.VXD形式的标准设备驱动程第三种:使用大众化的编程工具,如Borlandc/c++、c/c++等,然后紧贴设备自身特点,同时排除要深入了解WindowsXP内部运行机制方面的干扰,开发者可以编出非标准设备驱动程序,这种程序不同于Microsoft定义的标准驱动程序,它一般多以★.DLL的形式出现。本文针对第三种实现WindowsXP设备驱动程序的开发进行讨论。2WindowsXP的设备驱动研究课题也是由操作系统的自我保护机制引发的,只不过在WindowsXP中这种机制不如WindowsNT下那么严格,所以也就给开发者提供了不借于DDK同样完成驱动程序开发的可能性。简单的讲,WindowsXP系统的自我保护机制包括以下内容:第一,用户数据的保护。这种保护功能主要是处理同时运行的多个应用程序共访一块数据时出现的矛盾;第二,物理设备禁止非法访问的保护。这种保护的意义则类似于NT下的硬件检查保护机制。作者简介t赵学军(1964一),男,河南洛阳人.华中科技大学在学工程硕士,研究方向t飞机液压传动与控制、计算机辅助测试及其教学。TechnologyNo.3,2006收稿日期12006一06—3060Visual万方数据windowsXP环境下非标准设备驱动程序的开发《装备制造技术》2006年第3期内存保护2.2操作系统保护2.3设备保护3.1设备I/O端口读写的实现3.2硬件中断响应问题的解决根据以上的保护内容,WindowsXP的自我保护机制又可分为以下几个小部分:无论何时,只要应用程序试图访问某个不在其当前内存映象中内存位置时,CPU就会产生一个异常,并告之WindowsXP关于此异常的全部信息。大多数情况下,这种内存引用是非法的,但有时当WindowsXP为该应用程序内存映象加入合适内存页时,情况却转为合法操作。对于以前版本的Windows应用程序来说,有些时候操作系统可能愿意为它分配更多的内存,只不过这时会常常出现系统可用内存已经用完的情况,在WindowsXP中,由于操作系统大大扩展了可用内存资源数量,从而降低了这类矛盾出现的几率。同WindowsNT一样,为了避免用户