摘要:電荷耦合器件(CCD)作為一種新型的光電器件,被廣泛地應用于非接觸測量。而CCD驅動設計是CCD應用的關鍵問題之一。為了克服早期CCD驅動電路體積大,設計周期長,調試困難等缺點,以線陣CCD圖像傳感器TCD1251UD為例,介紹一種利用可編程邏輯器件FPGA實現積分時閫和頻率同時可調的線陣CCD驅動方法,使用Verilog語言對驅動電路方案進行了硬件描述,采用QuartusII對所設計的時序進行系統(tǒng)仿真。仿真結果表明,該驅動時序的設計方法是可行的。
關鍵詞:線陣CCD;可編程邏輯器件;積分時間;頻率
電荷耦合器件(CCD)作為新興的固體成像器件——圖像傳感器,具有體積小、重量輕、分辨力高、噪聲低、自掃描、工作速度快、靈敏度高、可靠性好等優(yōu)點,受到人們的高度重視,廣泛應用于圖像傳感、景物識別、非接觸無損檢測、文件掃描等領域。其應用系統(tǒng)的關鍵技術在于CCD驅動信號的產生及輸出信號的處理。以往經常采用的驅動方法主要偏重硬件的實現,調試困難,靈活性較差。而單片機驅動方法雖編程靈活,但存在資源浪費較多、頻率較低的缺陷。復雜可編程邏輯器件FPGA具有編程靈活、集成度高、速度快、容量大、功耗小、可靠性好等優(yōu)點,并且節(jié)省PCB板的空間,可移植性好,使用靈活。因此,結合實際應用需要,設計了基于復雜可編程邏輯器件FPGA的CCD驅動時序設計,使用Verilog語言對驅動電路方案進行了硬件描述,采用QpartusⅡ對所設計的時序進行了系統(tǒng)仿真。
1 CCD圖像傳感器TCD1251UD
TCD1251UD芯片是日本東芝公司生產的一種高靈敏度、低暗電流、具有2 700個有效像元的雙溝道兩相線陣CCD圖像傳感器。它的中心距為11μm,最佳工作頻率為1 MHz,光敏單元陣列總長為29.7 mm。該傳感器可用于傳真、圖像掃描和OCR。它的結構包括:MOS電容存儲柵、轉移柵電極SH、CCD模擬移位寄存器φ1和φ2信號輸出單元OS和補償輸出單元DOS。
2 TCD1251UD的驅動時序要求
TCD1251UD的驅動脈沖波形圖如圖1所示,各信號之間定時關系如表1所示。
當SH脈沖為高電平時φ1脈沖亦為高電平,其下均形成深勢阱,SH的深勢阱使φ1電極下的深勢阱與MOS電容存儲勢阱溝通,從而使MOS電容存儲柵中的信號電荷轉移到φ1電極下的勢阱中。當SH電平由高變低時,SH低電平形成的淺勢阱將MOS電容存儲柵下的勢阱與φ1電極下的勢阱隔離開。存儲柵的勢阱進入光積分狀態(tài),而模擬移位寄存器將在φ1和φ2脈沖的作用下驅動信號電荷向左轉移,最后信號經由OS端輸出啞元信號和2 700個有效像元信號,而由DOS端輸出補償信號。由于結構的安排,OS端首先輸出13個虛設單元信號;再輸出51個暗信號;最后連續(xù)輸出2 700個有效像素單元信號;接著輸出9個暗信號、2個奇偶檢測信號和沒有信號的空驅動,空驅動的數目為任意的,但必須大于0,否則會影響下一行信號的輸出。由于該器件是兩行奇、偶傳輸,所以在一個SH周期中至少要有1 388個φ1脈沖,即TφSH>1 388Tφ1。CCD各路脈沖的技術指標為:φ1,φ2為驅動脈沖,φ1,φ2相位相反,兩者均是頻率為0.5~2 MHz,占空比為1:2的方波,本文要求該頻率可調節(jié)。SH為轉移脈沖,由圖1可以看出:當SH為高電平時必須φ1同步為高電平。當SH為低電平時,φ1也將變?yōu)榈碗娖?。但是?phi;1脈沖必須比SH脈沖提前上升、遲后下降。即在并行轉移時φ1脈沖有一個大于SH為高電平時的持續(xù)時間的寬的高電平脈沖。由上面分析可以得出,TφSH>1388Tφ1,RS為復位脈沖,占空比為1:4的方波,頻率為1~4 MHz,同時要求該頻率同樣可調節(jié)。
3 驅動時序的實現
3.1 驅動時序的FPGA實現
為了產生系統(tǒng)中用到的時序,設計了基于復雜可編程邏輯器件FPGA的CCD傳感器驅動時序發(fā)生器,采用Altera公司的QuartusⅡ軟件開發(fā)系統(tǒng)。QuartusⅡ軟件開發(fā)系統(tǒng)是一種全集成化的可編程邏輯設計環(huán)境,它支持硬件描述語言(VHDL和Verilog HDL)、狀態(tài)圖和原理圖三種輸入方式,擁有編譯、邏輯綜合、仿真等功能。相對于其他輸入方式,硬件編程語言的輸入方式(如VHDL或VerilogHDL)可移植性和可讀性好,因此成為本設計的首選。其中Verilog HDL具有編程靈活、使用方便等優(yōu)點為眾多設計所接受。總體的設計思想是將驅動時序分成三個模塊,分別為AD0832,Divider和CCD_Driver。AD0832模塊采集輸出數據由Divider分頻模塊處理后輸入給CCD_Driver模塊去調節(jié)CCD的積分時間與驅動頻率,同時CCD_Driver模塊輸出4路信號驅動CCD。CCD_Driver模塊的的總體設計思想是將可調時鐘in_clk、積分時間INTER_TIME作為輸入而且它們與Dirider模塊的輸出CCD_clk、Ctr_Time_Out[12..0]對應,產生四路信號SH,RS,PH1,PH2作為輸出直接驅動CCD。其中驅動頻率RS和積分時間SH可調。CCD驅動時序的設計如圖2所示。CCD_Driver模塊實現的功能是將時鐘輸入(in_clk)二分頻分別得到Q1和Q2信號,四分頻得到temp_ph。用信號temp_ph作為計數時鐘輸入,分別在它的上升沿和下降沿觸發(fā)產生信號temp_sh1,temp_sh2。將Q1,Q2,temp_ph,temp_sh1,temp_sh2進行組合邏輯運算分別得到轉移脈沖SH、復位脈沖RS、時鐘信號PH1,PH2。其中轉移脈沖SH、復位脈沖RS頻率可調。使用VerilogHDL編寫程序中要求時鐘PH2與PH1信號相位相反。Q1為在時鐘in_clk的上升沿觸發(fā)的二分頻信號,Q2為在時鐘in_clk的下降沿觸發(fā)的二分頻信號。把Q2取反后與Q1相與產生RS信號。由于SH,RS,PH1,PH2信號存在一定的周期關系,所以在Q1下降沿時觸發(fā)翻轉二分頻得到基信號temp_ph。用信號temp_ph作為計數時鐘輸入,分別在它的上升沿和下降沿觸發(fā)并根據積分時間計數控制temp_sh1,temp_sh2的高低電平時間。將temp_sh1,temp_sh2相與得到SH信號;將temp_ph,temp_sh1與temp_sh2相或得到PH1信號。PH1取反得到PH2信號。
3.2 仿真結果
以上模塊在QuartusⅡ軟件開發(fā)系統(tǒng)上進行設計輸入,經編譯、校驗后,其仿真波形如圖3所示。
從仿真結果可看到產生的驅動脈沖與線陣CCD-CCD-TCD1251UD所需要的驅動時序完全吻合,能夠達到CCD驅動電路要求。
4 結語
使用FPGA器件實現對CCD驅動器的設計,很好的滿足了CCD應用向高速、小型化、智能化發(fā)展的需求。在設計中,首先必須清楚CCD驅動時序的要求,并利用硬件描述語言進行科學的編程,這樣才能有效地完成設計需求。本文通過一個設計實例,來說明利用FPGA設計CCD驅動器的方法,經過仿真測試,驗證了該設計滿足CCD驅動要求。