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