EZ-USB FX2(68013) Cmos摄像头研究--各种实现方案

我觉得用USB的话,做摄像头采集算是比较高端的应用了,无论是对下位机,驱动还是上位机来说。事实上,因为我本身就是从事摄像头这个行业的,手上各种摄像头都有,又有OV68013Demo和度信的demo,于是闲暇并研究了下68013USB摄像头的方法,搞了几个月,算是有点小心得吧,记录一下,给朋友们分享,也希望各位能一起讨论。
          1】硬件、固件、驱动、上位机的选择
      硬件搭配上可以是单个68013(也是我目前正在弄的,我后面说的也是基于这个讨论的),或68013+CPLD,68013+FPGA,当然,用FPGA然后配合SRAM0204电话录音FIFO芯片肯定是几种硬件中速度最高的;
    固件就是基于FX2/FX2LP的了,基本上就用Cypress现成的固件架构,采用FX2directdrawFX2LP都可以,其实要自己写的代码很少,不超过50行;
    驱动的话,有两种选择,EZUSBCYUSB,这就牵扯到你固件PID/VID和上位机软件实现了,当然,我这里说的是直接试用Cypressofp002的驱动,你自己写驱动的话就无所谓了;
    最后是上位机,如果是采用ezusb驱动,那么上位机就是用GPD+Win api写的了,相对烦
琐点,我更喜欢的是用cyusb,上位机用cyapi实现,方便多了,而且测试的时候可以用cyconsole而不是control pane(个人不喜欢用control pane)。
       2】硬件电路,固件的实现
    先说固件,我们知道,对于摄像头来说,采集速度肯定越高越好,68013两种高速采集的模式: SlaveFIFO(我目前正在做的)
GPIF
    GPIF--我就不说了,弄的比较少,不太熟,而且一般来说是应用与模拟其他通信的,就以我目前做的SlaveFIFO来说说好了,以后的话可能再用GPIF实现吧。
    SlaveFIFO--两种方法:主要对sensorVSYNC信号,VSYNC68013 PA0引脚,HREFSLWR,采用查询或中断方式。
            查询:上位机中在数据采集线程里每次采集前发Vendor命令,固件收到后循环查询PA0也就是VSYNC信号的到来,一旦到来,立即清空FIFO,然后返回上位机开始采集数据,以此来实现帧同步。
        中断:硬件种SLWR接一与门,PA0设置为中断0HREF与一IO口相与然后接SLWR。上位机发Vendor命令,固件vendor种与门禁止,并清FIFO,开中断;一旦VSYNC到来,产生中断,在中断中使能与门,实现帧同步。这种方法的好处就是相比查询来说错帧的几率小。
      3】上位机的实现(基于VC6.0
    相对来说,如果在固件里我们只需要写不到50行代码,那么在上位机里就可能写超过1000行的代码,可见用68013进行CMOS摄像头的采集主要工作在上位机编程。
    搜索了网上所有的实现方法,大概有以下三种:
GDI(已经实现)
Directdraw(正在研究中)
Directshow
  GDI--实现应该是最简单的了,不过缺点就是占CPU,就我写的那个程序,开起来占C
PU 40%多;速度嘛,只能说一般;更严重的是GDI只能针对RGB数据,而一般来说目前摄像头用的最普遍的是raw dataYUV格式(具体的说就是YUV422),必须得转换成RGB才行。
Directdraw--为了解决用GDI显示YUV必须先软件转RGB的问题,网上搜了下,发现ddraw可以直接YUV写屏,可惜,搜遍百度,就只到那么一篇帖子,还是YUV420的,试了下,发现不行;于是开始学习ddraw,买了本Windows 游戏编程大师技巧看了一阵子,对ddraw有些了解了;再可惜,我把代码放在MFC里就不行了,目前痛苦中,正在研究如何在MFC下使用窗口模式directdraw。期待ddraw的高速硬件YUV写屏能力及低CPU占用。
Directshow--我的终极目标就是用directshow实现。其实,我最先就是开始研究directshow的,不过那时是用个手机摄像头来显示的,也就是桌面USB视频,可以直接显示UVC的。个人觉得,好处就是,directshow因为是专门的一套多媒体库,在ddshow里可以直接截取帧,设置彩,调,亮度,制式帧率等,而不用像在GDIDdraw里那样得自己编程用软件实现,做一堆复杂的工作;不过,可惜啊,貌似如果不做成UVC的话,是要自己写Filter的,才能识别自己的非标准USB视频设备--可惜本人还不会写Filter家谱管理系统。
      4】最终整个系统要达到的要求
      固件:发现度信的Demo最高速度就是500W sensor 12fpsyuv),最近公司从韩国买的一套demoalysa_queen可以达到710fpsyuv),不过是PCIE接口的(3000$,王宝连真TM贵!)。不知道如果采用68013+FPGA+SRAM/FIFO的话可不可以将速度提升到7fps以上,还是说必须要等到USB3.0的到来?
      上位机:1--实时显示采集帧率
                      2--自动识别sensor
                      3--热插拔
                      4--窗口(640×480),全屏支持
                      5--自动识别数据格式(RawBayer ,RGB555,RGB565,YUYV,YVYU,UYUV,VYUY等)
                      6--调焦算法
                      7--污点,坏点检测
                      8--AFZOOM控制

本文发布于:2024-09-21 17:34:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/337248.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:上位   固件   采集   可惜   摄像头
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议