基于FPGA玻璃缺陷圖像采集處理系統
玻璃缺陷檢測是玻璃生產過程中一個相當重要課題。玻璃缺陷(氣泡、結石、錫點等)妨礙了它在重大技術領域中的應用,不但影響了產品的外觀,同時由于它的不平整度及屈光度的影響,使得人透過玻璃觀察實物時受到障礙。目前,國內外在該領域的研究成果大致為分別利用線、面陣CCD獲取表面圖像,由后續軟件對圖像加以分析的方法來實現對表面質量的檢測處理。在此正是基于這樣一種指導思想下,設計了一種基于FPGA的玻璃缺陷在線檢測系統方案,利用FPGA實時、高速、可重構的特點,對玻璃缺陷圖像進行的預處理(卷積運算),從而大大降低了后期數據處理的壓力,使得圖像處理系統運算速度快,具有很好的適應性。
1 圖像采集處理系統硬件平臺
在圖像信號處理過程中為保證實時性,首先要求實時圖像處理系統具有處理大數據的能力;其次對系統體積的大小、功能、穩定性等也有嚴格要求。實時圖像處理算法中經常要用到對圖像的求和、求差、二維梯度、圖像分割等不同層次、不同種類的運算。基于上述因素,考慮到FPGA和DSP的優異性能,這里在玻璃缺陷檢測系統中采用了如圖1所示的硬件平臺。
系統內各模塊功能簡要描述如下:
(1)視頻采集異步FIFO模塊(內嵌于FPGA中)接收從視頻A/D芯片SAA7113送來的數字視頻流,解決系統數據緩沖和異步時鐘的問題,因為SAA7113送過來的LLC頻率為27 MHz,而FPGA系統時鐘頻率為48 MHz。
(2)視頻解碼模塊用來對得到的數字視頻流進行解碼,識別出行、場同步信號,并且根據需要選擇采集圖像的大小。
(3)I2C配置接口模塊(通過EP2C35進行模擬配置)通過I2C總線對SAA7113進行初始化配置,選擇產生的數字視頻格式等。
(4)圖像幀存控制模塊用來讀/寫系統兩片幀存儲器,并且可以在它們之間進行讀/寫切換操作。
(5)圖像低級處理模塊從幀存中讀取一幀圖像數據,對其進行底層大量運算的圖像預處理,如噪聲消除、邊緣檢測等,最后將處理完的圖像數據經通信模塊送至后端DSP處理器做進一步操作。此外由于采用基于SDRAM工藝的FPGA芯片,所以還需要配置電路在上電時對FPGA進行配置。
系統上電時,FPGA首先從外部配置芯片中讀取配置數據,通過AS主動串行方式完成自身的程序加載,進入工作模式狀態。隨后I2C配置接口模塊完成對SAA7113的初始化,初始化結束后,FPGA等待采集圖像的命令。FPGA收到采集命令后,啟動采集視頻數據模塊、異步FIFO模塊和視頻解碼模塊進行解碼,將數據輪換寫到兩個幀存中,供圖像低級處理模塊處理、經DSP對圖像做進一步處理,然后由通信模塊送往工控PC。
2 系統中內存管理和圖像低級處理技術
2.1 SDRAM控制實現及仿真
視頻轉換芯片輸出的視頻圖像數據通過8位總線VPO傳輸給FPGA,FPGA需要將數據保存到SDRAM中,SDRAM在讀寫上有嚴格的時序要求。SDRAM的命令由RAS_n,CAS_n,WE_n和LOAD_mode構成,分別表示行選擇、列選擇、讀/寫控制和寄存器配置控制。在該系統中,設計了SDRAM(基于FPGA)接口模塊,該模塊控制SDRAM的命令與時序。模塊內設計了初始化機制和系統指令分析機制。初始化機制不僅要完成對SDRAM的初始化配置,還要完成對控制器的初始化配置,從而使控制器與外部SDRAM的工作模式一致。為了實現高效的SDRAM存取,提高SDRAM總線的利用率,SDRAM接口模塊CLK采用133 MHz的高速時鐘,當得到數據存取模塊的讀FIFO要求后.向SDRAM連續寫入16個字;當得到PC接口模塊的讀SDRAM請求后讀出1個字;其他時間保證SDRAM進行刷新工作,以免數據丟失。從該硬件設汁平臺可以看出,系統中的SDRAM分別由PFGA和DSP控制。當DSP和FPGA完成對相應SDRAM的操作后,需要進行總線切換。總線切換后,DSP和FPGA開始對另一塊SDRAM進行相應操作。
評論