0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能

电子设计 来源:郭婷 作者:电子设计 2019-04-29 08:22 次阅读

引言

工业生产自动化系统中,通过计算机视觉和图像处理技术来实现产品的质量监测和控制,已逐渐成为一种有效的应用技术。线阵CCD 图像传感器广泛地应用于产品尺寸测量和分类、非接触尺寸测量、条形码、形态识别等众多领域。在图像检测系统中,应具备一个高速的子图像提取和输出模块,本文采用FPGA 器件EP3C25F256C8 和CCD 线阵图像传感器RL1024P,实现线阵CCD 图像检测系统中的子图像提取和输出功能。

1 子图像提取模块的设计

子图像提取模块的功能可描述为:采用FPGA 器件实现,根据串行输入的黑白图像和同步信号,提取该图像中设定尺寸大小的子图像。假设输入图像大小为i * j,某一像素点的坐标位置为(X,Y),要取出子图像的大小为m * n,则用c 代码描述为:for(b=0;b

根据系统设计的要求,线阵CCD 图像采集模块采用串行的方式输出1×1024 像素的一行图像,子图像提取模块接收该图像数据、缓冲、再输出16×16 像素的子图像。子图像提取模块的外部端口,如图1 所示。主要信号有:像素同步时钟信号CCD_CLK、像素数据CCD_DATA、当前输入像素的坐标CCD_ADDR[90] ;另外,N_RST 和SYS_CLK 为系统提供的复位信号和处理时钟信号。其中,每个CCD_CLK 的上升沿出现时CCD_DATA 像素有效,且该像素所在的位置为CCD_ADDR[90] 值。

采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能

为了实现每个CCD_CLK 周期内均输出一个子图像,SYS_CLK应该为CCD_CLK 的10 倍左右。

本文采用“图像转置缓冲区”的方法来实现子图像提取模块。“图像转置缓冲区”是一个按行写入(更新)、按列读出的一个RAM 缓冲区。在FPGA 内部设置一个1024 个单元的RAM 缓冲区,每个单元的位宽为16bits.线阵CCD 采集模块输出的线阵图像与子图像的关系,如图2 所示。其中,第0 行表示图像的当前行,第N 行为历史行,每行有1024 个像素,按照p0 至p1023 的像素顺序输出。假设当前CCD_CLK 输入的像素为第0行的p16 像素,则其对应的16X16 子图像为图中的阴影部分。

采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能

“图像转置缓冲区”RAM 块存储图像的结构,如图3 所示。

RAM 块共有1024 个单元,每个单元为16 位的宽度,可存放最近的16 行图像数据。对比图2 和图3,可以发现,RAM 块的地址编号相当于线阵CCD 图像的某一行像素的位置,某个RAM单元的位D15 ~ D0 对应某一列的最近16 个像素,相当于对线阵图像转置后再存放到RAM 块中。对RAM 缓冲区进行写操作时,由于线阵CCD 图像的数据是按行逐位输入的,每个CCD_CLK 时钟上升沿出现时,仅需更新RAM 缓冲区中当前像素对应的比特,因此在逻辑上是根据图像按行写入RAM 区的。在FPGA器件中,可设计一个状态机来实现“图像转置缓冲区”的读写操作,如图4 所示。

采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能

子图像提取模块输出的子图像有256 个像素,在FPGA 内部通过寄存器暂存上一个输出的子图像;当更新RAM 区的某个像素时,把16X16 的滑动窗口向右移动一列像素的位置,把滑动窗口内的数据作为输出,就可以得到新的子图像。

2 设计仿真

在本文的设计仿真中,由于用到图像文件的解析和图像显示,因此借助MATLAB 和Modelsim 软件,通过文件读写的方式实现的联合仿真,可使仿真处理更加便捷和直观。其中,MATLAB 用来把图像文件转换为输入的像素,以及显示输出的子图像;Modelsim 用来仿真和验证FPGA 设计是否正确。

本文使用MATLAB 和Modelsim 进行联合仿真,主要有以下三个步骤。第一步,在MATLAB 中编写m 文件,读取bmp 位图文件并把像素数据写入文件datain.txt 中,作为ModelSim仿真的输入激励信号。第二步,在ModelSim 中,用VHDL 编写Testbench 测试文件,读取datain.txt 文件,产生与CCD_CLK 同步的像素信号;编写DO 文件进行自动化仿真,再把仿真输出的子图像数据保存在dataout.txt 文件中。第三步,在MATLAB 中编写m 文件,解析dataout.txt 文件,依次显示为16×16 的黑白图片序列,确定仿真结果是否正确。本设计仿真输入的图像及输出的子图像序列,如图5 所示。从仿真结果可知,设计方法是正确的,仿真结果符合设计功能的要求。

采用FPGA器件和传感器实现CCD图像系统中的提取和输出功能

3 结束语

应用线阵CCD 图像传感器进行产品检测时,连续、高速地输出子图像序列是必不可少的重要环节,采用FPGA 实现子图像序列的提取和输出,有多种不同的设计方法。本文采用“图像转置缓冲区”和状态机的方式,来实现系统所要求的子图像提取和输出的功能,并用MATLAB 和ModelSim 工具软件对设计进行了联合仿真,该方法具有FPGA 资源占用少、结构简单、高速处理,以及便捷和直观的特点,对其他类似的FPGA 设计项目有很好的参考作用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2551

    文章

    51076

    浏览量

    753359
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603195
  • 测量
    +关注

    关注

    10

    文章

    4857

    浏览量

    111277
收藏 人收藏

    评论

    相关推荐

    CCD的应用(CCD固态图像传感器)?

    CCD的应用(CCD固态图像传感器)?         电荷耦合器件用于固态图像
    发表于 08-02 08:59 3927次阅读

    CCD图像传感器应用

    CCD图像传感器应用?         CCD图像传感器在许多领域内获得广泛的应用。 前面介绍
    发表于 08-02 09:13 5069次阅读
    <b class='flag-5'>CCD</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>应用

    CCD图像传感器在微光电视系统的应用

    CCD图像传感器在微光电视系统的应用 摘要:在对CCD
    发表于 04-24 22:39 2444次阅读
    <b class='flag-5'>CCD</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>在微光电视<b class='flag-5'>系统</b><b class='flag-5'>中</b>的应用

    基于FPGA的线阵CCD图像提取模块的设计与仿真

    根据线阵CCD图像检测和识别系统的要求,分析线阵CCD图像与子图像的位置关系,
    发表于 02-18 15:34 1502次阅读
    基于<b class='flag-5'>FPGA</b>的线阵<b class='flag-5'>CCD</b>子<b class='flag-5'>图像</b><b class='flag-5'>提取</b>模块的设计与仿真

    FPGA图像传感器的优势

    的核心知识在于驱动和接口至CMOS图像传感器,动态扩展 和进行信号预处理到TFT的领域。使用Helion系统意味着决定图像质量的很多功能可以
    发表于 08-11 11:27

    基于DSP和FPGACCD图像采集系统设计与实现

    为了实现—是弹武器瞄准自动化,本文设计了基于DSP和FPGA的高速高精确度双通道CCD图像采集系统采用
    发表于 11-07 14:54

    TDI-CCD图像传感器

      TDI(Time Delayed and Integration)CCD(即时间延迟积分CCD)是近几年发展起来的一种新型光电传感器。TDI-CCD是基于对同一目标多次曝光,通过延
    发表于 11-15 15:07

    如何采用FPGA和CMOS数字传感器实现图像数据传输的图像监测系统

    本文提出一种采用FPGA和CMOS数字传感器实现前端数据采集、利用单片机进行图像鉴别和压缩、通过以太网控制
    发表于 05-26 06:58

    什么是电荷藕合器件图像传感器CCD

    什么是电荷藕合器件图像传感器CCD
    发表于 04-25 17:18 1756次阅读

    CCD图像传感器,CCD图像传感器原理什么?

    CCD图像传感器,CCD图像传感器原理什么? CCD
    发表于 03-27 10:41 5764次阅读

    CCD图像传感器发展及市场

     摘要:随着微电子技术的发展,CCD图像传感器的产量不断增加,应用领域不断扩展。本文对CCD图像传感器
    发表于 08-19 15:54 2402次阅读
    <b class='flag-5'>CCD</b><b class='flag-5'>图像</b><b class='flag-5'>传感器</b>发展及市场

    CCD图像传感器成像器件的噪声研究

    电荷耦合器件(charge coupled device,CCD)是目前摄像机常用的图像传感器。随着CCD技术的不断发展和应用,人们对
    发表于 01-20 22:23 2873次阅读
    <b class='flag-5'>CCD</b>类<b class='flag-5'>图像</b><b class='flag-5'>传感器</b>成像<b class='flag-5'>器件</b>的噪声研究

    基于DSP和FPGACCD图像采集系统设计与实现

    捅要:为了实现是弹武器瞄准自动化,本文设计了基于DSP和FPGA的高速高精确度双通道CCD图像采集系统
    发表于 02-25 13:48 188次下载

    基于TDI-CCD的利用FPGA实现CCD图像数据整合功能的硬件系统设计

    CCD是一种广泛应用于成像系统的光学传感器,TDI-CCD利用延时积分的方法,通过对同一物体多次曝光,
    发表于 03-13 09:29 2055次阅读

    Interline CCD 图像传感器的大信号输出优化

    Interline CCD 图像传感器的大信号输出优化
    发表于 11-15 20:36 3次下载
    Interline <b class='flag-5'>CCD</b> <b class='flag-5'>图像</b><b class='flag-5'>传感器</b>的大信号<b class='flag-5'>输出</b>优化