李華,朱波
(1.商洛學院電子信息與電氣工程學院,陜西商洛 726000;2.中國科學院西安光學精密機械研究所,陜西西安 710119)
相比CMOS圖像探測器,CCD圖像探測器具有較高的量子效率、較好的光信號線性響應度以及較高的靈敏度等顯著優(yōu)點,因此,CCD圖像探測器廣泛應用于空間遙感、航空航天、工業(yè)、醫(yī)療等領(lǐng)域[1-2]。如:美國火星探測器“好奇號”就攜帶了17臺相機,全部采用Kodak公司200萬像素的CCD圖像探測器KAI-2020[3]。因此,研制高性能CCD成像系統(tǒng)具有重要的應用前景和經(jīng)濟價值。但是,CCD成像系統(tǒng)普遍讀出速率較低、幀頻較慢,嚴重限制了其應用場合。針對這種情況,本文根據(jù)項目實際,研制了一臺圖像質(zhì)量好、輸出幀頻高的CCD電子學系統(tǒng),克服了傳統(tǒng)CCD成像系統(tǒng)的不足。
本文根據(jù)某科研任務實際,選用加拿大DALSA公司生產(chǎn)的一款1 M像素的幀轉(zhuǎn)移型CCD芯片F(xiàn)TT1010M作為圖像傳感器。FTT1010M是一款具有優(yōu)良抗暈結(jié)構(gòu)的高質(zhì)量幀轉(zhuǎn)移型CCD圖像傳感器,具有填充因子高(100%),動態(tài)范圍大(>72 dB),像元輸出速度快(≥2×40 MHz),電荷轉(zhuǎn)移效率高(0.999999),讀出噪聲低(RMS讀出噪聲典型值25e),輸出格式靈活(H&VBinning)等特點,非常適合作為高性能成像系統(tǒng)的圖像傳感器[4-5]。
設(shè)計上為了提高幀頻,根據(jù)FTT1010M的結(jié)構(gòu)特點,采用左右通道同時輸出的方式,將CCD輸出速率最大化。圖像采集處理部分使用TI公司的高性能圖像AD—LM98640,LM98640是TI公司一款雙通道、14位量化、采用串行LVDS輸出的高性能模擬前端圖像AD,主要用于處理CCD/CMOS的模擬圖像,被廣泛應用于高精度、高速圖像處理系統(tǒng)中。
本系統(tǒng)要求具有較高的數(shù)據(jù)更新率,幀頻滿足50 f·s-1。因此,電子學方面的指標除了圖像質(zhì)量,主要體現(xiàn)在像元讀出頻率和探測器幀頻兩方面。幀轉(zhuǎn)移CCD時序設(shè)計中,讀出頻率的確定是關(guān)鍵[6-7],為了得到高幀頻,系統(tǒng)的像元讀出頻率設(shè)為33 MHz。這樣,一幀圖像的讀出時間為:
其中,Tp取33 MHz像元讀出時間,105Tp為行逆程時間,543Tp為雙路讀出一行圖像的時間(512個有效像元,24個暗像元,7個啞像元),1030表示讀出的行數(shù)(1024行圖像,6行暗行)。這樣,一幀圖像的讀出時間為20.023 ms。
讀出頻率確定后,按照讀出頻率是幀轉(zhuǎn)頻率8N倍(N為整數(shù))的關(guān)系確定幀轉(zhuǎn)移期間的信號周期,本設(shè)計取N=1,得到幀轉(zhuǎn)移時間Tf:
即幀轉(zhuǎn)頻率為4.125 MHz時,幀轉(zhuǎn)1030行需要的時間為0.25 ms。這樣,輸出一幀圖像所需要的時間為:
因此,每秒可輸出約50幀圖像,滿足系統(tǒng)對圖像幀頻的需要。
此時,像元讀出頻率為33 MHz,即輸出給LM98640的像元時鐘為33 MHz,滿足LM98640對輸入像元時鐘不超過40 MHz的要求,經(jīng)過模數(shù)轉(zhuǎn)換后,LM98640輸出的數(shù)字串行數(shù)據(jù)時鐘為33 MHz×8=264 MHz。
結(jié)合系統(tǒng)邏輯情況、數(shù)據(jù)緩存情況,系統(tǒng)在邏輯控制方面使用了xilinx公司330萬門的FPGA—XC2V3000,除了資源豐富,該FPGA還支持差分輸入/輸出,可以兼容LM98640的差分接口,節(jié)省了差分轉(zhuǎn)單端轉(zhuǎn)換芯片。
整個系統(tǒng)主要單元組成:電源電路、CCD成像單元、視頻信號處理單元以及外圍接口電路等[8-9],系統(tǒng)結(jié)構(gòu)框圖如圖1所示。成像單元是系統(tǒng)核心部件,用于完成圖像的光電轉(zhuǎn)換;電源電路為CCD系統(tǒng)提供所需的各種偏置電壓;視頻信號處理單元為CCD提供正常工作所必需的15路驅(qū)動時序,并完成模擬輸出視頻信號的放大、采樣、數(shù)字化、圖像數(shù)據(jù)的采集、格式轉(zhuǎn)換與輸出等功能;外圍接口電路包括通訊接口和圖像輸出接口等。
系統(tǒng)的工作過程為:電源部分為CCD提供偏置電壓,系統(tǒng)上電穩(wěn)定后,F(xiàn)PGA為CCD提供時序驅(qū)動信號,經(jīng)驅(qū)動芯片后送至CCD,CCD輸出模擬圖像,經(jīng)過射隨、運放等處理后進入AD進行采集并數(shù)字化處理,F(xiàn)PGA結(jié)合兩片SRAM對數(shù)字信號進行后續(xù)處理、格式重組等步驟后,經(jīng)CameraLink接口輸出至應用單元。其間,通過RS422總線接收指令改變成像參數(shù),并返回系統(tǒng)工作狀態(tài)。
圖1 成像系統(tǒng)結(jié)構(gòu)框圖
高速CCD成像系統(tǒng)硬件設(shè)計比較成熟,因此,本文主要研究高幀頻CCD電子學系統(tǒng)的時序設(shè)計和高速圖像信號處理方面的一些方法。
本文CCD時序驅(qū)動電路以FPGA為核心控制單元,其主要完成的功能包括產(chǎn)生CCD驅(qū)動信號在內(nèi)的最基本的時序控制。
FTT1010M芯片正常工作于雙路輸出模式時總共需要15路時序驅(qū)動信號,分別是:圖像感光區(qū)驅(qū)動信號A1、A2、A3、A4;存儲區(qū)驅(qū)動信號B1、B2、B3、B4;水平寄存器讀出驅(qū)動信號 C1X、C1W、C2X、C2W、C3;復位驅(qū)動信號 RG;信號求和驅(qū)動信號SG。應用FPGA產(chǎn)生這15路時序驅(qū)動信號,并組成具有周期性、且滿足CCD手冊給定的復雜邏輯關(guān)系,即可讓CCD正常工作并輸出圖像。
根據(jù)探測器手冊并分析幀轉(zhuǎn)移型CCD工作原理可知,F(xiàn)TT1010M探測器的一個工作周期分為兩個階段:幀轉(zhuǎn)階段和讀出階段(曝光階段)。在幀轉(zhuǎn)階段,頻率為4.125 MHz,相位依次相差1/3 的幀轉(zhuǎn)移控制信號 A1、A2、A3、A4 與行轉(zhuǎn)移控制信號 B1、B2、B3、B4 相同,且一直有效,將感光區(qū)圖像轉(zhuǎn)移至存儲區(qū),從而在讀出階段將圖像逐行輸出。在讀出階段,圖像感光區(qū)控制信號A1、A2、A3、A4保持固定電平不變,并根據(jù)曝光時間控制電子快門進行感光,同時進行像元讀出,由寬度為450 ns,相位依次相差1/3的四相行轉(zhuǎn)移控制信號B1、B2、B3、B4控制,電荷逐行轉(zhuǎn)移到讀出寄存器;每行信號中,各像元電荷受頻率為33 MHz,相位交疊1/3的輸出控制信號C1X、C1W、C2X、C2W、C3控制,結(jié)合 RG 和 SG逐次經(jīng)過輸出放大器輸出[10]。
FTT1010M具有電子快門功能,可以精準控制CCD的曝光時間,電子快門在讀出階段打開,為下一幀圖像曝光,且打開的開始時機放置在幀轉(zhuǎn)期間,其寬度大于2 μs,如果電子快門寬度太窄,上一幀圖像復位不徹底,在短曝光時會導致本幀圖像質(zhì)量變差,特別是圖像上下邊緣會變得非常模糊。
FTT1010M探測器輸出的是1024×1024有效圖像數(shù)據(jù),探測器每一行左右各有24個暗像元和7個啞像元。同時,為了保證讀出信號的完整性,在時序設(shè)計時采用了讀出冗余的設(shè)計方法,即轉(zhuǎn)移的行數(shù)和輸出的行數(shù)均設(shè)定為1024+6=1030,比CCD實際工作要求的行數(shù)多出6行暗行。
本成像系統(tǒng)具體的驅(qū)動電路結(jié)構(gòu)框圖如圖2所示。
圖2 時序驅(qū)動電路框圖
由圖2可以看出,CCD工作所需的所有時序均由FPGA產(chǎn)生。首先,按照設(shè)計指標產(chǎn)生相應的曝光、幀轉(zhuǎn)移、行轉(zhuǎn)移和讀出時序信號,這些時序信號通過垂直、水平驅(qū)動電路送給CCD,驅(qū)動其工作;FTT1010M需要三電平時序,因此,F(xiàn)PGA需要提供相應的時序,控制相應電路工作。期間,F(xiàn)PGA需要根據(jù)指令信號,實時改變CCD的曝光時間、增益等工作參數(shù),滿足不同成像條件下的圖像質(zhì)量。
整個時序框圖中,CCD時序的設(shè)計最為復雜,為了提高設(shè)計可靠性,本系統(tǒng)采用了一個主狀態(tài)機來控制,如圖3所示。然后再對不同的子功能設(shè)計下一級狀態(tài)機來實現(xiàn),最終完成所有功能。
圖3 CCD時序流圖
具體的時序設(shè)計如下:當FPGA上電200 μs穩(wěn)定后,系統(tǒng)復位信號Reset觸發(fā)主狀態(tài)機處于空閑狀態(tài)(IDLE)。接著觸發(fā)曝光(Integration)和行轉(zhuǎn)(Line Transfer),分別開始曝光和行轉(zhuǎn)操作。為了精準控制各過程,系統(tǒng)內(nèi)分別定義了曝光計數(shù)器Inter_cnt、幀轉(zhuǎn)計數(shù)器F_cnt、行轉(zhuǎn)計數(shù)器L_cnt和像元讀出計數(shù)器P_cnt。曝光時Inter_cnt開始計數(shù),當Inter_cnt的值等于設(shè)定的曝光時間時,表明曝光完成,狀態(tài)機會產(chǎn)生一個曝光結(jié)束標識信號,用于觸發(fā)幀轉(zhuǎn)控制狀態(tài),同時曝光控制狀態(tài)會繼續(xù)等待下一曝光時間的到來,再按照新的曝光時間重復以上過程。
幀轉(zhuǎn)控制狀態(tài)收到觸發(fā)信號后開始進行幀轉(zhuǎn)操作,F(xiàn)_cnt開始計數(shù),每轉(zhuǎn)移一行F_cnt數(shù)值加1,當F_cnt等于1030時,表示將圖像區(qū)的所有圖像轉(zhuǎn)移完畢,這時狀態(tài)機會產(chǎn)生一個幀轉(zhuǎn)完成標識來觸發(fā)像元讀出控制狀態(tài),同時,幀轉(zhuǎn)控制狀態(tài)會空閑,直到下一次幀轉(zhuǎn)觸發(fā)的到來。
為了盡可能減少干擾信號對本幀圖像的影響,幀轉(zhuǎn)完成后,設(shè)計時沒有直接去行轉(zhuǎn),而是先空讀2行,消除幀轉(zhuǎn)過程中積累的電荷對圖像信號的影響。當像元讀出狀態(tài)收到觸發(fā)信號后,P_cnt開始計數(shù),每讀一個像元,P_cnt數(shù)值加1,因為本系統(tǒng)工作在雙路輸出模式,當P_cnt等于543時說明像元已經(jīng)讀干凈,這時如果空讀完成則觸發(fā)行轉(zhuǎn)狀態(tài),否則進入IDLE狀態(tài)。
行轉(zhuǎn)狀態(tài)收到觸發(fā)后,L_cnt開始計數(shù),數(shù)值累加直到其值等于105Tp時,表明行轉(zhuǎn)結(jié)束,觸發(fā)像元讀出狀態(tài)去讀取像元。
重復以上過程,CCD就源源不斷輸出模擬圖像數(shù)據(jù),期間可以根據(jù)成像需要通過RS422改變系統(tǒng)的曝光時間,以適應多變的成像環(huán)境。
CCD輸出的是模擬圖像,為了方便傳輸和顯示,需要將其進行數(shù)字化處理。高速圖像數(shù)據(jù)處理包含兩部分內(nèi)容,首先介紹基于高速圖像AD的數(shù)據(jù)處理方法,其次介紹基于FPGA結(jié)合外部存儲器的數(shù)據(jù)格式處理策略。
AD轉(zhuǎn)換是成像系統(tǒng)的重要組成部分,直接決定了采樣的精度和速度,從而決定了系統(tǒng)的性能。為了適應高速、高精度的需要,本系統(tǒng)采用了TI公司的一款高性能AD—LM98640作為圖像模數(shù)轉(zhuǎn)換芯片,該芯片具有14bit轉(zhuǎn)換精度,最高轉(zhuǎn)換速率40MSPS,同時支持S/H和CDS工作模式,而且有高等級產(chǎn)品以適應苛刻的工作環(huán)境。LM98640要正常工作需要在上電穩(wěn)定后進行相關(guān)寄存器配置,然后才能輸出差分圖像數(shù)據(jù),本系統(tǒng)將配置管腳與FPGA直接連接,用于配置AD工作;由于XC2V3000支持差分輸入、輸出,因此,設(shè)計上將AD的數(shù)據(jù)輸出管腳和像元時鐘管腳與FPGA直接相連,不再需要額外的電平轉(zhuǎn)換芯片,方便了硬件設(shè)計。
AD配置采用SPI接口進行數(shù)據(jù)寫入和讀出,寫入信號分別為:時鐘信號(SCLK),寫使能信號(SEN)和寫數(shù)據(jù)(SDI),讀出信號為讀出數(shù)據(jù)(SDO)。寫數(shù)據(jù)時SCLK、SEN和SDI組成一定時序的序列,完成數(shù)據(jù)寫入;數(shù)據(jù)讀出時SCLK、SEN配合即可完成。其中,SCLK的頻率應控制在20 MHz以內(nèi),以保證配置參數(shù)的順利寫入。
為了提高圖像質(zhì)量,本設(shè)計AD工作于CDS模式,工作頻率為33 MHz,輸出采用4路數(shù)據(jù)同時輸出的形式,因此,通過設(shè)置Main Configuration、ADC power Trimming等 41 個寄存器完成AD的初始化,特別是Clamp和Sample的位置要結(jié)合實際的CCD信號進行微細調(diào)整以保證采樣在模擬圖像最穩(wěn)定的地方,從而保證圖像的質(zhì)量。配置完成后,LM98640就會按照設(shè)置進行模數(shù)轉(zhuǎn)換,輸出6路差分圖像數(shù)據(jù),分別是:數(shù)據(jù)時鐘(Clk)、數(shù)據(jù)同步標識(Frame)和4路圖像數(shù)據(jù)(Data)。為了適應后續(xù)圖像處理的需要,需要在FPGA內(nèi)完成相應的轉(zhuǎn)換。
本系統(tǒng)CCD輸出的像元時鐘為33 MHz,相應的AD差分時鐘的速率為264 MHz,為了平穩(wěn)的處理如此高速的信號,本系統(tǒng)采用了如圖4所示的數(shù)據(jù)處理策略。
圖4 高速數(shù)據(jù)處理邏輯
由于FPGA具有差分數(shù)據(jù)處理能力,因此,首先將差分時鐘、數(shù)據(jù)同步和4路差分圖像數(shù)據(jù)分別接入FPGA,通過原語IBUFDS將差分信號轉(zhuǎn)成單端信號,時鐘域為264 MHz,其中時鐘信號送入全局時鐘總線,并通過DCM進行時鐘相位的微調(diào)以保證時鐘上升沿采在數(shù)據(jù)和使能的中心位置,此時,時鐘會將數(shù)據(jù)和使能平穩(wěn)過度到FPGA內(nèi)的264 MHz時鐘域,接著就可以進行數(shù)據(jù)的串并轉(zhuǎn)換,將4路串行圖像數(shù)據(jù)分別轉(zhuǎn)換成7位的并行數(shù)據(jù),相應的時鐘速率也會降到33 MHz,從而完成高速數(shù)據(jù)向低速數(shù)據(jù)的順利轉(zhuǎn)換,便于FPGA后續(xù)的圖像處理。
為了提高幀頻,F(xiàn)TT1010M工作于左右雙路輸出的模式,左路數(shù)據(jù)順序輸出,但是右路數(shù)據(jù)逆序輸出,這樣就會給后續(xù)圖像處理帶來不利影響,特別是實時性要求較高的場合,因為左右路圖像不能直接進行拼接,同時圖像數(shù)據(jù)速率又比較高(33 MHz),也不能進行片內(nèi)圖像順序的調(diào)整和拼接。為此,本系統(tǒng)設(shè)計了基于兩片片外存儲器結(jié)合片內(nèi)BlockRAM資源的數(shù)據(jù)處理機制,取得了較好的結(jié)果。本系統(tǒng)數(shù)據(jù)處理的原理框圖如圖5所示。
圖5 數(shù)據(jù)整形單元
AD輸出的數(shù)據(jù)經(jīng)過FPGA串并轉(zhuǎn)換后,左右路數(shù)據(jù)并行(28bit)輸出,奇數(shù)幀存儲在SRAM1內(nèi),偶數(shù)幀存儲在SRAM2內(nèi),兩片SRAM構(gòu)成乒乓操作關(guān)系,當寫SRAM1時,F(xiàn)PGA讀取SRAM2內(nèi)的數(shù)據(jù),讀SRAM1內(nèi)的數(shù)據(jù)時,F(xiàn)PGA向SRAM2寫數(shù)據(jù),讀寫速率均為33 MHz。這樣,保證了進入FPGA內(nèi)的數(shù)據(jù)不沖突。
FPGA內(nèi)例化了4個1030×14bit的BlockRAM,其中,兩片設(shè)計為FIFO(First In First Out),另外兩片設(shè)計成 LIFO(Last In First Out),一片F(xiàn)IFO和一片LIFO結(jié)合定義為一個存儲單元,分別存儲奇數(shù)行圖像和偶數(shù)行圖像,二者構(gòu)成乒乓操作關(guān)系,當SRAM內(nèi)的數(shù)據(jù)進入FPGA后,第一行圖像順序部分(14bit)存入奇數(shù)行的FIFO內(nèi),逆序部分(14bit)存入奇數(shù)行的LIFO內(nèi),當?shù)诙袌D像從SRAM讀出時,將順序部分(14bit)存入偶數(shù)行的 FIFO 內(nèi),逆序部分(14bit)存入偶數(shù)行的LIFO內(nèi),在往偶數(shù)行寫數(shù)據(jù)的同時,從奇數(shù)行讀取數(shù)據(jù),F(xiàn)IFO中的數(shù)據(jù)順序讀出,LIFO中的數(shù)據(jù)逆序讀出,并拼接在FIFO數(shù)據(jù)的后面,這樣就構(gòu)成一行完整的圖像(14bit),這時相當于對順序和逆序圖像進行了串并轉(zhuǎn)換,因此像元頻率由33 MHz升為66 MHz。同樣,在讀第二行圖像的時候,將第三行圖像數(shù)據(jù)寫入奇數(shù)行。
經(jīng)過兩片片外SRAM乒乓操作結(jié)合4片片內(nèi)存儲單元乒乓操作,順利完成圖像數(shù)據(jù)的整形,最終將66 MHz像元速率、14bit量化的正常圖像數(shù)據(jù)實時輸出給應用單元。
本系統(tǒng)的數(shù)據(jù)處理部分實物如圖6(a)所示,一片F(xiàn)PGA控制LM98640(FPGA左上角位置)進行模擬圖像采集,同時,控制兩片3D-PLUS公司的SRAM(FPGA左右兩邊位置)進行后續(xù)數(shù)據(jù)處理。
圖6 系統(tǒng)實物及成像效果
系統(tǒng)結(jié)合光學部分,以 50 f·s-1的幀頻可實現(xiàn)對5等星的探測,圖6(b)所示為外場觀星得到的4.6等星星點圖像,圖像信噪比優(yōu)于25,具有較好的性能。
本文介紹了高幀頻CCD成像系統(tǒng)電子學部分的組成結(jié)構(gòu),分析了FTT1010M圖像探測器的特點以及驅(qū)動時序設(shè)計方法,重點闡述了高速圖像AD的控制及其數(shù)據(jù)的處理方法,并結(jié)合片外SRAM完成數(shù)據(jù)的整形。以xilinx公司FPGA—XC2V3000為控制單元完成了整個設(shè)計,外場觀星試驗數(shù)據(jù)表明,系統(tǒng)的各項指標滿足任務要求。同時,也可以看出,本文高速設(shè)計思路適用于基于xilinx公司FPGA的高速系統(tǒng),具有非常好的通用性。
參考文獻:
[1]林勝釗.科學級CCD成像系統(tǒng)關(guān)鍵技術(shù)研究[D].合肥:中國科學技術(shù)大學,2016:3-7.
[2]李華.基于FPGA的圖像發(fā)生器的設(shè)計[J].商洛學院學報,2015,29(4):15-19.
[3]牛磊星.“好奇”號火星鉆探概況[M]//中國地質(zhì)學會探礦工程專業(yè)委員會.第十八屆全國探礦工程(巖土鉆掘工程)技術(shù)學術(shù)交流年會論文集.中國地質(zhì)學會探礦工程專業(yè)委員會,2015:6.
[4]陳劍武,曹開欽,孫德新,等.高幀頻低拖尾幀轉(zhuǎn)移CCD驅(qū)動技術(shù)[J].紅外與激光工程,2016,45(1):110-115.
[5]馬天翔.面陣探測器KAI-04022成像系統(tǒng)設(shè)計[J].儀器儀表學報,2014,35(6):117-122.
[6]邸麗霞.基于FPGA的高速圖像數(shù)據(jù)采集存儲系統(tǒng)設(shè)計[J].電視技術(shù),2013,37(13):49-52.
[7]郭宇琨,王衍,王建宇.“高分四號”衛(wèi)星凝視相機視頻電路設(shè)計與實現(xiàn)[J].航天返回與遙感,2016,37(4):49-57.
[8]陶淑蘋,鄭曉云,樸永杰.高分辨率大面陣微型相機設(shè)計[J].液晶與顯示,2015,30(3):514-518.
[9]馬天翔.面陣探測器KAI-04022成像系統(tǒng)設(shè)計[J].儀器儀表學報,2014,35(8):117-120.
[10]任航.高分辨率大面陣CCD相機高幀頻設(shè)計及其非均勻性的校正[J].紅外與激光工程,2013,42(6):1491-1495.