摘 要: 針對目前對圖像采集處理系統(tǒng)的高速性和便攜性的要求,設計了一套基于DSP、FPGA和ARM9的實時圖像采集處理系統(tǒng)。該系統(tǒng)主要利用FPGA的SoPC系統(tǒng)定制NiosⅡ軟核處理器及相關(guān)外設IP核來完成圖像數(shù)據(jù)的采集和存儲。DSP通過EMIF接口和EDMA接口完成數(shù)據(jù)的搬移和圖像處理的算法。ARM作為主機,通過HPI接口與DSP進行數(shù)據(jù)通信。結(jié)果表明,該平臺工作性能穩(wěn)定,處理能力強,能完成算法的數(shù)據(jù)處理并對數(shù)據(jù)實時顯示,適用于自動循跡、模式識別等高速數(shù)據(jù)采集的應用場合。
關(guān)鍵詞: 圖像采集處理;DSP;FPGA;ARM9
隨著電子技術(shù)和計算機技術(shù)日新月異的發(fā)展,圖像信息扮演著越來越重要的角色。圖像采集處理系統(tǒng)在產(chǎn)品檢測、目標跟蹤、自動導航中廣泛應用[1]。傳統(tǒng)的基于計算機的圖像處理系統(tǒng)因其體積與功耗的限制而不能進一步推廣[2]。隨著近20年超大規(guī)模集成電路的發(fā)展,在嵌入式系統(tǒng)上實現(xiàn)圖像處理已成為可能[3]。FPGA在時序、邏輯控制和并行處理方面具有很大的優(yōu)勢,DSP則擅長各種復雜的圖像處理算法。采用FPGA和DSP進行圖像采集處理的硬件構(gòu)架被國內(nèi)外學者廣泛采用[4-5]。本文在此基礎上,充分考慮成本、速度、靈活性和便攜性等因素,設計了一種基于DSP、FPGA和ARM9的圖像采集處理平臺。該平臺采用DSP作為主處理器進行復雜算法的運算,F(xiàn)PGA作為協(xié)處理器,內(nèi)嵌NiosⅡ軟核構(gòu)建可編程片上系統(tǒng)SoPC(System on Programmable Chip),完成圖像的采集存儲。同時,利用ARM9在任務控制方面的優(yōu)勢,通過主機接口HPI(Host Port Interface)與DSP進行數(shù)據(jù)通信并顯示圖像,使其成為一個實時便攜的嵌入式系統(tǒng)。該系統(tǒng)設計靈活,擴展和通用性強,具有較好的實時性和通用性。
1 系統(tǒng)硬件設計
圖像采集處理系統(tǒng)主要包括FPGA圖像采集、DSP圖像處理和ARM主機控制3大部分。硬件系統(tǒng)結(jié)構(gòu)如圖1所示。
FPGA模塊主要負責配置CMOS傳感器、圖像數(shù)據(jù)的采集存儲和圖像預處理工作。為了滿足I/O口的數(shù)量及性能,該平臺采用Altera公司的EP3C25F324C8N型號的FPGA芯片。FPGA通過SoPC Builder定制NiosⅡ軟核處理器及外設IP核來完成相關(guān)工作。SoPC模塊結(jié)構(gòu)如圖2所示。系統(tǒng)核心是NiosⅡ嵌入式處理器核,其他外設模塊核通過片上的Avalon總線與NiosⅡ Core相連,定制靈活,不需要在印制電路板PCB(Printed Circuit Board)這個層面上作很多修改。在這些外設模塊中,On-Chip Memory和JTAG UART是構(gòu)成硬件最小系統(tǒng)的必需模塊。PIO用來控制LED進行指示工作。Flash控制器和SDRAM控制器掛接在三態(tài)橋上來復用地址和數(shù)據(jù)線,以節(jié)約I/O口的使用,其他模塊可作擴展功能使用。圖像傳感器則采用Omnivision公司型號為OV7670的CMOS傳感器,用戶可以自由控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式;通過串行攝像頭控制總線SCCB(Serial Camera Control Bus)總線接口編程,還可以控制圖像白平衡、飽和度、色度等。OV7670的采集和總線時序用硬件描述語言直接配置。
DSP模塊用來實現(xiàn)復雜的算法以及與FPGA和ARM模塊進行數(shù)據(jù)交換和搬移。系統(tǒng)選用TI公司的TMS320C6713型號的DSP芯片作為主處理器。這是一款專用于圖像處理設計的高性能浮點數(shù)字信號處理芯片,它的運行速率最高可達225 MHz。該芯片集成了大量豐富的外圍設備模塊,包括EDMA、EMIF、HPI等。DSP模塊和FPGA模塊共享一個64 MB的SDRAM作為數(shù)據(jù)存儲器,一個4 MB的Flash作為程序存儲器,兩個16 MB的SRAM用來緩存圖像數(shù)據(jù)。SDRAM、Flash、SRAM被分別映射到DSP的CE0、CE1和CE2地址空間。
ARM模塊通過HPI接口從DSP處得到處理后的圖像數(shù)據(jù),直接顯示在TFT或VGA顯示器上。系統(tǒng)選用三星公司型號為S3C2410的ARM9芯片。ARM與DSP之間的硬件連接如圖3所示。為了減少因PCB走線過長而產(chǎn)生的開關(guān)噪聲,采用三態(tài)緩沖芯片74LVCH162445來增強輸出端口的電流驅(qū)動能力。在HPI中,每一次傳輸由主機發(fā)起,HPI接口的地址線、控制線只有主機到DSP方向,所以將緩存芯片方向控制信號接高來定向傳輸。HPI的數(shù)據(jù)線則為雙向傳輸,當nOE信號為高電平時,主機空閑或發(fā)起一次寫數(shù)據(jù)操作;當nOE信號為低電平時,主機發(fā)起一次讀數(shù)據(jù)操作。另外,74LVCH162445的使能信號直接接到nGCS4腳防止總線沖突。ARM的加入使系統(tǒng)的外圍擴展性進一步加強,如可通過以太網(wǎng)接口和RS232串口與PC進行數(shù)據(jù)通信或嵌入操作系統(tǒng)對整個平臺進行便攜控制。
2 系統(tǒng)軟件設計
2.1 FPGA對圖像數(shù)據(jù)的采集和存儲
NiosⅡ處理器是Altera公司特有的基于通用FPGA架構(gòu)的CPU軟核,使用者可以根據(jù)需要來調(diào)整嵌入式系統(tǒng)的特性及性能,使開發(fā)更具靈活性[6]。系統(tǒng)使用NiosⅡ來生成SCCB協(xié)議所需要的時序,達到對CMOS傳感器配置的目的。SCCB協(xié)議時序如圖4所示。在SCL為高電平期間,SDA由高電平向低電平的變化視為起始信號,而SDA由低電平向高電平的變化視為終止信號。當SCCB總線進行數(shù)據(jù)傳送時,在時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘信號為低電平期間,數(shù)據(jù)線才允許狀態(tài)變化。OV7670共有201個寄存器來控制圖像的輸出,這里通過SCCB總線配置其中的167個,輸出格式為RGB565的QVGA模式,像素大小為320×240。另外,NiosⅡ還負責Flash和SDRAM控制器模塊的配置,F(xiàn)lash用來固化程序,SDRAM則作為程序運行空間。
2.2 DSP對圖像數(shù)據(jù)的搬移和處理
DSP通過外部存儲器接口EMIF(External Memory Interface)來使用片外的SRAM存儲器,所以對EMIF寄存器的初始化是必不可少的。接著增強型直接存儲器訪問EDMA(Enhanced Direct Memory Access)接口通道控制器將圖像數(shù)據(jù)從SRAM搬移到片內(nèi)L2高速緩沖存儲器Cache中進行處理。處理后的數(shù)據(jù)將通過HPI通道被ARM讀取。EDMA通道控制器基于RAM結(jié)構(gòu),其通道由一個參數(shù)表來配置,每個參數(shù)入口如圖9所示。
其中,EDMA通道選項參數(shù)OPT在數(shù)據(jù)傳輸過程中發(fā)揮關(guān)鍵的作用,它決定了傳輸優(yōu)先級、傳輸單元大小、源數(shù)據(jù)和目的數(shù)據(jù)維數(shù)、源地址和目的地址更新模式、事件鏈接使能等。EDMA通道選項參數(shù)OPT的配置程序如下:
EDMA_OPT_RMK
?。?br />
EDMA_OPT_PRI_HIGH,EDMA_OPT_ESIZE_16BIT,
EDMA_OPT_2DS_YES,EDMA_OPT_SUM_INC,
EDMA_OPT_2DD_YES,EDMA_OPT_DUM_INC,
EDMA_OPT_TCINT_YES,EDMA_OPT_TCC_OF(6),
EDMA_OPT_LINK_NO,EDMA_OPT_FS_YES
?。?,
2.3 ARM對圖像數(shù)據(jù)的訪問和顯示
DSP處理完圖像數(shù)據(jù)后,ARM通過HPI接口訪問DSP中的圖像數(shù)據(jù),具體過程為:首先,ARM初始化HPI控制寄存器HPIC來設置數(shù)據(jù)傳輸模式;然后,配置地址寄存器HPIA來設置目的地址或源地址;最后,主機讀寫數(shù)據(jù)寄存器HPID來實現(xiàn)數(shù)據(jù)的傳輸。
利用S3C2410內(nèi)集成的液晶顯示器LCD(Liquid Crystal Display)控制器來完成圖像數(shù)據(jù)的顯示。LCD驅(qū)動程序的關(guān)鍵就是設置LCDCON1-LCDCON5寄存器來產(chǎn)生與具體應用相對應的時序。LCDCON1寄存器設置VCLK中信號的頻率;LCDCON2、LCDCON3寄存器的HOZVAL域和LINEVAL域設置場同步信號和行同步信號;HOZAL和LINEVAL的值由LCD屏的尺寸決定。
3 結(jié)果與分析
在整個系統(tǒng)底層驅(qū)動調(diào)試完成以后,為測試系統(tǒng)的實際性能,通過采集圖像并實時顯示的實驗對系統(tǒng)進行聯(lián)調(diào)。圖10(a)、圖10(b)、圖10(c)、圖10(d)分別是原始采集圖像、灰度處理圖像、二值化處理圖像和負片效果處理后的圖像。實驗證明,系統(tǒng)整體運行流暢。通過簡單算法的處理,驗證了該圖像采集處理系統(tǒng)具有較好的實時性。
設計了一個基于DSP、FPGA和ARM9的高速圖像采集處理平臺,詳述了系統(tǒng)的硬件模塊和軟件構(gòu)架。該平臺實現(xiàn)了圖像的采集和處理并能實時顯示,滿足高速性和便攜性的應用要求。系統(tǒng)硬件可配置,通用性強,適用于實時測量、自動循跡、模式識別等高速數(shù)據(jù)處理的應用領域。
參考文獻
[1] Duan Jinghong, Deng Yaling, Liang Kun. Development of image processing system based on DSP and FPGA[C]. The Eighth International Conference on Electronic Measurement and Instruments, IEEE, 2007:791-794.
[2] Yan Lei, Zhao Gang, RYU S H, et al. The platform of image acquisition and processing system based on DSP and FPGA[C]. International Conference on Smart Manufacturing Application, KINTEX, 2008:470-473.
[3] Jia Xuedong, Wang Hongxia, Liu Xiaochuan. The design and implementation of a flexible FPGA/DSP based architecture for real-time image processing[C]. Fourth International Symposium on Precision Mechanical Measurements: SPIE,2008: 71302Z-1- 71302Z-6.
[4] Yan Luxin, Zhang Tianxu, Zhong Sheng. A DSP/FPGA-based parallel architecture for real-time image processing [C]. Proceedings of the 6th World Congress on Intelligent Control and Automation, IEEE, Dalian,2006:10022-10025.
[5] BATLLE J, MARTI J, RIDAO P,et al. A new FPGA/DSP-based parallel architecture for real-time image processing[J]. Real-Time Imaging, 2002, 10(8): 345-356.
[6] 任文平,賈贊,申東婭,等.基于FPGA的圖像處理電路的設計與實現(xiàn)[J].電子技術(shù)應用,2010(2):44-46.