1 / 5
文档名称:

WinCE平台USB摄像头驱动开发.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

WinCE平台USB摄像头驱动开发.doc

上传人:xxj16588 2016/3/20 文件大小:0 KB

下载得到文件列表

WinCE平台USB摄像头驱动开发.doc

文档介绍

文档介绍:WinCE 平台 USB 摄像头驱动开发 WinCE 平台 USB 摄像头驱动开发-- 未审核由于良好的性能、低廉的价格和灵活方便的特性, USB 摄像头正被广泛的集成到嵌入式系统中。例如,通过 USB 摄像头 WinCE 系统可以很方便地得到实时图像,这对某些要求实时图象监控的嵌入式系统是一个很不错的选择。但是由于嵌入式硬件平台的多样性, 以及 WinCE 对 USB 设备驱动开发只提供了底层支持, 再加上许多摄像头厂商尚未提供 WinCE 下的 USB 摄像头驱动, 这对初级开发人员在开发 WinCE USB 摄像头程序时是一个难点。前段时间, 公司委派我负责一个嵌入式项目, 项目要求是在 WinCE 平台上集成 USB 摄像头驱动和视频采集程序。这个项目的关键是要集成 USB 摄像头驱动, 并高效的把摄像头设备进行初始化以取得一幅完整的图像。幸好我以前开发过 WinCE USB 的主从设备的驱动程序。但虽然如此, 我还是花了一些时间来调整系统的稳定性和可靠性。在这里我分享在这次项目实践中得到的经验和教训, 希望大家能少走弯路。一. 什么是 USB 设备驱动程序开发? 随着 USB 设备的普及, USB 设备驱动开发在嵌入式系统变得越来越重要了。为了支持不同类型的硬件可以连接到 WinCE 平台上, 微软提供了具有定制接口的流接口驱动程序模型。 WinCE 的 USB 外围设备一般是使用流接口驱动程序。流接口驱动程序是指通过系统提供的文件系统 API 与应用程序交互;WinCE 内核系统会通过设备管理器来完成对流接口驱动程序的加载、卸载等管理工作; 而流接口驱动程序则会通过调用 USBD 模块提供的接口函数实现与底层 USB 设备通信。因此, 在进行 USB 设备驱动程序开发之前, 我们必须先了解 USB 设备驱动的结构和分类。(1) 主机与 USB 摄像头的通讯结构 USB 摄像头驱动程序主要是利用系统提供的底层接口配置设备和摄像头设备进行通讯。因此, WinCE 的 USB 摄像头驱动分为两层: USB Client 设备驱动程序和底层的 WinCE 函数实现层。而底层的函数层本身又由两部分组成, 即通用串行总线驱动程序(USBD) 模块和较低层的主控制器驱动程序(HCD) 模块。 HCD 负责最底层的处理, USBD 模块实现较高的 USBD 函数接口。因此, USB 摄像头驱动主要是利用 USB D 接口函数和外围 USB 摄像头打交道。一般来说,主机和 USB 外设之间的通讯是由在主机端通过 USB D 模块和 HCD 模块使用的 PIPE 访问一个通用的逻辑设备来完成。也就是说, USBD 和 HCD 是一组抽象出来用于访问 USB 设备的逻辑接口, 它们主要是负责管理 USB 外设的连接、加载、移除、数据传输和通用的配置。其中 HCD 是由主机控制和驱动的,是为 USBD 提供底层的功能访问服务。而 USBD 则是由 USB 总线驱动的,位于 HCD 的上层,是利用 HCD 的服务提供较高层次抽象的功能。由于 HCD 和 USBD 都是面向一致的逻辑设备接口,因此如果嵌入式系统中拥有多种 USB 物理外设的话, 那么就需要有唯一对应的外设驱动程序,也就是要有最上层的 PIPE 所连接的物理设备和 USB 设备驱动程序。有了对这个结构