摘要:電荷耦合器件(CCD)作為一種新型的光電器件,被廣泛地應(yīng)用于非接觸測量。而CCD驅(qū)動設(shè)計是CCD應(yīng)用的關(guān)鍵問題之一。為了克服早期CCD驅(qū)動電路體積大,設(shè)計周期長,調(diào)試?yán)щy等缺點,以線陣CCD圖像傳感器TCD1251UD為例,介紹一種利用可編程邏輯器件FPGA實現(xiàn)積分時閫和頻率同時可調(diào)的線陣CCD驅(qū)動方法,使用Verilog語言對驅(qū)動電路方案進(jìn)行了硬件描述,采用QuartusII對所設(shè)計的時序進(jìn)行系統(tǒng)仿真。仿真結(jié)果表明,該驅(qū)動時序的設(shè)計方法是可行的。
關(guān)鍵詞:線陣CCD;可編程邏輯器件;積分時間;頻率
電荷耦合器件(CCD)作為新興的固體成像器件——圖像傳感器,具有體積小、重量輕、分辨力高、噪聲低、自掃描、工作速度快、靈敏度高、可靠性好等優(yōu)點,受到人們的高度重視,廣泛應(yīng)用于圖像傳感、景物識別、非接觸無損檢測、文件掃描等領(lǐng)域。其應(yīng)用系統(tǒng)的關(guān)鍵技術(shù)在于CCD驅(qū)動信號的產(chǎn)生及輸出信號的處理。以往經(jīng)常采用的驅(qū)動方法主要偏重硬件的實現(xiàn),調(diào)試?yán)щy,靈活性較差。而單片機(jī)驅(qū)動方法雖編程靈活,但存在資源浪費較多、頻率較低的缺陷。復(fù)雜可編程邏輯器件FPGA具有編程靈活、集成度高、速度快、容量大、功耗小、可靠性好等優(yōu)點,并且節(jié)省PCB板的空間,可移植性好,使用靈活。因此,結(jié)合實際應(yīng)用需要,設(shè)計了基于復(fù)雜可編程邏輯器件FPGA的CCD驅(qū)動時序設(shè)計,使用Verilog語言對驅(qū)動電路方案進(jìn)行了硬件描述,采用QpartusⅡ?qū)λO(shè)計的時序進(jìn)行了系統(tǒng)仿真。
1 CCD圖像傳感器TCD1251UD
TCD1251UD芯片是日本東芝公司生產(chǎn)的一種高靈敏度、低暗電流、具有2 700個有效像元的雙溝道兩相線陣CCD圖像傳感器。它的中心距為11μm,最佳工作頻率為1 MHz,光敏單元陣列總長為29.7 mm。該傳感器可用于傳真、圖像掃描和OCR。它的結(jié)構(gòu)包括:MOS電容存儲柵、轉(zhuǎn)移柵電極SH、CCD模擬移位寄存器φ1和φ2信號輸出單元OS和補(bǔ)償輸出單元DOS。
2 TCD1251UD的驅(qū)動時序要求
TCD1251UD的驅(qū)動脈沖波形圖如圖1所示,各信號之間定時關(guān)系如表1所示。
當(dāng)SH脈沖為高電平時φ1脈沖亦為高電平,其下均形成深勢阱,SH的深勢阱使φ1電極下的深勢阱與MOS電容存儲勢阱溝通,從而使MOS電容存儲柵中的信號電荷轉(zhuǎn)移到φ1電極下的勢阱中。當(dāng)SH電平由高變低時,SH低電平形成的淺勢阱將MOS電容存儲柵下的勢阱與φ1電極下的勢阱隔離開。存儲柵的勢阱進(jìn)入光積分狀態(tài),而模擬移位寄存器將在φ1和φ2脈沖的作用下驅(qū)動信號電荷向左轉(zhuǎn)移,最后信號經(jīng)由OS端輸出啞元信號和2 700個有效像元信號,而由DOS端輸出補(bǔ)償信號。由于結(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進(jìn)行組合邏輯運(yùn)算分別得到轉(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信號。
3.2 仿真結(jié)果
以上模塊在QuartusⅡ軟件開發(fā)系統(tǒng)上進(jìn)行設(shè)計輸入,經(jīng)編譯、校驗后,其仿真波形如圖3所示。
從仿真結(jié)果可看到產(chǎn)生的驅(qū)動脈沖與線陣CCD-CCD-TCD1251UD所需要的驅(qū)動時序完全吻合,能夠達(dá)到CCD驅(qū)動電路要求。
4 結(jié)語
使用FPGA器件實現(xiàn)對CCD驅(qū)動器的設(shè)計,很好的滿足了CCD應(yīng)用向高速、小型化、智能化發(fā)展的需求。在設(shè)計中,首先必須清楚CCD驅(qū)動時序的要求,并利用硬件描述語言進(jìn)行科學(xué)的編程,這樣才能有效地完成設(shè)計需求。本文通過一個設(shè)計實例,來說明利用FPGA設(shè)計CCD驅(qū)動器的方法,經(jīng)過仿真測試,驗證了該設(shè)計滿足CCD驅(qū)動要求。