WinCE5.0的USB Camera流接口驱动开发

[11-20 17:14:30]   来源:http://www.88dzw.com  嵌入式系统   阅读:8447

文章摘要:本文使用的流接口函数方法如表1所列。 点击看原图USB设备驱动程序必须输出的函数有:①USBDeviecAttach()。当USB设备连接到计算机上时,USBD模块就会调用此函数。这个函数主要用于初始化USB设备,取得USB设备信息,配置USB设备,并且申请必需的资源。②USBInstallDriver ()。主要用于创建一个驱动程序加载所需的注册表信息,例如读/写超时、设备名称等。③USBUninstallDriver ()。主要用于释放驱动程序所占用的资源,以及删除UsbInstallDriver ()函数创建的注册表等。上述3个函数接口是所有的USB驱动程序必须提供的,缺一不可。 另外较

WinCE5.0的USB Camera流接口驱动开发,标签:嵌入式系统开发,嵌入式开发,http://www.88dzw.com

  本文使用的流接口函数方法如表1所列。

本文使用的流接口函数方法

点击看原图

  USB设备驱动程序必须输出的函数有:

  ①USBDeviecAttach()。当USB设备连接到计算机上时,USBD模块就会调用此函数。这个函数主要用于初始化USB设备,取得USB设备信息,配置USB设备,并且申请必需的资源。

  ②USBInstallDriver ()。主要用于创建一个驱动程序加载所需的注册表信息,例如读/写超时、设备名称等。

  ③USBUninstallDriver ()。主要用于释放驱动程序所占用的资源,以及删除UsbInstallDriver ()函数创建的注册表等。

上述3个函数接口是所有的USB驱动程序必须提供的,缺一不可。

  另外较为重要的是USB设备驱动程序的注册表配置。一般的USB设备驱动程序的注册表配置在[HKEY_LOCAL_MACHINE\Drivers\USB\LoADClients\口]下,每个驱动程序的子键都有Group 1_ID\Group2_ID\Group3_ID\DriverName 格式,设备的子键由供应商、设备类和协议信息通过下划线组成。表2列出了允许的组合。

允许的组合

点击看原图

  以本实验所采用的USB Camera为例,该USB Cam-era的供应厂商ID为0X046d,设备ID为0x08a2,那么它的加载注册表应该写为:

程序

点击看原图

  需要注意的是,注册表的构成都是以十进制数值来标识的,也要注意十进制和十六进制之间数的转换。 3 WinCE5.0下USB摄像头驱动程序

  实验使用的USB Camera是中星微公司的301芯片组的Zc030x,它的Vid/Pid为0x046d、0x08a2。由于实时图像数据传送量比较大,很多USB Camera产品在图像传输之前已进行了数据压缩处理,如果不知道解码算法,是没有办法在WinCE上获得图像的。在开发的时候主要使用SnoopyPro,它是一款可以分析USB通信数据的软件,辅助进行Zc030x的驱动开发工作,最后成功开发出Zc030x在WinCE5.0下的驱动程序。下面结合USBCamera驱动开发说明驱动中的数据流向和必要的函数使用。首先是具体的注册表信息:

程序


点击看原图

  其中,hDevice是由系统提供的当前外设的句柄,通过它可以获取外设的信息,如VID、PID等;UsbFuncs是系统提供的指向USBD函数的函数指针,通过它可以调用USBD函数,如GetlsochResult、IssuelsochTransfer等;AcceptControl指针指向的bool值需要我们确定,如果可控,令其为TRUE,否则为FALSE。

上一页  [1] [2] 


Tag:嵌入式系统嵌入式系统开发,嵌入式开发嵌入式系统