生物机能分析仪USB接口驱动程序的设计
1 引 言
USB(Universal Serial Bus)总线是INTEL、NEC、MICROSOFT、IBM等公司联合提出的一种新的串行总线接口规范。USB总线使用简单,支持即插即用,传输速度高,USB1.1协议支持12Mbps的传输速率,USB2.0传输协议支持480Mbps的传输速率。USB接口已经成为标准的PC接口。
生物机能实验分析仪分析功能复杂,必须借助于计算机来实现,采用USB接口与计算机连接的生物机能实验分析仪具有更高的性价比,而USB驱动程序的设计是USB接口设计中的一个难点,文中主要讨论在Windows操作系统下基于WDM模式的USB设备驱动程序的设计方法。
2 USB驱动程序的架构
USB设备的驱动程序是WDM(Windwos DriverMode)驱动程序。WDM是微软最新推出的一种驱动程序模型,旨在降低驱动程序的复杂性,简化驱动程序的开发。WDM驱动程序采用分层驱动的方法,在用户应用程序和物理设备之间存在着几个不同的驱动程序层次。在WDM模型驱动程序中每个设备至少有两个驱动程序,其中一个称为功能驱动程序,也就是我们常说的设备驱动程序。它了解硬件工作的所有细节,负责初始化I/O操作,为用户提供一种设备适合的控制方式。
另一个驱动程序称为总线驱动程序(USBD.SYS)。它负责管理硬件与计算机的连接,USB总线驱动程序由Windows操作系统提供。与传统的PC总线(如PCI总线)设备的驱动程序相比,USB设备驱动从不直接与硬件对话,它仅靠创建URB(USB请求块),并把URB提交到总线驱动程序就可完成硬件操作。图1描述了USB驱动程序和USB总线驱动程序的层次关系。
和其他WDM驱动程序一样,USB驱动程序主要包含5个例程:驱动程序入口例程、即插即用例程、分发例程、电源管理例程和卸载例程。驱动程序就是这些例程的集合。
3 使用总线驱动程序
前提提到,USB驱动程序不直接和USB设备通信,而是通过总线驱动程序来和硬件对话。可以把USB总线驱动程序看作是接受URB的实体,向USBD的调用被转化为带有主功能代码为IRP MJ INTERNALDEVICE CONTROL的IRP。然后USBD再调度总线时间,发出URB中指定的操作。
3.1 URB的结构
URB是一种联合类型的数据结构,其包含了18种不同类型的结构。URB HEADER是每个URB结构的的开始,包含最基本的信息,如URB的长度、URB的功能等。在使用URB前,USB设备驱动程序必须设置好该结构的Length字段和Function字段。URBHEADER结构的Function字段指明URB的功能代码,其定义了请求的具体操作。
设备驱动程序根据不同的USB事务(transaction)使用不同的子结构,并把合适的值填入URB的各个域中。创建完URB后,需要创建并发送一个内部I/O控制(IOCTL)请求到USBD驱动程序,然后等待设备回应。
相关文章
- 2023-11-16回火温度对超高强度不锈钢的力学性能和微观组织的影响
- 2022-09-24火炬气的质量流量测量
- 2023-09-26三维压差式矢量水听器定向性能分析
- 2023-04-19一种材料局部机械强度检测系统的设计
- 2023-10-24微型汽车后桥驱动齿轮出厂噪声检测仪的新设计设想
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。