基于FPGA的線陣CCD驅(qū)動設(shè)計
當(dāng)SH脈沖為高電平時φ1脈沖亦為高電平,其下均形成深勢阱,SH的深勢阱使φ1電極下的深勢阱與MOS電容存儲勢阱溝通,從而使MOS電容存儲柵中的信號電荷轉(zhuǎn)移到φ1電極下的勢阱中。當(dāng)SH電平由高變低時,SH低電平形成的淺勢阱將MOS電容存儲柵下的勢阱與φ1電極下的勢阱隔離開。存儲柵的勢阱進入光積分狀態(tài),而模擬移位寄存器將在φ1和φ2脈沖的作用下驅(qū)動信號電荷向左轉(zhuǎn)移,最后信號經(jīng)由OS端輸出啞元信號和2 700個有效像元信號,而由DOS端輸出補償信號。由于結(jié)構(gòu)的安排,OS端首先輸出13個虛設(shè)單元信號;再輸出51個暗信號;最后連續(xù)輸出2 700個有效像素單元信號;接著輸出9個暗信號、2個奇偶檢測信號和沒有信號的空驅(qū)動,空驅(qū)動的數(shù)目為任意的,但必須大于0,否則會影響下一行信號的輸出。由于該器件是兩行奇、偶傳輸,所以在一個SH周期中至少要有1 388個φ1脈沖,即TφSH>1 388Tφ1。CCD各路脈沖的技術(shù)指標(biāo)為:φ1,φ2為驅(qū)動脈沖,φ1,φ2相位相反,兩者均是頻率為0.5~2 MHz,占空比為1:2的方波,本文要求該頻率可調(diào)節(jié)。SH為轉(zhuǎn)移脈沖,由圖1可以看出:當(dāng)SH為高電平時必須φ1同步為高電平。當(dāng)SH為低電平時,φ1也將變?yōu)榈碗娖?。但是?phi;1脈沖必須比SH脈沖提前上升、遲后下降。即在并行轉(zhuǎn)移時φ1脈沖有一個大于SH為高電平時的持續(xù)時間的寬的高電平脈沖。由上面分析可以得出,TφSH>1388Tφ1,RS為復(fù)位脈沖,占空比為1:4的方波,頻率為1~4 MHz,同時要求該頻率同樣可調(diào)節(jié)。
3 驅(qū)動時序的實現(xiàn)
3.1 驅(qū)動時序的FPGA實現(xiàn)
為了產(chǎn)生系統(tǒng)中用到的時序,設(shè)計了基于復(fù)雜可編程邏輯器件FPGA的CCD傳感器驅(qū)動時序發(fā)生器,采用Altera公司的QuartusⅡ軟件開發(fā)系統(tǒng)。QuartusⅡ軟件開發(fā)系統(tǒng)是一種全集成化的可編程邏輯設(shè)計環(huán)境,它支持硬件描述語言(VHDL和Verilog HDL)、狀態(tài)圖和原理圖三種輸入方式,擁有編譯、邏輯綜合、仿真等功能。相對于其他輸入方式,硬件編程語言的輸入方式(如VHDL或VerilogHDL)可移植性和可讀性好,因此成為本設(shè)計的首選。其中Verilog HDL具有編程靈活、使用方便等優(yōu)點為眾多設(shè)計所接受??傮w的設(shè)計思想是將驅(qū)動時序分成三個模塊,分別為AD0832,Divider和CCD_Driver。AD0832模塊采集輸出數(shù)據(jù)由Divider分頻模塊處理后輸入給CCD_Driver模塊去調(diào)節(jié)CCD的積分時間與驅(qū)動頻率,同時CCD_Driver模塊輸出4路信號驅(qū)動CCD。CCD_Driver模塊的的總體設(shè)計思想是將可調(diào)時鐘in_clk、積分時間INTER_TIME作為輸入而且它們與Dirider模塊的輸出CCD_clk、Ctr_Time_Out[12..0]對應(yīng),產(chǎn)生四路信號SH,RS,PH1,PH2作為輸出直接驅(qū)動CCD。其中驅(qū)動頻率RS和積分時間SH可調(diào)。CCD驅(qū)動時序的設(shè)計如圖2所示。CCD_Driver模塊實現(xiàn)的功能是將時鐘輸入(in_clk)二分頻分別得到Q1和Q2信號,四分頻得到temp_ph。用信號temp_ph作為計數(shù)時鐘輸入,分別在它的上升沿和下降沿觸發(fā)產(chǎn)生信號temp_sh1,temp_sh2。將Q1,Q2,temp_ph,temp_sh1,temp_sh2進行組合邏輯運算分別得到轉(zhuǎn)移脈沖SH、復(fù)位脈沖RS、時鐘信號PH1,PH2。其中轉(zhuǎn)移脈沖SH、復(fù)位脈沖RS頻率可調(diào)。使用VerilogHDL編寫程序中要求時鐘PH2與PH1信號相位相反。Q1為在時鐘in_clk的上升沿觸發(fā)的二分頻信號,Q2為在時鐘in_clk的下降沿觸發(fā)的二分頻信號。把Q2取反后與Q1相與產(chǎn)生RS信號。由于SH,RS,PH1,PH2信號存在一定的周期關(guān)系,所以在Q1下降沿時觸發(fā)翻轉(zhuǎn)二分頻得到基信號temp_ph。用信號temp_ph作為計數(shù)時鐘輸入,分別在它的上升沿和下降沿觸發(fā)并根據(jù)積分時間計數(shù)控制temp_sh1,temp_sh2的高低電平時間。將temp_sh1,temp_sh2相與得到SH信號;將temp_ph,temp_sh1與temp_sh2相或得到PH1信號。PH1取反得到PH2信號。本文引用地址:http://www.ex-cimer.com/article/191126.htm
3.2 仿真結(jié)果
以上模塊在QuartusⅡ軟件開發(fā)系統(tǒng)上進行設(shè)計輸入,經(jīng)編譯、校驗后,其仿真波形如圖3所示。
從仿真結(jié)果可看到產(chǎn)生的驅(qū)動脈沖與線陣CCD-CCD-TCD1251UD所需要的驅(qū)動時序完全吻合,能夠達到CCD驅(qū)動電路要求。
4 結(jié)語
使用FPGA器件實現(xiàn)對CCD驅(qū)動器的設(shè)計,很好的滿足了CCD應(yīng)用向高速、小型化、智能化發(fā)展的需求。在設(shè)計中,首先必須清楚CCD驅(qū)動時序的要求,并利用硬件描述語言進行科學(xué)的編程,這樣才能有效地完成設(shè)計需求。本文通過一個設(shè)計實例,來說明利用FPGA設(shè)計CCD驅(qū)動器的方法,經(jīng)過仿真測試,驗證了該設(shè)計滿足CCD驅(qū)動要求。
評論