基于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 ...
随机推荐
- IOS iphone 4inch上应用没有全屏,上下有黑边(转)
在编写IOS应用程序的过程中,我一直都是使用iPhone Retina(3.5-inch)模拟器测试的,一切显示正常,切图如下: 我在应用开发中,采用的是纯代码实现.公司提供了一部iPhone4s,我 ...
- Linux 网络设备驱动程序设计(2)
二.回环网卡的程序设计 /*************************** *******回环网卡的驱动程序*** ***********吕晓宁*********** *********2015 ...
- Matlab之文件读写
读文件: (0)自己添加 你可以将txt的一些文本数据直接拷贝到matlab窗口,然后保存为mat文件,下次就可以直接采用load函数了. (1)Load load 从Matlab的数据文件.mat ...
- AspNetPager学习使用1
今天开始研究使用AspNetPager 首先贴上下载链接:http://www.webdiyer.com/aspnetpager/downloads/ 在下载链接中,作者已经提供了使用方法.在这里,本 ...
- CSS制作一个简单网页的下拉导航栏
网页下拉导航栏的制作 网页下拉导航栏的制作很简单,只需要运用好CSS中伪选择器. 首先说明几个简单的伪选择器(比较常用的): link:连接平常的状态 visited:连接被访问过之后 hover:鼠 ...
- JS正则表达式简单总结
正则表达式定义 JavaScript中的正则表达式用RegExp 对象表示,可以使用RegExp ()构造函数来创建RegExp对象,不过RegExp 对象更多的是通过一种特殊的直接量愈发来创建. 例 ...
- SVG之初识
什么是SVG? 也许现在很多人都听说过SVG的人比较多,但不一定了解什么是SVG:SVG(Scalable Vector Graphics 一大串看不懂的英文)可伸缩矢量图形,它是用XML格式来定义用 ...
- JavaScript之六种排序法
1.冒泡排序循环的最大值从length递减每次循环只能排好最后一个,然后递减到第一个 function bubbleSort(){ var changedData = new Array(); var ...
- c# js调用AjaxPro方法出错解析
公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...
- PC上面的蓝牙的通信(C#)
添加引用InTheHand.Net.Personal.dll 首先创建一个蓝牙类 class LanYa { public string blueName { get; set; } //l蓝牙名字 ...