当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:根据线阵CCD 图像检测和识别系统的要求,分析线阵CCD 图像与子图像的位置关系,采用“图像转置缓冲区”和读写状态机的处理方式,设计基于FPGA 的线阵CCD 子图像提取模块,具有FPGA 资源占用少、逻辑清晰的特点

摘要:根据线阵CCD 图像检测和识别系统的要求,分析线阵CCD 图像与子图像的位置关系,采用“图像转置缓冲区”和读写状态机的处理方式,设计基于FPGA 的线阵CCD 子图像提取模块,具有FPGA 资源占用少、逻辑清晰的特点。用MATLAB 和Modelsim 软件进行联合仿真,验证了设计的正确性。

0 引言

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

1 子图像提取模块的设计

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

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

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

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

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

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

子图像提取模块输出的子图像有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 所示。从仿真结果可知,设计方法是正确的,仿真结果符合设计功能的要求。

3 结束语

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

0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭