馬 飛,劉 琦,尹 娜,榮 鵬
(北京空間機(jī)電研究所,北京 100094)
CCD遙感相機(jī)視頻電子系統(tǒng)主要包括焦平面電路、信號(hào)處理電路和積分時(shí)間電路3部分。其中焦平面電路的功能是為CCD提供驅(qū)動(dòng)時(shí)序,確保CCD正常工作;信號(hào)處理電路的功能是將CCD輸出的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),并進(jìn)行信號(hào)的合成處理;積分時(shí)間電路的功能是為信號(hào)處理電路提供工作所需的主時(shí)鐘、行同步等信號(hào),并向信號(hào)處理電路發(fā)送指令信息[1?3]。
在傳統(tǒng)設(shè)計(jì)方法中,3部分電路具有各自的FPGA作為核心處理器控制實(shí)現(xiàn)相應(yīng)功能,焦平面電路FPGA軟件為CCD器件提供具有嚴(yán)格相位關(guān)系的時(shí)序驅(qū)動(dòng)信號(hào),并調(diào)整CCD的級(jí)數(shù),使CCD工作在滿足要求的狀態(tài)下;信號(hào)處理電路FPGA軟件驅(qū)動(dòng)A/D轉(zhuǎn)換器完成A/D轉(zhuǎn)換,接收數(shù)字圖像信號(hào)并按照要求的格式轉(zhuǎn)換成數(shù)據(jù)傳輸格式后輸出給數(shù)傳分系統(tǒng);積分時(shí)間電路FPGA軟件主要功能是將數(shù)據(jù)管理系統(tǒng)的指令解析后發(fā)送給信號(hào)處理電路,并生成主時(shí)鐘和行同步信號(hào)提供給信號(hào)處理電路。采用傳統(tǒng)設(shè)計(jì)方法實(shí)現(xiàn)的視頻電子系統(tǒng)框圖如圖 1 所示[4?5]。
圖1 傳統(tǒng)視頻電子系統(tǒng)框圖
傳統(tǒng)設(shè)計(jì)方法中,由于每部分電路采用單獨(dú)的FP?GA進(jìn)行控制,使得軟硬件集成度不高的同時(shí),增加了研制成本,同時(shí)由于FPGA設(shè)計(jì)的降額要求,造成一定程度的邏輯資源浪費(fèi)。為提高視頻電子系統(tǒng)的集成度以滿足相機(jī)小型化的需要,本文研究并設(shè)計(jì)了一種新的視頻電子系統(tǒng)軟件架構(gòu),在傳統(tǒng)視頻電子系統(tǒng)的基礎(chǔ)上,只保留信號(hào)處理電路的FPGA,將焦平面電路和積分時(shí)間電路FPGA軟件的功能集成到信號(hào)處理電路的FPGA中,實(shí)現(xiàn)軟件集成化設(shè)計(jì),以達(dá)到提高集成度節(jié)約軟硬件資源的設(shè)計(jì)目的。
集成化設(shè)計(jì)后的視頻電子系統(tǒng)框圖如圖2所示。焦平面電路簡(jiǎn)化為只有CCD的工作電路,工作時(shí)序由信號(hào)處理電路FPGA提供;主時(shí)鐘和行同步信號(hào)由信息處理器發(fā)送,信號(hào)處理電路FPGA接收到主時(shí)鐘和行同步信號(hào)后自己產(chǎn)生內(nèi)部工作所需要的各種時(shí)鐘信號(hào)和內(nèi)部行同步信號(hào)。
圖2 集成化設(shè)計(jì)后的視頻電子系統(tǒng)框圖
與傳統(tǒng)設(shè)計(jì)相比,集成化設(shè)計(jì)后的視頻電子系統(tǒng)只保留了信號(hào)處理電路的FPGA作為核心處理器,減少了FPGA的使用數(shù)量,但相比較而言,集成化設(shè)計(jì)后的FP?GA設(shè)計(jì)復(fù)雜度比傳統(tǒng)設(shè)計(jì)有所增加。
積分時(shí)間FPGA軟件主要包括時(shí)鐘行同步產(chǎn)生和指令解碼兩部分,時(shí)鐘行同步產(chǎn)生部分根據(jù)外部輸入的主時(shí)鐘和行同步信號(hào)產(chǎn)生內(nèi)部工作所需要的各種時(shí)鐘和內(nèi)部行同步信號(hào),指令解碼部分接收外部遙控三線指令,并對(duì)指令進(jìn)行解碼,按照指令要求實(shí)現(xiàn)相應(yīng)功能;焦平面FPGA軟件主要包括水平驅(qū)動(dòng)信號(hào)生成和垂直驅(qū)動(dòng)信號(hào)生成兩部分,分別產(chǎn)生CCD工作所需的水平驅(qū)動(dòng)時(shí)序信號(hào)和垂直驅(qū)動(dòng)時(shí)序信號(hào);信號(hào)處理FPGA軟件主要包括A/D驅(qū)動(dòng)和數(shù)據(jù)合成兩部分,A/D驅(qū)動(dòng)部分產(chǎn)生A/D轉(zhuǎn)換器的驅(qū)動(dòng)信號(hào),確保A/D轉(zhuǎn)換器正確實(shí)現(xiàn)A/D轉(zhuǎn)換,數(shù)據(jù)合成部分對(duì)接收到的圖像數(shù)據(jù)進(jìn)行合成處理,并按照要求的格式將合成后的圖像數(shù)據(jù)輸出。在集成化設(shè)計(jì)中,三部分軟件在一片F(xiàn)PGA中實(shí)現(xiàn),軟件集成化設(shè)計(jì)的軟件架構(gòu)如圖3所示。
集成后的FPGA軟件工作流程如圖4所示。上電或復(fù)位后,對(duì)復(fù)位信號(hào)延時(shí)以確保復(fù)位信號(hào)穩(wěn)定有效,之后根據(jù)信息處理器發(fā)送的主時(shí)鐘和行同步信號(hào)生成內(nèi)部工作需要的各類時(shí)鐘信號(hào)和行同步信號(hào)。時(shí)鐘和行同步信號(hào)生成之后軟件工作流程按照積分時(shí)間軟件、信號(hào)處理軟件和焦平面軟件三部分軟件的功能分為3個(gè)主要流程:
(1)接收三線指令并對(duì)指令進(jìn)行解譯,將解譯后的指令輸出到相應(yīng)模塊進(jìn)行響應(yīng);
(2)產(chǎn)生A/D轉(zhuǎn)換器的配置驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)A/D轉(zhuǎn)換器對(duì)圖像模擬信號(hào)進(jìn)行A/D轉(zhuǎn)換,并接收轉(zhuǎn)換后的圖像數(shù)據(jù),按照相應(yīng)格式將數(shù)據(jù)合成之后輸出;
(3)產(chǎn)生CCD正常工作所需的水平驅(qū)動(dòng)時(shí)序信號(hào)和垂直驅(qū)動(dòng)時(shí)序信號(hào),驅(qū)動(dòng)CCD正常工作,為A/D轉(zhuǎn)換器提供正確的像元信號(hào)。
圖3 集成化軟件架構(gòu)
圖4 FPGA軟件工作流程
集成化設(shè)計(jì)將積分時(shí)間軟件、焦平面軟件和信號(hào)處理軟件的功能集成在一片F(xiàn)PGA中,集成后的軟件各個(gè)功能模塊工作在多個(gè)時(shí)鐘域下。積分時(shí)間功能模塊工作在主時(shí)鐘域,焦平面功能模塊工作在像元時(shí)鐘域和二倍像元時(shí)鐘域,信號(hào)處理軟件工作在主時(shí)鐘域、像元時(shí)鐘域和數(shù)傳時(shí)鐘域。數(shù)傳時(shí)鐘為主時(shí)鐘二分頻,二倍像元時(shí)鐘為主時(shí)鐘四分頻,像元時(shí)鐘為主時(shí)鐘八分頻。主時(shí)鐘從信息處理器發(fā)送到信號(hào)處理FPGA,數(shù)傳時(shí)鐘、像元時(shí)鐘和二倍像元時(shí)鐘通過對(duì)主時(shí)鐘分頻計(jì)數(shù)產(chǎn)生,由于FPGA內(nèi)部布局布線產(chǎn)生的延時(shí),在邏輯設(shè)計(jì)過程中,4種時(shí)鐘并不按照同源時(shí)鐘來處理,而是按照異步時(shí)鐘進(jìn)行邏輯設(shè)計(jì),在跨時(shí)鐘域進(jìn)行數(shù)據(jù)傳輸時(shí),通過2次采樣操作或者通過存儲(chǔ)器隔離的方式完成。
圖像數(shù)據(jù)從像元時(shí)鐘域向數(shù)傳時(shí)鐘域的傳輸設(shè)計(jì)如圖5所示。利用FPGA的內(nèi)部存儲(chǔ)資源開辟二倍每行像元數(shù)深度的雙端口SRAM,寫入端開放給像元時(shí)鐘域,讀出端開放給數(shù)傳時(shí)鐘域。寫入端利用像元時(shí)鐘產(chǎn)生寫地址,將A/D轉(zhuǎn)換后的像元數(shù)據(jù)寫入到SRAM中。讀出端利用數(shù)傳時(shí)鐘生成讀地址,將像元數(shù)據(jù)在數(shù)傳時(shí)鐘域讀出,之后在數(shù)傳時(shí)鐘域下完成數(shù)據(jù)的合成與輸出。
圖5 像元數(shù)據(jù)跨時(shí)鐘域傳輸
數(shù)據(jù)處理要求在一個(gè)行周期內(nèi)將圖像數(shù)據(jù)接收完畢并按照數(shù)據(jù)傳輸格式發(fā)送完畢。若采用當(dāng)前行數(shù)據(jù)在當(dāng)前行實(shí)時(shí)合成輸出的處理方式,需要等待一行數(shù)據(jù)全部寫入存儲(chǔ)器后才能夠進(jìn)行讀出操作,寫入和讀出操作順序進(jìn)行,需要更快地處理速度或更長(zhǎng)的行周期時(shí)間,如圖6所示。
圖6 數(shù)據(jù)實(shí)時(shí)處理方式示意圖
為保證在處理速度和行周期時(shí)間不變的情況下一行的數(shù)據(jù)能夠在一行內(nèi)完全發(fā)送完畢,采用乒乓處理的方式完成數(shù)據(jù)的讀寫操作,如圖7所示,首先要開辟二倍像元數(shù)據(jù)深度的SRAM,在第個(gè)N行周期將第N行數(shù)據(jù)寫入SRAM的高半地址,同時(shí)從SRAM的低半地址讀出第N-1行的數(shù)據(jù);在第N+1行,將第N+1行數(shù)據(jù)寫入SRAM的低半地址,同時(shí)從SRAM的高半地址讀出第N行的數(shù)據(jù)。乒乓處理后讀出與寫入操作互不影響,可以并行進(jìn)行,從而保證在行周期不變的情況下,完成一個(gè)行周期內(nèi)整行數(shù)據(jù)的完整輸出。
軟件集成化設(shè)計(jì)將積分時(shí)間軟件、焦平面軟件和信號(hào)處理軟件集成在信號(hào)處理電路的FPGA中,與分別利用三個(gè)FPGA實(shí)現(xiàn)各自的功能相比較,其軟件復(fù)雜度更高,F(xiàn)PGA資源占用率更高,對(duì)邏輯的優(yōu)化設(shè)計(jì)要求也更高。
圖7 數(shù)據(jù)處理乒乓操作示意圖
為了使軟件更優(yōu)化,減少資源的占用率,軟件集成化不是簡(jiǎn)單地將3部分軟件以3個(gè)單獨(dú)模塊的形式例化在同一個(gè)頂層邏輯中,而是通過軟件標(biāo)準(zhǔn)化設(shè)計(jì),在保證積分時(shí)間軟件、焦平面軟件和信號(hào)處理軟件各部分的功能正確實(shí)現(xiàn)的前提下,將具有相同邏輯功能的邏輯模塊在一個(gè)模塊中實(shí)現(xiàn),減少邏輯的設(shè)計(jì)冗余,使實(shí)現(xiàn)相同功能所需要的邏輯資源盡量少。比如,3部分軟件都需要對(duì)主時(shí)鐘進(jìn)行分頻,在集成化設(shè)計(jì)中,采用標(biāo)準(zhǔn)化的分頻模塊,在一個(gè)模塊中實(shí)現(xiàn)對(duì)主時(shí)鐘的分頻,分頻后的時(shí)鐘再送給各部分功能模塊使用,從而實(shí)現(xiàn)邏輯的優(yōu)化。
經(jīng)過標(biāo)準(zhǔn)化模塊的采樣和邏輯功能的整合,使得3部分軟件更好地成為一個(gè)邏輯整體,在確保功能實(shí)現(xiàn)的同時(shí),使軟件的可讀性更強(qiáng),軟件架構(gòu)更加清晰明確,有利于后期的軟件維護(hù)。
視頻電子系統(tǒng)軟件功能測(cè)試方案如圖8所示。將視頻電子系統(tǒng)與視頻轉(zhuǎn)接電路相連,再通過視頻轉(zhuǎn)接電路與上位機(jī)相連,視頻轉(zhuǎn)接電路模擬信息處理器為視頻電子系統(tǒng)提供主時(shí)鐘、行同步以及遙控三線信號(hào),同時(shí)接收視頻電子系統(tǒng)輸出的數(shù)傳數(shù)據(jù),轉(zhuǎn)換為Cameralink數(shù)據(jù)格式,通過Cameralink接口將圖像數(shù)據(jù)傳輸?shù)缴衔粰C(jī),在上位機(jī)上通過圖像采集軟件觀察圖像數(shù)據(jù)輸出是否正確。示波器用來觀察各接口時(shí)序波形,以確定各輸入輸出信號(hào)時(shí)序關(guān)系是否正確。
圖8 測(cè)試方案框圖
利用示波器觀察FPGA輸出給CCD的垂直轉(zhuǎn)移驅(qū)動(dòng)信號(hào)圖9(a)和水平轉(zhuǎn)移驅(qū)動(dòng)信號(hào)圖9(b)所示。與CCD所要求的時(shí)序關(guān)系相比較,F(xiàn)PGA所產(chǎn)生的水平轉(zhuǎn)移信號(hào)和垂直轉(zhuǎn)移信號(hào)滿足CCD的驅(qū)動(dòng)要求,能夠驅(qū)動(dòng)CCD正常工作,CCD輸出的像元信號(hào)如圖10所示,能夠滿足設(shè)計(jì)要求。
圖9 水平轉(zhuǎn)移和垂直轉(zhuǎn)移驅(qū)動(dòng)信號(hào)波形
圖10 CCD像元波形
利用示波器觀察信號(hào)處理電路輸出的數(shù)傳格式數(shù)據(jù)和同步信號(hào)波形如圖11所示,其中同步信號(hào)低電平對(duì)應(yīng)有效數(shù)據(jù),數(shù)傳輸出滿足功能和性能要求。
圖11 數(shù)傳數(shù)據(jù)與同步信號(hào)波形
圖像數(shù)據(jù)經(jīng)過視頻轉(zhuǎn)接電路發(fā)送到上位機(jī),通過上位機(jī)圖像采集軟件觀察圖像數(shù)據(jù),從而確定數(shù)據(jù)傳輸是否正確。通過上位機(jī)發(fā)送級(jí)數(shù)和增益調(diào)整指令,觀察圖像變化,從而判斷指令響應(yīng)是否正確。上位機(jī)圖像如圖12所示,(a)是增益0 dB,CCD級(jí)數(shù)為3級(jí)時(shí)兩個(gè)譜段的圖像;(b)是增益0 dB,CCD級(jí)數(shù)為5級(jí)時(shí)兩個(gè)譜段的圖像;(c)是增益6 dB,CCD級(jí)數(shù)為3級(jí)時(shí)兩個(gè)譜段的圖像。從圖12中圖像的比較可見,增益指令與級(jí)數(shù)指令能夠正確響應(yīng),隨著增益與級(jí)數(shù)提高,圖像數(shù)據(jù)的值增大,圖像變亮。通過上位機(jī)圖像采集軟件和示波器波形的觀察,可以確認(rèn)集成化設(shè)計(jì)之后的視頻電子系統(tǒng)軟件滿足各項(xiàng)功能要求。
圖12 上位機(jī)像元數(shù)據(jù)圖像
利用Matlab圖像處理軟件對(duì)上位機(jī)的圖像進(jìn)行處理,計(jì)算出圖像的信噪比,如圖13所示。
圖13 不同級(jí)數(shù)下信噪比
從圖中可見,隨著級(jí)數(shù)從1~5級(jí)的增加,圖像的信噪比也隨之增加,在級(jí)數(shù)為1級(jí)時(shí)信噪比為46 dB,在5級(jí)時(shí)信噪比達(dá)到52 dB,軟件性能能夠滿足要求。
通過對(duì)CCD遙感相機(jī)視頻電子系統(tǒng)各部分軟件的集成化處理,實(shí)現(xiàn)了視頻電子系統(tǒng)的小型化與集成化設(shè)計(jì)。將傳統(tǒng)視頻電子系統(tǒng)中的積分時(shí)間軟件、焦平面軟件和信號(hào)處理軟件集成在同一片F(xiàn)PGA中,簡(jiǎn)化了系統(tǒng)設(shè)計(jì)復(fù)雜度。通過采用跨時(shí)鐘域信號(hào)處理和標(biāo)準(zhǔn)模塊的使用,使得集成后的軟件工作更加穩(wěn)定可靠,效率更高。通過對(duì)硬件輸出信號(hào)的觀測(cè)與分析,以及對(duì)上位機(jī)圖像的信噪比等指標(biāo)的分析,本文提出的FPGA軟件集成化設(shè)計(jì)方法能夠滿足CCD遙感相機(jī)對(duì)視頻電子系統(tǒng)的功能與性能上的要求,具有很高的工程應(yīng)用價(jià)值。
[1]陳瑞明,吳淞波,王建宇,等.對(duì)地觀測(cè)高分相機(jī)視頻電子學(xué)集成化技術(shù)[J].航天返回與遙感,2013,34(3):34?40.
[2]達(dá)選福,王懷義,李濤,等.基于集成信號(hào)處理芯片的CCD相機(jī)視頻電子學(xué)系統(tǒng)設(shè)計(jì)[J].航天返回與遙感,2008,29(4):30?35.
[3]賈建軍,舒嶸,王斌永.無人機(jī)大面陣CCD相機(jī)遙感系統(tǒng)[J].光電工程,2006,33(8):90?93.
[4]鄭亮亮,張貴祥,金光.高速多光譜TDI CCD成像電路系統(tǒng)[J].中國(guó)光學(xué),2013(6):939?944.
[5]胡君,王棟.空間光學(xué)遙感器的多光譜TDI CCD信號(hào)檢測(cè)與生成[J].光學(xué)精密工程,2009,17(8):1810?1818.
[6]李愛玲,張伯珩,張健,等.多光譜CCD相機(jī)圖像采集系統(tǒng)的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011,27(15):15?16.
[7]寧永慧,馬天波,郭永飛.基于TDI CCD的成像FPGA系統(tǒng)軟件設(shè)計(jì)與應(yīng)用[J].現(xiàn)代電子技術(shù),2011,34(2):167?169.
[8]武奕楠,呂增明,張宇,等.基于FPGA的多通道面陣CCD成像系統(tǒng)設(shè)計(jì)[J].光機(jī)電信息,2011,28(6):39?43.
[9]李紅梅,陳敏聰,陳子瑜,等.線陣CCD數(shù)據(jù)獲取方法研究與設(shè)計(jì)[J].電子測(cè)量技術(shù),2008,31(6):124?126.
[10]劉蕾,江潔,張廣軍.基于CPLD的線陣CCD的驅(qū)動(dòng)及數(shù)據(jù)采集[J].電子測(cè)量與儀器學(xué)報(bào),2006,20(4):107?110.
[11]陳世平.空間相機(jī)設(shè)計(jì)與試驗(yàn)[M].北京:中國(guó)宇航出版社,2003.