焦作師范高等專科學(xué)校 安 洋
基于FPGA的圖像采集與VGA顯示系統(tǒng)
焦作師范高等??茖W(xué)校 安 洋
基于FPGA的圖像采集與VGA顯示系統(tǒng)建立在Altera Corporation DE2多媒體開(kāi)發(fā)平臺(tái)的基礎(chǔ)上,由控制主模塊、圖像信息采集模塊、圖像信息處理模塊、圖像信息存儲(chǔ)模塊及圖像信息顯示模塊幾大部分構(gòu)成,借助SOPC系統(tǒng)的作用,可以控制、編程FPGA。本文主要闡述了系統(tǒng)不同功能模塊的設(shè)計(jì),以期優(yōu)化系統(tǒng)的設(shè)計(jì)方案,提高系統(tǒng)的數(shù)據(jù)采集、顯示等功能,充分發(fā)揮SOPC技術(shù)的優(yōu)勢(shì)。
FPGA圖像處理;采集處理;VGA顯示系統(tǒng)
NiosⅡ軟核處理器的可編程邏輯芯片F(xiàn)PGA為系統(tǒng)內(nèi)控制器,外部設(shè)備包括視頻傳輸標(biāo)準(zhǔn)(VGA)顯示接口、視頻數(shù)字/模擬轉(zhuǎn)換器、數(shù)字存儲(chǔ)器和典型CMOS固體圖像傳感器。通過(guò)對(duì)該系統(tǒng)的功能模塊分析,可以深入了解系統(tǒng)實(shí)現(xiàn)技術(shù),達(dá)到高效采集、處理和顯示實(shí)時(shí)圖像的目的。
在對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)的過(guò)程中,主要設(shè)計(jì)平臺(tái)就是DE2開(kāi)發(fā)平臺(tái),運(yùn)行操作控制方式為撥碼開(kāi)關(guān)和按鍵,分別為十六個(gè)和四個(gè)。其中,曝光時(shí)間數(shù)值的設(shè)定由開(kāi)關(guān)來(lái)控制,而畫(huà)面定格、曝光時(shí)間、系統(tǒng)復(fù)位和啟動(dòng)等操作則由按鍵來(lái)控制[1]??刂浦髂K是基于FPGA的圖像采集與VGA顯示系統(tǒng)的核心所在,其軟件設(shè)計(jì)涵蓋以下三部分內(nèi)容,首先要建立NiosⅡ工程,借助SOPC Buider開(kāi)發(fā)工具對(duì)外部設(shè)備、嵌入式niosⅡ軟核處理器進(jìn)行選擇,完成FPGA引腳及工程信息配置工作,構(gòu)成BDF文件;其次,需要對(duì)CMOS傳感器的控制器IP核進(jìn)行設(shè)計(jì),在Avalon總線下,使系統(tǒng)外部設(shè)備都能夠同NiosⅡ軟核中央處理器連接,編制相應(yīng)的傳感器控制程序來(lái)規(guī)范系統(tǒng)的運(yùn)行標(biāo)準(zhǔn),最終形成IP核,并利用VeriloG HDL描述語(yǔ)言對(duì)傳感器控制程序進(jìn)行編寫(xiě);最后,在DE2開(kāi)發(fā)平臺(tái)中制定C語(yǔ)言程序設(shè)計(jì)報(bào)告,達(dá)到系統(tǒng)鍵盤(pán)控制要求。
基于I2C總線的圖像傳感器、信息提取子模塊共同構(gòu)成了系統(tǒng)的圖像信息采集模塊。在I2C圖像傳感器配置子模塊中,主寄I2C總線是寄存器發(fā)揮讀取數(shù)據(jù)信息、編寫(xiě)數(shù)據(jù)信息作用的前提[2]?;贔PGA的圖像采集與VGA顯示系統(tǒng)的主、叢機(jī)分別為FPGA、MT9M011,而寄存器也是由I2C總線進(jìn)行配置設(shè)計(jì),系統(tǒng)在對(duì)圖像信息進(jìn)行采集的過(guò)程中,數(shù)字式CMOS攝像頭、寄存器和配置數(shù)據(jù)信息均由FPGA發(fā)送。應(yīng)用SOPC Buider工具進(jìn)行開(kāi)發(fā)時(shí),主要的配置依據(jù)就是I2C總線,必須要對(duì)I2C主機(jī)程序進(jìn)行編寫(xiě),才能形成相應(yīng)的IP核,保證系統(tǒng)FPGA主機(jī)的I/O端口都具備I2C作用。
圖1 圖像信息采集模塊子程序提取流程圖
而在系統(tǒng)I2C圖像信息提取子模塊中,數(shù)字式CMOS攝像頭MT9M011運(yùn)行時(shí)鐘可以由FPGA提供,FPGA會(huì)接收由CMOS傳感器發(fā)送的數(shù)據(jù)信號(hào),在對(duì)這個(gè)過(guò)程中的數(shù)據(jù)流進(jìn)行分析時(shí),應(yīng)借助幀頻信號(hào)、行頻信號(hào)和相機(jī)的時(shí)鐘來(lái)完成提取工作。系統(tǒng)時(shí)鐘板應(yīng)用上升沿的方式,作為采集應(yīng)用程序的關(guān)鍵觸發(fā)信號(hào),在運(yùn)行系統(tǒng)程序的過(guò)程中,幀頻信號(hào)電平逐漸增大時(shí),即可對(duì)一幀圖像進(jìn)行采集操作[3]。I2C圖像信息提取子模塊內(nèi)像素列數(shù)、點(diǎn)數(shù)表示為Y_cont和X_cont,系統(tǒng)子程序提取過(guò)程詳見(jiàn)圖1。
圖2 系統(tǒng)VGA顯示程序流程圖
在FPGA器件中需要將采集到的10位數(shù)字像素圖像數(shù)據(jù)信息進(jìn)行加工處理,轉(zhuǎn)變?yōu)?0位視頻RGB數(shù)據(jù),進(jìn)行該項(xiàng)操作的主要目的就是使VGA圖像顯示更加方便,從而有效的解決CMOS數(shù)字圖像傳感器向FPGA傳輸圖像格式和VGA圖像顯示格式不統(tǒng)一的問(wèn)題。系統(tǒng)圖像信息處理模塊應(yīng)用程序主要涉及到mDATAd_1、mDATA_0、mDATA_1和mDATAd_0四大變量,這些變量組合形成一個(gè)模版,該模版的關(guān)鍵部分為mDATA_0變量,涵蓋像素點(diǎn)的R、G、B數(shù)量分別為1、2、1,能夠以此為依據(jù)來(lái)確定模版核心變量R、B數(shù)值,G數(shù)值要以二者的平均值為準(zhǔn)[4]。系統(tǒng)在對(duì)圖像RGB顏色色塊信息進(jìn)行確定時(shí),可以通過(guò)對(duì)像素點(diǎn)行列的奇、偶標(biāo)準(zhǔn)分析來(lái)實(shí)現(xiàn),該判斷方式具有明顯的優(yōu)勢(shì),能夠?qū)ο袼剡M(jìn)行整合,應(yīng)用一個(gè)像素來(lái)分析圖像信息,也是實(shí)現(xiàn)圖像信息格式高效轉(zhuǎn)換的關(guān)鍵途徑。
為了有效的提高存儲(chǔ)器的像素?cái)?shù)據(jù)存儲(chǔ)效率,提高存數(shù)速率,可以對(duì)SDRAM存儲(chǔ)器的數(shù)據(jù)端口進(jìn)行虛擬處理,將讀、寫(xiě)端口分別擴(kuò)展到兩個(gè)。系統(tǒng)圖像存儲(chǔ)器共包括四個(gè)bank,讀、寫(xiě)端口需要利用兩個(gè)bank來(lái)進(jìn)行協(xié)調(diào)和配合,而剩下兩個(gè)bank則分別發(fā)揮存儲(chǔ)R、G圖像色塊信息的作用。
系統(tǒng)圖像信息顯示模塊在運(yùn)行過(guò)程中,首先需要對(duì)存儲(chǔ)器中圖像的RGB信息進(jìn)行讀取,之后交由頻數(shù)字/模擬轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換處理,將數(shù)據(jù)信息以模擬信號(hào)的形式體現(xiàn)出來(lái),并通過(guò)VGA顯示實(shí)時(shí)圖像[5]。系統(tǒng)VGA圖像顯示程序的編制的參考依據(jù)為基本時(shí)序,在程序流程設(shè)計(jì)過(guò)程中oVGA_H_SYNC、V_Cont、H_Cont分別代表顯示器的行同步信號(hào)、行及行像素點(diǎn)計(jì)數(shù)存儲(chǔ)器。而由同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器讀取的圖像RGB顏色值表示為iRed、iGreen和 iBlue,顯示器場(chǎng)同步信號(hào)表示為oVGA_V_SYNC,ADV模擬/數(shù)字視頻轉(zhuǎn)換器的圖像RGB信息分別用oVGA_R、oVGA_G和oVGA_B表示,詳細(xì)流程如圖2所示。
在Quartus II開(kāi)發(fā)環(huán)境下,應(yīng)用Altera DE2多媒體開(kāi)發(fā)平臺(tái)進(jìn)行系統(tǒng)的開(kāi)發(fā)設(shè)計(jì),構(gòu)建的基于FPGA的圖像采集與VGA顯示系統(tǒng)具有極高的可行性和實(shí)用性,系統(tǒng)可以將穩(wěn)定、清晰的圖像顯示出來(lái),具有多種功能,完全達(dá)到設(shè)計(jì)標(biāo)準(zhǔn)。在系統(tǒng)考法設(shè)計(jì)過(guò)程中充分應(yīng)用了SOPC技術(shù),開(kāi)發(fā)效率和水平大大改善,使系統(tǒng)不僅擁有通用功能,還兼具良好的可移植、快速采集性能,為工程實(shí)踐應(yīng)用提供了可靠的理論基礎(chǔ)。
[1]王德勝,康令州.基于FPGA的實(shí)時(shí)圖像采集與預(yù)處理[J]. 電視技術(shù),2011(03).
[2]祝長(zhǎng)鋒,肖鐵軍.基于FPGA的視頻圖像采集系統(tǒng)的設(shè)計(jì)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2008(17).
[3]呂康.基于FPGA的VGA圖形控制器設(shè)計(jì)[J].科技風(fēng),2011(14).
[4]汪方協(xié),陳德為.I~2C總線及其在電器、儀器控制方面的應(yīng)用現(xiàn)狀[J].自動(dòng)化技術(shù)與應(yīng)用,2005(07).
[5]袁堂青,張玉璘.基于FPGA的VGA漢字顯示系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].濟(jì)南大學(xué)學(xué)報(bào)(自然科學(xué)版),2011(01).
安洋(1983—),女,焦作師范高等??茖W(xué)校助教,研究方向:嵌入式。