zoukankan      html  css  js  c++  java
  • 基于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的连接图

      

      

    ************************************************************************************************

    姑且先看到这里

  • 相关阅读:
    ROS入门笔记(三):二进制包与源代码包
    zsh 使用通配符功能
    Linux显示行号设置
    Linux、Ubuntu、CentOS安装和配置zsh
    Python中出现 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 12-13: truncated UXXXXXXXX escape
    Python数据分析:pandas玩转Excel(三)
    【WP8】ScrollViewer滑动到底触发器(ListBox失效)
    【WP8】扩展CM的INavigationService方法
    【WP8】仿QQ提示消息
    【WP8】键盘弹出时控制Frame位置
  • 原文地址:https://www.cnblogs.com/qidaiymm/p/4894921.html
Copyright © 2011-2022 走看看