usb工业相机之硬件设计-双缓冲-双端口sdram-fpga

在前期的产品设计中,采用cb提供的结构,68013直接操作摄像头,iic配置摄像头寄存器,板载晶振提供时钟,摄像头的pclk直接接ifclk。

这样的好处在于成本最低,

缺点是帧率有限,实测ov7725及ov7670  在raw格式下帧率最高在50fps左右,再高就有错位了。

因为fifo时钟有限值,最高是48Mhz,所以pclk不能高于48Mhz,其实在24Mhz以上就很难工作稳定了,因为无fpga控制,写入fifo数据,未按时读出,导致溢出,以至于数据丢失。。

所以像素也很难提高,目前实测最高像素为1280*1024 帧率约8fps。

于是不得不进行以下设计

1、fifo控制,写fifo的时候满判断,如果写满,则停止写入

2、而sensor是主动时钟,像素持续输出,如68013的fifo写满,则应把当前的数据缓存起来,

3、因为各自sensor像素尺寸不同,需要缓存的像素大小不确定,所以按照最大处理,不得不选择sdram,至少可以存1副完整图片

参考cb VGA—sdram例程

双端口sdram

coms写端口

68013读端口

68013 ifclk时钟=读时钟

68013的fifo满的时候,禁止读端口使能,即终止对68013发数据,待到满标志结束又继续开始

此模型实现的是异步读写,即摄像头的帧率不等于显示的帧率。显示的帧率与usb设备或电脑相关,性能好即帧率高

实测

VGA模式 16bit rgb565 帧率可达 66fps  raw格式即可达132fps,基本达到预期效果,上图为使用模拟数据测试效果。

昨天和老许折腾一天,终于搞定,感谢网友:许-sir  提供fpga程序支持!

参考硬件

http://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-2707874652.27.fvFevQ&id=43769007820

下载资料:

链接:http://pan.baidu.com/s/1sjqhcoH 密码:i609  【手册】

usb工业相机之硬件设计-双缓冲-双端口sdram-fpga的更多相关文章

  1. STM32的bulk双缓冲传输速度的讨论,硬件的坑永远填不完

    详情:http://bbs.21ic.com/forum.php?mod=viewthread&tid=109584   USB 1.0的最高12Mbps. USB 2.0的高速模式480Mb ...

  2. java的双缓冲技术

    Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色.在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理.本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单 ...

  3. SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计

    摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...

  4. C++双缓冲多线程分析大文件词频

    实习生活告一段落,我正式从一名.NET程序员转入Java阵营,不得不说刚开始用Java的东西是多么的不习惯,但是经过三个月的使用与开发,我也发现了Java的优势:不在于语言,而在于开源.这意味着有更多 ...

  5. Winform打砖块游戏制作step by step第6节---双缓冲应用

    一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---双缓冲应用 1.  主界面截图如下: 2.  什么是双 ...

  6. C#-gdi绘图,双缓冲绘图,Paint事件的触发

    一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1  绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...

  7. 陈灯WGF双缓冲绘图框架

    “木丸子童屋”,专售各类儿童玩具,价格优惠,请大家多多支持:http://shop65552598.taobao.com/ WGF(windows graphic foundation)为window ...

  8. Win32 GDI 非矩形区域剪裁,双缓冲技术

    传统的Win32通过GDI提供图形显示的功能,包括了基本的绘图功能,如画线.方块.椭圆等等,高级功能包括了多边形和Bezier的绘制.这样app就不用关心那些图形学的细节了,有点类似于UNIX上的X- ...

  9. C#-gdi画图,双缓冲画图,Paint事件的触发---ShinePans

    在使用gdi技术画图时,有时会发现图形线条不够流畅,或者在改变窗口大小时会闪烁不断的现象.(Use DoubleBuffer to solve it!)                         ...

随机推荐

  1. chrome中安装Vue调试工具vue-devtools

    一.前言 vue-devtools是一款基于浏览器的插件,用来调试vue应用.本篇文章将要总结的是如何在chrome中安装Vue的调试工具vue-devtools. 首先能想到的第一种方法就是直接在c ...

  2. hdu 1878 欧拉回路(联通<并查集> + 偶数点)

    欧拉回路Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  3. 力扣(LeetCode)Excel表列序号 个人题解

    给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...

  4. 【故障公告】docker swarm 集群问题造成新版博客后台故障

    非常抱歉,今天下午 16:55~17:05 左右,由于 docker swarm 集群的突发不稳定问题造成新版博客后台(目前处于灰度发布阶段)无法正常使用,由此给您带来麻烦,请您谅解. 出故障期时,新 ...

  5. location 优先级

    ###我只是个搬运工 规则 等号类型(=)的优先级最高.一旦匹配成功,则不再查找其他匹配项 前缀普通匹配(^~)优先级次之.不支持正则表达式.使用前缀匹配,如果有多个location匹配的话,则使用表 ...

  6. 从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发的项目

    项目简介:该项目是基于日常计算宿舍水电煤气费的需求写的,旨在从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发,使用webpack进行代码的编译.压缩和打包,并疏通 ...

  7. python主线程与子线程的结束顺序

    引用自 主线程退出对子线程的影响--YuanLi 的一段话: 对于程序来说,如果主进程在子进程还未结束时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程结束后 ...

  8. JavaScript笔记十一

    1.DOM查询 - 通过具体的元素节点来查询 - 元素.getElementsByTagName() - 通过标签名查询当前元素的指定后代元素 - 元素.childNodes - 获取当前元素的所有子 ...

  9. day 19 os模块的补充 序列化 json pickle

    os   模块 os.path.abspath  规范绝对路径 os.path.split() 把路径分成两段,第二段是一个文件或者是文件夹 os.path.dirname    取第一部分 os.p ...

  10. scrapy抓取豆瓣电影相关数据

    1. 任务分析及说明 目标网站:https://movie.douban.com/tag/#/ 抓取豆瓣电影上,中国大陆地区,相关电影数据约1000条:数据包括:电影名称.导演.主演.评分.电影类型. ...