1 引言 近年來。多通道面陣CCD相機(jī)在氣象觀測、環(huán)境檢測、海洋遙感和資源調(diào)查等領(lǐng)域獲得了廣泛的應(yīng)用。而在CCD的應(yīng)用技術(shù)中,尤其是高速、多通道CCD的應(yīng)用中,CCD驅(qū)動時序的產(chǎn)生和信號的實(shí)時輸出是兩個非常關(guān)鍵的問題。高速、多通道CCD器件的驅(qū)動時序通常是一組周期性且關(guān)系比較復(fù)雜的脈沖信號,它是影響CCD器件性能的一個重要因素;而產(chǎn)生的多組像元信號如何正確的轉(zhuǎn)換成一幀完整圖像,也必須根據(jù)實(shí)際的硬件要求而采取不同的設(shè)計方案。 本文在分析了Sarnoff公司的VCCD512H型幀轉(zhuǎn)移面陣CCD芯片的特性和工作過程后,結(jié)合整個CCD相機(jī)電子系統(tǒng)的要求,完成了基于FPGA技術(shù)的驅(qū)動時序發(fā)生器與數(shù)據(jù)緩存器的一體化設(shè)計。即在一塊FPGA芯片上實(shí)現(xiàn)對時序與數(shù)據(jù)緩存系統(tǒng)的控制。最后針對Xiling公司的FPGA器件XQ2V3000對設(shè)計進(jìn)行了配置及仿真,從而驗(yàn)證了該設(shè)計方案的可行性。 2 驅(qū)動時序發(fā)生器與數(shù)據(jù)緩存器一體化設(shè)計原理 2.1 CCD器件結(jié)構(gòu)及工作原理 美國Sarnoff公司的VCCD512H是背照型幀轉(zhuǎn)移面陣CCD,它由兩個感光區(qū)、兩個存儲區(qū)和讀出寄存器構(gòu)成。每個感光區(qū)(或存儲區(qū))包含8個子陣列。每個子陣列含有256(行)x64(列)個有效像元,整個像面則由16個子陣列,共512x512個有效像元構(gòu)成,我們在應(yīng)用中,對像元做了水平方向‘二合一’處理,使得整個像面共由512x256個有效像元構(gòu)成.最終16路信號并行輸出。 ![]() 圖1 VCCD512H芯片結(jié) 電荷移動方向如圖1中箭頭所示,先由感光區(qū)轉(zhuǎn)移到存儲區(qū)(AI,A2,A3為幀轉(zhuǎn)移控制信號),再由存儲區(qū)轉(zhuǎn)移到讀出寄存器(Bl,B2,B3為行轉(zhuǎn)移控制信號).而后在讀出控制信號(C1,C2,C3為像元轉(zhuǎn)移控制信號)的作用下順序讀出。16個子陣列有各自獨(dú)立的讀出寄存器和CDS放大器。信號的輸出方式是16個端口并行輸出,送到后續(xù)的模擬、數(shù)字信號處理電路。 2.2 驅(qū)動時序分析 由芯片結(jié)構(gòu)可知,CCD的一個丁作周期分兩個階段:感光階段和轉(zhuǎn)移階段。在感光階段,感光陣列接受外界光源照射產(chǎn)生電荷,幀轉(zhuǎn)移控制信號A不變.感光陣列和幀存儲區(qū)之間為阻斷態(tài),不會發(fā)生電荷轉(zhuǎn)移現(xiàn)象;同時由行轉(zhuǎn)移控制信號B控制,存儲區(qū)中的電荷逐行轉(zhuǎn)移到轉(zhuǎn)移寄存器;行轉(zhuǎn)移時.像元轉(zhuǎn)移控制信號c不變,無像元信號輸出;每行信號中,各像元電荷逐次經(jīng)過輸出放大器輸出,每讀出一行信號,進(jìn)行一次行轉(zhuǎn)移。三相CCD中,電荷的轉(zhuǎn)移是通過:三相控制電壓按一定順序依次變化來實(shí)現(xiàn)的。此處,進(jìn)行電荷轉(zhuǎn)移時,三相控制時序依次變化;三相信號不變時,為阻斷態(tài)。為保證信號電荷的完整轉(zhuǎn)移, 各相時序問必須保證一定的電平交疊。 在幀轉(zhuǎn)移階段.幀轉(zhuǎn)移控制信號A與行轉(zhuǎn)移控制信號B相同,且一直有效。同時像元控制信號C也一直有效,但輸出數(shù)據(jù)無效。進(jìn)入感光階段,首先進(jìn)行一次行轉(zhuǎn)移,開始信號的輸出.同時感光區(qū)像元進(jìn)入電荷積累。為保證信號讀出的完整性,整幀轉(zhuǎn)移的行數(shù)、輸出的行數(shù)、像元數(shù)都進(jìn)行了一定的冗余設(shè)置。 2.3數(shù)據(jù)緩存器工作原理 如圖2所示,CCD傳感器為16路并行輸出,每路為256x32x12bit.即8192x12 bit,現(xiàn)采用VHDL硬件描述語言,設(shè)計實(shí)現(xiàn)了一種基于片上集成的雙口RAM緩存器。 ![]() 圖2 時序發(fā)生器和數(shù)據(jù)緩存器原理框 本設(shè)計中選用的控制器件FPGA為Xilinx公司XQ2V3000,其片內(nèi)的共有96個雙口RAM,每個RAM的深度為16K.而在該系統(tǒng)中為了實(shí)現(xiàn)幀緩存的功能。在設(shè)計中采用了兩個雙口RAM并行連接的方式,從而組合成了16Kx16bit的雙口RAM緩存單元,共占用RAM資源34個。雙口RAM的寫入地址為14位,由寫入地址發(fā)生器統(tǒng)一提供,與CCD的驅(qū)動波形相配合。具體實(shí)現(xiàn)時是將雙口RAM分成上下兩區(qū)(每個緩沖區(qū)共有64x266個像元),前一帕周期左邊寫上半?yún)^(qū),右邊讀下半?yún)^(qū);后一幀周期,左邊寫下半?yún)^(qū)時,右邊讀上半?yún)^(qū)。其寫入過程為:首先由A、B 三相驅(qū)動脈沖(共266個波形)配合,完成A->B的電荷轉(zhuǎn)移;然后用B波形完成兩次B->C轉(zhuǎn)移(兩行合并),再用C波形完成72次串出,其中僅有64個有效(第3娟像元),其余為過掃描,用于行箝位。這一過程重復(fù)133次。(前5次丟棄)。 因?yàn)閳D像數(shù)據(jù)的讀出要按預(yù)定順序,即512行從上到下,每行256個像元從左到右。為此,將17個雙口RAM的輸出作為一個整體來考慮,其存儲量為(512x256+128)x12 bit,即131,200x12 bit,需要18位地址,該讀出地址的形成可以用一個18位計數(shù)器和一個譯碼器完成。 如圖3所示,在幘正程期間,從數(shù)據(jù)緩存讀出512x256x12bit 的圖像數(shù)據(jù),在幀逆程期間,緩存器中的輔助數(shù)據(jù)緊隨其后被讀出。 ![]() 圖3緩存器輸出數(shù)據(jù)時序圖 3 一體化設(shè)計的FPGA實(shí)現(xiàn)及仿真結(jié)果 3.1 現(xiàn)場可編程門陣列(FPGA) 系統(tǒng)中采用容量比較大的FPGA,利用VHDL硬件描述語言完成CCD驅(qū)動時序的設(shè)計和數(shù)據(jù)的高速讀寫。這種實(shí)現(xiàn)方法可以使采集系統(tǒng)靈活、簡單、方便.具有很強(qiáng)的可擴(kuò)展性,可根據(jù)需要設(shè)計為不同數(shù)據(jù)寬度、不同容量的數(shù)字系統(tǒng),接口電路簡潔且不占用系統(tǒng)地址資源,系統(tǒng)移植或升級換代方便,而 且控制簡單,易于實(shí)現(xiàn)。 3.2 時序仿真結(jié)果 在編程軟件Quartus II集成設(shè)計環(huán)境下,用VHDL語言以自上而下的方式,對CCD驅(qū)動時序和數(shù)據(jù)緩存系統(tǒng)進(jìn)行了描述,仿真后得到部分結(jié)果如下圖所示。 ![]() 圖4幀轉(zhuǎn)移階段的仿真圖 圖4為在幀轉(zhuǎn)移過程中,通過對時鐘CLK的計數(shù)而產(chǎn)生了頻率相同、相位不同的A、B驅(qū)動脈沖信號,并且通過后續(xù)的示波器檢測得知電平交疊達(dá)到了75%以上,滿足技術(shù)手冊的要求。 ![]() 圖5 RAM選擇地址仿真圖 圖5為RAM選擇地址仿真圖。系統(tǒng)總共有17個RAM緩存器。并且把每個RAM分為了上、下兩個半?yún)^(qū)。設(shè)CEr為16位用來選擇RAM的位置,其中高8位為上半?yún)^(qū),低8位為下半?yún)^(qū),并且交替選擇(上半?yún)^(qū)讀出時,下半?yún)^(qū)為寫入,反之亦然)。從最終的仿真圖中可以看出,時序復(fù)合設(shè)計要求。 4 結(jié)束語 本文的創(chuàng)新點(diǎn)在于采用了FPGA技術(shù)設(shè)計CCD驅(qū)動時序和緩存器電路,使原來復(fù)雜的電路設(shè)計變成只需1片F(xiàn)PGA就能完成。同時它能夠很好地滿足CCD應(yīng)用向高速、小型化、智能化、低功耗發(fā)展的需求.從而提高了系統(tǒng)的集成度。從時序仿真結(jié)果來看,該一體化的設(shè)計能夠較好的產(chǎn)生器件所需的時序脈沖及緩存器所需的讀/寫地址,并且由于使用了延遲量小的FPGA使得系統(tǒng)可以工作在百兆赫茲的工作頻段,從而增強(qiáng)了電路的抗干擾能力,提高了系統(tǒng)的可靠性與穩(wěn)定性。 項(xiàng)目經(jīng)濟(jì)效益:50萬元 作者:孟楠 來源:《微計算機(jī)信息》(嵌入式與SOC)2009年第25卷第6-2期 |