鐘 穎 , 張春俠 , 林玉野
(1.北京航天自動(dòng)控制研究所 北京 100854;2.宇航智能控制技術(shù)國(guó)家級(jí)重點(diǎn)實(shí)驗(yàn)室 北京 100854)
隨著數(shù)字化技術(shù)的不斷發(fā)展和完善,嵌入式數(shù)字圖像處理技術(shù)已廣泛應(yīng)用于工業(yè)、軍事、生物、醫(yī)療、電信等領(lǐng)域,由于圖像處理要求運(yùn)行復(fù)雜靈活的圖像處理算法和大數(shù)據(jù)量的數(shù)據(jù)傳輸處理,且實(shí)際應(yīng)用中嵌入式系統(tǒng)實(shí)時(shí)性要求不斷提高,要求硬件平臺(tái)的處理速度快、靈活性強(qiáng),基于DSP和FPGA架構(gòu)的數(shù)字硬件系統(tǒng)可以把二者的優(yōu)點(diǎn)結(jié)合在一起,已經(jīng)成為嵌入式圖像采集、處理硬件平臺(tái)的首選方案。
嵌入式圖像處理系統(tǒng)主要負(fù)責(zé)從前端圖像輸出部件接收?qǐng)D像數(shù)據(jù),經(jīng)過(guò)FPGA邏輯處理后通過(guò)FIFO傳輸至DSP,在DSP中進(jìn)行算法處理,將處理結(jié)果通過(guò)串行通信接口發(fā)送至主控制單元。為了滿足實(shí)時(shí)性要求,全部圖像采集、傳輸、處理必須在50 ms以內(nèi)完成。
嵌入式圖像處理系統(tǒng)的功能主要包括:
1)通過(guò)LVDS接口實(shí)時(shí)接收?qǐng)D像輸出部件傳送過(guò)來(lái)的圖像信息;
2)通過(guò)RS422串行通信接口實(shí)時(shí)接收?qǐng)D像輸出部件傳送過(guò)來(lái)的其他信息,完成對(duì)圖像輸出部件的配置、指令控制;
3)完成對(duì)圖像輸出部件曝光、時(shí)序控制;
4)通過(guò)RS422串行通信接口將圖像處理結(jié)果傳送到主控制單元,并接收?qǐng)?zhí)行主控制單元控制指令。
5)接收并轉(zhuǎn)發(fā)主控制單元與圖像輸出部件之間的指令、狀態(tài)信息。
嵌入式圖像處理系統(tǒng)構(gòu)成如圖1所示,包括LVDS接收電路、FPGA控制電路、同步FIFO接口電路、DSP數(shù)字圖像處理及其配套存儲(chǔ)器電路、同步脈沖控制電路、串行控制電路等。其中FPGA控制電路主要完成圖像信號(hào)接收、初步預(yù)處理并將其寫(xiě)入同步FIFO中緩存,DSP主要控制圖像采集輸出部件正常工作、接收FIFO傳送的圖像數(shù)據(jù)、實(shí)現(xiàn)較為復(fù)雜的圖像處理算法等。
系統(tǒng)硬件設(shè)計(jì)采用模塊化設(shè)計(jì)思想,保證系統(tǒng)工作可靠,滿足實(shí)時(shí)性要求。
DSP選用TI公司的TMS320C6416芯片,其為定點(diǎn)數(shù)值處理器,內(nèi)部采用兩個(gè)高速緩存器,即16 kbyte的一級(jí)數(shù)據(jù)cache,16 kbyte的一級(jí)程序cache和可映射到統(tǒng)一存儲(chǔ)空間的1 024 kbyte的二級(jí)存儲(chǔ)器;主頻最高可以達(dá)到600 MHz,具有EDMA、QDMA數(shù)據(jù)傳輸方式,可以大大縮短數(shù)據(jù)搬移時(shí)間;對(duì)外接口包括兩個(gè)外部存儲(chǔ)器接口(EMIFA和EMIFB)、主機(jī)接口(HPI)、多通道緩沖串口(Mcbsp)等,接口能力強(qiáng),具有與大部分存儲(chǔ)器的無(wú)縫接口,使用靈活、易于擴(kuò)展。
圖1 系統(tǒng)設(shè)計(jì)框圖Fig.1 System design schematic
TMS320C6416DSP內(nèi)核采用超長(zhǎng)指令字體系結(jié)構(gòu),有8個(gè)功能單元、64個(gè)32 bit通用寄存器。內(nèi)核工作電壓1.4 V,外圍工作電壓3.3 V,工作于最高主頻600 MHz時(shí)功耗僅為1.6 W,功耗較低。
如圖1所示主機(jī)內(nèi)存分配如下:1片擴(kuò)展SDRAM芯片,存儲(chǔ)容量 64 Mbyte;2片 FLASH芯片,監(jiān)控 FLASH為1 Mbyte,主要用于存儲(chǔ)程序;數(shù)據(jù)記錄FLASH為4 Mbyte,主要用于存儲(chǔ)基準(zhǔn)圖數(shù)據(jù)。
LVDS接口用于實(shí)時(shí)接收?qǐng)D像采集輸出部件傳輸過(guò)來(lái)的圖像信息,接收芯片與圖像采集輸出部件的發(fā)送芯片保持匹配,采用NS公司的DS90CR216芯片。圖像采集輸出部件將圖像數(shù)據(jù)通過(guò)4路LVDS差分信號(hào)傳輸?shù)角度胧綀D像處理系統(tǒng),通過(guò)LVDS接收芯片解碼,分別輸出10位圖像數(shù)據(jù)、行同步脈沖、場(chǎng)同步脈沖和數(shù)據(jù)時(shí)鐘,數(shù)據(jù)圖像如圖2所示。
圖2 LVDS傳輸信息時(shí)序圖Fig.2 LVDS transmit information schedule diagram
LVDS傳輸信息時(shí)序說(shuō)明如下:
1)每個(gè)場(chǎng)同步脈沖(下升沿)到來(lái),標(biāo)志一幀圖像到來(lái);
2)場(chǎng)脈沖周期內(nèi),在場(chǎng)脈沖低電平期間,每個(gè)行脈沖(上升沿)到來(lái),標(biāo)志一行圖像數(shù)據(jù)到來(lái),每幀圖像有512行圖像,從而有512個(gè)行脈沖;
3)每個(gè)行脈沖周期內(nèi),在行脈沖低電平期間,每個(gè)像素時(shí)鐘上升沿到來(lái),標(biāo)志一個(gè)像素?cái)?shù)據(jù)到來(lái),每個(gè)像素?cái)?shù)據(jù)有10 bit,并行傳輸;
4)接收端需要在每個(gè)像素時(shí)鐘上升沿到來(lái)后將10位圖像數(shù)據(jù)鎖存。
根據(jù)系統(tǒng)時(shí)序控制和計(jì)數(shù)等功能需要邏輯門(mén)的大小,F(xiàn)PGA芯片選用ACTEL公司的APA600芯片,此芯片內(nèi)部自帶ROM,上電就可以自主運(yùn)行,不需從外部ROM引導(dǎo),可靠性高,已經(jīng)成為航天、醫(yī)療等可靠性要求高場(chǎng)合的首選產(chǎn)品。
FPGA實(shí)現(xiàn)的功能主要包括:
1)接收LVDS傳輸數(shù)據(jù)并將其寫(xiě)入FIFO 對(duì)LVDS接收芯片接收的信號(hào)按照?qǐng)D2所示的時(shí)序關(guān)系進(jìn)行處理,判斷場(chǎng)、行同步信號(hào)是否有效,在場(chǎng)同步信號(hào)有效、同時(shí)行同步信號(hào)有效的情況下按照CCD時(shí)鐘將512×512個(gè)有效數(shù)據(jù)寫(xiě)入FIFO。
2)總線控制 對(duì)EMIFB CE2空間進(jìn)行地址譯碼,分配給兩個(gè)串口作為片選。
3)復(fù)位信號(hào)處理 對(duì)上電復(fù)位和外部主控制單元發(fā)送的復(fù)位信號(hào)進(jìn)行邏輯處理,控制電路板上的各個(gè)芯片復(fù)位信號(hào)有效。
一路RS422接口電路用于信息處理系統(tǒng)向圖像采集輸出部件傳送控制指令和配置信息;同時(shí)圖像采集輸出部件向信息處理系統(tǒng)回傳狀態(tài)信息;另一路RS422接口電路用于信息處理系統(tǒng)向主控制單元傳送圖像處理結(jié)果,以及主控制單元向信息處理系統(tǒng)發(fā)送控制指令。
串行通信控制器選用TI公司的串行控制芯片TL16C752B芯片,內(nèi)部集成兩個(gè)獨(dú)立的串口控制單元,通信協(xié)議(數(shù)據(jù)位、波特率等)可以通過(guò)軟件靈活配置,通信速率最快可以達(dá)到2 Mbps,外部接口和時(shí)序控制都比較簡(jiǎn)單。兩個(gè)串口控制單元的中斷請(qǐng)求管腳分別對(duì)應(yīng)DSP的兩個(gè)外部中斷輸入管腳,軟件管理簡(jiǎn)單,提高了可靠性,技術(shù)成熟。
同步脈沖控制電路主要用于信息處理系統(tǒng)向圖像采集輸出部件發(fā)送外觸發(fā)曝光信號(hào)。
圖像采集輸出部件有兩種工作方式,一種是外同步方式,即圖像處理板通過(guò)IO口向圖像采集輸出部件發(fā)送外觸發(fā)曝光信號(hào)啟動(dòng)圖像采集輸出部件曝光;另一種方式是內(nèi)同步方式,即圖像采集輸出部件在曝光中間時(shí)刻將曝光同步信號(hào)發(fā)送到圖像處理板,通知圖像板曝光開(kāi)始,圖像處理板需實(shí)時(shí)響應(yīng)該信號(hào)從而獲知曝光時(shí)刻。
本設(shè)計(jì)采用外同步方式,主要利用DSP的GPIO口產(chǎn)生同步脈沖信號(hào),外觸發(fā)信號(hào)的電路形式見(jiàn)圖3所示。
圖3 外同步脈沖輸入控制曝光時(shí)間電路原理圖Fig.3 External synchronization pulse control exposal time principle diagram
FIFO接口電路是介于FPGA和DSP之間的數(shù)據(jù)緩沖單元,也是確??梢詼?zhǔn)確讀取圖像數(shù)據(jù)的關(guān)鍵環(huán)節(jié),電路原理圖參見(jiàn)圖4所示。FIFO接口設(shè)計(jì)的關(guān)鍵是確定好幾個(gè)關(guān)鍵信號(hào)的處理,寫(xiě)時(shí)鐘、寫(xiě)使能、讀時(shí)鐘和讀使能,寫(xiě)時(shí)鐘、寫(xiě)使能由FPGA控制,寫(xiě)時(shí)鐘為前端CCD時(shí)鐘信號(hào),當(dāng)場(chǎng)、行同步信號(hào)同時(shí)有效的情況下,寫(xiě)使能信號(hào)有效,將數(shù)據(jù)寫(xiě)入FIFO。設(shè)計(jì)中采用IDT公司的IDT72V2105芯片,該芯片容量為262 144×18 bit,可以滿足設(shè)計(jì)要求。
圖4 FIFO接口電路原理圖Fig.4 FIFO interface circuit diagram
FPGA程序處理的主要任務(wù)之一是按照?qǐng)D2中LVDS傳輸信息時(shí)序圖的要求,準(zhǔn)確接收LVDS傳輸?shù)膱D像數(shù)據(jù),并將其按照節(jié)拍寫(xiě)入FIFO中緩存。程序設(shè)計(jì)的要點(diǎn)是準(zhǔn)確判斷場(chǎng)同步信號(hào)是否到來(lái),場(chǎng)同步信號(hào)到來(lái)后判斷行同步信號(hào)是否到來(lái),在場(chǎng)同步信號(hào)、行同步信號(hào)都有效的情況下如何控制將數(shù)據(jù)寫(xiě)入同步FIFO。
設(shè)計(jì)難點(diǎn)及解決辦法主要包括:
1)正確判斷行、場(chǎng)信號(hào)到來(lái)并有效讀取數(shù)據(jù)
為了準(zhǔn)確判斷場(chǎng)同步信號(hào)ccd_vd、行同步信號(hào)ccd_hd是否有效(下降沿到來(lái))并且在ccd_hd有效后的第一個(gè)時(shí)鐘上升沿讀取到數(shù)據(jù),設(shè)計(jì)中采用ccd_clk時(shí)鐘頻率3倍以上的高頻時(shí)鐘 clkin對(duì) ccd_vd、ccd_hd進(jìn)行采樣,fif0_wen為FIFO寫(xiě)使能控制信號(hào),fifodata為寫(xiě)入FIFO后的數(shù)據(jù),仿真后的波形圖參見(jiàn)圖5所示,滿足時(shí)序要求。
圖5 有效讀取起始數(shù)據(jù)仿真波形圖Fig.5 Effectively read initiative data emulation wave diagram
2)有效讀取512行
為了準(zhǔn)確獲得512×512個(gè)有效數(shù)據(jù),在ccd_vd有效的前提條件下,需要對(duì)ccd_hd進(jìn)行計(jì)數(shù),如果超過(guò)512行就認(rèn)為數(shù)據(jù)無(wú)效,此時(shí)關(guān)閉fif0_wen,cnt2為行計(jì)數(shù)值,仿真后的波形圖參見(jiàn)圖6所示,滿足時(shí)序要求。
圖6 有效讀取512行仿真波形圖Fig.6 Effectively read 512 rows emulation wave diagram
3)有效讀取每行的512個(gè)數(shù)據(jù)
為了準(zhǔn)確獲得512×512個(gè)有效數(shù)據(jù),在ccd_hd有效的前提條件下,需要對(duì)ccd_clk進(jìn)行計(jì)數(shù),如果超過(guò)512個(gè)時(shí)鐘信號(hào)就認(rèn)為數(shù)據(jù)無(wú)效,此時(shí)關(guān)閉fif0_wen,cnt1為有效數(shù)據(jù)計(jì)數(shù)值,仿真后的波形圖參見(jiàn)圖7所示,滿足時(shí)序要求。
圖7 有效讀取每行512個(gè)數(shù)據(jù)仿真波形圖Fig.7 Effectively read 512 data in every row emulation wave diagram
系統(tǒng)運(yùn)行的過(guò)程如圖8所示:系統(tǒng)加電以后,上電復(fù)位電路會(huì)產(chǎn)生200 ms的低電平復(fù)位脈沖,在復(fù)位的這段時(shí)間內(nèi),位于外部CE1空間的FLASH中的代碼首先通過(guò)EDMA被搬入內(nèi)存中。傳輸完成后,CPU退出復(fù)位狀態(tài),開(kāi)始執(zhí)行內(nèi)存中的指令。
首先對(duì)嵌入式圖像處理系統(tǒng)進(jìn)行初始化,工作正常后通過(guò)串行控制器與前端圖像采集輸出部件進(jìn)行通信,確認(rèn)圖像采集輸出部件工作正常后發(fā)出相關(guān)成像指令,指令執(zhí)行正常后由圖像處理系統(tǒng)發(fā)出同步脈沖控制信號(hào),圖像采集輸出部件接收到同步脈沖后輸出一幀圖像,經(jīng)過(guò)LVDS轉(zhuǎn)換輸出后,在FPGA中進(jìn)行初步判斷處理,由FPGA按照時(shí)間節(jié)拍將圖像數(shù)據(jù)寫(xiě)入同步FIFO中緩存,當(dāng)寫(xiě)入FIFO的數(shù)據(jù)達(dá)到FIFO存儲(chǔ)容量的一半時(shí),F(xiàn)IFO會(huì)通過(guò)外部中斷4向CPU提出中斷申請(qǐng),CPU響應(yīng)中斷并按照EDMA方式從FIFO中讀取數(shù)據(jù),隨后在內(nèi)存中進(jìn)行相關(guān)算法的處理。算法處理結(jié)束以后,CPU把運(yùn)算結(jié)果發(fā)送給主控制單元,至此系統(tǒng)運(yùn)行結(jié)束。
在該嵌入式圖像處理系統(tǒng)上運(yùn)行圖像復(fù)原算法后處理結(jié)果如圖9所示,使用的圖像像素為 512×512,圖像灰度值為10 bit,圖 9(a)為原始圖像,圖 9(b)為算法處理后的輸出結(jié)果。
在滿足系統(tǒng)功能性要求的同時(shí),對(duì)圖像采集、傳輸、處理的時(shí)間進(jìn)行了統(tǒng)計(jì),其中前端圖像采集輸出部件接收到外部觸發(fā)脈沖后10 ms輸出一幀圖像,經(jīng)過(guò)FPGA和FIFO緩存及被DSP讀取大致需要16 ms,圖像處理算法需要20 ms,整個(gè)圖像采集、傳輸、處理過(guò)程需要46 ms,滿足系統(tǒng)實(shí)時(shí)性要求。
圖8 軟件運(yùn)行流程圖Fig.8 Flow chart of software
圖9 系統(tǒng)處理實(shí)驗(yàn)結(jié)果Fig.9 System process experimentation result
基于DSP和FPGA架構(gòu)的嵌入式圖像處理系統(tǒng)針對(duì)可見(jiàn)光圖像數(shù)據(jù)量大,數(shù)據(jù)復(fù)雜的特點(diǎn),充分利用了DSP計(jì)算龐大數(shù)據(jù)的高效性和FPGA精于并行處理的優(yōu)點(diǎn),系統(tǒng)具有集成度高、存儲(chǔ)量大、處理速度快和方便傳輸?shù)忍攸c(diǎn)。另外系統(tǒng)也有很好的通用性,不僅能夠用于目標(biāo)識(shí)別,還可實(shí)現(xiàn)壓縮、分類等其他信息處理,具有廣泛的應(yīng)用前景。
[1]李方慧,王飛,何佩坤.TMS320C6000系列DSPs原理與應(yīng)用[M].2版.北京:電子工業(yè)出版社,2003.
[2]張曄,邵濤,嚴(yán)萌.基于DSP和FPGA的高光譜圖像處理系統(tǒng)設(shè)計(jì)[J].光電技術(shù)應(yīng)用,2010,25(1):56-59.ZHANG Ye,SHAO Tao,YAN Meng.Design of hyperspectral image processing system based on DSP&FPGA[J].Electrooptic Technology Application,2010,25(1):56-59.
[3]高春甫,楊前進(jìn),馮禮萍,等.基于FPGA+DSP的CCD實(shí)時(shí)圖像采集處理系統(tǒng)[J].山西大學(xué)學(xué)報(bào):自然科學(xué)版,2007,30(1):36-39.GAO Chun-pu,YANG Qian-jin,F(xiàn)ENG Li-ping,et al.A real time digital image processing system for CCD based on FPGA and DSP[J].Journal of Shanxi University:Nat.Sci.Ed.,2007,30(1):36-39.
[4]干戈.基于DSP+FPGA的雙通道實(shí)時(shí)圖像處理系統(tǒng)設(shè)計(jì)[J].艦船電子工程,2008,28(7):75-77.GAN Ge.Design and implementation of 2-channel digital image processing system based on DSP+FPGA Architecture[J].Ship Electronic,2008,28(7):75-77.
[5]郭志強(qiáng),劉毅.基于DSP并行處理的圖像融合系統(tǒng)設(shè)計(jì)[J].武漢理工大學(xué)學(xué)報(bào):信息管理工程版,2006,28(11):107-109.GUO Zhi-qiang,LIU Yi.Design of an image fusion syetem based on DSP parallel processing[J].Journal of Wut:Information&Management Engineering,2006,28(11):107-109.
[6]潘基明,張少兵.基于DSP視頻圖像采集處理系統(tǒng)設(shè)計(jì)[J].電子測(cè)試,2008(8):74-78.PAN Ji-ming,ZHANG Shao-bing.DSP-based video image acquisition and processing system design[J].Electronic Test,2008(8):74-78.