首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Linux系统下USB摄像头驱动开发 03

Linux系统下USB摄像头驱动开发 03

设定“图像采集好”旗语。户态程序只需要发出一次“获得图像”请求,就可以通过阻塞等待该旗语,不断获得图像。在采集结束后,再次通过新的参数,让驱动停止缓冲即可。CPU工作流程图如图3。

       注意到图2、图3,两种“判断有无新请求”的不同,即可发现新方法假定一直有请求,因此不丢弃每个URB带回的数据,轮流保存在两个帧缓冲内。
   
       V4L已经作为约定俗成的标准被内核支持,因此如果使用全新的参数,工作量将相当巨大,并且不能和现有的应用程序兼容。考虑到现有的图像采集应用程序使用VIDIOCMCAPTURE作为参数,并提供帧序号,要求驱动将图像保存到指定序号的帧缓冲内。由于驱动通常仅仅提供几帧缓冲,因此该序号不会大于某个数字,如10。因此可以继续使用VIDIOCMCAPTURE参数,搭配较大的序号来表示新增的功能,例如用10000和10001来分别表示开始和停止缓冲图像数据的要求。驱动在收到VIDIOCMCAPTURE要求后,检查这个序号。如果小于10000,则按照正常的方法处理,否则按照改进方法。这种思路可以有效解决兼容性问题。

       2.3  实验结果
   
       在赛扬366、USB1.1接口的计算机平台上,采用上述不间断采集改进V4L标准,配合双URB、双帧缓冲等方法后,帧速提高两倍有余,有效数据传输速度达960KB/s,接近等时传输方式下USB总线的带宽极限。
返回列表