摘 要: 介紹一種基于ADSP21060和Virtex II的星載圖像處理系統(tǒng)" title="圖像處理系統(tǒng)">圖像處理系統(tǒng),。分析了圖像處理系統(tǒng)的功能和任務(wù),,給出了處理系統(tǒng)的硬件結(jié)構(gòu),、FPGA的功能模塊,、DSP的軟件框架和模塊。通過(guò)地面原理樣機(jī)開發(fā),,驗(yàn)證了系統(tǒng)設(shè)計(jì)的正確性和高效性,。
關(guān)鍵詞: ADSP21060 Virtex II 圖像處理系統(tǒng) 積分器 乒乓結(jié)構(gòu)
圖像處理系統(tǒng)多采用DSP陣列、DSP加FPGA/CPLD" title="FPGA/CPLD">FPGA/CPLD或單由FPGA/CPLD器件等方式構(gòu)成,。采用DSP陣列構(gòu)成的圖像處理系統(tǒng),,其優(yōu)點(diǎn)是處理功能可以通過(guò)軟件靈活修改,其缺點(diǎn)主要有功耗大,、體積大,、成本高;采用單由FPGA/CPLD等可編程器件構(gòu)成的系統(tǒng),,可以避免DSP陣列系統(tǒng)功耗大,、體積大的缺點(diǎn),并可以根據(jù)系統(tǒng)要求,,在硬件構(gòu)造上作靈活的配置,但對(duì)于復(fù)雜的算法,,其設(shè)計(jì)復(fù)雜度急劇上升,。正因?yàn)槿绱?,?dāng)前很多設(shè)計(jì)選擇DSP加FPGA/CPLD的結(jié)構(gòu)來(lái)構(gòu)造圖像處理系統(tǒng)。本空間太陽(yáng)望遠(yuǎn)鏡星載圖像處理系統(tǒng),,正是一種基于DSP和FPGA構(gòu)造的圖像處理系統(tǒng),。本文討論了系統(tǒng)的功能任務(wù)、系統(tǒng)結(jié)構(gòu),、FPGA設(shè)計(jì)的邏輯模塊,、DSP的軟件結(jié)構(gòu)和原理樣機(jī)的實(shí)驗(yàn)結(jié)果。
1 圖像處理系統(tǒng)的功能和任務(wù)
1.1 系統(tǒng)的外圍接口
系統(tǒng)的外圍接口如圖1,。處理系統(tǒng)接收來(lái)自CCD單元的圖像數(shù)據(jù)和同步信號(hào)" title="同步信號(hào)">同步信號(hào),,同時(shí)向CCD單元提供復(fù)位、曝光開始,、數(shù)據(jù)讀出等控制信號(hào),;CEU是一個(gè)管理機(jī),管理和控制CCD單元,、圖像處理單元和壓縮單元,,CEU單元向圖像處理系統(tǒng)發(fā)送各種命令,如CCD標(biāo)定,、正常的觀測(cè)測(cè)試及觀測(cè)數(shù)據(jù)處理" title="數(shù)據(jù)處理">數(shù)據(jù)處理所需要的數(shù)據(jù),,如觀測(cè)模式、時(shí)間等,;系統(tǒng)將處理完成的數(shù)據(jù)送到壓縮單元進(jìn)一步壓縮,。
1.2 系統(tǒng)的圖像處理任務(wù)
圖像處理系統(tǒng)的任務(wù)是接收CCD傳來(lái)的圖像和同步信號(hào),進(jìn)行圖像積分,、輻射校正,、幾何校正、磁圖偏陣計(jì)算和圖像格式化,,然后把數(shù)據(jù)送到壓縮單元進(jìn)行壓縮,。
(1)圖像積分:也就是圖像的多幀疊加,其目的是提高信噪比和消除圖像的時(shí)間相關(guān)性以壓縮數(shù)據(jù)量,??臻g太陽(yáng)望遠(yuǎn)鏡有三個(gè)觀測(cè)模式,分別是爆發(fā)模式,、活動(dòng)區(qū)模式和寧?kù)o態(tài)模式,。經(jīng)計(jì)算,三種觀測(cè)模式下圖像積分的幀數(shù)分別是:4幀,、24幀,、240幀;每個(gè)模式又順次觀測(cè)六個(gè)分量,六個(gè)分量分別是:SV1,、SV2,、SQ1、SQ2,、SU1,、SU2。爆發(fā)模式的觀測(cè)時(shí)間是30s,。30s的時(shí)間是這樣安排的:每個(gè)分量連續(xù)采集4幀,,每秒一幀,然后1s進(jìn)行偏振光學(xué)元件的切換,,如此直到六個(gè)分量觀測(cè)完畢,。活動(dòng)區(qū)模式由6個(gè)連續(xù)的爆發(fā)周期構(gòu)成,,觀測(cè)時(shí)間是3min,;而寧?kù)o態(tài)模式又是10次活動(dòng)區(qū)模式周期構(gòu)成,觀測(cè)周期是30min,。
(2)圖像的輻射校正:圖像由于受到大氣擾動(dòng),、傳感器自身特性、宇宙射線等輻射的影響,,圖像的質(zhì)量會(huì)產(chǎn)生退化,,必須進(jìn)行輻射校正。主要考慮CCD的校正(暗流,、偏置,、平場(chǎng))和條紋斑點(diǎn)的消除兩個(gè)方面。
(3)圖像的幾何校正:圖像的幾何校正,,成像過(guò)程中引起的幾何畸變的校正,;由于系統(tǒng)或隨機(jī)因素造成圖像產(chǎn)生幾何畸變,必須進(jìn)行校正,??紤]圖像漂移的校正,采用相關(guān)技術(shù),,求出活動(dòng)圖像相對(duì)于參考圖像的的漂移量,,再采用線性內(nèi)插累加的方式,實(shí)現(xiàn)漂移前后圖像的積分問(wèn)題,。根據(jù)太陽(yáng)米粒的存活壽命,,幾何校正只對(duì)寧?kù)o模式觀測(cè)進(jìn)行,并且是以3min作為校正時(shí)間間隔,。
(4)圖像的偏振計(jì)算:空間太陽(yáng)望遠(yuǎn)鏡主要進(jìn)行太陽(yáng)磁場(chǎng)測(cè)量,,磁圖的偏振歸算也是重要任務(wù)之一。磁場(chǎng)圖像的歸算還可以是數(shù)據(jù)量壓縮1.5倍。
(5)圖像格式化:給圖像加上圖像頭,,應(yīng)包括:儀器號(hào),、時(shí)間、觀測(cè)模式,、觀測(cè)分量等。
2 圖像處理系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)結(jié)構(gòu)
系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2,。FPGA中的硬件模塊,,包括積分單元、多路" title="多路">多路開關(guān)單元,、兩個(gè)SDRAM控制器和串口控制器,。DSP的所有總線都伸入到FPGA內(nèi)部。存儲(chǔ)器由兩個(gè)SDRAM單元和一個(gè)SRAM單元構(gòu)成,,SRAM只供DSP使用,。系統(tǒng)接收CCD傳來(lái)的圖像,在積分單元進(jìn)行圖像積分,,積分就緒的圖像再由DSP進(jìn)行輻射校正,、幾何校正、偏振計(jì)算和圖像格式化等操作,,最后通過(guò)DSP的片上串口將圖像送到壓縮單元,。通過(guò)串口單元系統(tǒng)與管理機(jī)單元通信,接受管理和控制,。由于圖像積分與DSP的數(shù)據(jù)處理,、數(shù)據(jù)傳送是同時(shí)并行進(jìn)行的,因此積分器和DSP必須采用相互獨(dú)立的存儲(chǔ)區(qū),。為了避免圖像在積分器和DSP的存儲(chǔ)區(qū)之間來(lái)回進(jìn)行圖像傳送,,在設(shè)計(jì)中采用多路開關(guān)進(jìn)行存儲(chǔ)區(qū)乒乓方式切換。
2.2 FPGA邏輯模塊
FPGA內(nèi)部設(shè)計(jì)的邏輯模塊主要包括圖像積分單元,、通路選擇單元,、異步通用串口(UART)單元、兩個(gè)SDRAM控制和其它附加邏輯,。下面分別介紹各塊的結(jié)構(gòu),,由于SDRAM控制器和串口單元(UART)均采用IP核實(shí)現(xiàn),這里不作詳細(xì)介紹,。
2.2.1 積分單元
積分單元主要完成如下功能:(1)按給定的時(shí)序接收CCD的圖像,,并保存在寄存器中;(2)積分地址產(chǎn)生,;(3)存儲(chǔ)器控制,;(4)積分操作;(5)積分?jǐn)U展位清零,當(dāng)每個(gè)分量的第一幀圖像接收時(shí),,無(wú)須積分,,但必須把存儲(chǔ)器的高位(積分?jǐn)U展位)清零,其它情況不必清零,;(6)每幀圖像積分結(jié)束,,產(chǎn)生Irq信號(hào)中斷DSP,以便由DSP進(jìn)行工作安排,。
積分單元的邏輯框圖如圖3,,其輸入輸出如下:(1)CCD輸入數(shù)據(jù)(CCD data),同步信號(hào)——點(diǎn)同步(ps),、行同步(ls),、幀同步(fs);(2)DSP數(shù)據(jù),、地址和控制總線,,irq是積分單元發(fā)給DSP的中斷信號(hào);(3)與存儲(chǔ)器連接的數(shù)據(jù),、地址和存儲(chǔ)器控制總線——data, mctrl, addr,;(4)控制CCD的信號(hào)線——reset、start,、read,。
圖3充色的方框是DSP存儲(chǔ)器地址映射的寄存器,用于對(duì)積分單元進(jìn)行控制和對(duì)DSP數(shù)據(jù)處理狀態(tài)進(jìn)行標(biāo)識(shí),;無(wú)充色的方框則是積分單元的硬件結(jié)構(gòu),,從CCD送來(lái)的數(shù)據(jù)通過(guò)數(shù)據(jù)寄存器(OP1),作為寄分的第一個(gè)操作數(shù),,從存儲(chǔ)器送來(lái)的數(shù)據(jù)通過(guò)數(shù)據(jù)寄存器(OP2)作為積分的第二個(gè)操作數(shù),;從CCD送來(lái)的同步信號(hào),送到幀內(nèi)地址發(fā)生器,,作為地址產(chǎn)生信號(hào),,并生成存儲(chǔ)器需要的控制信號(hào);CCD送來(lái)的OP1被寄存,,同時(shí)產(chǎn)生地址從內(nèi)存中取出要進(jìn)行積分的操作數(shù)OP2,,然后在點(diǎn)同步信號(hào)的下降沿,進(jìn)行積分運(yùn)算并存回存儲(chǔ)器,。
?
2.2.2 多路開關(guān)單元
多路開關(guān)單元如圖4所示,。本單元的功能是完成積分總線INT bus和DSP bus與SDRAM1和SDRAM2乒乓連接結(jié)構(gòu)的切換。切換包括三大總線:數(shù)據(jù),、地址和控制總線,。切換通過(guò)一位切換控制信號(hào)實(shí)現(xiàn),,控制信號(hào)是DSP地址映射的一個(gè)一位寄存器,由DSP控制乒乓切換,。
2.3 DSP軟件結(jié)構(gòu)
軟件部分包括系統(tǒng)軟件框架和各處理軟件模塊,、中斷服務(wù)程序等;程序的流程和數(shù)據(jù)處理控制,,都依賴于由DSP地址映射的寄存器的狀態(tài),。
2.3.1 DSP在FPGA中的存儲(chǔ)器映像寄存器及其作用
這一組寄存器都是在FPGA中實(shí)現(xiàn)的。作業(yè)(指令)采用16位寄存器,,由于DSP地址空間較大,,為了方便編程,寄存器不采用拼位的方法,。系統(tǒng)的工作受CEU的控制。CEU發(fā)送過(guò)來(lái)的指令格式如圖5(a),,其中DT表示CEU傳來(lái)的數(shù)據(jù)類型,,00表示數(shù)據(jù)、01表示觀測(cè)指令,、10表示CCD標(biāo)定,、11表示自測(cè)。接收時(shí),,若是命令則直接寫到JOB或放入命令隊(duì)列,;若是數(shù)據(jù),根據(jù)類型存放到相應(yīng)的位置,。Parameters是各種工作狀態(tài)參數(shù),,如待機(jī)/自測(cè)要求的參數(shù)、測(cè)試的要求(內(nèi)容,、測(cè)試選擇),、響應(yīng)信息要求、觀測(cè)模式和次數(shù),、CCD標(biāo)定要求的參數(shù),、標(biāo)定的內(nèi)容等,以便于DSP查看,。
如圖5(b),,當(dāng)CEU送來(lái)命令DT=01時(shí),即為觀測(cè)命令,。觀測(cè)作業(yè)的格式如:00表示無(wú)作業(yè)待機(jī),、01表示觀測(cè)指令、10表示CCD標(biāo)定,、JT=11表示自測(cè),;mode是當(dāng)前觀測(cè)模式標(biāo)志,,001表示爆發(fā)模式、010表示活動(dòng)區(qū)模式,、100表示寧?kù)o模式,;Observ_Num是連續(xù)觀測(cè)同一種模式的次數(shù)標(biāo)志。
(1)作業(yè)類型寄存器(JOB):標(biāo)識(shí)系統(tǒng)工作內(nèi)容(作業(yè)類型),,如CCD標(biāo)定,、觀測(cè)、自測(cè)試等,;(2)模式寄存器(MODE):標(biāo)識(shí)觀測(cè)的模式,,爆發(fā)模式、活動(dòng)區(qū)模式,、寧?kù)o模式,;(3)觀測(cè)次數(shù)寄存器(OBSN):用于保存一次作業(yè)的觀測(cè)次數(shù);(4)寧?kù)o態(tài)的觀測(cè)次數(shù)寄存器(RESTN):只用于寧?kù)o模式的觀測(cè),,當(dāng)為寧?kù)o態(tài)模式時(shí),,用它來(lái)標(biāo)志3min觀測(cè)的次數(shù);(5)幀計(jì)數(shù)器(FRMN):用于計(jì)數(shù)爆發(fā)模式,、活動(dòng)區(qū)模式及寧?kù)o模式下的前24幀圖像,,以便用于高位清零信號(hào)生成和地址高位生成;(6)SW電路控制寄存器(SWCTRL):控制多路開關(guān)的切換,;(7)reset寄存器(FRST):用于DSP控制FPGA中INT單元的時(shí)序邏輯復(fù)位,,每次觀測(cè)結(jié)束,必須復(fù)位一次,;(8)清零標(biāo)識(shí)寄存器(ZERO):由DSP根據(jù)FRMN的值修改它,,以實(shí)現(xiàn)高位的清零任務(wù);(9)分量寄存器(COMPO):由DSP根據(jù)FRMN的值修改它,,以實(shí)現(xiàn)高位地址的形成,;(10)作業(yè)結(jié)束寄存器(END):當(dāng)一個(gè)作業(yè)結(jié)束時(shí),用次寄存器進(jìn)行標(biāo)志,,以便將程序的PC跳到作業(yè)檢查入口,;(11)數(shù)據(jù)狀態(tài)寄存器(DAST):DSP存儲(chǔ)區(qū)數(shù)據(jù)狀態(tài)標(biāo)識(shí):沒有數(shù)據(jù)、爆發(fā)模式的待處理數(shù)據(jù),、活動(dòng)區(qū)模式的待處理數(shù)據(jù),、寧?kù)o模式的待處理數(shù)據(jù)、寧?kù)o模式處理好數(shù)據(jù)及待送出數(shù)據(jù)等,。DSP根據(jù)數(shù)據(jù)狀態(tài)和觀測(cè)模式,,可以進(jìn)行相應(yīng)的處理;(12)相關(guān)數(shù)據(jù)狀態(tài)(CORR):標(biāo)識(shí)相關(guān)運(yùn)算用的數(shù)據(jù)的狀態(tài),。
2.3.2 DSP的存儲(chǔ)器空間分配
DSP的SYSCON寄存器的15~12位(MSIZE),,可以設(shè)置以MS0~MS3作為片選信號(hào)時(shí),,每個(gè)分組的空間大小。其公式為:MSIZE=log2(塊大小)-13,;取每個(gè)塊的大小為16MB,,因此MSIZE=1011。
·片內(nèi)空間:0000,,0000H~0007,,F(xiàn)FFFH;
·MS0——數(shù)據(jù)空間:0040,,0000H~13F,,F(xiàn)FFFH;數(shù)據(jù)是倒序放置的,,最后一個(gè)單元放第一個(gè)數(shù)據(jù),;其中:
SQa:40,0000~5F,FFFF SQb:60,0000~7F,FFFF
SUa:80,0000~9F,FFFF SUb:a0,0000~bF,FFFF
SVa:c0,0000~dF,FFFF SVb:e0,0000~fF,FFFF
Rest2m:100,0000~11F,FFFF unused:120,0000~13F,FFFF
·MS1——SRAM空間:140,0000H~23F,FFFFH;
·MS2——CCD參數(shù):240,0000H~33F,FFFFH,;放置暗流,、偏置和平場(chǎng)圖像3幀2048×1024圖像;
·MS3——未使用:340,0000H~43F,FFFFH,;
·未分組空間:4040,0000~FFFF,FFFF所有存儲(chǔ)器映射的寄存器。
2.3.3 DSP的軟件結(jié)構(gòu)
DSP的主程序框架如圖6,。系統(tǒng)初始化后,,進(jìn)行作業(yè)查詢,根據(jù)查詢結(jié)果,,進(jìn)行相應(yīng)的處理任務(wù)(CCD標(biāo)定,、自測(cè)試、觀測(cè)),。圖6中僅以觀測(cè)作業(yè)為例進(jìn)行說(shuō)明,。進(jìn)入觀測(cè)后,首先由DSP對(duì)積分單元作相應(yīng)的設(shè)置,,設(shè)置完成后,,積分器開始單獨(dú)地積分工作;DSP接著查詢本次觀測(cè)是否結(jié)束,,若結(jié)束回到作業(yè)查詢,,否則判斷存儲(chǔ)器中數(shù)據(jù)的狀態(tài),根據(jù)數(shù)據(jù)狀態(tài),,進(jìn)行相應(yīng)的處理,;處理就緒的數(shù)據(jù)根據(jù)FLAG0的標(biāo)志,可以向壓縮單元傳送數(shù)據(jù),。三種模式下的圖像處理程序流圖如圖7,,圖7中ccdst( )是圖像輻射標(biāo)定子程序,,format()是格式化子程序,內(nèi)插運(yùn)算采用線性內(nèi)插方法,,相關(guān)運(yùn)算采用FFT和逆FFT方法,。
除了主程序和數(shù)據(jù)處理程序外,DSP還有一個(gè)重要的中斷子服務(wù),,就是積分單元每幀圖像積分完畢的中斷服務(wù)程序,,其流程框圖如圖8。它根據(jù)積分的圖像幀數(shù)和觀測(cè)模式,,判斷觀測(cè)是否結(jié)束,,根據(jù)不同的情況設(shè)置積分器中相應(yīng)的寄存器,這些寄存器控制著積分器的工作行為和DSP的數(shù)據(jù)處理方法,。圖8中參考圖像和活動(dòng)圖像的獲取是在采集到的2048×1024圖像的中心,,獲取256×256的子塊,也就是說(shuō),,相關(guān)運(yùn)算是在兩幀256×256的圖像之間進(jìn)行的,;對(duì)于圖像傳送操作,考慮到寧?kù)o模式的數(shù)據(jù)處理,,要求的存儲(chǔ)器比爆發(fā)和活動(dòng)區(qū)模式要大一倍,。為了不把存儲(chǔ)器設(shè)計(jì)得太大,對(duì)于寧?kù)o模式,,不再采用乒乓存儲(chǔ)器切換的結(jié)構(gòu),,而是在數(shù)據(jù)就緒時(shí),利用光學(xué)儀器調(diào)整的1s時(shí)間,,將積分就緒的圖像傳到DSP的工作區(qū)內(nèi),。
?
3 樣機(jī)研制和實(shí)驗(yàn)結(jié)果
原理樣機(jī)的研制過(guò)程中,DSP器件是AD公司ADSP21060,,開發(fā)平臺(tái)采用VisualDSP2.0,。FPGA器件選用Xilinx公司100萬(wàn)門的Virtex II系列器件,開發(fā)平臺(tái)采用ISE6.2,。已完成的地面樣機(jī)達(dá)到了合同的要求,。用DSP硬件仿真器對(duì)樣機(jī)作了軟硬件測(cè)試,首先對(duì)各接口進(jìn)行了測(cè)試,,在保證數(shù)據(jù)可以正確地接收和發(fā)送后,,測(cè)試系統(tǒng)的功能。這些測(cè)試均在一個(gè)專門開發(fā)的地面支持系統(tǒng)測(cè)試平臺(tái)上進(jìn)行,。經(jīng)過(guò)單元測(cè)試,,再與其它單元接在一起進(jìn)行系統(tǒng)級(jí)的聯(lián)調(diào)和系統(tǒng)級(jí)測(cè)試。結(jié)果表明達(dá)到設(shè)計(jì)目標(biāo),,可以按要求完成系統(tǒng)的各項(xiàng)功能,。
參考文獻(xiàn)
1 中科院國(guó)家天文臺(tái).德國(guó)馬普高層大氣研究所. SST A相報(bào)告[R] . 北京:國(guó)家天文臺(tái), 1997;1(2):1~30.
2 中科院國(guó)家天文臺(tái), 德國(guó)航空宇航研究所. SST評(píng)估研究報(bào)告[R]. 北京:國(guó)家天文臺(tái), 1997,;30~36.
3 王宇舟.單片F(xiàn)PGA圖像預(yù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn). 微型機(jī)與應(yīng)用,2004,;23(4)
4 李廣軍,,孟憲元. 可編程ASIC設(shè)計(jì)及應(yīng)用. 成都:電子科技大學(xué), 2000
5 北京理工大學(xué)ASIC研究所. VHDL語(yǔ)言100例詳解[M].北京:清華大學(xué)出版社,1999
6 劉書明, 羅軍輝. ADSP SHARC系列DSP應(yīng)用系統(tǒng)設(shè)計(jì)[M]. 北京:電子工業(yè)出版社, 2003