(完结项目)fpga采集双路CCD摄像头1000帧图像上传到上位机显示
基于FPGA飓风4代的线阵CCD实时图像采集系统 系统采用线阵CCD TCD2252D作为图像传感器,使用CCD专用信号处理芯片AD9822(14bit)处理CCD传输过来的信号数据,将数据存在SDRAM乒乓操作实现同步收发数据,利用usb68013作为usb传输芯片接口。经过实验室不完全屏蔽测试,采集10000帧噪声影响最大为0.6mv
话不多说直接上图,示波器采的是原样的数据,而上位机显示的是已经采集好并且解析出来的。
整个工作流程是这样的, Fpga通过一定的时序采集CCD的图像,将其暂存在sdram中,在一幅图像前面插入流水号和帧头,上位机通过USB2.0接收板卡上面的数据,并且经过校验流水号和帧头无误后,将图像数据显示出来。
暂时由于硬件受限做到1秒采集1000帧(已经达到美国某科研实验室他们仪器的水平),噪声波动比较小,0.5毫伏级别,可通过上位机在线设置采集频率
硬件成本只要500多块钱,比某实验室的仪器卖5w便宜多了
心酸的fpga调试过程经验总结:仿真一定要做好,其中设置的参数一定要有串口和指示灯来看,通过串口要可进行设置,不然工程大了一遍又一遍编译费时间还不容易找到问题。
心酸的调试数据问题数据总结:
1毛刺问题:环境干扰, AD的程序不对,线的干扰,板子上的干扰,ad输入电容击穿,杜邦线传输效率没那么高, USB线干扰,上位机程序没写对,调试时候的焊锡多拖动了一点
2突然之间数据饱和的问题:同毛刺问题一样
(完结项目)fpga采集双路CCD摄像头1000帧图像上传到上位机显示相关推荐
- 基于FPGA的双路低频信号发生器设计
基于FPGA的双路低频信号发生器设计 系统结构框 本设计是以Altera公司的可编程芯片做载体,运用Verilog作为软件设计工具,从而实现DDS原理,即信号发生器的核心思想.再加上信号发生器的硬件电 ...
- (一)CCD传感器1000帧(可调)采集,fpga主控,sdram存储 68013usb2.0传输到上位机保存显示:项目介绍
这是一个关于ccd图像采集到上位机的项目,从设计pcb到开发上位机,开发了很久.期间遇到了各种大大小小的坑,特此记录一下. 功能说明: 自己设置的帧率,通过上位机下发到fpga中,fpga控制ccd采 ...
- (二)CCD传感器1000帧(可调)采集,fpga主控,sdram存储 68013usb2.0传输到上位机保存显示:fpga逻辑程序
fpga这部分是花了大部分时间调试的,总结出来:比较难调试,调试方式单一 概述 fpga控制ccd传感器和ad转换芯片,从而获得ccd上所有阵列的电压数据,之后将数据存储在sdram中,然后控制680 ...
- FPGA驱动FT601实现USB3.0相机 OV5640视频采集 提供2套工程源码和QT上位机源码
目录 1.前言 2.FT601芯片解读和时序分析 FT601功能和硬件电路 FT601读时序解读 FT601写时序解读 3.我这儿的 FT601 USB3.0通信方案 4.vivado工程1--彩条视 ...
- 基于STM32的四旋翼无人机项目(二):MPU6050姿态解算(含上位机3D姿态显示教学)
前言:本文为手把手教学飞控核心知识点之一的姿态解算--MPU6050 姿态解算(飞控专栏第2篇).项目中飞行器使用 MPU6050 传感器对飞行器的姿态进行解算(四元数方法),搭配设计的卡尔曼滤波器与 ...
- Zigbee无线传感网 CC2530+DHT11DS18B20 温湿度采集 串口上位机显示
文章目录 一.介绍 二.上位机数据采集 (一)采集数据 (二)拓扑结构 (三)新节点加入网络 (四)节点事件 三.实现分析 (一)配置文件 (二)发送 (三)短地址和数据获取 (四)数据包分析 (五) ...
- stm32摄像头串口传输上位机显示
stm32:正点原子精英版STM32F103ZET6 摄像头:ov7725 设备实拍; 实验环境: 发送RGB主代码,分大小端模式 /* ******************************* ...
- (五)CCD传感器1000帧fpga-68013-usb2.0传输:verilog程序部分quartus编译
整个工程中,一共编译了这么些.v文件,相对应的bdf很复杂,但是RTL视图很清晰 配置参数: fpga的fifo用了4096 乘 2个,分别用作sdram的输入和输出,sdram=16M ccd的工作 ...
- (四)CCD传感器1000帧fpga-68013-usb2.0传输:实际测试数据
测试数据部分 1产生数据: 由于fpga采用的是verilog硬件语言,只要ccd那里时序没问题,数据一定是可靠的. 当然了,如果硬件上有干扰另当别论,在实际测试时候,由于供电的纹波以及高频振荡,偶尔 ...
最新文章
- python代码实现二叉树的序列化和反序列化
- 咕泡-装饰器 decorator 设计模式笔记
- android 分支管理,Android Studio git使用,包括协同开发,分支管理。
- mysql冷备增量备份,MySQL备份与恢复之真实环境使用冷备(2)
- CodeForces 658C Bear and Forgotten Tree 3(构造)
- ddr5内存上市时间_辣评烩:SK海力士首发DDR5内存:频率冲上5600MHz
- ruby on rails 站点
- Fragment结合nineold包实现滑动tab页
- linux文件删除恢复
- Apache日志配置详解(rotatelogs LogFormat)
- SpringBoot中的文件读取
- sql语句的插入方式总结
- C语言——设置flag的优点
- signature=f81ed620b6d6e6cb4bbe5a4d79d445b8,Lubricating compositions
- 程序员遭遇精神内耗该如何“自救”?
- 让物体沿椭圆轨道运动
- Delphi Thread 多线程编程(6)
- [报错]RuntimeError: expected scalar type Double but found Float(torch)
- 2021成都好久查询高考成绩,2021年成都各高中高考成绩排名及放榜最新消息
- 从零开始免费搭建自己的博客(一)——本地搭建hexo框架