论文部分内容阅读
随着USB Camera的广泛应用,USB Camera已经成为了叉车车载电脑的标准配置之一。目前多数叉车车载电脑都搭载WinCE 6.0嵌入式实时操作系统,但该系统没有标配USB Camera免驱动程序,用户在使用USB Camera设备之前,需要安装对应的驱动程序,更换不同种类的USB Camera时,需要重新安装新的驱动程序,与此同时,传统的USB Camera驱动,只能支持单个USB Camera设备,多个USB Camera设备无法并发工作,这给用户带来了很大的不便。本课题针对上述问题,主要研究了USB-IF组织提出的UVC协议在叉车车载电脑上的应用,并结合公司叉车车载终端中存在的不足,对Multi USB Camera驱动系统展开研究,该系统主要包括五个功能模块:UVC标准协议实现模块、UVC驱动硬件关联层模块,UVC流驱动模块,音视频转换模块和多个USB摄像头并发工作模块。具体而言,论文主要工作表现在以下几个方面:1.设计并实现了UVC标准协议实现模块。通过支持UVC1.1标准协议,实现USB总线上的Descriptor和Requests的交互过程,在此基础上,兼容所有基于UVC1.1标准协议的USB Camera设备。与传统的USB Camera相比,真正实现了即插即用。2.设计并实现了UVC驱动硬件关联模块。该模块把所有和Camera设备相关的硬件参数设置抽象出来,隐藏硬件参数相关的实现细节,提供标准的API访问接口。3.设计并实现了UVC流驱动模块。提供标准的WinCE驱动流接口,供视频应用程序通过标准API来调用。包括两个流接口CAM_XXX和PIN_XXX,在软件中通过3种对象和Camera设备进行交互:Adapter、Pin、Stream。Adapter是Camera具体设备的抽象,对应于CAM_XXX的流接口,Pin是DShow捕获视频数据时使用的设备,Stream代表流过的数据。4.设计并实现了音视频转换模块。提供了基于Directshow框架的视频格式转换模式,该模块采用主流的Filter设计模式,实现MJPEG->H.264、MJPEG->RGB等多种不同视频格式之间的实时转换、音视频分离和渲染。5.设计并实现了多个USB摄像头并发工作模块。采用虚拟设备对象,映射对应的USB摄像头硬件,通过操纵虚拟设备对象来实现对多个USB摄像头的并发管理。USB摄像头设备添加移除时,该模块通过创建删除虚拟设备对象来实现数据流同步。