USB设备的驱动.pdfVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
USB设备的驱动.pdf

通用串行总线(USB )设备的驱动 作者:北京航天医学工程研究所(100094)晁建刚 魏安阳 邱淑范 来源:《电子技术应用》 摘要:从问题的由来、类驱动程序、通信协议、描述符、驱动开发等对USB 的驱 动进行分析和讨论,提出USB 设备使用操作系统嵌入的通用类驱动程序成为趋 势。 关键词:USB 类驱动程序人工接口设备(HID ) Windows 驱动程序模型 (WDM ) 最初设计USB (Universal Serial Bus )这种外设总 线的目的之一就是为了便于使用,这是计算机发展的 产物。外设总线最重要的就是操作系统对外设的自动 识别、配置,实现热插拔,即插即用。本文试图以人 工接口设备(Human interface device ,简称HID )为 主,从问题的由来、类驱动程序、通信协议、描述 符、驱动开发等几个方面来探讨一下USB 设备的驱动 问题。 1 问题的由来 一个非常简单的设备安装有时得花用户好几天时 间,原因何在?设备的驱动与其他的驱动程序或软件 不兼容,或隐有bug 。如果操作系统本身就含有用户需 要的驱动程序,设备一插就能使用,这是最好不过的 事情。 现已有上千种不同的设备,许多功能大致一样。操作系统不可能为所有的设备提供全部的 驱动程序。仔细考虑一下,许多设备可归属为少数几个具有普遍特性和需求的类,因而为每种 类定义一个通用的API 接口,写出通用的驱动程序是可实现的。 通过定义不同的设备类型,USB 试图实现通用驱动程序这一目标。在USB 规范里,除定 义了基本的协议和构造用来配置设备和传输数据,还为所有的USB 设备定义了机械和电器件 性能要求。USB 规范定义了通信、打印、图像、储存、音频和人工接口设备等类。一些设备 是单一的类,一些是多种类的综合体。具有多种类的设备称为混合设备,在USB 规范对设备 有详细的划分。 2 类驱动程序 由于一些类尚未形成标准,Win2000 只包含了部分USB 类的驱动程序。一旦形成标准得 到认可,通用的驱动程序也就自然嵌入到操作系统了。图1 为操作系统中USB 驱动接口框 图。这是一个标准的Windows 驱动程序模型(WDM ),是一种分层模式。核心USB Driver Stack 模型描述设备如何安装和启动,以及如何为用户请求服务和与硬件打交道,并为上层 USB 驱动提供接口。上层驱动完成设备功能并为用户层提供接口,这使得向USB 总线发出请 求是通过多层结构。 HID 类是为一些人工的输入或输出设备而设计的,最常用的象键盘、鼠标、游戏控制器。 这种类同时也包含了前面板显示区和键盘区(象电话或VCR 远程控制),还有触觉和听觉反 馈设备。对于HID 类的设备,操作系统已经给出了相应的驱动程序。 连接到计算机的USB 设备几乎都包含HID 类,用以信号控制。比如一个USB 扬声器, 音量、音调控制用HID 类,但音频数据传输用音频类。 通常情况下,USB 设备与主机通信是经过USB 端口,类驱动程序无须担心或考虑ISA 总 线、PCI 总线、SCSI、IDE 或ATAPI 接口、串口、并口、键盘或鼠标口、游戏接口及相关的一 些东西。类驱动程序甚至不需要了解SUB 端口,这个物理接口被USB 主机驱动程序管理形成 抽象层,也正因为这个抽象层及其他相应层,使通用使驱动程序成为可能。每一层有自己的功 能,并为上一层提供了API 接口,上层没有必要了解下一层如何工作及内部体系结构,各层为 一个封装体。 图2 所示为USB 各层之间通信流程。 USB 用明确定义了的层协议来减少复杂化 且有利于标准化,各层均有连接,但大多 为逻辑型的。最低层的是USB 主机控制器 和USB 设备接口之间的物理连接,包括连 接线、连接器、状态机。其次在计算机方 面为USB 主机驱动程序,这是操作系统所 必须的。在设备方是用于设备管理和请求 的固件程序(Firmware ),此层是配和和 控制USB 接口的逻辑连接。第三层在主机方是设备驱动程序,通常称为类驱动程序;在设备 方是类属性的固件程序,通过逻辑连接用于特殊类的控制和请求。最顶层为用户层,为用户所 关心和考虑,比如在主机客户方为飞行模拟仿真,在设备方则为操纵杆。此时用户所关心的是 操纵杆的输入,不用考虑这些输入如何读、如何打包、如何传输。 3 通信协议 与USB 设备进行通信,主机软件打开一系列的

文档评论(0)

docindpp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档