usb工业相机之硬件设计-双缓冲-双端口sdram-fpga
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的更多相关文章
- STM32的bulk双缓冲传输速度的讨论,硬件的坑永远填不完
详情:http://bbs.21ic.com/forum.php?mod=viewthread&tid=109584 USB 1.0的最高12Mbps. USB 2.0的高速模式480Mb ...
- java的双缓冲技术
Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色.在Java游戏编程和动画编程中最常见的就是对于屏幕闪烁的处理.本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——1.stm32主控硬件设计
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- C++双缓冲多线程分析大文件词频
实习生活告一段落,我正式从一名.NET程序员转入Java阵营,不得不说刚开始用Java的东西是多么的不习惯,但是经过三个月的使用与开发,我也发现了Java的优势:不在于语言,而在于开源.这意味着有更多 ...
- Winform打砖块游戏制作step by step第6节---双缓冲应用
一 引子 为了让更多的编程初学者,轻松愉快地掌握面向对象的思考方法,对象继承和多态的妙用,故推出此系列随笔,还望大家多多支持. 二 本节内容---双缓冲应用 1. 主界面截图如下: 2. 什么是双 ...
- C#-gdi绘图,双缓冲绘图,Paint事件的触发
一. 画面闪烁问题与双缓冲技术 1.1 导致画面闪烁的关键原因分析: 1 绘制窗口由于大小位置状态改变进行重绘操作时 绘图窗口内容或大小每改变一次,都要调用Paint事件进行重绘操作,该操作会使画面 ...
- 陈灯WGF双缓冲绘图框架
“木丸子童屋”,专售各类儿童玩具,价格优惠,请大家多多支持:http://shop65552598.taobao.com/ WGF(windows graphic foundation)为window ...
- Win32 GDI 非矩形区域剪裁,双缓冲技术
传统的Win32通过GDI提供图形显示的功能,包括了基本的绘图功能,如画线.方块.椭圆等等,高级功能包括了多边形和Bezier的绘制.这样app就不用关心那些图形学的细节了,有点类似于UNIX上的X- ...
- C#-gdi画图,双缓冲画图,Paint事件的触发---ShinePans
在使用gdi技术画图时,有时会发现图形线条不够流畅,或者在改变窗口大小时会闪烁不断的现象.(Use DoubleBuffer to solve it!) ...
随机推荐
- MyBatis动态语句if与choose的区别
if(通过“title”和“author”两个参数进行可选搜索): <select id="findActiveBlogLike" resultType="Blog ...
- 编译spark支持thriftserver
cdh默认把spark的spark-sql以及hive-thriftserver给弃用掉了,想玩玩thriftserver,于是自己重新编译一个 官网参考: http://spark.apache.o ...
- ubuntukylin16.04LTS(乌班图麒麟版长期支持版,并非银河麒麟)安装体验
最近,国产银河麒麟版在政府部门推广使用.我有幸接触了,感觉还是不错的.这次政府软件正版化整改中,也列入了windows和银河麒麟的选项.我想试安装一下,可是没找到.就近找了它的类似系统ubuntuky ...
- SpringMvc demo示例及源码详细分析
三层架构介绍 我们的开发架构一般都是基于两种形式,一种C/S架构,也就是客户端/服务器,另一种是B/S架构,也就是浏览器/服务器.在JavaEE开发中,几乎全部都是基于B/S架构的开发.那么在B/S架 ...
- HDFS之DataNode
DataNode工作机制 1)一个数据块在datanode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳. 2)DataNode启动后 ...
- react -Route exact Redirect
exact是Route下的一个属性,react路由会匹配到所有能匹配到的路由组件,exact能够使得路由的匹配更严格一些(exact的值为bool型). <Route path='/' c ...
- kali linux 修改更新源和更新命令
1.修改sources.list源文件: vim /etc/apt/sources.list #aliyun 阿里云 deb http://mirrors.aliyun.com/kali kali-r ...
- 【2018寒假集训 Day1】【位运算】桐桐的运输方案
桐桐的运输方案(transp) [问题描述] 桐桐有 N 件货物需要运送到目的地,它们的重量和价值分别记为: 重量:W1,W2,…,Wn: 价值:V1,V2,…,Vn: 已知某辆货车的最大载货量为 X ...
- sqlserver2008 R2 安装以后没有 sql server profiler
一些人在安装好SQL server 2008 r2或者从empress升级到enterprise或者开发版之后没有SQL server profiler功能,如果需要加装则应该找到自己的安装文件(部分 ...
- 【Android - 自定义View】之MeasureSpec简介
MeasureSpec是View测量过程中的一个重要的类,它被用来将View的尺寸规格(SpecSize)和尺寸模式(SpecMode)封装在一起,并提供打包和解包的方法. MeasureSpec虽然 ...