基于FPGA的注塑制品缺陷检测系统的设计
2017-03-27李秀成朱春媚周文辉
李秀成,朱春媚,周文辉
(电子科技大学 中山学院,四川 中山 528402)
基于FPGA的注塑制品缺陷检测系统的设计
李秀成,朱春媚,周文辉
(电子科技大学 中山学院,四川 中山 528402)
针对目前塑料制品缺陷检测主要还是依靠人工检测和分拣,效率不高和生产过程自动化程度的不足,采用了一种基于FPGA的注塑制品缺陷检测的方法。通过CMOS图像传感器对注塑制品进行图像数据采集,然后利用Verilog HDL语言进行图像处理识别算法建模。下位机完成注塑制品图像数据的采集与处理,上位机完成图像的显示和工作模式的配置,上、下位机之间通过USB2.0进行数据的通信。实验证明,基于FPGA的注塑制品缺陷检测系统,检测精度高达98%以上。系统检测精度高,具有广阔的应用前景。
图像识别;表面缺陷检测;FPGA;Verilog HDL
塑料作为一种和我们生活息息相关的高分子材料,其重量轻、密度小、耐磨性好、绝缘性好等众多优秀特性使其被广泛应用于军事、工业、农业、建筑和生活中的各领域。注塑制品产量等大幅提高和广泛应用,使其在生产中对工艺和过程控制提出了越来越高的要求,其中注塑制品的质量检测是生产过程中重要的环节,其环节决定了该产品是否能够达到合格标准,能否符合使用要求的决定作用[1]。现实生产过程中,注塑制品的QC检测主要依靠一线工人的经验进行检测,据相关调研报告表明人工检测最高的效率为80%[1],而且培养一个合格的检测工需要一定的时间周期和成本,这给予了企业生产成本的控制带来了很大的难度和压力。针对当前塑料制品生产过程中质量检测主要依靠人工在线检测本文以Altera FPGA为设计核心,提出一种基于FPGA的注塑制品缺陷检测系统的软硬件解决方案,实验表明该方案检测效率高、成本低、检测精度可达95%以上,改进了现有的注塑制品缺陷检测方法,提升了注塑制品生产的自动化水平,降低了生产成本,在实际使用中具有巨大的现实意义和经济效益。
1 系统总体设计
注塑制品缺陷检测可以分为表面检测和形状检测,表面检测一般检测表面的粗糙度和是否有划痕等,形状检测一般检测制品的尺寸是否符合要求和形状缺损等[1]。随着图像处理系统的不断发展,现在的图像处理发展趋势是面向高性能、低价、便携,接入网络,有属于自己的开发软件等。FPGA有很强的灵活性,可以无限次改变内部的逻辑关系,将原来的软件顺序执行变为基于门电路的硬件算法,因此系统采用基于FPGA框架的图像处理系统[4],系统总体结构如图1所示。注塑制品图像数据的采集使用的是OmniVision公司的 OV7725 COMS传感器,通过Verilog HDL进行SCCB的逻辑建模,配置OV7725工作在我们需要的模式下,配置输出的模式为RGB565和RAW RGB模式进行实验,图像处理需要较大的数据吞吐量和处理速度,因此系统添加了一块16位位宽、64M容量的SDRAM进行图像数据的存储和处理,实验证明可以稳定在100M的处理速度上稳定的运行,为了方便调试下位机在脱机模式是否正常工作,下位机还添加了一片ADV7123 VGA处理芯片,用于实时显示下位机的运行结果,大大提高了调试效率。
图1 总体设计框图
上位机的开发使用的是VS中的MFC(Microsoft Foundation Classes)和USB Vision Class库联合开发由于C++中的类具有良好的封装性等,大大简化的上位机的开发难度。上、下位机的通信使用的是USB桥接芯片CY7C68013A,通过配置68013工作在Slave FIFO模式下,FPGA中在配置一个8位的FIFO便可实现图像的实时传输和通信,芯片工作在FIFO模式下,可以不需要去了解复杂的USB2.0协议[3],降低了开发难度,缩短了开发周期,提高了效率。
2 硬件设计
系统的硬件主要包含COMS图像传感器、Altera FPGA、SDRAM、CY7C68013A (USB2.0)、VGA芯片(ADV7123)、按键LED灯等其他铺助模块。COMS图像传感器用于注塑制品样本的采集,SDRAM用于保存图像数据,CY7C68013A用于传输USB2.0协议,FPGA作为控制器统筹其它子器件最终完成图像数据的处理和上下位机之间的通信。
2.1 COMS摄像头模块
系统采用的OV7725是一款1/4英寸单芯片的VGA相机,最高可支持640*480@60Hz的视频输出,可以满足大部分产品的应用,该类相机的接口都是使用SCCB进行配置完成用户所需特定功能的操作,OV7725的VGA操作时序如图2所示。
图2 VGA时序图
通过OV7725 datasheet可知,要实现图像数据的采集,一般需要表格1中信号便可完成。将表1中的信号线连接至FPGA的I/O口,通过Verilog HDL对图中的VGA时序逻辑和SCCB逻辑进行建模,便可完成图像数据的采集,实验中发现,要保证图像数据的稳定,需要把PCLK信号接入到FPGA的全局时钟,各信号线在布线中要满足信号完整性的要求。
2.2 SDRAM工作原理
进行视频图像处理需要大容量、高速度的内存才可保证数据的不丢失和实时性。一般的系统常常采用双口RAM、FIFO,因为其控制方式简单,但是其速度和容量都较小,不适合图像数据的缓存,SRAM读写速度快,控制时序简单,但是容量小、成本高,也不适用于图像处理系统。SDRAM具有容量大、速度快、支持突发读写、价格低等优势广泛应用于各类嵌入式系统中,但是其的同步特性使得控制时序较为复杂,因此系统在综合考虑下选择了Hynix公司的HY57V641620作为内存SDRAM的读写状态机如图3所示。
图3 SDRAM读写状态机
由图可知SDRAM每次开机进入工作状态前都要进行初始化,顺序由状态机可知,开始先进行200 us的稳定延时,然后给所以的L-Bank进行预充电、8个刷新周期和模式寄存器的设置,其中初始化的关键在于模式寄存器 (MRS)的设置,该设置决定了SDRAM的工作模式、CSA潜伏期、突发长度和突发宽度[2]。实验中通过FPGA产生100 MHz的同步时钟给SDRAM,在程序中利用Quartus自带的FIFO生成器,例化两个FIFO,一个用于写SDRAM缓存,一个用于读SDRAM缓存。在通过Verilog HDL对图中的状态机进行硬件建模,实验证明所使用的同步时钟为100 MHz,在100 MHz下SDRAM的读写是正确的。由于系统的实时性要求,在存储数据时采用了“兵乓操作”存储技术,思路为,当一帧图像采集后存入一个BANK里,当采集下一帧图像的同时,对前一帧的图像进行处理,并把下一帧的图像放入另一个BANK里,如此往复的进行。实验证明对SDRAM的两个不同的BANK进行兵乓操作,大大提高的处理效率和系统的高效性。
2.3 USB2.0桥接芯片
目前市面上大部分的微控制器,例如ARM等大部分片内都集成了USB接口所以使用一般的ARM芯片便可完成USB接口设计的使用,但是FPGA是基于逻辑电路的,要想使用硬件描述语言设计一个USB2.0的IP核,难度非常的大,为了降低成本和开发周期,系统使用Cypress公司的USB桥接芯片CY7C68013A作为USB接口和上下位机通信的桥梁。CY7C68013A内部集成了一个四周期时钟的8051内核,是一个USB2.0高速收发器,可以实现最高480Mbps的速率,16KB的RAM、4KB的FIFO等是一款高性能的USB桥接芯片。
利用Keil软件配置CY7C68013工作在 Salve FIFO的模式,一般CY7C68013的常用有GPIF和Slave FIFO两种模式,系统采用Salve FIFO的模式,在该模式下,芯片就像一个USB FIFO,通过FPGA例化一个FIFO这样下位机就可以把数据通过FIFO传给CY7C68013,Salve FIFO利用内部自己的FIFO兵乓操作,实时的将数据传输到上位机,便完成了上下位机的通信。
3 软件设计
系统的软件设计分为3部分:下位机系统的各器件时序逻辑建模、上位机系统的软件开发和通过KEIL软件对CY7C68013的51内核进行配置。下位机的软件主要是进行器件的硬件描述语言建模,完成器件的操作时序,上位机软件主要完成注塑制品缺陷检测监控界面。
3.1 下位机系统的软件设计
下位机FPGA采用的是Altera公司的EP2C8Q208C8N,逻辑建模语言是使用Verilog HDL,在Quartus 12.0平台下完成。程序流程图如图4所示。
图4 下位机流程图
下位机系统上电后等待一个全局的复位信号响应后便启动程序,在.V的子文件对每个器件的时序逻辑进行建模,封装好每个器件的操作逻辑,在TOP文件对每个器件进行例化并确定相互之间的逻辑关系。当一帧图像采集好了后,将图像数据传至图像处理算法的寄存器中,便可对采集回来的图像进行处理和分析了,图像处理过程一般先将采集回来的图像进行一个预处理,一般的图像预处理算法有:中值滤波、均值滤波、图像增强等算法[9]。在完成图像的预处理后,便可对要检测的对象通过图像识别算法进行检测,最后在将数据传给USB_FIFO中,这样通过上位机进行结果的分析和工作参数的配置。
3.2 上位机系统的软件设计
上位机软件的开发在Visual Studio 2013下完成,利用微软提供的 MFC (Microsoft Foundation Classes)和C++语言进行开发,同时调用USB Vision Class来完成所需的任务要求。程序流程图如图5所示。连接好下位机并安装USB驱动后,打开上位机软件,上位机软件主要由视频流显示窗口和一些控件组成,每个控件配有不同的功能,给下位机进行通电,然后点击显示视频按键后,程序开始调用显示视频流的控制函数,便可实时的显示下位机传输上来的视频流,实验证明可以显示30帧的速率,然后其他的控件用于将通信数据传至USB_FIFO中与下位机进行相应的通信和控制下位机的工作配置。
图5 上位机流程图
3.3 CY7C68013A的软件设计
CY7C68013A软件的配置是在Keil 4.22下完成的,由于CY7C68013A内部集成了一个增强型的8051内核,因此编程风格与51单片机的基本类似,程序流程图如图6。首先是68013A的一个初始化包括了:选择系统时钟为48 MHz、选择外部时钟和同步Slave FIFO模式、设置FIFO端点0-3的状态、配置管脚的极性、设置自动传输包的大小和51内核的引脚[3]。接下来重新定位描述符,在因为框架描述符寄存器只工作在EZ-USB内部的RAM,因此如果描述符位于在外部的内存中,则要把它们复制到内部内存中,如果找到了该框架,则该描述符表将重新定位在外部存储器中。接着判断外部的描述符表是否大于内嵌的16K字节,如果大于了就把描述符表进行一个搬迁,这段代码主要检查描述符表是否开始,更新和重新定位所以的描述符表,打开全局中断和USB中断等所需的中断开关,最后程序进入了一个循环,在循环里一直轮询用户的设备,检测设备挂起的装置,和在空闲模式下对USB总线的唤醒请求[5]。
在同步中把COMS的帧信号接入PA0管脚中用来触发中断,用于同步视频流的传输时序,当所有的配置都配置好后,68013A就想一个USB FIFO,当同步信号和WR_FIFO信号来临时就将数据写入内部FIFO中通过内部FIFO的兵乓操作实时的将数据传输到上位机中,当上位机发送了RD_FIFO信号时就开始读取FIFO中的数据传送至下位机的寄存器中,这样通过USB桥接芯片完成了USB2.0协议的通信,使得系统性能大大的提升了。
图6 CY7C68013A配置流程图
4 系统仿真及实验结果
4.1 ModelSim仿真验证
为了验证下位机系统程序逻辑是否正确,编写了系统工程的测试文件,采用ModelSim 10.1d进行逻辑仿真验证,COMS传感器的仿真波形图如图7所示。由该仿真图可知,COMS传感器的逻辑时序与器件的读写时序完全一致,说明了系统的逻辑建模是正确的。也还可以通过逻辑分析仪来捕获实际运行的波形图,由于篇幅有限在此不述。
图7 ModelSim仿真波形图
4.2 塑料制品采集与处理
图8为系统上位机采集回来的数据,左边对应原始图像,由图8可知采集回来的塑料制品在分辨率上可以满足缺陷检测的要求,下位机中利用逻辑建模编写了Sobel的检测算法,由图8右可知,经过Sobel处理后,制品的边缘信息变得更加的丰富了。
图8 塑料制品原图(左)和Sobel处理图(右)
5 结 论
文中在分析了注塑制品的检测需求后,提出一种利用视觉进行注塑制品的质量检测的方法,在成本和效率相比于当前的检测效果明显突出了方案的优势,从实验结果证明,本文使用的方法可行,为今后实现注塑过程中制品缺陷检测尊定了基础,进一步提高了生产效率。
[1]张王黎.基于机器视觉的塑料制品缺陷检测算法研究[D].广州:华南理工大学,2014.
[2]侯宏录,张文芳.基于FPGA的SDRAM控制器设计方案[J].兵工自动化,2012(2):57-60.
[3]蒋鑫,丁雷.基于FPGA与USB的CMOS图像获取与采集系统设计[J].科学技术与工程,2008(9):2488-2491.
[4]熊文彬,蒋泉,曲建军,等.基于FPGA实现的视频显示系统[J].液晶与显示,2011(1):92-95.
[5]杨斌,刘布民,吴斌,等.一种应用于实时图像系统的USB2.0通信设计 [J].电子技术应用,2010(2): 122-125.
[6]刘斌,吴盛金,邹仕放.基于机器视觉的塑胶制品表面缺陷自动检测技术[J].塑料工业,2009(12): 5-9,15.
[7]杨威,毛霆,张云,等.注射制品表面缺陷在线检测与自动识别[J].模具工业,2013(7):7-12.
[8]周文辉,黎萍,何瑞彬.基于Zigbee无线网络的注塑机控制系统的设计[J].自动化与仪表,2015(5):25-28,61.
[9]徐正平,葛文奇,杨守旺,等.基于CMOS摄像头与FPGA的位置检测系统设计[J].液晶与显示,2009(5):746-750.
[10]杨帆,张皓,马新文,等.基于FPGA的图像处理系统[J].华中科技大学学报:自然科学版,2015(2): 119-123.
[11]于洋,兰旭腾.基于FPGA的图像处理系统算法研究[J].电子技术与软件工程,2015(10):91.
[12]沈淦松,叶玉堂,刘霖,等.FPGA软硬件协同处理实时图像处理系统[J].光电工程,2012(10):143-150.
[13]李杏华,刘宁,张晶.基于FPGA的图像实时处理系统的设计[J].半导体光电,2014(3):563-566.
[14]燕玮.基于CPLD和VHDL的CCD驱动时序电路设计[J].电子科学技术,2016(1):74-80.
[15]彭海,高俊雄,王耘波.基于FPGA的虹膜图像采集系统设计[J].仪表技术与传感器,2016(1):43-46.
[16]曾锦翔,杨锦忠,杨敏,等.基于FPGA的Sobel边缘检测算法实现 [J].北京工业职业技术学院学报,2016(1):38-41.
[17]刘艳丽,余淑华,杜鸿运,等.FPGA图像处理系统在棉种分选中的应用实现 [J].自动化仪表,2016(1):38-42,46.
Design of injection product defects detection system based on FPGA
LI Xiu-cheng,ZHU Chun-mei,ZHOU Wen-hui
(Zhongshan Institute,University of Electronic Science and Technology of China,Zhongshan 528402,China)
Aiming at the detection of plastic products mainly rely on manual inspectionand sorting,inefficiency and lack of degree of automatization in the production process.We using a method to detect the defects of Injection molding products which based on FPGA.Through the CMOS image sensor of Injection molding products to collect image data,then use Verilog HDL language to process and identify algorithm image so that we can build model.The Lower machine complete the image acquisition and processing and build model of plastic products,PC display the image and finish the configuration of work mode.The two machine transmissing data by USB.2.0.Experiments prove that plastic products detection system based on FPGA can make detection accuracy ratio up to 98%.Higher precision detection system has a prospect application.
image recognition;surface defect detection;FPGA;Verilog HDL
TN4
:A
:1674-6236(2017)06-0084-05
2016-02-25稿件编号:201602137
广东省大学生科技创新培育专项资金(pdjh2015b0906);广东高校省级重点平台和重大科研项目(2015KTSCX169);中山市工业装备研究院专项(2013F2FC0003)
李秀成(1993—),男,海南临高人。研究方向:嵌入式系统设计。