李秀成,朱春媚,周文輝
(電子科技大學(xué) 中山學(xué)院,四川 中山 528402)
基于FPGA的注塑制品缺陷檢測系統(tǒng)的設(shè)計
李秀成,朱春媚,周文輝
(電子科技大學(xué) 中山學(xué)院,四川 中山 528402)
針對目前塑料制品缺陷檢測主要還是依靠人工檢測和分揀,效率不高和生產(chǎn)過程自動化程度的不足,采用了一種基于FPGA的注塑制品缺陷檢測的方法。通過CMOS圖像傳感器對注塑制品進(jìn)行圖像數(shù)據(jù)采集,然后利用Verilog HDL語言進(jìn)行圖像處理識別算法建模。下位機(jī)完成注塑制品圖像數(shù)據(jù)的采集與處理,上位機(jī)完成圖像的顯示和工作模式的配置,上、下位機(jī)之間通過USB2.0進(jìn)行數(shù)據(jù)的通信。實(shí)驗證明,基于FPGA的注塑制品缺陷檢測系統(tǒng),檢測精度高達(dá)98%以上。系統(tǒng)檢測精度高,具有廣闊的應(yīng)用前景。
圖像識別;表面缺陷檢測;FPGA;Verilog HDL
塑料作為一種和我們生活息息相關(guān)的高分子材料,其重量輕、密度小、耐磨性好、絕緣性好等眾多優(yōu)秀特性使其被廣泛應(yīng)用于軍事、工業(yè)、農(nóng)業(yè)、建筑和生活中的各領(lǐng)域。注塑制品產(chǎn)量等大幅提高和廣泛應(yīng)用,使其在生產(chǎn)中對工藝和過程控制提出了越來越高的要求,其中注塑制品的質(zhì)量檢測是生產(chǎn)過程中重要的環(huán)節(jié),其環(huán)節(jié)決定了該產(chǎn)品是否能夠達(dá)到合格標(biāo)準(zhǔn),能否符合使用要求的決定作用[1]?,F(xiàn)實(shí)生產(chǎn)過程中,注塑制品的QC檢測主要依靠一線工人的經(jīng)驗進(jìn)行檢測,據(jù)相關(guān)調(diào)研報告表明人工檢測最高的效率為80%[1],而且培養(yǎng)一個合格的檢測工需要一定的時間周期和成本,這給予了企業(yè)生產(chǎn)成本的控制帶來了很大的難度和壓力。針對當(dāng)前塑料制品生產(chǎn)過程中質(zhì)量檢測主要依靠人工在線檢測本文以Altera FPGA為設(shè)計核心,提出一種基于FPGA的注塑制品缺陷檢測系統(tǒng)的軟硬件解決方案,實(shí)驗表明該方案檢測效率高、成本低、檢測精度可達(dá)95%以上,改進(jìn)了現(xiàn)有的注塑制品缺陷檢測方法,提升了注塑制品生產(chǎn)的自動化水平,降低了生產(chǎn)成本,在實(shí)際使用中具有巨大的現(xiàn)實(shí)意義和經(jīng)濟(jì)效益。
注塑制品缺陷檢測可以分為表面檢測和形狀檢測,表面檢測一般檢測表面的粗糙度和是否有劃痕等,形狀檢測一般檢測制品的尺寸是否符合要求和形狀缺損等[1]。隨著圖像處理系統(tǒng)的不斷發(fā)展,現(xiàn)在的圖像處理發(fā)展趨勢是面向高性能、低價、便攜,接入網(wǎng)絡(luò),有屬于自己的開發(fā)軟件等。FPGA有很強(qiáng)的靈活性,可以無限次改變內(nèi)部的邏輯關(guān)系,將原來的軟件順序執(zhí)行變?yōu)榛陂T電路的硬件算法,因此系統(tǒng)采用基于FPGA框架的圖像處理系統(tǒng)[4],系統(tǒng)總體結(jié)構(gòu)如圖1所示。注塑制品圖像數(shù)據(jù)的采集使用的是OmniVision公司的 OV7725 COMS傳感器,通過Verilog HDL進(jìn)行SCCB的邏輯建模,配置OV7725工作在我們需要的模式下,配置輸出的模式為RGB565和RAW RGB模式進(jìn)行實(shí)驗,圖像處理需要較大的數(shù)據(jù)吞吐量和處理速度,因此系統(tǒng)添加了一塊16位位寬、64M容量的SDRAM進(jìn)行圖像數(shù)據(jù)的存儲和處理,實(shí)驗證明可以穩(wěn)定在100M的處理速度上穩(wěn)定的運(yùn)行,為了方便調(diào)試下位機(jī)在脫機(jī)模式是否正常工作,下位機(jī)還添加了一片ADV7123 VGA處理芯片,用于實(shí)時顯示下位機(jī)的運(yùn)行結(jié)果,大大提高了調(diào)試效率。
圖1 總體設(shè)計框圖
上位機(jī)的開發(fā)使用的是VS中的MFC(Microsoft Foundation Classes)和USB Vision Class庫聯(lián)合開發(fā)由于C++中的類具有良好的封裝性等,大大簡化的上位機(jī)的開發(fā)難度。上、下位機(jī)的通信使用的是USB橋接芯片CY7C68013A,通過配置68013工作在Slave FIFO模式下,F(xiàn)PGA中在配置一個8位的FIFO便可實(shí)現(xiàn)圖像的實(shí)時傳輸和通信,芯片工作在FIFO模式下,可以不需要去了解復(fù)雜的USB2.0協(xié)議[3],降低了開發(fā)難度,縮短了開發(fā)周期,提高了效率。
系統(tǒng)的硬件主要包含COMS圖像傳感器、Altera FPGA、SDRAM、CY7C68013A (USB2.0)、VGA芯片(ADV7123)、按鍵LED燈等其他鋪助模塊。COMS圖像傳感器用于注塑制品樣本的采集,SDRAM用于保存圖像數(shù)據(jù),CY7C68013A用于傳輸U(kuò)SB2.0協(xié)議,F(xiàn)PGA作為控制器統(tǒng)籌其它子器件最終完成圖像數(shù)據(jù)的處理和上下位機(jī)之間的通信。
2.1 COMS攝像頭模塊
系統(tǒng)采用的OV7725是一款1/4英寸單芯片的VGA相機(jī),最高可支持640*480@60Hz的視頻輸出,可以滿足大部分產(chǎn)品的應(yīng)用,該類相機(jī)的接口都是使用SCCB進(jìn)行配置完成用戶所需特定功能的操作,OV7725的VGA操作時序如圖2所示。
圖2 VGA時序圖
通過OV7725 datasheet可知,要實(shí)現(xiàn)圖像數(shù)據(jù)的采集,一般需要表格1中信號便可完成。將表1中的信號線連接至FPGA的I/O口,通過Verilog HDL對圖中的VGA時序邏輯和SCCB邏輯進(jìn)行建模,便可完成圖像數(shù)據(jù)的采集,實(shí)驗中發(fā)現(xiàn),要保證圖像數(shù)據(jù)的穩(wěn)定,需要把PCLK信號接入到FPGA的全局時鐘,各信號線在布線中要滿足信號完整性的要求。
2.2 SDRAM工作原理
進(jìn)行視頻圖像處理需要大容量、高速度的內(nèi)存才可保證數(shù)據(jù)的不丟失和實(shí)時性。一般的系統(tǒng)常常采用雙口RAM、FIFO,因為其控制方式簡單,但是其速度和容量都較小,不適合圖像數(shù)據(jù)的緩存,SRAM讀寫速度快,控制時序簡單,但是容量小、成本高,也不適用于圖像處理系統(tǒng)。SDRAM具有容量大、速度快、支持突發(fā)讀寫、價格低等優(yōu)勢廣泛應(yīng)用于各類嵌入式系統(tǒng)中,但是其的同步特性使得控制時序較為復(fù)雜,因此系統(tǒng)在綜合考慮下選擇了Hynix公司的HY57V641620作為內(nèi)存SDRAM的讀寫狀態(tài)機(jī)如圖3所示。
圖3 SDRAM讀寫狀態(tài)機(jī)
由圖可知SDRAM每次開機(jī)進(jìn)入工作狀態(tài)前都要進(jìn)行初始化,順序由狀態(tài)機(jī)可知,開始先進(jìn)行200 us的穩(wěn)定延時,然后給所以的L-Bank進(jìn)行預(yù)充電、8個刷新周期和模式寄存器的設(shè)置,其中初始化的關(guān)鍵在于模式寄存器 (MRS)的設(shè)置,該設(shè)置決定了SDRAM的工作模式、CSA潛伏期、突發(fā)長度和突發(fā)寬度[2]。實(shí)驗中通過FPGA產(chǎn)生100 MHz的同步時鐘給SDRAM,在程序中利用Quartus自帶的FIFO生成器,例化兩個FIFO,一個用于寫SDRAM緩存,一個用于讀SDRAM緩存。在通過Verilog HDL對圖中的狀態(tài)機(jī)進(jìn)行硬件建模,實(shí)驗證明所使用的同步時鐘為100 MHz,在100 MHz下SDRAM的讀寫是正確的。由于系統(tǒng)的實(shí)時性要求,在存儲數(shù)據(jù)時采用了“兵乓操作”存儲技術(shù),思路為,當(dāng)一幀圖像采集后存入一個BANK里,當(dāng)采集下一幀圖像的同時,對前一幀的圖像進(jìn)行處理,并把下一幀的圖像放入另一個BANK里,如此往復(fù)的進(jìn)行。實(shí)驗證明對SDRAM的兩個不同的BANK進(jìn)行兵乓操作,大大提高的處理效率和系統(tǒng)的高效性。
2.3 USB2.0橋接芯片
目前市面上大部分的微控制器,例如ARM等大部分片內(nèi)都集成了USB接口所以使用一般的ARM芯片便可完成USB接口設(shè)計的使用,但是FPGA是基于邏輯電路的,要想使用硬件描述語言設(shè)計一個USB2.0的IP核,難度非常的大,為了降低成本和開發(fā)周期,系統(tǒng)使用Cypress公司的USB橋接芯片CY7C68013A作為USB接口和上下位機(jī)通信的橋梁。CY7C68013A內(nèi)部集成了一個四周期時鐘的8051內(nèi)核,是一個USB2.0高速收發(fā)器,可以實(shí)現(xiàn)最高480Mbps的速率,16KB的RAM、4KB的FIFO等是一款高性能的USB橋接芯片。
利用Keil軟件配置CY7C68013工作在 Salve FIFO的模式,一般CY7C68013的常用有GPIF和Slave FIFO兩種模式,系統(tǒng)采用Salve FIFO的模式,在該模式下,芯片就像一個USB FIFO,通過FPGA例化一個FIFO這樣下位機(jī)就可以把數(shù)據(jù)通過FIFO傳給CY7C68013,Salve FIFO利用內(nèi)部自己的FIFO兵乓操作,實(shí)時的將數(shù)據(jù)傳輸?shù)缴衔粰C(jī),便完成了上下位機(jī)的通信。
系統(tǒng)的軟件設(shè)計分為3部分:下位機(jī)系統(tǒng)的各器件時序邏輯建模、上位機(jī)系統(tǒng)的軟件開發(fā)和通過KEIL軟件對CY7C68013的51內(nèi)核進(jìn)行配置。下位機(jī)的軟件主要是進(jìn)行器件的硬件描述語言建模,完成器件的操作時序,上位機(jī)軟件主要完成注塑制品缺陷檢測監(jiān)控界面。
3.1 下位機(jī)系統(tǒng)的軟件設(shè)計
下位機(jī)FPGA采用的是Altera公司的EP2C8Q208C8N,邏輯建模語言是使用Verilog HDL,在Quartus 12.0平臺下完成。程序流程圖如圖4所示。
圖4 下位機(jī)流程圖
下位機(jī)系統(tǒng)上電后等待一個全局的復(fù)位信號響應(yīng)后便啟動程序,在.V的子文件對每個器件的時序邏輯進(jìn)行建模,封裝好每個器件的操作邏輯,在TOP文件對每個器件進(jìn)行例化并確定相互之間的邏輯關(guān)系。當(dāng)一幀圖像采集好了后,將圖像數(shù)據(jù)傳至圖像處理算法的寄存器中,便可對采集回來的圖像進(jìn)行處理和分析了,圖像處理過程一般先將采集回來的圖像進(jìn)行一個預(yù)處理,一般的圖像預(yù)處理算法有:中值濾波、均值濾波、圖像增強(qiáng)等算法[9]。在完成圖像的預(yù)處理后,便可對要檢測的對象通過圖像識別算法進(jìn)行檢測,最后在將數(shù)據(jù)傳給USB_FIFO中,這樣通過上位機(jī)進(jìn)行結(jié)果的分析和工作參數(shù)的配置。
3.2 上位機(jī)系統(tǒng)的軟件設(shè)計
上位機(jī)軟件的開發(fā)在Visual Studio 2013下完成,利用微軟提供的 MFC (Microsoft Foundation Classes)和C++語言進(jìn)行開發(fā),同時調(diào)用USB Vision Class來完成所需的任務(wù)要求。程序流程圖如圖5所示。連接好下位機(jī)并安裝USB驅(qū)動后,打開上位機(jī)軟件,上位機(jī)軟件主要由視頻流顯示窗口和一些控件組成,每個控件配有不同的功能,給下位機(jī)進(jìn)行通電,然后點(diǎn)擊顯示視頻按鍵后,程序開始調(diào)用顯示視頻流的控制函數(shù),便可實(shí)時的顯示下位機(jī)傳輸上來的視頻流,實(shí)驗證明可以顯示30幀的速率,然后其他的控件用于將通信數(shù)據(jù)傳至USB_FIFO中與下位機(jī)進(jìn)行相應(yīng)的通信和控制下位機(jī)的工作配置。
圖5 上位機(jī)流程圖
3.3 CY7C68013A的軟件設(shè)計
CY7C68013A軟件的配置是在Keil 4.22下完成的,由于CY7C68013A內(nèi)部集成了一個增強(qiáng)型的8051內(nèi)核,因此編程風(fēng)格與51單片機(jī)的基本類似,程序流程圖如圖6。首先是68013A的一個初始化包括了:選擇系統(tǒng)時鐘為48 MHz、選擇外部時鐘和同步Slave FIFO模式、設(shè)置FIFO端點(diǎn)0-3的狀態(tài)、配置管腳的極性、設(shè)置自動傳輸包的大小和51內(nèi)核的引腳[3]。接下來重新定位描述符,在因為框架描述符寄存器只工作在EZ-USB內(nèi)部的RAM,因此如果描述符位于在外部的內(nèi)存中,則要把它們復(fù)制到內(nèi)部內(nèi)存中,如果找到了該框架,則該描述符表將重新定位在外部存儲器中。接著判斷外部的描述符表是否大于內(nèi)嵌的16K字節(jié),如果大于了就把描述符表進(jìn)行一個搬遷,這段代碼主要檢查描述符表是否開始,更新和重新定位所以的描述符表,打開全局中斷和USB中斷等所需的中斷開關(guān),最后程序進(jìn)入了一個循環(huán),在循環(huán)里一直輪詢用戶的設(shè)備,檢測設(shè)備掛起的裝置,和在空閑模式下對USB總線的喚醒請求[5]。
在同步中把COMS的幀信號接入PA0管腳中用來觸發(fā)中斷,用于同步視頻流的傳輸時序,當(dāng)所有的配置都配置好后,68013A就想一個USB FIFO,當(dāng)同步信號和WR_FIFO信號來臨時就將數(shù)據(jù)寫入內(nèi)部FIFO中通過內(nèi)部FIFO的兵乓操作實(shí)時的將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)中,當(dāng)上位機(jī)發(fā)送了RD_FIFO信號時就開始讀取FIFO中的數(shù)據(jù)傳送至下位機(jī)的寄存器中,這樣通過USB橋接芯片完成了USB2.0協(xié)議的通信,使得系統(tǒng)性能大大的提升了。
圖6 CY7C68013A配置流程圖
4.1 ModelSim仿真驗證
為了驗證下位機(jī)系統(tǒng)程序邏輯是否正確,編寫了系統(tǒng)工程的測試文件,采用ModelSim 10.1d進(jìn)行邏輯仿真驗證,COMS傳感器的仿真波形圖如圖7所示。由該仿真圖可知,COMS傳感器的邏輯時序與器件的讀寫時序完全一致,說明了系統(tǒng)的邏輯建模是正確的。也還可以通過邏輯分析儀來捕獲實(shí)際運(yùn)行的波形圖,由于篇幅有限在此不述。
圖7 ModelSim仿真波形圖
4.2 塑料制品采集與處理
圖8為系統(tǒng)上位機(jī)采集回來的數(shù)據(jù),左邊對應(yīng)原始圖像,由圖8可知采集回來的塑料制品在分辨率上可以滿足缺陷檢測的要求,下位機(jī)中利用邏輯建模編寫了Sobel的檢測算法,由圖8右可知,經(jīng)過Sobel處理后,制品的邊緣信息變得更加的豐富了。
圖8 塑料制品原圖(左)和Sobel處理圖(右)
文中在分析了注塑制品的檢測需求后,提出一種利用視覺進(jìn)行注塑制品的質(zhì)量檢測的方法,在成本和效率相比于當(dāng)前的檢測效果明顯突出了方案的優(yōu)勢,從實(shí)驗結(jié)果證明,本文使用的方法可行,為今后實(shí)現(xiàn)注塑過程中制品缺陷檢測尊定了基礎(chǔ),進(jìn)一步提高了生產(chǎn)效率。
[1]張王黎.基于機(jī)器視覺的塑料制品缺陷檢測算法研究[D].廣州:華南理工大學(xué),2014.
[2]侯宏錄,張文芳.基于FPGA的SDRAM控制器設(shè)計方案[J].兵工自動化,2012(2):57-60.
[3]蔣鑫,丁雷.基于FPGA與USB的CMOS圖像獲取與采集系統(tǒng)設(shè)計[J].科學(xué)技術(shù)與工程,2008(9):2488-2491.
[4]熊文彬,蔣泉,曲建軍,等.基于FPGA實(shí)現(xiàn)的視頻顯示系統(tǒng)[J].液晶與顯示,2011(1):92-95.
[5]楊斌,劉布民,吳斌,等.一種應(yīng)用于實(shí)時圖像系統(tǒng)的USB2.0通信設(shè)計 [J].電子技術(shù)應(yīng)用,2010(2): 122-125.
[6]劉斌,吳盛金,鄒仕放.基于機(jī)器視覺的塑膠制品表面缺陷自動檢測技術(shù)[J].塑料工業(yè),2009(12): 5-9,15.
[7]楊威,毛霆,張云,等.注射制品表面缺陷在線檢測與自動識別[J].模具工業(yè),2013(7):7-12.
[8]周文輝,黎萍,何瑞彬.基于Zigbee無線網(wǎng)絡(luò)的注塑機(jī)控制系統(tǒng)的設(shè)計[J].自動化與儀表,2015(5):25-28,61.
[9]徐正平,葛文奇,楊守旺,等.基于CMOS攝像頭與FPGA的位置檢測系統(tǒng)設(shè)計[J].液晶與顯示,2009(5):746-750.
[10]楊帆,張皓,馬新文,等.基于FPGA的圖像處理系統(tǒng)[J].華中科技大學(xué)學(xué)報:自然科學(xué)版,2015(2): 119-123.
[11]于洋,蘭旭騰.基于FPGA的圖像處理系統(tǒng)算法研究[J].電子技術(shù)與軟件工程,2015(10):91.
[12]沈淦松,葉玉堂,劉霖,等.FPGA軟硬件協(xié)同處理實(shí)時圖像處理系統(tǒng)[J].光電工程,2012(10):143-150.
[13]李杏華,劉寧,張晶.基于FPGA的圖像實(shí)時處理系統(tǒng)的設(shè)計[J].半導(dǎo)體光電,2014(3):563-566.
[14]燕瑋.基于CPLD和VHDL的CCD驅(qū)動時序電路設(shè)計[J].電子科學(xué)技術(shù),2016(1):74-80.
[15]彭海,高俊雄,王耘波.基于FPGA的虹膜圖像采集系統(tǒng)設(shè)計[J].儀表技術(shù)與傳感器,2016(1):43-46.
[16]曾錦翔,楊錦忠,楊敏,等.基于FPGA的Sobel邊緣檢測算法實(shí)現(xiàn) [J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2016(1):38-41.
[17]劉艷麗,余淑華,杜鴻運(yùn),等.FPGA圖像處理系統(tǒng)在棉種分選中的應(yīng)用實(shí)現(xiàn) [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
廣東省大學(xué)生科技創(chuàng)新培育專項資金(pdjh2015b0906);廣東高校省級重點(diǎn)平臺和重大科研項目(2015KTSCX169);中山市工業(yè)裝備研究院專項(2013F2FC0003)
李秀成(1993—),男,海南臨高人。研究方向:嵌入式系統(tǒng)設(shè)計。