基于Windows+WDM的USB设备驱动程序开发与应用

所需积分/C币:33 2016-02-26 09:22:39 1.86MB PDF

基于Windows+WDM的USB设备驱动程序开发与应用,讲述USB驱动开发的全过程。
The Development and Application of usB Device Drivers Based on Windows WDm Wang Gengen, Li Dingzhu Abstract Windows driver model, WDM is an entirely new model of device drivers, it can be run on the operation system such as windows 98/2000/XP. Wdm takes the modular, l a yered driver structure. As a part of windows Driver Model, USB device drivers is departed to two layered, one is uSB Bus device driver and the other is USB Function device driver. The USB Bus device driver takes charge of control and communicates with hardware. USB Function device driver is designed by client, it lies the up layer of USB Bus device driver, it sends and receives information from usB device by send urB to USB Bus device driver Based researches and analyzes of system architecture of windows driver module layered architecture and work method of USB device drivers, and according the function demands of electronic conference name display card, the thesis detailed describes the design process of electronic conference name display card device driver, and mostly introduces some important routine such as"Driver Entry"routine, add device routine, plug and play process routine, read or write routine. And application programs how to access device And introduces compile, install and debug process of usb driver devices At first, the thesis introduces the history of device drives development and types of Windows device drivers, and introduces the feature of windows Driver Model. Chapter 2 discusses the layered architecture model of WDM and load flow of device drivers and some important data structure. Chapter 3 analyzes data access method and interrupts process of WDM. Chapter 4 introduces the USB device drivers layered architecture Chapter 5 detailed describes the development of electronic conference name display card USB device drivers and how access USB device through device drivers. Chapter 6 describes the compile and debug and install process of a USB driver devices. Last chapter gives a conciusion Key words: Windows, Drivers, WDM, Routine, USB 原创性声明 本人郑重声明:所呈交的学位论文,是本人在指导教师的指导 下,独立进行研究所取得的成果。除文中已经注明引用的内容外, 本论文不包含其他个人或集体已经发表或撰写过的科研成果。对本 文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。 本声明的法律责任由本人承担 论文作者签名:权 日期:291.上、2 关于学位论文使用权的说明 本人完全了解中北大学有关保管、使用学位论文的规定,其中 包括:①学校有权保管、并向有关部门送交学位论文的原件与复印 件;②学校可以采用影印、缩印或其它复制手段复制并保存学位论 文;③学校可允许学位论文被查阅或借阅;④学校可以学术交流为 目的,复制赠送和交换学位论文;⑤学校可以公布学位论文的全部 或部分内容(保密学位论文在解密后遵守此规定)。 签名: 子权捉 日期:075、2 导师签名: 日期:8/-丁-2 中北大学学位论文 1绪论 设备驱动程序是提供连接到计算机的硬件的软件接口,它是操作系统的一个信任部 分,用户应用程序以一种规范的方式访问硬件,而不必考虑如何控制硬件。驱动程 序作为一个软件,在装入后成为操作系统内核的一部分。它使一个或多个设备可用于用 户态程序,每个设备代表一个物理的或逻辑的硬件。在 Windows中,驱动程序总是使 设备看起来像是一个文件,可以打开设备的一个句柄,然后应用程序可以在设备句柄最 后关闭之前向驱动程序发出读写请求。 一个完整的 Windows驱动程序要完成以下工作:初始化;创建和删除设备;处理 Win32打开和关闭文件句柄的请求;处理Win32输入/输出请求;串行化对设备的访问 访问硬件;调用其他驱动程序:取消I/0请求;超时I0请求;处理一个可热拔插的设 备被加入或删除的情况;处理电源管理请求;使用 Windows Management Instrumentation( windows管理诊断,WMI)和N事件向系统管理员报告。 1.1驱动程序设计的意义和任务 从80386开始, Intel C門U提供了三种CPU工作模式:实模式、保护模式和虚拟86 模式 [】[6】[7] 实模式也称为实地址模式,在这种模式下工作的程序使用的逻辑地址就是实际物理 地址。在实模式下内存管理采用分段技术。这种技术将MB的物理空间分段,每个段最 大64KB,段地址的基地址存储在段寄存器中。实际物理地址就是段寄存器中的数值左移 4位,再加上偏移量形成20位的物理空间地址,从而实现 IMBytes地址空间的访问 早期的CPU只支持这样的构架,使得应用于其上的操作系统和应用软件均拥有对系统所 有资源的访问与控制权限,从这个角度讲当时的应用程序,可以并且也必须自己完成对 资源的操作与维护,设备驱动程序这个概念在当时并不明确 保护模式的出现,为实现多任务宏观并行工作提供了有力支持。该模式中实现了内 存分段,分页管理,并且CPU硬件支持对多个任务的工作环境的隔离,以保证给每个任 务提供一个隔离的工作环境.该模式为运行其上的软件提供了Ring0~Rin83共4种 中北大学学位论文 特权级别,每种级别上的软件拥有的能力和权力不同。操作系统软件一般运行在特 权级别最高的Ring0层次上,拥有整个系统的软硬件资源的访问控制权;应用程序运行 在特权级别最低的Ring3层上,系统的硬件、中断和操所系统的核心软件资源的访问控 制权均被屏蔽。采用保护模式明显提高了整个系统的可靠性和健壮性,但是造成了应用 程序无法直接访问硬件。同时,由于系统硬件设备的制造厂商和功能特性的不同,操作 系统也不可能提供对于所有设备的直接访问接口。这样就引出了设备驱动程序的概念: 设备驱动程序提供链接到计算机的硬件的软件接口,它是操作系统的一个信任部分。应 用程序以一种规范的方式访问硬件,而不必考虑如何控制硬件。 设备驱动程序将外部设备的不同特性和高层软件分割开,隐藏了硬件设备功能的内 部实现细节,并对操作系统透明。设备驱动程序只实现对硬件具体控制,发挥硬件的所 有功能,应用程序只决定如何使用设备的各种功能。这样,具体的应用程序崩溃与否将 不会影响到整个系统的正常工作。但是,如前所述,设备驱动程序是操作系统可信任的 部分,它拥有Ring0层的权限,所以设备驱动程序的实现必须是安全可靠的。 1.2 windows设备驱动程序发展的历史 微软己经发布了很多版本的 Windows操作系统,从开始的 Windows3.0到 Windows2000和 Windows x,以及到最近发布的全新操作系统vsta。一些底层的技术 一直在各个 Windows平台下共享,而其它的一些技术随版本的不同有了很大的变化。由 于设备驱动程序是与操作系统最低层的功能发生交互,因此,如果要实现跨平台的兼容, 首先必须在不同平台的底层结构上做到兼容。 Window3.0的基本结构一直延续到 Windows9X家族,虽然后来的操作系统在驱动程 序的开发和管理上有了非常大的改变,但底层的基本结构没有变化。在 Windows3.x、 Windows95和 Windows98下使用的是虚拟设备驱动( Virtual Device driver),也称为 VxD,虚拟设备驱动程序,原来的设计目标是为了支持在 Windows平台下的设备,它 作为动态连接库(DL)链接到操作系统里,工作在保护模式下(Ring0)。WxD解决了那 些常规应用程序不能完成的工作,比如直接硬件的读写,也可以说,使用WxD是扩展操 作系统内核的一种方法。VxD最初的编写采用的是 Intel汇编语言,后来随着 VtoolsD 的使用,使用C和C+也开始流行起来。 中北大学学位论文 Windows nt的设计体现更现代和模块化的内部体系,它的目标是更好的灵活性和更 加的健壮。NT采用了一种特有的内核模式驱动程序体系,一般也采用C语言来编写。当 NT下的驱动程序需要直接控制机器时,它会向硬件抽象层(HAL)发出请求。硬件抽象 层建立在驱动程序和实际的硬件之间,为驱动程序隐藏了硬件的不同,这样就可以编制 出跨处理器(比如 Pentium和 alpha)、源代码兼容的设备驱动程序。因为 Windows nt 可以工作在单处理器和多处理器环境中,驱动程序必须十分小心的保护关键的数据结 构。 Windows N提供了一种分层的体系结构,每一个M设备驱动程序有一个底层和 个上层接口。底层的驱动程序直接控制硬件。在底层和上层驱动程序之间的是中间层驱 动程序。 Windows n也定义了一种类驱动程序体系,并且支持某些设备类。 Windows nt 的这种驱动程序体系,在 Windows98和 Windows2000P中得到了继承和扩展,形成了 现在的wM体系 认识到跨平台兼容能力的价值后,微软开始尝试统一设备体系,给未来的驱动程序 开发提供一个简单的平台。微软的做法,不是重新开发一套新的体系,而是在更合理的 Windows nt体系的基础上,进行必要的完善,从而形成一个新的设备驱动程序体系,称 为 Windows Driver Model( Windows驱动程序模型,WM)这个名字。 Windows98最先 支持WDM,随后推出的操作系统中也都支持WM,包括 Windows2000系列, Windows me 和 Windows xp"m, 1.3 Windows驱动程序的种类1 Windows操作系统中包含很多种驱动程序,可以将这些驱动程序分为用户模式驱动 程序和内核模式驱动程序两大类。图1.1中列出了其中的一部分。 用户模式驱动程序包含了Win32多媒体驱动程序,支持M-D应用程序的虚拟设 备驱动程序( irtual Device Driver.VD和其他保护子系统的驱动程序。vD是用户 模式部件,它可以使D0S应用程序访问x86平台上的硬件,Ⅶ通过屏蔽1/权限掩码 来捕获端口访问操作,它基本上是模拟硬件操作 中北大学学位论文 用户模式 内核模式 驱动程序 驱动程序 文件系统 PP驱动 传统设备 小端口驱 驱动程序 程序 驱动程序 动程序 WDM驱 视频小端口驱 SCSⅠ小端口驱 NDs小端 动程序 动程序 动程序 口驱动程序 类驱动程序 小驱动程序 图1.1 Windows驱动程序种类圆m 内核模式驱动程序使用系统级代码编写,且运行在内核模式下,因为内核模式允许 直接访问硬件,这些驱动程序被用来直接控制硬件。内核模式驱动程序包含了许多子类 1.PnP驱动程序就是一种遵循 Windows即插即用协议的内核模式驱动程序。 2.wD驱动程序是一种PnP驱动程序,它同时还遵循电源管理协议,并能在 Windows 98和 Windows2000实现源代码级兼容。WM驱动程序还细分为类驱动程序( class driver)和迷你驱动程序〔 minidriver),类驱动程序管理属于已定义类的设备,迷你驱 动程序向类驱动程序提供厂商专有的支持。 3.小端口驱动程序( miniport driver),包括视频小端口驱动程序,SCSI小端口驱 动程序和NDS小端口驱动程序。 4.文件系统驱动程序(FSD在本地硬盘或网络上实现标准PC文件系统模型,包括多 层次目录结构和命名文件概念。 1.4WDM驱动程序筒介 编写硬件设备驱动程序一直是一种具有很强挑战性的复杂工作,即便是编写过具有 相当难度的Win32程序的开发人员,在编写设备驱动程序时也必须去应对种种不适。编 写设备驱动程序很像在执行一项艰巨的任务:没有窗口、没有消息需要处理,很难对源 代码进行调试设置,几乎所有支持库都无法调用;更加糟糕的是由于设备驱动程序属于 4 中北大学学位论文 操作系统的信任部分,于是很容易伤害系统,对此开发人员却往往缺乏一种保护手段去 防止进程和 Windows系统故障。 WDM( Windows driver mode1)是微软为开发人员提供的一种编写运行在 Windows平 台下新硬件驱动程序的有效方法,这就是 Windows驱动程序模型。WM提供了设备 类( device classes),出此形成的源代码可以运行在各类 Windows平台 WinXP/2000/Me/98 WDM是一种便携式的编程技术,它使开发人员写出的驱动程序可以跨平台运行,支 持编写微软所有支持的WM总线驱动程序,在WM中总线的概念是一种附加在其它设备 (包括物理设备、逻辑设备、虚拟设备)上的设备协议。 新版WDM中的RNDS属于新内容:如简化了对网络设备硬件的开发,减弱了网络设备 对驱动程序的依赖性,使最终用户对网络设备的设置安装更简便。WM新版中对设备的 支持主要包括:USB设备类,例如其中的HID( Human interface Device);数码相机/ 扫描仪;通过IEE394标准的视频捕捉设备;音频;控制调制解调器的 WinModem。在WDM 类代码中提供的port/ miniport驱动范文,支持第三方厂商为其特殊设备编写的“迷你 型”驱动 minidriver"m。现将W的特点总结如下: 支持即插即用(PnP)和电源管理 即插即用是指外部设备可以在系统运行时添加或者删除,操作系统可以在任何时候 分配设备需要的硬件资源。WDM驱动程序支持即插即用,因而可以动态配置设备。电源 管理是指设备对系统电源的使用情况是动态变化的。聊M驱动程序支持设备的电源管理, 使得设备对系统电源的使用情况同设备所处的工作状态相关。操作系统通过发送IRP请 求,通知外部设备进行资源配置和电源管理,这些IRP主函数的代码分别为 IRP MJ PNP 和 IRP MJ POWER。针对每个主函数代码还有详细的次函数代码,表明系统对设备进行的 详细操作和请求。WM设备驱动程序中有响应这些RP请求的分发例程。 2.支持WMI WMI是 Windows Management Instrumentation的缩写,是一种向系统管理员报告管 理信息的协议,这个协议能测量和管理消耗在本地或者是网络中客户机上的资源信息 WDM驱动程序必须支持WM,一般这种请求是通过 IRP MJ SYSTEM CONTROL请求传递给 pD0(物理设备对象)的,支持WM的驱动程序具有这样特点:可以测试应用程序性能、配 中北大学学位论文 置数据和其它信息;可以允许应用程序改变驱动程序中的设置,使得驱动程序执行特定 功能;可以通知应用程序,驱动程序检测到哪些事件或者警告信息。 3.支持类驱动程序/微驱动程序分层结构 WDM驱动程序采用分层结构,可和其它驱动程序相联系,接收建立在其他驱动程序 上的服务,也可向其它驱动程序发送IRP请求。W驱动程序模型支持类驱动程序/微驱 动程序。类驱动程序是针对一个特定类设备的驱动程序,处理针对这一类设备的IRP请 求。类设备驱动程序向上为这一类设备提供了基于RP的接口,向下对一个或者多个微 驱动程序定义了接口。而微驱动程序主要任务是为特定驱动程序提供服务 4提供系统总线驱动程序 WM环境提供了系统总线驱动程序,通过系统总线驱动程序,设备驱动程序实现对 物理设备的底层控制和资源配置。驱动程序依靠PD0(物理设备对象存取系统总线驱动 程序,一个FD0(功能设备对象)通过向P发送IR,实现和总线驱动程序的通信。 1.5USB设备驱动程序简介 USB设备驱动程序是基于WDM结构之上的。WM的分层驱动程序结构在UB设备上 体现在驱动程序分为USB总线驱动程序和UB功能驱动程序两个层次1n。 USB总线驱动程序一般由wm98或更高的操作系统提供,它位于USB功能驱动程序的 下面,负责与实际的硬件打交道,实现烦琐的底层通信。USB功能驱动程序(也称为用户 自定义驱动)由设备开发者编写,位于USB总线驱动程序的上层,不与实际的硬件打交道, 而是通过向USB总线驱动程序发送包含RB( B Request e1ck请求块)的IRP请求包, 来实现对USB设备信息的发送或接收。 1.6本论文的目的和主要內容 本文的主要目的就是为一个基于SB通讯接口的电子会议桌牌设备开发 Windows下 的设备驱动程序。由于USB设备所具有的低成本、即插即用、热拔插、多级级联、传输 距离远、带宽高、简单易用等优点,使其更加广泛地应用于各种PC外设、移动存储设备、 消费类电子产品以及工业领域。为了支持对这些设备的控制,必然需要根据设备的特性

...展开详情
试读 64P 基于Windows+WDM的USB设备驱动程序开发与应用

评论 下载该资源后可以进行评论 1

TakeEdge 很好,感谢分享!
2020-06-10
回复
img
xiaoyuer510

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐
    基于Windows+WDM的USB设备驱动程序开发与应用 33积分/C币 立即下载
    1/64
    基于Windows+WDM的USB设备驱动程序开发与应用第1页
    基于Windows+WDM的USB设备驱动程序开发与应用第2页
    基于Windows+WDM的USB设备驱动程序开发与应用第3页
    基于Windows+WDM的USB设备驱动程序开发与应用第4页
    基于Windows+WDM的USB设备驱动程序开发与应用第5页
    基于Windows+WDM的USB设备驱动程序开发与应用第6页
    基于Windows+WDM的USB设备驱动程序开发与应用第7页
    基于Windows+WDM的USB设备驱动程序开发与应用第8页
    基于Windows+WDM的USB设备驱动程序开发与应用第9页
    基于Windows+WDM的USB设备驱动程序开发与应用第10页
    基于Windows+WDM的USB设备驱动程序开发与应用第11页
    基于Windows+WDM的USB设备驱动程序开发与应用第12页
    基于Windows+WDM的USB设备驱动程序开发与应用第13页
    基于Windows+WDM的USB设备驱动程序开发与应用第14页
    基于Windows+WDM的USB设备驱动程序开发与应用第15页
    基于Windows+WDM的USB设备驱动程序开发与应用第16页
    基于Windows+WDM的USB设备驱动程序开发与应用第17页
    基于Windows+WDM的USB设备驱动程序开发与应用第18页
    基于Windows+WDM的USB设备驱动程序开发与应用第19页
    基于Windows+WDM的USB设备驱动程序开发与应用第20页

    试读已结束,剩余44页未读...

    33积分/C币 立即下载 >