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