USB设备驱动程序的设计
时间:05-20
来源:电子产品世界 作者:陈新忠 中国电子科技集团公司第二十研究所
点击:
图3 USB设置数据格式 BmRequestType:1字节,用来指定数据流动的方向,请求的类型,以及接收者。 bRequest:1字节,用来指定请求。 wValue:2字节,主机用来传输信息给设备,开发者可以根据情况自己定义。 wIndex:2字节,主机用来传输信息给设备,开发者可以根据情况自己定义。 wLength:2字节,包含数据阶段中接下来要传输的数据字节数目。 以上字段的应用已经在程序注释中标出,在此不再赘述。 USB设备驱动程序的安装及调用 USB设备驱动程序的安装 驱动程序编译完成后会生成一个名为USBDIO.SYS的文件,即USB设备驱动程序,另外在使用向导程序WizardDriver生成驱动程序时会产生一个名为USBDIO.INF的驱动程序安装程序,对此程序只需稍做修改就能正常使用,具体是将类改为USB,即Class=USB,由于本驱动程序使用符号链接名打开设备,所以删除ClassGUID选项,注意设备标识符必需为:%DeviceDesc%=USBDIO_DDI, USBVID_0471&PID_0821,其中0471是USB控制芯片的厂商识别码,0821是USB设备标识码。 驱动程序安装过程是:将USB设备加电,连入计算机的USB接口,这时候会看到Windows操作系统提示发现新硬件,提问是否安装驱动程序,选择是,然后选择驱动程序所在文件夹,选择文件USBDIO.INF即可完成安装。 USB设备驱动程序的调用 为了完成对驱动程序的调用,笔者使用VC++6.0编写了USB应用程序包,程序包共由五个功能模块组成,用户通过调用这些模块即可方便的完成对USB外设的控制及读写,这些模块如下: 1)int CTRLReadData(unsigned char usbSelect,unsigned char *rbuffer,unsigned char numData),主要功能是读取ISP1581控制端点0发来的数据,数据存放在缓冲区rbuffer中。 2)int CTRLSendTestCommand(unsigned char usbSelect,unsigned short int testCommand),主要功能是发送测试命令,变量testCommand定义了测试命令。 3) int CTRLSendDMACommand(unsigned char usbSelect,unsigned char dmaDirection,unsigned char ramSelect,unsigned long dmaLength),主要功能是发送DMA传输命令,变量dmaDirection定义数据传输方向,ramSelect定义将要操作的USB外设的存储器,dmaLength定义了数据传输总数。 4)int DMARead(unsigned char usbSelect,unsigned char *rbuffer,int len,int waitTime),主要功能是计算机批量读取ISP1581中的数据,而ISP1581以DMA方式从外部RAM读取数据。 5)int DMAWrite(unsigned char usbSelect, unsigned char *rbuffer, int len, int waitTime),主要功能是计算机批量写数据到ISP1581,而ISP1581将以DMA方式写数据到外部RAM。 结语 USB设备驱动程序开发是Windows编程中较难的一个方面,要求开发者不但要有良好的Windows编程知识,还要掌握USB控制芯片工作原理、USB传输协议、USB固件等相关知识,使用DriverStudio3.2进行USB设备驱动程序开发可大大减少工作量和工作难度,本文所设计的USB设备驱动程序,已经应用到某雷达的自动测试设备中,驱动程序在计算机应用程序控制下可以顺利的发送各种测试命令,批量输入或者输出大量数据,达到设计要求。 参考文献: [1] 武安河. WIindows2000/XP WDM设备驱动程序开发[M]. 北京: 电子工业出版社,2005. [2] 萧世文, 宋延清. USB2.0硬件设计[M]. 北京: 清华大学出版社, 2006. [3] 王跃钢, 韩心中. 基于WDM模式的USB设备驱动程序开发[J]. 微计算机信息, 2008,22(8-3):305–307. [4] 马官营, 杨明, 吴晓琳. Windows 2000通用设备驱动程序设计[J]. 计算机应用, 2003,23(6):179–180. [5] 陆原, 魏杰, 孟玮. Windows XP环境下USB设备驱动程序的开发[J]. 国外电子元器件, 2007,(6):28–30. |
USB2 0 驱动程序 DriverStudio 相关文章:
- USB 2.0标准(04-14)
- USB2.0规范的主要特点(04-14)
- 基于TUSB6020的USB OTG接口设计(08-25)
- 基于SOPC的高速数据采集系统的分析与设计(01-01)
- 基于USB2.0的高性能移动存储设备的设计(02-05)
- IEEE 802.16x标准和机制(08-28)