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