WindowsCEnetUSB摄像头驱动开发-Read.PPT

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WindowsCEnetUSB摄像头驱动开发-Read

Windows CE.net USB 摄像头驱动开发(初步) 型号:Ominivision OV511+ (USB-Camera Bridge) 摄像头型号 网眼 Webeye 2000 VID 0x05A9 PID 0xA511 输出格式:RAW-YUV等 USB驱动程序的功能 1.通过对Windows CE.net提供的USBD等函数的调用,控制设备以及读取设备数据; 2.外加的摄像头做成流接口驱动比较方便,驱动程序要向系统注册设备接口,和应用程序交互。 OV511+芯片的控制 依据OV511的Datasheet,里面有10h到49h这样57个寄存器,通过对这些积存器赋值,就能够对Camera Interface、DRAM Interface和ISO FIFO等进行设置。 通过端点0进行控制传输,就可以读写这些寄存器,在Linux下,使用usb_control_msg函数(无URB的传输)。后面将讲解如何在Windows CE.net下实现。 /* Write an OV51x register */ static int reg_w(struct usb_ov511 *ov, unsigned char reg, unsigned char value) { … rc = usb_control_msg(ov-dev,usb_sndctrlpipe(ov-dev, 0),(ov-bclass == BCL_OV518)?1:2 /* REG_IO */, USB_TYPE_VENDOR | USB_RECIP_DEVICE,0, (__u16)reg, ov-cbuf[0], 1, HZ); … 开发工具 测试系统为Windows CE.net 4.2,驱动程序形式为流接口驱动,基本框架是一个dll动态连接库。 使用Embedded Visual C++ 4.0或者Platform Builder 4.2都可以编译,推荐使用EVC,EVC用起来比较快,只要将调用USB函数需要的头文件以及Lib文件的路径设置好就可以。 开发板的硬件配置为Samsung ARM9 S3C2410,故连接的Lib为ArmV4Release版本的usbclient.lib。 流接口USB驱动程序 步骤: 1.建立一个WCE Dynamic-Link Library; 2.书写一个Export def文件(不是必要的,有这个可以保证符号的导出),输出各个驱动需要的函数符号; 3.依据USB驱动加载的流程,添加完成各个函数,并进行测试…… 第一部分 使驱动程序能够被加载 这部分,将填写 USBInstallDriver USBDeviceAttach USBUnInstallDriver CAM_Init CAM_Deinit 这些函数正确填写之后,驱动程序就可以加载了。 Windows CE.net下 流接口USB驱动程序加载的流程 1.设备插入后,系统在取得VID/PID后将自动在注册表中寻找是否有这一项,如果没有,则出现提示输入设备名称对话框; 2. 依据注册表或者输入名称找到驱动程序dll文件后,将首先调用USBInstallDriver函数,该函数使用USBD.dll中的函数注册设备,并依据VID/PID设置注册表项,这样在这个项不丢失的时候,下次插入将能够自动找到,如果这个函数的VID/PID和实际设备不符,将返回失败; 3.USBInstallDriver成功之后,系统才调用USBDeviceAttach函数; Windows CE.net下 流接口USB驱动程序加载的流程 4.对于USB设备,在USBDeviceAttach函数中,主要进行3个工作:(1)USB设备接口配置的枚举和保存,备后面传输工作使用;(2)调用ActiveDevice函数激活一个流接口,使应用程序可以和驱动交互;(3)调用RegisterNotificationRoutine函数注册一个设备状态回调函数,这里被注册的函数的主要功能是在设备移除时通知驱动程序停止设备,释放占用的资源; 5.ActiveDevice函数调用的时候,依据参数lpszDevKey找

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档