摘要:為建立高速、高效,、合理的CCD成像軟件系統(tǒng),,設(shè)計(jì)TDI-CCD成像系統(tǒng)自頂向下的軟件設(shè)計(jì)結(jié)構(gòu)和模塊化設(shè)計(jì)方法,實(shí)現(xiàn)成像系統(tǒng)FPGA軟件解耦合,,給出整體軟件設(shè)計(jì)結(jié)構(gòu)及其性能分析,;在系統(tǒng)調(diào)試階段運(yùn)行良好。實(shí)際運(yùn)行結(jié)果表明,,該軟件得各項(xiàng)性能指標(biāo)達(dá)到設(shè)計(jì)要求,。
關(guān)鍵詞:FPGA;CCD成像,;模塊設(shè)計(jì),;解耦分析
CCD是一種廣泛應(yīng)用于成像系統(tǒng)中的光學(xué)傳感器,TDI-CCD利用延時(shí)積分的方法,,通過對(duì)同一物體多次曝光,,實(shí)現(xiàn)增強(qiáng)型光能采集的目的。同時(shí),,根據(jù)像移補(bǔ)償?shù)乃俣?,設(shè)計(jì)TDI-CCD的電荷轉(zhuǎn)移速率,能夠?qū)崿F(xiàn)電子學(xué)像移補(bǔ)償,。本文闡述的成像系統(tǒng)以TDI-CCD為核心,,利用FPGA實(shí)現(xiàn)CCD圖像數(shù)據(jù)整合功能的硬件系統(tǒng)。由于FPGA在資源,、速度,、效率、穩(wěn)定性等方面有很多優(yōu)勢(shì),,因此,,采用FPGA實(shí)現(xiàn)高速、大規(guī)模,、繼承性好的成像軟件,,通過在軟件結(jié)構(gòu)、模塊和設(shè)計(jì)方法上的優(yōu)化,尋求更加合理設(shè)計(jì)方案,,達(dá)到功能和性能的提升,。本文將FPGA設(shè)計(jì)的一些指導(dǎo)性原則應(yīng)用于實(shí)際的系統(tǒng)設(shè)計(jì)中,給出了FPGA自頂向下的軟件結(jié)構(gòu)劃分,,以及程序設(shè)計(jì)中的注意事項(xiàng),。通過對(duì)模塊接口信號(hào)的解耦處理,增強(qiáng)了系統(tǒng)的適應(yīng)性和穩(wěn)定性,,該軟件系統(tǒng)在實(shí)際工程中已進(jìn)行驗(yàn)證,。
1 成像系統(tǒng)結(jié)構(gòu)
成像系統(tǒng)以TDI-CCD為核心,采用FPGA作為核心數(shù)據(jù)處理單元,,實(shí)現(xiàn)數(shù)據(jù)處理傳輸,,其基本組成部分如圖1所示。
時(shí)序驅(qū)動(dòng)單元采用FPGA產(chǎn)生驅(qū)動(dòng)時(shí)序,,通過硬件電路實(shí)現(xiàn)對(duì)CCD控制信號(hào)驅(qū)動(dòng),;焦平面單元將CCD視頻信號(hào)經(jīng)過預(yù)放、濾波,、相關(guān)雙采樣(CDS),、A/D轉(zhuǎn)換后輸入到圖像處理單元;圖像處理單元接收控制器指令,,完成總體對(duì)成像系統(tǒng)的控制,,以及圖像數(shù)據(jù)的整合傳輸?shù)裙δ埽?br />
2 成像軟件設(shè)計(jì)
成像系統(tǒng)軟件采用FPGA實(shí)現(xiàn)。軟件核心是圖像處理單元,。該單元接收CCD行同步信號(hào)以及指令,,完成數(shù)據(jù)處理功能;
成像系統(tǒng)FPGA的主要功能如表1所示,。成像系統(tǒng)在物理上分為3個(gè)電箱,。圖像處理電箱獨(dú)立存在,并接收焦平面電箱的視頻信號(hào)和控制電箱工作指令,,實(shí)現(xiàn)數(shù)據(jù)處理,。根據(jù)系統(tǒng)邏輯功能劃分FPGA軟件結(jié)構(gòu),并將軟件設(shè)計(jì)規(guī)范應(yīng)用其中,,優(yōu)化系統(tǒng)性能,。圖像處理單元工作頻率高,數(shù)據(jù)處理復(fù)雜,,不同的結(jié)構(gòu)劃分和設(shè)計(jì)方式對(duì)性能影響較大,,因此,本文對(duì)圖像處理軟件設(shè)計(jì)進(jìn)行詳細(xì)闡述,。
2.1 FPGA軟件設(shè)計(jì)分析
可編程邏輯設(shè)計(jì)原則的合理應(yīng)用,,為理解FPGA程序設(shè)計(jì),實(shí)現(xiàn)高效、穩(wěn)定的數(shù)字系統(tǒng)提供了條件,。
(1)資源與速率的平衡,。資源和速率是FPGA設(shè)計(jì)的重要指標(biāo)。通過合理的軟件結(jié)構(gòu)劃分,,在高速數(shù)據(jù)處理區(qū)域采用速度優(yōu)先方法,,即通過模塊復(fù)用,、串/并轉(zhuǎn)換,、數(shù)據(jù)流水化等方法實(shí)現(xiàn)高速數(shù)據(jù)傳輸;在低速處理區(qū)域,,采用串行方式和組合邏輯,,通過增加扇出實(shí)現(xiàn)資源的最優(yōu)化。
(2)系統(tǒng)與硬件匹配,。FPGA內(nèi)部硬件資源決定設(shè)計(jì)的結(jié)構(gòu)和方法,。采用BLOCK RAM或Distributed RAM,根據(jù)數(shù)據(jù)處理內(nèi)容,、資源利用率要求決定使用方式,;另外,利用全局信號(hào)線,,實(shí)現(xiàn)全局變量處理,;利用FPGA內(nèi)部IP和原語實(shí)現(xiàn)程序設(shè)計(jì),改善程序架構(gòu),。
(3)同步設(shè)計(jì),。同步設(shè)計(jì)是資源與速度的體現(xiàn),在異步時(shí)鐘域數(shù)據(jù)處理時(shí),,采用FIFO轉(zhuǎn)存,,解決同頻異相或異頻問題,實(shí)現(xiàn)數(shù)據(jù)讀取和傳輸,。
(4)可靠性設(shè)計(jì),。軟件設(shè)計(jì)采用冗余和容錯(cuò)性設(shè)計(jì)、簡化設(shè)計(jì)規(guī)模和減少軟件配置項(xiàng),;
2.2 圖像數(shù)據(jù)處理與分析
2.2.1 數(shù)據(jù)率和時(shí)鐘選擇
CCD圖像輸出數(shù)據(jù)率計(jì)算如下:
式中:F為輸出數(shù)據(jù)率,;Fpixel為CCD像元轉(zhuǎn)移速率;A為量化等級(jí),;Npixel為像元數(shù),;Na為啞像元數(shù);TL為行周期,。根據(jù)指標(biāo)計(jì)算,,成像系統(tǒng)的數(shù)據(jù)率達(dá)到1 Gb/s以上,因此,數(shù)據(jù)傳輸采用10 b數(shù)據(jù)并行方式,,滿足軟硬件設(shè)計(jì)預(yù)定的指標(biāo)要求,。
2.2.2 時(shí)鐘域分析
CCD圖像處理單元,主時(shí)鐘采用120 MHz有源晶振(elk_sys),,通過FPGA內(nèi)部全局時(shí)鐘網(wǎng)絡(luò)(BUFG)實(shí)現(xiàn)全局走線,;設(shè)計(jì)時(shí)不建議使用DCM。系統(tǒng)的主要時(shí)鐘如表2所示,。
系統(tǒng)接收外部行同步時(shí)鐘,,通過高頻主時(shí)鐘同步,并在FPGA內(nèi)產(chǎn)生內(nèi)部行頻,,用于產(chǎn)生CDS信號(hào)及控制邏輯,。通過分頻產(chǎn)生串行時(shí)鐘,完成遙控遙測信號(hào)的收發(fā),;產(chǎn)生數(shù)據(jù)時(shí)鐘,,完成數(shù)據(jù)采樣和傳輸;
2.2.3 成像系統(tǒng)軟件結(jié)構(gòu)及功能實(shí)現(xiàn)
根據(jù)軟件系統(tǒng)功能,,自頂向下劃分模塊,,如圖2所示。為了保證模塊間信號(hào)的獨(dú)立性,,增強(qiáng)了模塊解耦處理,,具體的處理原則是:減少模塊IO數(shù)量,減少邏輯關(guān)聯(lián)程度,,避免信號(hào)控制環(huán)路產(chǎn)生,;存儲(chǔ)器與后續(xù)數(shù)據(jù)處理操作整合;模塊間避免數(shù)據(jù)傳輸,,減少異步時(shí)鐘域的數(shù)據(jù)同步問題,;采用脈沖電平邏輯實(shí)現(xiàn)模塊控制等。由于合理劃分了軟件模塊,,方便了模塊化設(shè)計(jì)和仿真驗(yàn)證,,為后續(xù)的工作奠定了堅(jiān)實(shí)的基礎(chǔ)。圖2中三級(jí)模塊沒有具體給出,。
(1)數(shù)據(jù)解析模塊,。通過RS 422解析串行指令,同時(shí)完成部分硬指令翻譯,,并根據(jù)指令要求發(fā)送系統(tǒng)遙測參數(shù),。串行接收數(shù)據(jù)采用累加校驗(yàn),并對(duì)接收數(shù)據(jù)進(jìn)行預(yù)存儲(chǔ),。校驗(yàn)正確后,,將數(shù)據(jù)以乒乓方式存入RAM,,以保證讀/寫邏輯不沖突;校驗(yàn)錯(cuò)誤時(shí),,不轉(zhuǎn)存數(shù)據(jù),。根據(jù)不同的指令類型,對(duì)相應(yīng)的地址進(jìn)行讀/寫操作,,更新完畢后給出標(biāo)志位,。
(2)視頻控制模塊。輸出A/D參數(shù),、CDS信號(hào)和A/D輸出時(shí)鐘,。A/D參數(shù)采用廣播方式,通過使能信號(hào)完成20路AD的配置,;由外行信號(hào)htck同步A/D的控制邏輯以及CDS信號(hào),;由于數(shù)據(jù)處理速度較低,,實(shí)現(xiàn)時(shí),,通過增加扇出、減少模塊復(fù)用,,來降低資源利用率,。CDS采樣脈沖的位置對(duì)信號(hào)質(zhì)量影響很大,需要精細(xì)調(diào)節(jié),。在設(shè)計(jì)時(shí),,采用FPGA內(nèi)部移位寄存器生成不同位置的采樣脈沖,在調(diào)試中實(shí)現(xiàn)精確對(duì)準(zhǔn),。
(3)數(shù)據(jù)整合模塊,。將輸入的20路圖像數(shù)據(jù)整合一路輸出。根據(jù)工作指令選擇灰度圖像或?qū)崟r(shí)圖像,,并行存儲(chǔ)到相應(yīng)的fifo中,;輸出時(shí),通過控制讀使能信號(hào),,實(shí)現(xiàn)數(shù)據(jù)的循環(huán)讀取,。設(shè)計(jì)FIFO時(shí),仍然采用乒乓方式,,通過標(biāo)志信號(hào)使讀寫邏輯分離,。相比RAM設(shè)計(jì)而言,避免了大規(guī)模地址線造成的亞穩(wěn)態(tài)問題,,設(shè)計(jì)時(shí)序相對(duì)簡單,。
(4)數(shù)據(jù)輸出模塊。根據(jù)衛(wèi)星指令將圖像數(shù)據(jù)按照規(guī)定格式輸出,。設(shè)計(jì)時(shí),,需要注意數(shù)傳協(xié)議中各數(shù)據(jù)段數(shù)據(jù)的輸出時(shí)序,。因此,良好的模塊規(guī)劃,,更有利于程序的實(shí)現(xiàn)和驗(yàn)證,。
2.3 性能與設(shè)計(jì)要點(diǎn)
(1)FPGA內(nèi)部時(shí)鐘域分析有利于同步設(shè)計(jì)的實(shí)現(xiàn),在良好的時(shí)鐘分配下,,能夠提高系統(tǒng)運(yùn)行頻率,,增加軟件可靠性。根據(jù)FPGA資源說明,,每個(gè)slice有固定數(shù)量的觸發(fā)器和查找表(LUT)資源,,合理利用可以降低器件資源的利用率。
(2)組合邏輯容易產(chǎn)生亞穩(wěn)態(tài),,為系統(tǒng)帶來不確定因素,,同時(shí),組合邏輯延時(shí)也限制了系統(tǒng)的運(yùn)行頻率,。在頻率要求較高的模塊內(nèi)部,,可以采用流水線技術(shù)降低組合邏輯規(guī)模。
(3)軟件結(jié)構(gòu)對(duì)系統(tǒng)性能和資源使用有很大的影響,;不合理的結(jié)構(gòu)劃分不僅浪費(fèi)資源,,也不利于軟件的升級(jí)和維護(hù)。該軟件通過合理的結(jié)構(gòu)和接口信號(hào)劃分,,力求達(dá)到模塊解耦的目的,。通過詳細(xì)的接口時(shí)序說明,可以更好的進(jìn)行軟件維護(hù)和更新,,為后續(xù)開發(fā)奠定基礎(chǔ),。
2.4 關(guān)于軟件系統(tǒng)工作頻率和硬件速度的匹配
電路設(shè)計(jì)時(shí),通過分析硬件電路的芯片參數(shù)和電路延時(shí)指導(dǎo)軟件設(shè)計(jì),。對(duì)于關(guān)鍵信號(hào)走線,,除了可以在硬件上設(shè)置延時(shí)線外,F(xiàn)PGA內(nèi)部可以通過DLL倍頻時(shí)鐘,,通過時(shí)鐘計(jì)數(shù)方式實(shí)現(xiàn)延時(shí),,或者通過FPGA內(nèi)部LUT和門邏輯實(shí)現(xiàn)組合邏輯延時(shí)設(shè)計(jì)。由于FPGA的端口速率有限,,不同等級(jí)的FPGA芯片的處理速度也不同,,因此,需要參考FPGA的參數(shù)特性設(shè)計(jì)系統(tǒng)結(jié)構(gòu),,并確定端口數(shù)傳規(guī)則和內(nèi)部結(jié)構(gòu),,同時(shí),注意與外圍
硬件的匹配,,以保證軟硬件可靠運(yùn)行,。
3 實(shí)時(shí)圖像效果評(píng)估
圖3給出了實(shí)驗(yàn)室條件下的原始數(shù)據(jù)圖像,。通過調(diào)整信號(hào)處理器的增益,調(diào)整相應(yīng)抽頭的灰度值,,從而達(dá)到灰度均衡效果,;通過觀察相應(yīng)的圖像數(shù)據(jù)可以得出,數(shù)據(jù)處理和成像效果達(dá)到預(yù)定指標(biāo)要求,。
4 結(jié)語
FPGA成像軟件是系統(tǒng)可靠運(yùn)行的重要保障,,其性能對(duì)整體分辨率的提高有著舉足輕重的作用。在給定的硬件條件下,,通過高效設(shè)計(jì)FPGA軟件,,能夠顯著提高系統(tǒng)性能。在成像軟件的數(shù)據(jù)處理方法上,,仍然有很多方向,,如實(shí)時(shí)圖像壓縮傳感,提高系統(tǒng)的傳輸能力,;在FPGA內(nèi)部進(jìn)行海量數(shù)據(jù)處理等,。通過實(shí)驗(yàn)證明,該軟件的實(shí)際運(yùn)行速度達(dá)到要求,。因?yàn)橛布幚硭俣鹊南拗?,若想提高軟件運(yùn)行頻率,,尋求更加合理的軟件系統(tǒng)結(jié)構(gòu)以及電子學(xué)分系統(tǒng)結(jié)構(gòu)將成為重要的研究內(nèi)容,。