USB HID 设备驱动程序设计(转)
2009-07-22 09:07
摘要:USB(Universal Serial Bus)即“通用串行总线”是一种应用在计算机领域的新型接口
技术。它的出现大大简化了 PC 机和外围设备的连接过程,使 PC 机接口的扩展变得更加容易。USB
作为近年来计算机和嵌入式领域中的热点,推动了计算机外设的飞速发展。本文介绍了适用于
PC 的嵌入式操作系统的 USB HID 设备驱动的设计,并给出了具体的实现方法。
关键词: USB HID 设备 PC 嵌入式 驱动程序
从 USB 1.1 到 USB2.0 再到目前的 USB OTG(On-The-Go),USB 在不断自我完善,并走向成熟。USB
具有高速度、低成本、低功耗、即插即用和使用维护方便等优点,不仅成为了 PC 主板上的标准
接口,而且成为了所有 PC 外部设备如键盘、鼠标、显示器、打印机、数码相机等与 PC 相连的标
准协议之一,迅速占领了计算机中、低速外部设备的市场。
USB(Universal Serial Bus)即“通用串行总线”是一种应用在计算机领域的新型接口技术。
USB 的拓扑结构中居于核心地位的是 Host(也称为主机)。任何一次 USB 的数据传输都必须由主
机来发起和控制,所有的 USB 外设都只能和主机建立连接,任何两个外设之间或是两个主机之间
无法直接通信。而目前,大量的扮演主机角色的是个人电脑 PC。
随着 USB 应用领域的逐渐扩大,对于 USB 的期望也越来越高。我们希望 USB 能应用在各种计算机
领域中,希望能通过 PDA 等移动设备直接和 USB 外设通信,使得 USB 能应用在没有 PC 的领域中。
而我们目前所使用的 USB 移动设备,大多数都是 USB 的外设,比如 USB 的移动硬盘、USB 接口的
数码相机等。所有这些设备都只能在 PC 上使用,只能通过 PC 来进行相互的文件和数据交换。
本驱动程序是为完善我们自行设计的嵌入式操作系统,使得它具备能识别 USB HID 设备的功能而
开发的。所使用的编程语言为 C 语言,并下载到目标机上,通过测试验证可以识别 USB HID 设备,
如 USB 键盘,USB 鼠标等。本文探讨的即是 PC 上实现 USB HID 设备驱动的方法。
⒈ HID 设备 驱动简介
为简化 USB 设备的开发过程,USB 提出了设备类的概念。HID 设备类,即人机接口设备。典型的
HID 设备如键盘、鼠标。
所有设备类都必须支持标准 USB 描述符和标准 USB 设备请求。如果有必要,设备类还可以自行定
义其专用的描述符和设备请求,这分别被称为设备类定义描述符和设备类定义请求。另外,一个
完整的设备类还将指明其接口和端点的使用方法,如如接口所包含端点的个数、端点的最大数据
包长度等。
HID 设备既可以是低速设备也可以是全速设备,其典型的数据传输类型为中断 IN 传输,即它适
用于主机接收 USB 设备发来的小量到中等量的数据。HID 具有以下的功能特点:1)适用于传输少
量或中量的数据;2)传输的数据具有突发性;3)传输的最大速率有限制;4)无固定的传输率。
HID 设备类除支持标准 USB 描述符外(设备描述符、配置描述符、接口描述符、端点描述符和字
符串描述符),还自行定义了 3 种类描述符,分别为 HID 描述符(主要用于识别 HID 设备所包含
的其他类描述符)、报告描述符(提供 HID 设备和主机间交换数据的格式)和物理描述符。一个
评论5