基于FPGA的线阵CCD图像测量系统研究——笔记
本文是对基于FPGA的线阵CCD图像测量系统研究(作者:高尚)的阅读笔记
第一章绪论
1、 读读看
读了前面的摘要依然没有看懂作者要做什么。接着往下读。。。。终于看到了一个字眼“基于机器视觉的图像测量技术”,看来我可以在这个方面找找文献了。不同于大多数光电器件以电流或者电压为传感信号,CCD是以电荷为信号把一副空余分布的图像变为一列按时间域离散分布的电荷信号。非接触式的快速精确测量,我们的图像处理就是非接触式的,看来很是先进的样子。今天又长见识SOPC是什么system on programmable chip,即片上可编程系统。
2、现如今CCD成像方面的应用
1995年华中理工大学罗志勇等人对CCD检测冷轧钢板进行研究,采用多台面阵CCD相机进行图像检测处理,与此同时哈尔滨工业大学、北京理工大学、上海宝钢集团也开展了CCD图像检测领域的研究工作;天津大学李智等人对FPGA平台下的面阵CCD动态光谱数据采集与预处理进行了研究;基于CCD图像测量技术的农作物色选发展势头迅猛,欧美日韩以及国内多家企业都有成熟的产品出现,TomPearson采用FPGA技术研究了色选硬件实现,哈尔滨工程大学胡明明等进行了基于彩色线阵CCD的大米色选机研究。在CCD测速方面,国外研究起步较早,德国ASTECH公司采用线阵CCD研制成功的MSE-V280系列白光测速仪测量目标速度可达50m/s。
3、主要研究内容
1、针对电机测速要求分析陷阵CCD的技术指标,给出选型。
2、结合CCD芯片使用介绍,我们研究了CCD输出信号的CDS(相关双采用)处理和AD转换。
3、基于FPGA的硬件测量电路板,研究了FPGA实现FIFO存储。
4、基于FPGA的实现自相关测速算法FFT运算等功能。并针对测速目的着重分析了自相关测速算法的原理,结合系统对实时性的要求,改进了FFT计算处理方式。
5、研究算法的VerilogHDL实现,并搭建了光学测量平台进行验证。
6、对研究内容进行总结,对眼就不足进行分析,对相关领域寄予厚望。
第二章 线阵CCD图像测量系统总体方案
1、CCD图像测量系统的组成和工作过程
1、整个系统需要在稳定的电源模块下工作。对电源是很重要的一部分,还有就是温度的控制对系统也是很重要,一定要加大散热。
2、在CCD和处理器只见需要有相应的电路及器件进行信号电平转换、滤波降噪、AD转换等,在信号处理器外围需要有相应的存储芯片进行数据缓存。如果系统有某些特殊要求,则还需要铺助于相应的电路模块。
3、以FPGA作为主处理芯片,使用CCD采集图像,通过CCD拍摄安装在被测电机转轴上的测量转盘来间接获取电机(小型直流无刷电机,最高1000r/min)转速数据。
4、自相关图像算法的事只是线阵CCD对运动物体连续拍摄两幅图像,然后对两幅图像相互重叠部分进行自相关计算,由此得到两幅图相对应移动的像素数,再根据每次拍摄的像素数和距离等已知条件,由图像移动的像素及可计算出图像所拍摄物体移动的距离,进而可以计算出运动物体的速度。
5、CCD驱动器由FPGA实现,也就是CCD是有FPGA发出的时序驱动的。对CCD的输出信号处理选用CCD专用前端处理芯片实现,该芯片在FPGA生成的时钟信号驱动下对CCD输出的模拟信号进行相关双采样(CDS)和模数转换(ADC),所得数字信号传至FPGA。在FPGA内部搭建FIFO缓冲器进行数据缓存,这样可以避免发生数据错误。(这里告诉我们,CCD的什么数据处理已经就绪了,我们需要做的就是驱动CCD和读取CCD图像)
2、器件选型
1、CCD原理
CCD是以电荷作为传输信号,其基本功能是对电荷的存储和转移。MOS结构具有存储电荷的能力,记住就OK了。这样我们就可以在光电栅极上持续施加正电压从而在各个MOS电容器下生成势阱,当足够强度的光照射到光敏元件上,就会产生电荷,而电荷就会存储到势阱中。这样我们根据势阱电荷的多少来确定图像的像素。由于光电二极管对光更加敏感,也就是说跟容易产生电荷,这样就替代了MOS电容器了。常用的方法是采用选通电荷积分器结构来输出CCD信号,那么不同的模拟量电荷就被读取出来了。(这里是引用天津大学的王友庆老师的《CCD应用技术》,感觉还是老教授的书比较好)。
2、CCD参数
1)电荷转移效率
2)分辨率
3)暗电流:在无光或者其他方式对CCD注入电荷的情况下,CCD会产生电荷,而我们希望这时不产生电荷。
4)输出饱和特性
5)灵敏度:光敏单元在曝光时输出的电压信号幅度。
6)光谱响应特性:CCD对不同波长的光响应能力
7)动态范围:CCD器件像元的势阱中能够存储的电荷量大小与噪声的电荷之比。
3、CCD选型
1)像素
选用可见光范围内相应良好的CCD器件。目前像元素区分有256、512、1024、2048、3648、5000、7500等数种,低于1024像素的基本为较早期的产品,而大于5000像素的产品常用于大幅面扫描仪使用,结合课堂具体内容从扫描精度和速度两方面考虑,可以选用1024或2048像素的线阵CCD。
2)像元尺寸
在此基础上也可以确定CCD像元尺寸约为7um-14um。
3)支持最高驱动频率
500KHz、1MHz、2Mhz、5MHz、20MHz、40MHz、100MHz,CCD支持的驱动频率越高则单帧扫描的速度越快,但对系统的要求也很高。
4)参数对比

本课题在像素点数和扫描频率满足的前提下,我们更侧重于频率高的,因为像素数越多我们的芯片压力就会越大,而频率越高我们的芯片就会有跟多的时间来处理计算。

4、FPGA选型
1、FPGA简介
每一个LE(logic element)内部都有一个LUT(look up table)这里面存放了这一个LE的所有可能发生的情况,这样当某一个情况到来的时候他就会自己查找出来要发生什么情况。
2、EP2C35介绍
最高存取速度26MHz。内部包含若干嵌入式乘法器和PLL单元,PLL可提供先进的始终管理能力如频率合成、可编程相移、可编程占空比等。
3、NiosII嵌入式软核处理器。
NiosII是针对FPGA优化了的嵌入式软核处理器方案,可以非常容易的实现各种外设的扩展。例如何以在FPGA内部集成DSP软核心,可以实现强大的逻辑计算能力。FPGA内部嵌入CPU或者DSP等软处理器,使得FPGA在一定程度上具备了实现软硬件联合系统的能力,FPGA正在成为SPOC的高效设计平台。
5、ADC选择及介绍
1、CCD传出的图像信号是模拟的,而FPGA需要读取的信息是数字的,所以我们需要一个ADC进行模拟数字转换。
2、ADC工作步骤:采样、保持、量化、编码。
1)采样:采样是对时间上两虚的输入模拟量进行间接取样,是指转换成脉冲序列,脉冲幅度由出入模拟量的幅度值决定。
2)保持:是对上一步得到的模拟量进行暂存。
3)量化:就是把前面所得到的数值上连续而时间上离散的模拟电压采样值用等同于多少个基本量化点评的个数来表示。量化后得到的是时间和数字都离散的的数字值。
4)编码:把已经量化好的模拟数值用B码、BCD码,用4位二进制数来表示1位十进制数的一种编码,等方式来表示以便于后续应用。
3、AD转换器的主要指标:分辨率(resolution)、量化误差(quantizing error)、转换精度(conversion rate)、采样时间(sampling time)、采样速度(sampling rate)和电源抑制比(power supply rejection ratio)等。其中分辨率又称为转换精度。
4、低速ADC转换时间通常是毫秒级,高速ADC则可以达到纳秒级。
5、采用ADI公司的AD9945,这是专用图像处理芯片。采样频率最高40MHz

6、系统工作流程


7、TCD1209D型线阵CCD供电:
供电是12V,各功能引脚高低点电平典型值为高电平5V,低电平0V。FPGA常规IO口输出电压值是3.3V,这是不行的,这里CCD驱动最低是4.5V,因此需要使用外围电路提高FPGA输出信号的驱动能力和负载能力,使用的是飞利浦公司74HC04型逻辑芯片来实现这一目的。

8、ADC与CCD的连接图

************************************************************************************************
姑且先看到这里
基于FPGA的线阵CCD图像测量系统研究——笔记的更多相关文章
- 基于FPGA的线阵CCD实时图像采集系统
基于FPGA的线阵CCD实时图像采集系统 2015年微型机与应用第13期 作者:章金敏,张 菁,陈梦苇2016/2/8 20:52:00 关键词: 实时采集 电荷耦合器件 现场可编程逻辑器件 信号处理 ...
- 东芝线阵CCD芯片TCD1305DG驱动时序设计
最近在做微型光谱仪,用到了东芝的CCD芯片TCD1305DG,该芯片是单行3648像素,输出信号是时间上离散的模拟信号,典型输出速率为0.5M,即每2000ns输出一个像素值(模拟信号),芯片内部集成 ...
- 基于FPGA的Sobel边缘检测的实现
前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Can ...
- 基于FPGA的图像显示
基于FPGA的图像显示 作者:lee神 这几天一直在调试FPGA的图像显示系统,今天终于成功,图像不在闪烁,也不再边框缺失. 基于FPGA的图像处理的第一课应该是基于FPGA的图像显示,只有图像正常显 ...
- 【转】基于FPGA的Sobel边缘检测的实现
前面我们实现了使用PC端上位机串口发送图像数据到VGA显示,通过MATLAB处理的图像数据直接是灰度图像,后面我们在此基础上修改,从而实现,基于FPGA的动态图片的Sobel边缘检测.中值滤波.Can ...
- 基于FPGA的图像开发平台 其他摄像头附件说明(OV5642 OV9655)
基于FPGA的图像开发平台 其他摄像头附件说明 FPGA_VIP_V101 编者 奇迹再现 个人博客 http://www.cnblogs.com/ccjt/ 联系邮箱 Shenyae86@163.c ...
- 基于FPGA的Uart接收图像数据至VGA显示
系统框图 前面我们设计了基于FPGA的静态图片显示,接下来我们来做做基于FPGA的动态图片显示,本实验内容为:由PC端上位机软件通过串口发送一幅图像数据至FPGA,FPGA内部将图像数据存储,最后扫描 ...
- 基于FPGA的RGB图像转灰度图像算法实现
一.前言 最近学习牟新刚编著<基于FPGA的数字图像处理原理及应用>的第六章直方图操作,由于需要将捕获的图像转换为灰度图像,因此在之前代码的基础上加入了RGB图像转灰度图像的算法实现. 2 ...
- 线阵CCD-TCD1209采集系统&驱动设计
关键字:CPLD+AD9945+TCD1209+CY7C68013A TCD1209,一款经典的CCD线阵单色传感器.本次设计一款基于usb2.0高速采集图像. CPLD+AD9945+TCD1209 ...
随机推荐
- 剑指Offer35 两个链表第一个公共结点
/************************************************************************* > File Name: 35_FirstC ...
- CentOS里下载百度网盘 / 360 网盘资源的方法
wget -c --referer=引用地址 -O 文件名 "真实下载地址" 例如,我下载资源原在的页面为http://pan.baidu.com/s/1cfJXZ ,实际下载地址 ...
- Oracle数据库作业-2 添加主键 外键
一.在表student中添加主键sno
- 根据不同的分辨率选择不同的css文件
<SCRIPT language=javascript> <!-- Begin if (screen.width == 640) { document.write('<link ...
- C#垃圾回收机制
C#属于托管的面相对象的语言,内存回收机制就是一个代表, C#有一套类似"全自动"的垃圾回收机制,也就是虚拟机会自动来判断执行内存的回收, 我们一般常用的Dispose(),Usi ...
- MySQL之建设工程监管信息系统
--创建SelfStudy数据库 CREATE DATABASE ConstructionDB ON PRIMARY --创建主数据库文件 ( NAME=' ConstructionDB', --数据 ...
- 6步图文教你优化myeclipse2014
MyEclipse 2014优化速度方案仍然主要有这么几个方面:去除无需加载的模块.取消冗余的配置.去除不必要的检查.关闭更新. 第一步: 去除不需要加载的模块 一个系统20%的功能往往能够满足80% ...
- 关于document.write
document.write的用处 document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中 ...
- 从0开始学习react(一)
本人前端小菜鸡一枚,因为公司要重构网站,打算用用react,毕竟一切为了学习(装B)嘛!!! 在学习react之前,看了许多资料,博客,官方文档之类的,可我这记吃不记打的记性,还是需要在这里记录一下, ...
- IEEE 802.15.4协议学习之物理层
在详细讲述IEEE 802.15.4协议之前,谈谈自己这两个星期看协议过程中的一点心得,或者是收获吧. 看协议文档,一定要看有书签的,边看边在旁边做些备注,以便于后期整理.对于协议层次相关的,最好在纸 ...