李佩斌+黃瑩+趙譽(yù)婷
摘 要: 為滿足數(shù)據(jù)量大、算法復(fù)雜度高的應(yīng)用需求,使用高性能DSP完成復(fù)雜圖像算法處理,F(xiàn)PGA作為協(xié)處理器,完成圖像采集、存儲和顯示等功能,構(gòu)建了一種高性能的嵌入式圖像處理系統(tǒng)。DSP和FPGA通過EMIF接口實(shí)現(xiàn)了高速無縫互聯(lián)。采用三重緩沖讀寫機(jī)制解決了采集和顯示的異步時(shí)鐘域問題及算法處理時(shí)間不確定的問題。介紹了基于BIOS和NDK開發(fā)的C6455軟件流程,展示了該系統(tǒng)圖像處理算法運(yùn)行周期的統(tǒng)計(jì)結(jié)果。該系統(tǒng)運(yùn)行穩(wěn)定可靠,具有較高的實(shí)用價(jià)值。
關(guān)鍵詞: 嵌入式圖像處理系統(tǒng); DSP; FPGA; 三重緩沖; 異步時(shí)鐘域
中圖分類號: TN911.73?34; TP391.4 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)20?0095?04
Design of embedded image processing system based on DSP+FPGA architecture
LI Pei?bin, HUANG Ying, ZHAO Yu?ting
(First Research Institute of the Ministry of Public Security, Beijing 102200, China)
Abstract: To meet the application requirements of large amount of data and complex image processing, a high?performance embedded image processing system based on DSP + FPGA Architecture was established, in which high?performance DSP is used to realize complex image algorithm processing, and FPGA is adopted as a coprocessor to implement image acquisition, storage, display, etc. A high?speed seamless interconnection between DSP to FPGA is implemented through EMIF interface. The problems of asynchronous clock domain between image acquisition and display, and algorithm processing time uncertainty were solved by means of triple buffering read?write mechanism. The C6455 software flow developed on the basis of BIOS and NDK is introduced. The statistical results of the image processing algorithm execution cycles of this system have been demonstrated. This system is stable and reliable, and has high practical value.
Keyword: embedded image processing system; digital signal processor; field programmable gate array; triple buffering; asynchronous clock domain
0 引 言
伴隨著圖像處理技術(shù)的快速發(fā)展,圖像處理系統(tǒng)的性能需求也在不斷提高,特別是在實(shí)時(shí)性上的要求[1]?;赑C或者工作站的圖像處理系統(tǒng),常常不是一個(gè)可行的選擇[2],原因如下:應(yīng)用對處理時(shí)間要求苛刻;CCD攝像機(jī)數(shù)據(jù)量太大。另外,這類系統(tǒng)的資源有效利用率較低,體積大而笨重,功耗高,不適合便攜式應(yīng)用場合[3]。
DSP是一種基于指令和代碼的流水線處理器,具有強(qiáng)大的數(shù)據(jù)處理能力和較高的運(yùn)行速度,采用C/C++或者線性匯編語言編程,可以支持復(fù)雜的算法處理[4],而FPGA則屬于真正的并行架構(gòu)[5],不同的處理操作無需競爭相同的資源,每個(gè)處理任務(wù)都可以不受其他邏輯塊的影響自主運(yùn)行,因此FPGA具有強(qiáng)大的并行處理能力,其現(xiàn)場可編程的屬性也帶來了更大的靈活性,但是,F(xiàn)PGA不擅長復(fù)雜的算法處理和邏輯控制。本文基于DSP+FPGA架構(gòu)構(gòu)建了一個(gè)嵌入式圖像處理系統(tǒng),使得DSP和FPGA可以發(fā)揮各自的特長,協(xié)同處理,與單獨(dú)采用DSP或FPGA的系統(tǒng)相比,本系統(tǒng)具有更強(qiáng)大的數(shù)據(jù)處理能力,且更靈活、更通用。
1 系統(tǒng)架構(gòu)
本系統(tǒng)采用DSP+FPGA架構(gòu),原理方框圖如圖1所示,其中DSP芯片采用TI公司單核最高性能的TMS320C6455(簡稱C6455)[6]芯片作為核心處理器,負(fù)責(zé)完成視頻圖像的復(fù)雜算法處理,F(xiàn)PGA芯片采用Altera公司的Cyclone Ⅲ系列芯片EP3C55[7],F(xiàn)PGA作為DSP的協(xié)處理器,負(fù)責(zé)完成圖像的采集、顯示和傳輸?shù)容o助功能,使得DSP可以專注于算法處理。
DSP和FPGA之間通過32位EMIF接口實(shí)現(xiàn)了高速同步無縫互聯(lián), 由圖1可知,本系統(tǒng)的動(dòng)態(tài)存儲器均采用DDR2 SDRAM,其中C6455所帶2片DDR2存儲器用來存儲圖像和算法數(shù)據(jù),為C6455處理大數(shù)據(jù)量、復(fù)雜算法提供了保證。FPGA所帶2片DDR2存儲器用來存儲捕捉的Camera圖像數(shù)據(jù),以便VGA顯示和DSP讀取。FPGA采集的圖像數(shù)據(jù)可通過EMIF和EDMA從FPGA所帶的DDR2存儲器搬運(yùn)到DSP所帶的DDR2存儲器。
圖1 系統(tǒng)方框圖
2 FPGA設(shè)計(jì)
本文FPGA的主要功能圍繞著DDR2存儲器的讀寫,如圖2所示。
圖2 FPGA的主要功能模塊圖
相機(jī)負(fù)責(zé)向緩沖區(qū)寫數(shù)據(jù),VGA顯示和DSP負(fù)責(zé)從緩沖區(qū)讀數(shù)據(jù)。本文中的DDR2控制器工作于Full?rate模式下,需要向DDR2 driver提供2倍數(shù)據(jù)寬度,即64 b數(shù)據(jù)。本文對每個(gè)讀寫數(shù)據(jù)通道,使用獨(dú)立的FIFO進(jìn)行不同時(shí)鐘域之間的數(shù)據(jù)傳輸。從CameraLink[8?9]相機(jī)的LVDS接收器解碼得到8 b圖像數(shù)據(jù),在向Write FIFO寫之前,需要按8 B進(jìn)行打包處理,合并為64 b數(shù)據(jù);而發(fā)向VGA顯示的數(shù)據(jù)在從Read FIFO中讀出后,需要先經(jīng)過拆包處理,得到8 b圖像數(shù)據(jù)后才能送給VGA Controller;從Capture FIFO讀出的數(shù)據(jù)發(fā)送給DSP之前也要經(jīng)過拆包處理,將64 b數(shù)據(jù)拆為2個(gè)32 b數(shù)據(jù)后,才能發(fā)送給EMIFA,進(jìn)行傳輸。為方便可視化驗(yàn)證算法處理結(jié)果,DSP算法處理結(jié)果可以通過McBSP發(fā)送給FPGA,F(xiàn)PGA接收到數(shù)據(jù),將其轉(zhuǎn)換為可視的屏幕位置送給VGA Controller,在屏幕上進(jìn)行疊加顯示。
本系統(tǒng)應(yīng)用于近紅外圖像處理領(lǐng)域,采用的CameraLink相機(jī)[10]輸出分辨率為1 024×768,幀率為30 f/s,而一般的液晶顯示器刷新頻率為60 Hz,為了將捕捉到的相機(jī)數(shù)據(jù)顯示出來,需要將30幀圖像插幀為60幀,但是顯示時(shí)鐘與相機(jī)時(shí)鐘并不是同源時(shí)鐘,其幀率并不是嚴(yán)格的兩倍關(guān)系,這種相機(jī)和顯示之間的異步時(shí)序關(guān)系如圖3所示,所以不能簡單地將一幀圖像顯示2次;同時(shí),本系統(tǒng)的近紅外圖像算法處理時(shí)間根據(jù)圖像的不同而具有不確定性,并非每幀圖像都能在一個(gè)幀周期內(nèi)處理完成?;谶@兩個(gè)因素,本系統(tǒng)沒有采用常規(guī)的乒乓緩沖處理方式,而是采用了三重緩沖解決了這兩個(gè)問題。
圖3 相機(jī)和顯示的異步時(shí)序關(guān)系
所謂三重緩沖,也即在DDR2存儲器內(nèi)開辟了三個(gè)緩沖:BufferA,BufferB和BufferC。其中,讀寫操作各占一個(gè)緩沖區(qū),第三個(gè)存儲區(qū)作為中轉(zhuǎn),先不考慮DSP從緩沖區(qū)讀數(shù)據(jù)。
三重緩沖的示意圖如圖4所示,假設(shè)當(dāng)前緩沖區(qū)BufferA正在進(jìn)行寫操作,緩沖區(qū)BufferB正在進(jìn)行讀操作,緩沖區(qū)BufferC則有2種可能:已寫滿(FULL)和已讀完(EMPTY)兩個(gè)狀態(tài)。此時(shí),如果需要進(jìn)行讀寫翻頁操作,即讀復(fù)位信號或?qū)憦?fù)位
信號有效時(shí),DDR2驅(qū)動(dòng)程序可按不同情況給出不同的操作,如表1所示。
例如,當(dāng)讀復(fù)位信號有效,寫復(fù)位信號無效時(shí),說明緩沖區(qū)BufferA尚未寫滿,而緩沖區(qū)BufferB已經(jīng)讀完,此時(shí),需要查詢緩沖區(qū)BufferC的狀態(tài),如果緩沖區(qū)BufferC處于“FULL”狀態(tài),則讀緩沖區(qū)將由當(dāng)前的緩沖區(qū)BufferB改為緩沖區(qū)BufferC,并將緩沖區(qū)BufferB設(shè)置為“EMPTY”狀態(tài);如果緩沖區(qū)BufferC處于“EMPTY”狀態(tài),則將重新讀取緩沖區(qū)BufferB。
圖4 三重緩沖的示意圖
表1 三重緩沖的決策表
再考慮DSP從緩沖區(qū)讀數(shù)據(jù)的情況,為保證DSP任意時(shí)刻開始讀數(shù)據(jù),總能讀到最新的數(shù)據(jù),本文使用圖像的場信號FVAL下降沿作為觸發(fā),定位DSP讀數(shù)據(jù)的緩沖區(qū)地址,如果在下一個(gè)FVAL下降沿之前DSP始終未開始讀數(shù)據(jù),則在新的FVAL下降沿時(shí)刻重新定位緩沖區(qū)地址,反之,如果DSP開始讀數(shù)據(jù)了,即使在FVAL下降沿未能讀完,也會繼續(xù)讀,直到DSP讀完數(shù)據(jù),再重新定位緩沖區(qū)地址,按本文設(shè)計(jì)的方案,DSP會在很短的時(shí)間內(nèi)完成讀數(shù)據(jù)任務(wù),而如果在兩個(gè)FVAL內(nèi),DSP一直未完成讀任務(wù),則認(rèn)為發(fā)生了錯(cuò)誤,讀控制器會進(jìn)行復(fù)位矯正。
DDR2驅(qū)動(dòng)的讀寫控制以顯示的行信號HD為周期,周期性查詢是否需要進(jìn)行讀寫操作。其狀態(tài)轉(zhuǎn)移示意圖如圖5所示。
圖5 DDR2讀寫控制的狀態(tài)機(jī)
SignalTap Ⅱ Logic Analyzer是Quartus Ⅱ自帶的嵌入式邏輯分析儀,與ModelSim軟件仿真有所不同,是在線式仿真,可以實(shí)時(shí)捕捉和顯示信號變化。圖6所示是本文用SignalTap Ⅱ捕捉到的數(shù)據(jù)波形。
圖6 SignalTap Ⅱ波形圖
3 C6455軟件設(shè)計(jì)
本文C6455的軟件基于TI提供的搶占式多線程實(shí)時(shí)內(nèi)核DSP/BIOS[11]進(jìn)行開發(fā),網(wǎng)絡(luò)部分使用了NDK[12]開發(fā)套件,為了實(shí)現(xiàn)通過網(wǎng)絡(luò)發(fā)送圖像數(shù)據(jù)給計(jì)算機(jī)和接收來自計(jì)算機(jī)的圖像數(shù)據(jù),使用了面向無連接的UDP協(xié)議,相比TCP協(xié)議,UDP速度更快,更適合應(yīng)用。C6455軟件主要包含三個(gè)部分:實(shí)時(shí)性最高的硬件中斷線程(HWI);采集線程和兩個(gè)任務(wù)線程(TSK);處理線程和通信線程,流程圖如圖7所示。
圖7 C6455程序流程圖
4 實(shí)驗(yàn)結(jié)果
本文提出的基于DSP+FPGA的圖像處理系統(tǒng),已經(jīng)通過實(shí)驗(yàn)驗(yàn)證。圖8展示了本系統(tǒng)圖像處理算法連續(xù)運(yùn)行500個(gè)周期的統(tǒng)計(jì)結(jié)果,圖中實(shí)線為連續(xù)10個(gè)相鄰離散點(diǎn)的平均值。由圖8可見,本系統(tǒng)既可以使算法在超過一個(gè)圖像幀周期的時(shí)間內(nèi)運(yùn)行,又可以使連續(xù)一段時(shí)間內(nèi)平均的執(zhí)行時(shí)間近似為圖像幀周期。本系統(tǒng)滿足了數(shù)據(jù)量大,算法復(fù)雜度高的系統(tǒng)需求,相比乒乓緩沖,本文所提出的三重緩沖具有更快的響應(yīng)速度。
5 結(jié) 語
本文提出的基于DSP+FPGA的圖像處理系統(tǒng),采用DSP作為算法處理器,F(xiàn)PGA作為協(xié)處理器,大大提高了系統(tǒng)的性能,并增強(qiáng)了系統(tǒng)的適應(yīng)性和靈活性。目前,本系統(tǒng)的樣機(jī)已經(jīng)完成調(diào)試開發(fā)工作,并得到了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可適用于數(shù)據(jù)量大、算法復(fù)雜度高的應(yīng)用場合,整個(gè)系統(tǒng)采用嵌入式一體化設(shè)計(jì),運(yùn)行穩(wěn)定可靠,體積小,功耗低,實(shí)用價(jià)值較高。
圖8 運(yùn)行周期統(tǒng)計(jì)結(jié)果
參考文獻(xiàn)
[1] MOHAMED A, LAURENT P. Special issue on parallel computing for real?time image processing [J]. Real?Time Image Processing, 2011 (6): 1?2.
[2] BIERENS L. Real?time embedded image processing on the PowerFFTTM processor [EB/OL]. [2008?12?16]. www.book118.com/nongye.
[3] HUANG SHIUH?JER, HUANG JIAN?CHENG. Vision guided dual arms robotic system with DSP and FPGA integrated system structure [J]. Journal of Mechanical Science and Technology, 2011, 25 (8): 2067?2076.
[4] BENSRHAIR A, CHAFIQUI N, MICHEL P. Implementation of a 3D vision system on DSP4 TMS320C31 [J]. Real?Time Imaging, 2010(6): 213?221.
[5] NATIONAL INSTRUMENTS. Introduction to FPGA Technology: Top 5 Benefits [EBOL]. [ 2008?02?14]. http://www.ni.com/white?paper/6984/en.
[6] Texas Instruments. TMS320C6455 fixed?point digital signal processor [R]. USA: Texas Instruments, 2012.
[7] Altera. Cyclone III device handbook [R]. [S.l.]: Altera, 2011.
[8] AIA. Specifications of the camera link interface standard for digital cameras and frame grabbers, Version 2.0 [S]. [S.l.]: AIA, 2012.
[9] PRINCETON INSTRUMENTS. Choosing the right interface? [EB/OL]. [2008?09?24].http://www.princetoninstruments.com/Uploads/Princeton/Documents/TechNotes/Choosing_the_right_interface_PI_Article.
[10] JAI. Digital 2CCD progressive scan multi?spectral cameras AD?080CL users manual, Version 1.0 [R]. [S.l.]: JAI, 2012.
[11] Texas Instruments. TMS320 DSP/BIOS v5.42 user′s guide [R]. USA: Texas Instruments, 2012.
[12] Texas Instruments. TI network developers kit (NDK) v2.21 users guide [R]. USA: Texas Instruments, 2012.
5 結(jié) 語
本文提出的基于DSP+FPGA的圖像處理系統(tǒng),采用DSP作為算法處理器,F(xiàn)PGA作為協(xié)處理器,大大提高了系統(tǒng)的性能,并增強(qiáng)了系統(tǒng)的適應(yīng)性和靈活性。目前,本系統(tǒng)的樣機(jī)已經(jīng)完成調(diào)試開發(fā)工作,并得到了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可適用于數(shù)據(jù)量大、算法復(fù)雜度高的應(yīng)用場合,整個(gè)系統(tǒng)采用嵌入式一體化設(shè)計(jì),運(yùn)行穩(wěn)定可靠,體積小,功耗低,實(shí)用價(jià)值較高。
圖8 運(yùn)行周期統(tǒng)計(jì)結(jié)果
參考文獻(xiàn)
[1] MOHAMED A, LAURENT P. Special issue on parallel computing for real?time image processing [J]. Real?Time Image Processing, 2011 (6): 1?2.
[2] BIERENS L. Real?time embedded image processing on the PowerFFTTM processor [EB/OL]. [2008?12?16]. www.book118.com/nongye.
[3] HUANG SHIUH?JER, HUANG JIAN?CHENG. Vision guided dual arms robotic system with DSP and FPGA integrated system structure [J]. Journal of Mechanical Science and Technology, 2011, 25 (8): 2067?2076.
[4] BENSRHAIR A, CHAFIQUI N, MICHEL P. Implementation of a 3D vision system on DSP4 TMS320C31 [J]. Real?Time Imaging, 2010(6): 213?221.
[5] NATIONAL INSTRUMENTS. Introduction to FPGA Technology: Top 5 Benefits [EBOL]. [ 2008?02?14]. http://www.ni.com/white?paper/6984/en.
[6] Texas Instruments. TMS320C6455 fixed?point digital signal processor [R]. USA: Texas Instruments, 2012.
[7] Altera. Cyclone III device handbook [R]. [S.l.]: Altera, 2011.
[8] AIA. Specifications of the camera link interface standard for digital cameras and frame grabbers, Version 2.0 [S]. [S.l.]: AIA, 2012.
[9] PRINCETON INSTRUMENTS. Choosing the right interface? [EB/OL]. [2008?09?24].http://www.princetoninstruments.com/Uploads/Princeton/Documents/TechNotes/Choosing_the_right_interface_PI_Article.
[10] JAI. Digital 2CCD progressive scan multi?spectral cameras AD?080CL users manual, Version 1.0 [R]. [S.l.]: JAI, 2012.
[11] Texas Instruments. TMS320 DSP/BIOS v5.42 user′s guide [R]. USA: Texas Instruments, 2012.
[12] Texas Instruments. TI network developers kit (NDK) v2.21 users guide [R]. USA: Texas Instruments, 2012.
5 結(jié) 語
本文提出的基于DSP+FPGA的圖像處理系統(tǒng),采用DSP作為算法處理器,F(xiàn)PGA作為協(xié)處理器,大大提高了系統(tǒng)的性能,并增強(qiáng)了系統(tǒng)的適應(yīng)性和靈活性。目前,本系統(tǒng)的樣機(jī)已經(jīng)完成調(diào)試開發(fā)工作,并得到了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可適用于數(shù)據(jù)量大、算法復(fù)雜度高的應(yīng)用場合,整個(gè)系統(tǒng)采用嵌入式一體化設(shè)計(jì),運(yùn)行穩(wěn)定可靠,體積小,功耗低,實(shí)用價(jià)值較高。
圖8 運(yùn)行周期統(tǒng)計(jì)結(jié)果
參考文獻(xiàn)
[1] MOHAMED A, LAURENT P. Special issue on parallel computing for real?time image processing [J]. Real?Time Image Processing, 2011 (6): 1?2.
[2] BIERENS L. Real?time embedded image processing on the PowerFFTTM processor [EB/OL]. [2008?12?16]. www.book118.com/nongye.
[3] HUANG SHIUH?JER, HUANG JIAN?CHENG. Vision guided dual arms robotic system with DSP and FPGA integrated system structure [J]. Journal of Mechanical Science and Technology, 2011, 25 (8): 2067?2076.
[4] BENSRHAIR A, CHAFIQUI N, MICHEL P. Implementation of a 3D vision system on DSP4 TMS320C31 [J]. Real?Time Imaging, 2010(6): 213?221.
[5] NATIONAL INSTRUMENTS. Introduction to FPGA Technology: Top 5 Benefits [EBOL]. [ 2008?02?14]. http://www.ni.com/white?paper/6984/en.
[6] Texas Instruments. TMS320C6455 fixed?point digital signal processor [R]. USA: Texas Instruments, 2012.
[7] Altera. Cyclone III device handbook [R]. [S.l.]: Altera, 2011.
[8] AIA. Specifications of the camera link interface standard for digital cameras and frame grabbers, Version 2.0 [S]. [S.l.]: AIA, 2012.
[9] PRINCETON INSTRUMENTS. Choosing the right interface? [EB/OL]. [2008?09?24].http://www.princetoninstruments.com/Uploads/Princeton/Documents/TechNotes/Choosing_the_right_interface_PI_Article.
[10] JAI. Digital 2CCD progressive scan multi?spectral cameras AD?080CL users manual, Version 1.0 [R]. [S.l.]: JAI, 2012.
[11] Texas Instruments. TMS320 DSP/BIOS v5.42 user′s guide [R]. USA: Texas Instruments, 2012.
[12] Texas Instruments. TI network developers kit (NDK) v2.21 users guide [R]. USA: Texas Instruments, 2012.