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

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

文章摘要:WinCE5.0的USB Camera流接口驱动开发WinCE5.0是一个32位、多任务、多线程的实时嵌入式操作系统。USB Camera 以其良好的性能和低廉的价格得到广泛的应用,同时因其灵活、方便的特性,易于集成到嵌入式系统中。通过采用USB Camera可以在WinCE5.0下方便地得到实时图像。但是由于嵌入式硬件环境的多样性以及WinCE5.0对USB设备驱动开发只提供了一些底层支持,摄像头厂商尚未提供WinCE5.0下USB摄像头的驱动,因此开发出WinCE5.0下USB摄像头驱动具有实际的意义和价值。本文正是针对这一情况,对WinCE5.0下USB设备驱动开发进行研究,并设计出基于

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

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

WinCE5.0是一个32位、多任务、多线程的实时嵌入式操作系统。USB Camera 以其良好的性能和低廉的价格得到广泛的应用,同时因其灵活、方便的特性,易于集成到嵌入式系统中。通过采用USB Camera可以在WinCE5.0下方便地得到实时图像。但是由于嵌入式硬件环境的多样性以及WinCE5.0对USB设备驱动开发只提供了一些底层支持,摄像头厂商尚未提供WinCE5.0下USB摄像头的驱动,因此开发出WinCE5.0下USB摄像头驱动具有实际的意义和价值。本文正是针对这一情况,对WinCE5.0下USB设备驱动开发进行研究,并设计出基于流接口驱动模型的USB摄像头驱动程序。现在已经开发出来的驱动适用于Zc030x PLUS这一系列的摄像头。Samstmg 2410为实验的硬件平台。

  1 WinCE5.0下USB总线驱动框架

  USB系统由USB主机、一个或多个USB设备和物理总线组成。主机上又分两层:较高的包含USB设备驱动程序的软件层和主机控制器硬件层,也称作“适配层”。主机的主要任务是控制对USB设备的双向数据传输。物理总线是一组USB电缆,用来将控制器和外围设备连接起来。WinCE5.0的USB系统软件由两层组成:USB设备驱动程序层和底层的由WinCE5.0实现的USB函数层。

  USB设备驱动程序使用USB函数来建立与它们所控制设备的连接,并对这些设备进行配置和通信。较低的USB函数层本身又由两部分组成——较高的通用串行总线驱动程序(USBD)模块和较低的主控制器驱动程序(HCD)模块。HCD提供了抽象的主机控制器,且对主机控制器所见到的USB系统的数据传输进行抽象。USBD提供一个抽象的设备,且对USBD客户和USB设备功能部件之间的数据传输进行抽象。USB设备驱动程序使用USBD接口函数与外围设备进行通信。

  IHV和USB设备制造商利用USBD提供的函数来实现USB设备的驱动程序。OEM负责给基于WinCE的平台提供HCD模块,这样相应的硬件才能与USBD模块进行交互。图1说明了与主机的USB硬件和外围设备相对应的软件的各个层。

与主机的USB硬件和外围设备相对应的软件的各个层

点击看原图


  2 WinCE5.0下流驱动模型

  基于WinCE5.0平台的两种专用的驱动模型为:本机设备驱动程序和流接口驱动程序。本机设备驱动程序适合于集成到WinCE 5.0 平台的设备;而后者则是一般类型的设备驱动程序,适用于大部分外围设备,如调制解调器、打印机等。对大多数USB外围设备来说,适用于采用流接口驱动程序模型来开发驱动程序。

  流接口驱动程序是一种可以定制接口的驱动模型,一般由设备管理器负责管理。它把设备管理器和应用程序的命令转换成所控设备的适当动作所需信息。流接口驱动程序需要实现一组固定的流接口函数,供给WinCE5.0系统内核使用。

USB设备的流接口驱动程序和WinCE5.0系统其他部件间的关系如图2所示。流接口驱动程序通过系统提供的文件系统API与应用程序交互;而系统通过设备管理器完成对流接口驱动程序的加载、卸载等管理工作;流接口驱动程序通过调用USBD模块提供的接口函数实现与底层USB设备通信。

USB设备的流接口驱动程序和WinCE5

点击看原图

[1] [2]  下一页


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