USB接口通信(驱动)的设计与实现

合集下载

USB通信实现

USB通信实现

USB通信实现一、CY7C68013A芯片简介CYPRESS公司的EZ-USB FX2系列芯片是世界上第一个集成USB2.0协议的微处理器,它支持12Mb/s的全速传输和480Mb/s高速传输,可使用4种USB传输方式:控制传输、中断传输、批量传输和同步传输;完全使用USB2.0,并向下兼容USB1.1。

芯片结构EZ-USB FX2的前身是EZ-USB ,其芯片固件也是存储在主机上而不是在芯片内部,显著特点是代码升级容易。

芯片结构也与EZ-USB 类似,主要包括USB2.0收发器、串行接口引擎(SIE)、增强型8051、16KB的RAM,4KB的FIFO存储器、I/O口、数据总线、地址总线和通用可编程结构(GPIF),如图1.1所示:图1.1 EZ-USB FX2系列芯片的结构CY7C68013A特点:1、USB2.0单芯片解决方案,包括USB2.0收发器,串行接口引擎USB2.0和增强型51内核。

2、可“软配置”RAM,大小为16k,取代传统51的RAM和ROM,程序可通过下面方式下载:●通过USB口下载●通过外部E2PROM装载●外界存储设备(只有128引脚封装技术)3、通用可编程接口GPIF,GPIF是FX2的一个重要技术:●可设置为主从模式,主模式下可对外部FIFO、存储器、ATA接口设备进行高速读写操作,从模式下外部主控制器(如DSP,MCU)可把GPIF端口当做FIFO进行高速读写操作。

●支持与外设通过并行8位或16位总线传输。

●支持通过GPIF工具编程,灵活产生各种波形。

支持多CTL输出和多RDY输入。

4、增强工业级8051内核,特点有●支持48M时钟●4个时钟指令周期,在时钟为48M时,单指令执行时间为83.3ns●两个UART●三个TIMER●多中断系统●多数据指针5、3.3V工作电压,低功耗,在任何工作模式下电流小于85mA。

6、智能串行接口引擎(SIE)。

7、USB中断矢量。

USB通信

USB通信

USB通信原理及接口系统研究1USB 接口通信原理U SB (Universal Serial Bus)是通用串行总线, 它是一种快速的、双向的、同步传输的、廉价的并可以进行热拔插的串行接口。

1.1U SB 接口系统结构在终端用户看来,USB 接口就是从USB 设备到主机的简单连接, 但对开发人员来说, 可将U SB 接口系统分为主机和U SB设备两部分, 每部分均可分为3 个逻辑层: 功能层、U SB 设备层和U SB 总线接口层。

U SB接口系统结构见图1图1U SB 接口系统结构U SB 系统中只允许有一个主机, 主机分为3 个不同的功能模块: 应用软件、U SB 系统软件和U SB 总线接口。

客户软件负责和U SB 设备的功能单元进行通信, 以实现其特定功能, 它需要开发人员自行开发, 包括U SB 设备驱动程序和界面应用程序两部分。

客户软件不能直接访问U SB 设备, 其与功能单元的通信必须经过U SB 系统软件和U SB 总线接口模块才能实现。

U SB 设备也由3 个功能模块组成: 即U SB 总线接口、U SB 逻辑设备和功能单元。

U SB 总线接口是U SB设备中的串行接口引擎(S IE) ; U SB 逻辑设备被U SB系统软件看作是一个端点的集合; 功能单元被应用软件看作是一个接口的集合。

其中, S IE、端点和接口都是U SB 设备的组成单元。

1.2U SB 接口配置从主机角度上讲, U SB 设备可看作是由一些配置、接口和端点组成的, 这是通常所说的U SB 设备架构, 即一个U SB 设备可以含有一个或多个配置。

在每个配置中可含有一个或多个接口, 在每个接口中可含有若干个端点。

其中, 配置和接口是对U SB 设备功能的抽象, 实际的数据传输由端点来完成, 在使用U SB设备前, 必须指明其采用哪个配置和接口。

U SB 设备使用各种描述符来说明其设备构架, 包括设备描述符、配置描述符、接口描述符、端点描述符和字符串描述符等, 它们通常被保存在U SB 接口芯片的固件中。

USB接口通信(驱动)的设计与实现

USB接口通信(驱动)的设计与实现

引言WDM是“Windows驱动程序模型”的简称,即“Windows Driver Model”。

实际上它是一系列集成在操作系统之中的常规系统服务集,用于简化硬件驱动程序的编写,并保证它们在Windows 98/Me/2000中的二进制兼容,WDM(Windows Driver Model)模型是从WinNT3.51和WinNT4的内核模式设备驱动程序发展而来的。

WDM主要的变化是增加了对即插即用、电源管理、Windows Management Interface(WMI)、设备接口的支持。

WDM模型的主要目标,是实现能够跨平台使用、更安全、更灵活、编制更简单的Windows 设备驱动程序。

WDM采用了“基于对象”的技术,建立了一个分层的驱动程序结构。

WDM 首先在Windows98中实现,在Windows2000中得到了进一步的完善,并在后续开发的Windows操作系统中都将存在,比如Windows Me和Windows XP。

微软在通过WDM 模型的引入,希望减轻设备驱动程序的开发难度和周期,逐渐规范设备驱动程序的开发,应该说,WDM将成为以后设备驱动程序的主流。

USB技术的全称是通用串行总线,是英文Universal Serial Bus的缩写。

它是一种应用在PC领域的新型接口技术,虽然USB2.0已经被广泛应用,但是初始的Windows 2000是支持USB1.0协议的,如果希望支持USB2.0协议,需要在微软网站上下载升级包。

实际上,对于键盘或者鼠标来说,传输的速度非常小,使用USB1.0或者是USB2.0的区别并不大。

闪存盘之类的存储设备,则需要重视传输速度。

USB1.0版本主要应用在鼠标,键盘等HID设备上,这就是本驱动程序中引用的头文件版本是USB1.0的原因。

本毕业设计的目的是希望对Windows 2000操作系统体系结构和驱动程序开发以及调试等方面的问题有一个比较深入的了解,对USB协议和USB体系有做一个比较深入的了解。

基于STM32F103芯片的USB接口的研究与实现

基于STM32F103芯片的USB接口的研究与实现

基于STM32F103芯片的USB接口的研究与实现一、本文概述随着科技的飞速发展,USB接口作为一种便捷、高效的数据传输方式,在电子设备中得到了广泛应用。

STM32F103芯片作为STMicroelectronics公司推出的一款基于ARM Cortex-M3内核的32位微控制器,具有高性能、低功耗、易于编程等优点,被广泛应用于各种嵌入式系统中。

本文将围绕STM32F103芯片的USB接口展开研究,详细探讨其原理、设计与实现方法。

本文首先介绍了STM32F103芯片的基本特性和USB接口的基本原理,包括USB协议栈、数据传输方式等。

接着,对STM32F103芯片的USB 接口硬件设计进行了详细描述,包括硬件电路的选择、接口电路设计、电源管理等。

在软件设计方面,本文详细介绍了USB驱动程序的开发过程,包括驱动程序的架构、主要功能实现以及关键技术的处理等。

为了实现STM32F103芯片与USB设备之间的数据传输,本文还设计了基于USB HID类设备的通信协议。

该协议利用USB HID类设备的通用性,实现了STM32F103芯片与USB设备之间的无缝连接和数据传输。

本文还通过实验验证了USB接口设计与实现的正确性,并分析了在实际应用中的性能表现。

本文总结了STM32F103芯片USB接口的研究与实现过程,指出了其中存在的不足之处,并对未来的研究方向进行了展望。

通过本文的研究,旨在为嵌入式系统开发人员提供一种基于STM32F103芯片的USB接口设计与实现方案,推动嵌入式系统中USB接口技术的进一步发展。

二、STM32F103芯片USB接口基础知识STM32F103芯片是STMicroelectronics公司生产的一款基于ARM Cortex-M3核心的微控制器,它集成了丰富的外设接口,其中包括USB 接口。

对于STM32F103来说,其USB接口主要基于USB 0标准,提供了高速的数据传输能力。

STM32F103的USB接口主要由以下几个部分构成:USB外设控制器、USB收发器以及USB的电源管理。

SPI及USB双通信接口的设计与实现

SPI及USB双通信接口的设计与实现
虽 Fah l 存储 器 的 出现 , 据存储 量 也基 本满 足 了当 s 数
传感 器
前需要 。作 为记 录仪 与计算机或外 围设备 的信息交
换通道 , 通信接 口具 有重要 的 意义。但是针 对数 据快 速读取和通信接 口更 加灵活 方 面的研究 , 目前还 不够
模 拟调 理 电路
图 1 示。 所
计 算机 具有 S I 口 P接 的外 围设 备
二 片
测试的一个组成部分 , 它与其他测试组件 、 无线通信控制 组件以及主机之间的通信更加复杂 , 这就对记 录仪提 出
了许多新的要求 , 包括多种频率采样 、 多次触发 、 海量数据
存储 、 陕速读取和通信接口更加灵活等 。 数据 针 对多种 频率采样 、 多次触发 的要求 , 设计 了一个 由复杂 可编程 逻 辑器 件 C L (o p xpor m be P D cm l r a al e gm lg ei ) oi dv e 和单片 机构 成 的控制 电路 。随着 大容 c c
编程 逻辑 器件 ( P D 控 制 了信号 的有效 采集存 储 , 片机 与 U B接 口芯片 配合则 实 现 了与 外 围器 件 的有效 通 信 。实 验证 明 ,S CL ) 而单 S UB
接 口可实 现数据 的快 速传 输 ;P 接 口可更方 便地 与 无线控 制及 多种 智能仪 器实 现对 接 。接 口兼 容将 是记 录仪 未来 的发 展方 向 。 SI 关键 词 :存 储测 试 记 录仪 接 口通 信 单 片机 U B SI S P
cmpe rga o lxpormma l l i dvc C L ; n f ciec mmu iainwt eih rl e ie lme tdb o iaino igec i be o c eie( P D) a def t o g e v nct i p r ea d vcsi i e ne ycmbn t fs l hp o h p s mp o n

基于USB接口实现双机通信设计与实现

基于USB接口实现双机通信设计与实现

摘要:USB由于其速度快、支持热插拔、稳定性好、用户使用方便、支持即插即用等优点,现已成为PC机的标准总线接口。

本文介绍了一种利用USB总线接口来实现的双PC机互联的技术方案。

随着个人计算机对USB标准的支持,USB的各种应用应运而生。

从手持设备、桌面设备、家用设备甚至到工业、通讯、测控等领域,都出现了USB的便捷设备。

如常用的U盘、USB摄像头和USB鼠标键盘等。

它们的出现,极大的丰富了人们的生活,也渐渐的改变着人们的生活工作方式。

同时,随着计算机的普及和信息化进程的加快,家庭内出现两台电脑己不少见了。

对大多数家庭用户来说,利用计算机网卡的RJ45接口就能满足基本的数据传输和网络共享了。

但是要进行Internet连接共享就不行了,因为一台电脑一般只有一个网卡。

为了方便快捷高速的实现Internet连接共享,可以利用USB双机互联线进行连接。

基于此,本文就针对USB双机互联展开,逐步地讨论了USB双机互联的原理及其实现过程。

本文首先从USBI.1协议和TCP/IP着手,分析了互联所需的协议及WindowsXP 系统对其的支持情况,得出主机侧需要一个微端口USB虚拟网卡驱动支持。

随后,以系统的观点,把USB互联设备分成软件部分和硬件部分,并对它们分别进行可行性分析,并给出基本的实现细节和过程。

再者,在介绍S3C44BOX 开发板的基础上,扩展了一USB口作为USB机互联设备。

最后,专门对软件设计给出了编程见解和遇到的常见问题,并结合软硬件的编程、调试和运行分析,总结了USB双机互联实现的所需的知识和方法。

关键字:USB接口双机通信1引言总体现状随着PC的普及和信息网络的大发展,上网的人越来越多,也越来越依賴网络给自己工作生活带来便捷。

同时无线网络进一步的发展,我们几乎不受限制的随时随地接入互联网浏览信息、电子邮件、下载文件和听音乐等等网络活动。

有了网络,我们的地球小了,生活也得变丰富多彩了。

我们已经离不开网络了。

USB接口电路设计及通信编程

USB接口电路设计及通信编程

摘要通用串行总线,即Universal Serial Bus(USB)是一种应用前景非常广阔的新型串行接口总线。

它具有使用方便、易于扩展和传输速率高的特点,广泛应用于各种中低速计算机外设及数字设备中,并在不断发展完善之中。

基于USB总线的数据传输方法有着其他方式所没有的高速与方便,因此有着很高的实际应用价值。

本课题的主要研究内容是:掌握USB通信协议及器件工作方式、利用MCS51系列单片机控制PDIUSBD12接口芯片及周边电路、以及以此为依据设计的接口电路和通信函数,最终通过USB接口实现单片机与Windows平台计算机之间的数据通信。

本课题实现的是主机识别USB外设的过程与最基本的控制传输,是USB数据通信的基础,因此这种方式完成的接口设计具有相当的通用性,可以广泛的应用与移动硬盘、读卡器等设备的开发中。

本课题使用的USB接口芯片是Philips公司的PDIUSBD12-08,所使用的驱动是用Microsoft公司提供的DDK(驱动开发工具包)编制的,完全保证了软、硬件的可靠性、兼容性。

关键词USB PDIUSBD12 控制传输USB固件编程AbstractUniversal Serial the Bus( USB) is a new serial bus that will be wildly used in the future. It has some advantages as convenience, easy to expend and high speed on transmitting, so it can be applied to various computer peripheral devices and digital equipments. In addition, it's being improved every single day. The data transmission based on USB is more fast and convenient than the other methods, so it has high value in practical application.The main content of our task is:Study the specification of USB and master the way of how USB device works; use singlechip 89C52 to handle PDIUSBD12 and other chips; design the interface circuit and firmware, and finally realize the dialogue between the USB controller and the host operated on Windows though the USB cable.This task is to complete the process of enumeration and configure and the basic control transfer. The design achieved by this means can be applied to many other developments such as mass storage and so on because the problems in the task are the base of USB data communications.The USB controller we select is PDIUSBD12 that is produced by Philips and the driver we installed is compiled with the Device Drivers Kit(DDK) offered by Microsoft. So both the software and the hardware of the project is reliable and has good compatibility.Key words USB PDIUSBD12 Control transferUSB firmware programming目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 研究的目的和意义 (1)1.2 USB技术的发展状况及前景 (1)1.2.1 USB的发展历史 (1)1.2.2 USB的特点 (2)1.2.3 USB的应用与前景 (4)1.3主要研究内容与完成情况 (4)第2章系统总体设计的软硬件原理 (6)2.1 引言 (6)2.2 任务分析及技术指标 (6)2.3 硬件电路原理概述 (6)2.3.1 总体设计方案 (6)2.3.2 单片机89C52的连接方法 (6)2.3.3 接口芯片PDIUSBD12的连接方法 (7)2.4 固件程序开发及应用过程 (11)第3章USB总线规范及传输原理简介 (12)3.1 引言 (12)3.2 通用串行总线规范 (12)3.2.1 概述 (12)3.2.2 主要内容 (12)3.3 USB传输原理 (13)3.3.1 四种传输类型简介 (13)3.3.2 USB数据传输原理 (14)3.3.3 控制传输分析 (17)3.3.4 批量传输 (18)3.4 差错控制 (18)3.5 本章小结 (19)第4章USB控制器芯片PDIUSBD12介绍 (20)4.1 引言 (20)4.2 PDIUSBD12特点 (20)4.3 PDIUSBD12数据传输原理 (21)4.4 PDIUSBD12命令代码功能与用法 (21)4.4.1初始化命令 (22)4.4.2 数据流命令 (23)4.4.3 通用命令 (25)4.3 本章小结 (25)第5章固件程序详解 (26)5.1 前言 (26)5.2 程序总体结构 (26)5.2.1 概述 (26)5.2.2 硬件提取层——HAL.C (27)5.2.3 PDIUSBD12命令接口——USBD12.C (27)5.2.4 中断服务程序——ISR.C (27)5.2.5 主循环——MAIN.C、USB.C (27)5.2.6 协议层——CHAP9.C、VDOR.C (27)5.3 各层程序流程详解 (28)5.3.1 主循环MAIN.C (28)5.3.2 协议层 (30)5.3.3 中断服务程序 (37)5.4 本章小结 (43)结论 (44)致谢 (45)参考文献 (46)附录1 (47)附录2 (53)附录3 (60)附录4 (62)第1章绪论1.1 研究的目的和意义随着计算机技术的不断提高,计算机已经逐渐深入生产生活的各个层面,并带来了翻天覆地的变革。

基于STM32的高速USB通信模块设计与实现

基于STM32的高速USB通信模块设计与实现

基于STM32的高速USB通信模块设计与实现USB(Universal Serial Bus)是一种通用串行总线标准,可用于连接计算机与外部设备,例如打印机、键盘、鼠标等。

STM32是一种基于ARM Cortex-M内核的单片机系列,具有高性能和丰富的外设。

本文将介绍基于STM32的高速USB通信模块的设计与实现。

首先,我们需要选择一个适合的STM32单片机型号。

在选择时,我们应考虑USB的速度要求、外设的功能要求以及单片机的处理能力和资源。

在高速USB通信中,我们可以选择STM32F4系列,因为它具有高速USB2.0 OTG(On-The-Go)接口和丰富的外设,适合高速数据传输。

接下来,我们需要设计硬件电路。

在设计过程中,我们需要包括STM32单片机、USB接口芯片、时钟电路、电源电路、外设等。

其中,USB接口芯片起着桥接STM32和USB总线的作用,负责协议转换和数据传输。

时钟电路为单片机提供稳定的时钟信号。

电源电路为单片机和外设提供适当的电源供应。

完成硬件设计后,我们需要进行软件编程。

首先,我们需要在STM32单片机上配置USB外设,并初始化必要的寄存器。

接下来,我们需要编写USB协议栈的驱动程序,实现设备枚举和数据传输。

在数据传输方面,我们可以选择使用Bulk传输方式,它适用于大容量数据传输,且具有较高的效率。

在软件编程过程中,我们还需要编写应用层代码,实现与外部设备的通信。

例如,我们可以编写一个USB打印机驱动程序,实现打印机的功能。

在编写驱动程序时,我们需要根据USB设备类的规范进行开发,以确保驱动程序与外部设备兼容。

在实现阶段,我们需要对硬件电路进行布线和焊接,以及对软件进行调试和优化。

在调试过程中,我们可以使用调试器和示波器等工具进行实时监测和调试。

最后,我们可以进行性能测试和稳定性测试,以验证设计的可靠性和性能。

在测试过程中,我们可以使用基准测试工具和负载测试工具,以模拟实际应用场景,并检查系统的数据传输速度和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1-1 Windows组件模型
系统中还有许多与NtReadFile相似的服务例程;它们同样运行在内核模式中,为应用程序请求提供服务,并以某种方式与设备交互。这些服务例程首先检查从用户态传递给它们的参数以保护系统安全或防止用户态程序非法存取数据,然后创建一个称为“I/0请求包(IRP)”的数据结构,并把这个数据结构送到某个驱动程序的入口点。
如果某一类设备存在着工业标准,微软就会提供一个该类设备的WDM类驱动程序。这个类驱动程序实现了该类设备所有必须的任务,但不实现任何具体设备所特有的东西。比如,微软提供的HID(人工输入设备)类驱动程序的实现,是根据USB HID类规范v.11的规定,但并不实现任何一种具体设备的特殊功能,比如,USB键盘、鼠标、游戏控制等等。
图1-3驱动程序的种类
总线驱动程序
总线驱动程序为实际的I/O总线服务,比如IEEE 1394。在WDM的定义中,一个总线是这样的设备,它用来连接其他的物理的、逻辑的、虚拟的设备。总线包括传统的总线SCSI和PCI,也包括并口、串口、以及i8042端口。微软已经为Windows操作系统提供了总线驱动程序。总线驱动程序已经包含在操作系统里了,用户不必安装。一个总线驱动程序负责以下的工作:
·一个USB键盘的上层过滤驱动程序可以强制执行附加的安全检查。
·一个鼠标的低层过滤驱动程序,通过对鼠标移动的数据做非线性的转换,可以得到一个有加速效果的鼠标轨迹。
功能驱动程序的组成
功能驱动程序由类驱动程序和微型驱动程序(Minidriver)组成。类驱动程序实现了某一类设备的常用操作,由微软提供,驱动程序的开发者可以只编写非常小的微型驱动程序,去处理具体设备特殊的操作,而对于其他大量的常规操作,可以调用该类的类驱动程序,这也是WDM驱动程序的优点之一。
·显示驱动程序是用于显示和打印设备的内核模式驱动程序。
·文件系统驱动程序在本地硬盘或网络上实现标准PC文件系统模型(包括多层次目录
结构和命名文件概念)。
·遗留设备驱动程序也是一种内核模式驱动程序,它直接控制一个硬件设备而不用其它驱动程序帮助。这种驱动程序主要包括Windows NT早期版本的驱动程序,它们可以不做修改地运行在Windows 2000中。
USB技术的全称是通用串行总线,是英文Universal Serial Bus的缩写。它是一种应用在PC领域的新型接口技术,虽然USB2.0已经被广泛应用,但是初始的Windows 2000是支持USB1.0协议的,如果希望支持USB2.0协议,需要在微软网站上下载升级包。实际上,对于键盘或者鼠标来说,传输的速度非常小,使用USB1.0或者是USB2.0的区别并不大。闪存盘之类的存储设备,则需要重视传输速度。USB1.0版本主要应用在鼠标,键盘等HID设备上,这就是本驱动程序中引用的头文件版本是USB1.0的原因。
1 WDM驱动程序模型概述
驱动程序在任何操作系统下都和系统内核有着密切的关系。设备驱动程序是一个包含了许多操作系统可调用例程的容器,这句Walter Oney曾说过的话,抽象的描述了设备驱动程序的本质。
1.1 Windows 2000概述
图1-1中概括了Windows 由不同层次的模块共同组成的。该图着重描述了驱动程序开发者所关心的特征。工作在Windows 2000操作系统平台上的软件要么执行在用户模式中,要么执行在内核模式中。当用户模式程序需要读取设备数据时,就调用Win32 API函数,如ReadFile. Win32子系统模块通过调用平台相关的系统服务接口实现API,而平台相关的系统服务将调用内核模式支持例程。在ReadFile调用中,调用首先到达系统DLL(NTDLL.DLL)中的一个入口点,NtReadFile函数。然后这个用户模式的NtReadFile函数接着调用系统服务接口,最后由系统服务接口调用内核模式中的服务例程,该例程同样名为NtReadFile。
操作系统中的即插即用管理器(PnP Manager)根据设备驱动程序的指令来建立这个数据对象堆栈。前面我们已经知道,总线驱动程序的作用之一是枚举总线上的设备,当总线驱动程序检测到一个设备时,PnP管理器就马上建立一个PDO。当建立好PDO之后,PnP管理器通过查找注册表来找到其他的过滤驱动程序和功能驱动程序。设备的安装程序负责建立这些注册表里的表项,驱动程序的安装,是根据INF文件中的指令进行的。注册表中的表项指明了各种驱动程序在数据对象堆栈中的位置,于是PnP管理器开始装载最低层的过滤驱动程序,并调用该驱动程序的AddDevice函数。该函数在数据对象堆栈中建立一个FiDO,同时也将前面建立的PDO和这个FiDO联系在一起。PnP管理器反复的实现该过程,装载其他位置靠上的低层过滤驱动程序、功能驱动程序、上层过滤驱动程序,直到该堆栈完成。
引言
WDM是“Windows驱动程序模型”的简称,即“Windows Driver Model”。实际上它是一系列集成在操作系统之中的常规系统服务集,用于简化硬件驱动程序的编写,并保证它们在Windows 98/Me/2000中的二进制兼容,WDM(Windows Driver Model)模型是从WinNT3.51和WinNT4的内核模式设备驱动程序发展而来的。WDM主要的变化是增加了对即插即用、电源管理、Windows Management Interface(WMI)、设备接口的支持。WDM模型的主要目标,是实现能够跨平台使用、更安全、更灵活、编制更简单的Windows设备驱动程序。WDM采用了“基于对象”的技术,建立了一个分层的驱动程序结构。WDM首先在Windows98中实现,在Windows2000中得到了进一步的完善,并在后续开发的Windows操作系统中都将存在,比如Windows Me和Windows XP。微软在通过WDM模型的引入,希望减轻设备驱动程序的开发难度和周期,逐渐规范设备驱动程序的开发,应该说,WDM将成为以后设备驱动程序的主流。
微软提供的类驱动程序处理常用的系统任务,比如,即插即用功能和电源管理。类驱动程序保证了操作系统在处理类似的任务时的一致性,从而提高了系统的稳定性。
设备生产商提供微型驱动程序,以实现自己设备的特殊功能,同时调用合适的类驱动程序完成其他的通用工作。将大量的标准操作的代码通过各种类驱动程序来实现,并集成在操作系统中,这样的方式可以有效的减少具体设备的微型驱动程序的大小,也就减小了程序出错的可能。
·枚举总线上的设备;
·向操作系统报告总线上的动态事件;
·响应即插即用和电源管理的I/O请求;
·提供总线的多路存取(对于一些总线);
·管理总线上的设备;
功能驱动程序
功能驱动程序是物理设备的主要驱动程序,它实现设备的具体功能,一般由设备的生产商来编写。功能驱动程序的主要功能是:
·提供对设备的操作接口;
·操作对设备的读写;
·虚拟设备驱动程序(VDD)可以使DOS应用程序访问x86平台上的硬件。VDD通过屏蔽I/O权限掩码来捕获端口存取操作,它基本上是模拟硬件操作,这对于那些直接对裸机硬件编程的应用程序特别有用。尽管这种驱动程序在Windows 98和Windows 2000中共享一个名称并且有相同的功能,但实际上它们的工作方式完全不同。我们用VDD缩写代表这种驱动程序,用VxD缩写代表Windows 98中的虚拟设备驱动程序以示区别。
本毕业设计的目的是希望对Windows 2000操作系统体系结构和驱动程序开发以及调试等方面的问题有一个比较深入的了解,对USB协议和USB体系有做一个比较深入的了解。并开发出一个USB键盘驱动。这个USB键盘驱动程序应当可以替代系统原有的键盘驱动程序,并可以正常工作。
本论文设计的驱动程序在Windows 2000下运行,开发环境为VC6.0和DDK2000。
1.4驱动程序的分层结构
图1-5 WDM中设备对象和驱动程序的层次结构
WDM模型使用了如图1-5的层次结构。图中左边是一个设备对象堆栈。设备对象是系统为帮助软件管理硬件而创建的数据结构。一个物理硬件可以有多个这样的数据结构。处于堆栈最底层的设备对象称为物理设备对象(physical device object),或简称为PDO。在设备对象堆栈的中间某处有一个对象称为功能设备对象(functional device object),或简称FDO。在FDO的上面和下面还会有一些过滤器设备对象(filter device object)。位于FDO上面的过滤器设备对象称为上层过滤器,位于FDO下面(但仍在PDO之上)的过滤器设备对象称为下层过滤器。
驱动程序完成一个I/0操作后,通过调用一个特殊的内核模式服务例程来完成该IRP。完成操作是处理IRP的最后动作,它使等待的应用程序恢复运行。
1.2 Windows 2000中的驱动程序类型
图1-2 Windows 2000中的设备驱动程序种类
Windows 2000系统可以使用多种驱动程序,图1-2显示了其中几种。
内核模式驱动程序的分类包含许多子类。PnP驱动程序就是一种遵循Windows 2000
即插即用协议的内核模式驱动程序。
·WDM驱动程序是一种PnP驱动程序,它同时还遵循电源管理协议,并能在Windows98和Windows 2000间实现源代码级兼容。WDM驱动程序还细分为类驱动程序(classdriver)和微型驱动程序(minidriver),类驱动程序管理属于己定义类的设备,微型驱动程序向类驱动程序提供厂商专有的支持。
·管理设备的电源策略;
·过滤驱动程序
过滤驱动程序是一个可选项,当一个用户需要改变或新添一些功能到一个设备、一类设备或一种总线时,就可以编写一个过滤驱动程序。在设备栈里,过滤驱动程序安装在一个或几个设备驱动程序的上面或下面。过滤驱动程序拦截对具体设备、类设备、总线的请求,做相应的处理,以改变设备的行为或添加新的功能。但过滤驱动程序只处理那些它所关心的I/O请求,对于其他的请求可以交给其他的驱动程序来处理,这样可以非常灵活改变设备的行为,至少用户会这样看。比如:
在WDM模型中,每个硬件设备至少有两个驱动程序:一个功能驱动程序(function driver)和一个总线驱动程序(bus driver)。一个设备还可能有过滤驱动程序(filter driver),用来变更标准设备驱动程序的行为。这些服务于同一个设备的驱动程序组成了一个链表,称为设备栈。详细的描述见图1-3。
相关文档
最新文档