孟令軍,尹維漢,彭晴晴,李 柱
(中北大學(xué) 電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051)
NiosⅡ是Altera特有的基于通用FPGA構(gòu)架的軟CPU內(nèi)核。和傳統(tǒng)的單片機(jī)及單片機(jī)系統(tǒng)相比,NiosⅡ處理器具有速度快、高度的靈活性和可配置性及設(shè)計(jì)流程簡(jiǎn)單等優(yōu)點(diǎn)[1-2]。
圖像采集是圖像信號(hào)處理系統(tǒng)的前端部分。圖像采集系統(tǒng)在當(dāng)今工業(yè)、軍事、農(nóng)業(yè)和醫(yī)學(xué)等領(lǐng)域都有著極其廣泛的應(yīng)用[3]。文中提出了一種基于NiosⅡ處理器的圖像采集系統(tǒng)的實(shí)現(xiàn)方法。該方法經(jīng)過(guò)適當(dāng)修改可應(yīng)用于對(duì)多種場(chǎng)合的圖像采集。
該圖像采集系統(tǒng)硬件電路主要由FPGA模塊、SRAM、SDRAM、OV7725攝像頭、AL422B緩存、USB接口模塊等部分組成,各模塊之間的關(guān)系如圖1所示。系統(tǒng)中FPGA采用Altera公司CycloneⅡ系列的EP2C35F484C8N芯片,該芯片資源豐富,可方便系統(tǒng)的擴(kuò)展,系統(tǒng)軟核在FPGA芯片上構(gòu)建,部分外圍邏輯單元使用FPGA芯片的IP核或用VHDL程序設(shè)計(jì);攝像頭模塊采用OmmiVision公司生產(chǎn)的圖像傳感器OV7725,該圖像傳感器體積小,工作電壓低,能夠提供單片VGA攝像頭和影像處理器的所有功能,通過(guò)SCCB總線控制;AL422B是由AVERLOGIC公司開(kāi)發(fā)的一款緩存芯片,在系統(tǒng)中作為攝像頭模塊數(shù)據(jù)FIFO;USB接口模塊基于FT245芯片設(shè)計(jì),為系統(tǒng)與上位機(jī)的接口,用于接收計(jì)算機(jī)指令及向計(jì)算機(jī)上傳圖像數(shù)據(jù);此外,系統(tǒng)硬件還包括外部SRAM及SDRAM存儲(chǔ)器模塊等。
圖1 系統(tǒng)總體框圖
該系統(tǒng)SOPC部分主要包括NiosⅡ處理器模塊、PLL模塊及系統(tǒng)復(fù)位控制模塊等,其中Altera公司的NiosⅡ是基于RISC架構(gòu)的嵌入式處理器軟內(nèi)核,是系統(tǒng)的SOPC部分的核心模塊。根據(jù)該系統(tǒng)要實(shí)現(xiàn)的功能,選擇了合適的CPU和外部設(shè)備,構(gòu)建了系統(tǒng)的NiosⅡ處理器模塊,如圖2所示,主要包括CPU核及以下幾種外設(shè):OV7725攝像頭,SCCB控制接口,AL422B圖像數(shù)據(jù)接口,SRAM、SDRAM、USB接口等。
圖2 NiosⅡ處理器結(jié)構(gòu)圖(截圖)
NiosⅡ程序采用C語(yǔ)言編寫(xiě),為系統(tǒng)核心控制程序,主要功能包括:攝像頭的初始化、圖像數(shù)據(jù)的采集、圖像數(shù)據(jù)的存儲(chǔ)、上位機(jī)指令的接收、圖像數(shù)據(jù)的上傳等。主程序流程圖如圖3所示,系統(tǒng)上電后,先通過(guò)SCCB總線完成對(duì)OV7725攝像頭的初始化,幀計(jì)數(shù)VSYNC賦初值0;主程序接收由據(jù)攝像頭場(chǎng)同步信號(hào)(VSYNC)上升沿產(chǎn)生的中斷請(qǐng)求,幀計(jì)數(shù)VSYNC值加1;當(dāng)幀計(jì)數(shù)VSYNC值為1時(shí),主程序打開(kāi)AL422B緩存的寫(xiě)使能,等待攝像頭場(chǎng)同步信號(hào)中斷請(qǐng)求,當(dāng)中斷請(qǐng)求到來(lái)時(shí),幀計(jì)數(shù)VSYNC值加1;當(dāng)幀計(jì)數(shù)VSYNC值為2時(shí),主程序關(guān)閉AL422B緩存的寫(xiě)使能、幀計(jì)數(shù)VSYNC賦值0,同時(shí)主程序從AL422B緩存中讀取1幀圖像數(shù)據(jù),并保存到SRAM中;判斷USB口是否有指令數(shù)據(jù)寫(xiě)入,即上位機(jī)是否發(fā)送圖像數(shù)據(jù)請(qǐng)求指令,如果有則從SRAM中讀取最近寫(xiě)人的1幀圖像數(shù)據(jù)并通過(guò)USB口發(fā)送給上位機(jī)顯示,發(fā)送完畢后主程序返回等待場(chǎng)同步信號(hào)的中斷請(qǐng)求,并循環(huán)執(zhí)行對(duì)攝像頭圖像數(shù)據(jù)的采集。對(duì)主程序及上位機(jī)做適當(dāng)修改,該系統(tǒng)便可實(shí)現(xiàn)對(duì)圖像數(shù)據(jù)的實(shí)時(shí)顯示;根據(jù)需要也可在主程序中加入一定的圖像處理功能。
圖3 NiosⅡ主程序流程圖
上位機(jī)軟件是該圖像采集系統(tǒng)的控制軟件,為人機(jī)對(duì)話接口。上位機(jī)功能主要包括:通過(guò)USB口向NiosⅡ處理器發(fā)送圖像申請(qǐng)指令來(lái)獲取系統(tǒng)所采集到的圖像數(shù)據(jù),顯示圖像,將圖像數(shù)據(jù)保存到計(jì)算機(jī)硬盤(pán)中等。上位機(jī)軟件使用可視化程序設(shè)計(jì)語(yǔ)言VB所設(shè)計(jì),能夠在Windows 7/XP操作系統(tǒng)上運(yùn)行[4]。通過(guò)對(duì)該軟件的功能擴(kuò)展可實(shí)現(xiàn)圖像數(shù)據(jù)的實(shí)時(shí)顯示,并可實(shí)現(xiàn)較為復(fù)雜的圖像數(shù)據(jù)處理功能。
通過(guò)實(shí)際測(cè)試,系統(tǒng)各項(xiàng)性能指標(biāo)均達(dá)到了設(shè)計(jì)目標(biāo)要求,系統(tǒng)測(cè)試結(jié)果如圖4所示。
該圖像采集系統(tǒng)可擴(kuò)展性強(qiáng),在不修改系統(tǒng)硬件的前提下,只需對(duì)NiosⅡ主程序及上位機(jī)做適當(dāng)修改,便可使該系統(tǒng)具有一定的圖像處理功能或作為不同應(yīng)用系統(tǒng)的前端圖像采集子系統(tǒng)。
圖4 系統(tǒng)測(cè)試結(jié)果(截圖)
[1]趙貽玖,王厚軍,戴志堅(jiān).基于NIOS處理器的數(shù)字示波表設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2006,27(6):1484-1485.
[2]蔡偉綱.NiosⅡ軟件架構(gòu)解析[M].西安:西安電子科技大學(xué)出版社,2007.
[3]楊曉,王紅亮.基于FPGA控制的圖像采集和存儲(chǔ)系統(tǒng)[J].火力與指揮控制,2010,35(9):124-126.
[4]龔敬,孟令軍,嚴(yán)帥,等.多通道數(shù)字脈沖發(fā)生器的SoPC實(shí)現(xiàn)[J].電視技術(shù),2011,35(15):71-73.