孟令軍,尹維漢,彭晴晴,李 柱
(中北大學 電子測試技術國家重點實驗室儀器科學與動態測試教育部重點實驗室,山西 太原030051)
NiosⅡ是Altera特有的基于通用FPGA構架的軟CPU內核。和傳統的單片機及單片機系統相比,NiosⅡ處理器具有速度快、高度的靈活性和可配置性及設計流程簡單等優點[1-2]。
圖像采集是圖像信號處理系統的前端部分。圖像采集系統在當今工業、軍事、農業和醫學等領域都有著極其廣泛的應用[3]。文中提出了一種基于NiosⅡ處理器的圖像采集系統的實現方法。該方法經過適當修改可應用于對多種場合的圖像采集。
該圖像采集系統硬件電路主要由FPGA模塊、SRAM、SDRAM、OV7725攝像頭、AL422B緩存、USB接口模塊等部分組成,各模塊之間的關系如圖1所示。系統中FPGA采用Altera公司CycloneⅡ系列的EP2C35F484C8N芯片,該芯片資源豐富,可方便系統的擴展,系統軟核在FPGA芯片上構建,部分外圍邏輯單元使用FPGA芯片的IP核或用VHDL程序設計;攝像頭模塊采用OmmiVision公司生產的圖像傳感器OV7725,該圖像傳感器體積小,工作電壓低,能夠提供單片VGA攝像頭和影像處理器的所有功能,通過SCCB總線控制;AL422B是由AVERLOGIC公司開發的一款緩存芯片,在系統中作為攝像頭模塊數據FIFO;USB接口模塊基于FT245芯片設計,為系統與上位機的接口,用于接收計算機指令及向計算機上傳圖像數據;此外,系統硬件還包括外部SRAM及SDRAM存儲器模塊等。

圖1 系統總體框圖
該系統SOPC部分主要包括NiosⅡ處理器模塊、PLL模塊及系統復位控制模塊等,其中Altera公司的NiosⅡ是基于RISC架構的嵌入式處理器軟內核,是系統的SOPC部分的核心模塊。根據該系統要實現的功能,選擇了合適的CPU和外部設備,構建了系統的NiosⅡ處理器模塊,如圖2所示,主要包括CPU核及以下幾種外設:OV7725攝像頭,SCCB控制接口,AL422B圖像數據接口,SRAM、SDRAM、USB接口等。

圖2 NiosⅡ處理器結構圖(截圖)
NiosⅡ程序采用C語言編寫,為系統核心控制程序,主要功能包括:攝像頭的初始化、圖像數據的采集、圖像數據的存儲、上位機指令的接收、圖像數據的上傳等。主程序流程圖如圖3所示,系統上電后,先通過SCCB總線完成對OV7725攝像頭的初始化,幀計數VSYNC賦初值0;主程序接收由據攝像頭場同步信號(VSYNC)上升沿產生的中斷請求,幀計數VSYNC值加1;當幀計數VSYNC值為1時,主程序打開AL422B緩存的寫使能,等待攝像頭場同步信號中斷請求,當中斷請求到來時,幀計數VSYNC值加1;當幀計數VSYNC值為2時,主程序關閉AL422B緩存的寫使能、幀計數VSYNC賦值0,同時主程序從AL422B緩存中讀取1幀圖像數據,并保存到SRAM中;判斷USB口是否有指令數據寫入,即上位機是否發送圖像數據請求指令,如果有則從SRAM中讀取最近寫人的1幀圖像數據并通過USB口發送給上位機顯示,發送完畢后主程序返回等待場同步信號的中斷請求,并循環執行對攝像頭圖像數據的采集。對主程序及上位機做適當修改,該系統便可實現對圖像數據的實時顯示;根據需要也可在主程序中加入一定的圖像處理功能。

圖3 NiosⅡ主程序流程圖
上位機軟件是該圖像采集系統的控制軟件,為人機對話接口。上位機功能主要包括:通過USB口向NiosⅡ處理器發送圖像申請指令來獲取系統所采集到的圖像數據,顯示圖像,將圖像數據保存到計算機硬盤中等。上位機軟件使用可視化程序設計語言VB所設計,能夠在Windows 7/XP操作系統上運行[4]。通過對該軟件的功能擴展可實現圖像數據的實時顯示,并可實現較為復雜的圖像數據處理功能。
通過實際測試,系統各項性能指標均達到了設計目標要求,系統測試結果如圖4所示。
該圖像采集系統可擴展性強,在不修改系統硬件的前提下,只需對NiosⅡ主程序及上位機做適當修改,便可使該系統具有一定的圖像處理功能或作為不同應用系統的前端圖像采集子系統。

圖4 系統測試結果(截圖)
[1]趙貽玖,王厚軍,戴志堅.基于NIOS處理器的數字示波表設計[J].儀器儀表學報,2006,27(6):1484-1485.
[2]蔡偉綱.NiosⅡ軟件架構解析[M].西安:西安電子科技大學出版社,2007.
[3]楊曉,王紅亮.基于FPGA控制的圖像采集和存儲系統[J].火力與指揮控制,2010,35(9):124-126.
[4]龔敬,孟令軍,嚴帥,等.多通道數字脈沖發生器的SoPC實現[J].電視技術,2011,35(15):71-73.