基于USB接口的数据采集系统的WDM驱动程序设计.doc

上传人:99****p 文档编号:1944543 上传时间:2019-03-24 格式:DOC 页数:4 大小:24KB
下载 相关 举报
基于USB接口的数据采集系统的WDM驱动程序设计.doc_第1页
第1页 / 共4页
基于USB接口的数据采集系统的WDM驱动程序设计.doc_第2页
第2页 / 共4页
基于USB接口的数据采集系统的WDM驱动程序设计.doc_第3页
第3页 / 共4页
基于USB接口的数据采集系统的WDM驱动程序设计.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、基于 USB 接口的数据采集系统的 WDM 驱动程序设计USB 发展现状与特点 USB(Universal Serial Bus)通用串行总线。1995 年 11月由Compaq、Digital、IBM、Intel、微软、NEC 以及北方电讯(加拿大)等7家主要电脑、电子科技厂商共同开发了 USB0.9标准。这是一种 PC的外挂总线,诸家公司联合提出这一新型总线,是为了解决 PC机外围设备的拥挤和提高设备的传输速度。但是,由于 USB的复杂性,各公司不能及时提供必要的硬件和软件支持,这种新型的 PC总线直到 Windows98推出以后,才得到迅猛发展。它的市场价值才真正显现出来,人们才真正领略

2、到它的方便与快捷。USB 具有许多其他总线无法比拟的优点。这里主要就 USB1.1技术做一些研究和应用。 WDM 驱动模型 WDM 即 Win32驱动程序模型,是微软公司在 VxDs之后推出的新驱动模型,运行平台是 Windows98/2000/XP操作系统。WDM 中驱动程序的识别是通过一个 128位的 GUID实现的。USB 总线驱动程序由操作系统Windows XP提供,负责与实际 USB总线通信。因此,USB 驱动程序的开发实际上是 USB设备驱动程序的设计。 WDM 驱动程序有一个主要的初始化入口点,即一个必须称为DriverEntry的例程。它有一个标准的函数原型。当 WDM驱动程

3、序被装入时,内核调用 DriverEntry例程。系统提供的默认驱动程序的入口处为DriverEntry,负责驱动程序的初始化,用以初始化驱动程序范围的数据结构和资源。 在 AddDevice例程中,驱动程序创建一个设备对象作为目标 I/O设备,并将设备对象附着到设备堆栈中,设备堆栈为每一个相关设备驱动程序包含一个设备对象。在设备被第一次枚举时,系统初始化时调用AddDevice例程。DriverObject 参数指向一个驱动程序对象,就是在DriverEntry例程中初始化的驱动程序对象。PDO 参数对应于设备堆栈底部的物理设备对象(PDO) 。对于设备驱动程序,其 AddDevice函数的

4、基本职责是创建一个设备对象并把它连接到以 PDO为底的设备堆栈中,相关步骤如下:通过调用 IoCreateDevice例程创建设备对象之后建立一个私有的设备扩展对象;为了使应用程序能识别设备,需要对 USB一个或多个设备接口寄存,以便应用程序能知道设备的存在。另外,给出设备名以便创建符号连接。初始化设备扩展对象和设备对象中的 Flag成员;通过 IoAttachDeviceToDeviceStack函数把新设备对象放到堆栈上。 即插即用(PnP)是计算机硬件和软件支持的组合,包括硬件设备、系统软件和驱动程序的支持。其功能为:对已安装的硬件进行自动动态识别;硬件资源分配;加载驱动程序;PnP 使

5、驱动程序和用户模式的代码登记,并通知一定的硬件事件。 电源管理是在系统范围内用集成的方法来使用和保存电源,包括电源管理的软硬件支持,提供以下功能:实现最小的启动和关机延迟。系统能在低电力状态时休眠,在这种状态下要恢复操作完全无须重新引导系统。从用户的角度来看,可以简单的唤醒休眠中的计算机;提高了电源效率和电池生命期。仅仅当设备传输功能给用户时电源才启用于设备,如果一个设备未使用,按照命令,电源可被断开,而后再加电;使操作更加安静。 驱动程序开发 采用 DriverStudio开发 USB驱动程序,必须严格遵循安装顺序:首先安装 Visual C+6.0,然后安装 WinXP DDK,最后安装

6、DriverStudio。安装之后,Visual C+编程工具栏中自动添加了一个菜单DriverStudio。由于 DriverWorks所用的类库是在 DDK库函数基础上生成的,所以必须在 Visual C+中打开 DriverWorkssource 目录下的VdwLibs.dsw,选择 Batch Build菜单,通过 Rebuild All来创建自己的库文件。 在使用 DriverWorks开发工具之前,首先要设置一下 DDK的路径,SetDDkGo用以创建编译驱动程序的环境,它执行一系列的操作:运行SETENV BAT;设置 DriverWorks环境变量;设置开始程序的环境属性。缺设

7、置情况下,自动调用 C+编译器编译所生成的工程文件。 对于创建驱动框架,则按照如下步骤:启动 DriverWizard,填写工程名和选择路径;由于 Windows XP系统下使用的是 WDM驱动模型,故选择驱动类型 WDM Driver;本设计开发的是设备驱动,选择 WDM Function Driver;选择 WDM的总线类型 USB,USB 设备使用的是 Philips公司的PDIUSBD12芯片,产品的 ID号 Product ID为 0666;选择端点及参数设置。这里增加端点 1的中断输入,最大传输字节为 16;选择所生成的驱动程序文件中的类名和驱动程序文件名,通常取默认值。 程序程序

8、的开发将按照下列步骤进行: USB设备驱动程序必须是WDM类型的驱动程序,在 KDriver的继承类中,必须有成员函数AddDevice() ,在 function.h文件中,必须定义;.USB 设备通常为即插即用型,从 KPnpDevice中继承的类中必须包含变量名为KusbInterface,对于每个 USB口的接点,必须有一个 KusbPipe类型的变量;在设备的构件中,必须首先初始化 KusbLowerDevice,然后初始化KusbPipe;驱动的读功能主要 DeviceIoControl的控制命令实现。应用程序调用的 DeviceIoControl函数对应于驱动程序中的DeviceControl,DeviceControl 通过 INTERRUPT_IN _Handler(KIrp I)读取数据并返回。当驱动正确安装后,经验证应用程序可对外部数据进行采集。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。