摘 要:以Atmel公司的面陣CCD-TH7888A圖像傳感器為例,在研究了CCD結構和驅動時序圖的基礎上提出基于FPGA的驅動脈沖設計方法和硬件電路實現。使用VHDL語言對驅動時序發生器進行了硬件描述,并采用Quartus 5.0對設計的驅動時序發生器進行仿真。試驗結果表明,涉及的驅動電路可以滿足面陣CCD-TH7888A的各項驅動要求。
關鍵詞:CCD; 信號處理; VHDL; 圖像傳感器
中圖分類號:TP3681 文獻標識碼:A
文章編號:1004-373X(2010)12-0157-03
Design of CCD Driving Circuit Based on FPGA Technology
WU Qi-jing1,2, LI Zi-tian1, HU Bing-liang1, PI Hai-feng1
(1. Xi’an Institute of Optics and Precision Mechanics, Chinese Academy of Sciences, Xi’an 710119, China;
2. Graduate Student College, Chinese Academy of Sciences, Beijing 100039, China)
Abstract:The design and implementation of CCD image sensor digital system is introduced. Taking CCD image sensor TH7888A produced by ATMEL as an example, the FPGA-based hardware driving design is proposed by studying the structure and driver schedule of CCD device. The hardware module and its circuit diagram of the driver are studied, the hardware description is given for the driving schedule generator by VHDL, and then the pulse signal needed by CCD is generated, the designed generator is simulated with Quartus 9.0. The experimental results show that the designed generator can meet the demand of the CCD-TH7888A.
Keywords: CCD; signal processing; VHDL; image sensor
電荷耦合器件(CCD)作為新興的固體成像器件即圖像傳感器,具有體積小,重量輕,分辨力高,噪聲低,自掃描,工作速度快,靈敏度高,可靠性好等優點,受到人們的高度重視,廣泛應用于圖像傳感、景物識別、非接觸無損檢測、文件掃描等領域[1] 。CCD驅動電路的實現是CCD應用技術的關鍵問題。以往大多是采用普通數字芯片實現驅動電路,CCD外圍電路復雜,為了克服以上方法的缺點,利用VHDL硬件描述語言.運用FPGA技術完成驅動時序電路的實現。該方法開發周期短,并且驅動信號穩定、可靠。系統功能模塊完成后可以先通過計算機進行仿真,再實際投入使用,降低了使用風險性。
1 硬件設計
CCD的硬件驅動電路系統的核心器件是SPARTAN系列芯片XC3S50;CCD采用Atmel公司的CCD-TH7888A圖像傳感器;CCD驅動脈沖由XC3S50提供,脈沖信號產生后由驅動模塊對脈沖電壓進行變換使其符合TH7888A的驅動電壓要求。CCD像素輸出電壓經過A/D轉換模塊處理電路VSP2272芯片的處理得到數字信號,最后為了方便傳輸和方便后續模塊對數字信號的處理將數字信號由TTL電平轉換成LVDS電平進行輸出[2] ,整個系統如圖1所示。
圖1 系統硬件結構圖
1.1 TH7888A簡介
CCD圖像傳感器采用THOMSON公司生產的TH7888A。它是一種高性能的幀轉移面陣CCD器件,采用四相脈沖驅動工作,并提供電子快門的功能;同時,它具有2種輸出的模式:單路輸出和雙路輸出[3] 。其主要的性能參數如下:
光敏區和存儲區均為1 024×1 024像素;速度可以達到30 images/s以上;像元尺寸為14 mm×14 mm;感光區面積為14.34 mm×14.34 mm;光譜波長范圍在400~700 nm之間;像元輸出頻率為20 MHz。
1.2 XC3SC50簡介
XC3S50屬于XILINX公司SPARTAN3系列的FPGA(現場可編程邏輯門陣列),是一種高性能器件,其特點是:器件運用90 μm加工技術;具有高性能低功耗的特點;邏輯密度達1 728個可用門;3路電源供電即I/O端口供電為1.2~3.3 V,核心供電1.2 V,輔助功能供電2.5 V;帶有2 KB容量分布式RAM和7 KB容量的BLOCK RAM,高級的邏輯時鐘管理功能[4] 。Ahera公司Quartus Ⅱ開發系統提供應用設計支持。
2 軟件設計
CCD驅動時序用VHDL描述。VHDL是可以描述硬件電路功能、信號連接關系的語言,其具有比電路原理圖更有效地表示硬件電路的特點。由于它與硬件電路無關等優點,用來設計電路時可大大提高開發效率[5] 。
由芯片的結構可以知道,CCD的1個周期分成感光和轉移2個階段,如圖2所示。
圖2 感光階段時序圖
感光階段即A的上升沿階段,主要實現3個功能:感光陣列的電荷積累,幀存儲區到轉移寄存器的電荷轉移以及轉移寄存器向輸出放大器的電荷輸出(即行轉移);轉移階段即A的下降沿階段,主要完成感光陣列所積累的電荷向幀存儲區的轉移(即幀轉移),同時清空幀存儲區的無效電荷[6] 。其具體的工作過程分析如下:
在感光階段即A的上升沿階段,P1,P2,P3,P4保持不變,感光陣列和幀存儲區之間為阻斷態,兩者之間不會發生電荷轉移現象。但感光陣列接受外界光源照射會積累電荷,在電荷積累的同時,在讀出寄存器時鐘L1,2的控制下,會首先讀出一行電荷。當讀完第1行信號之后,會進行1次行轉移。在寄存器時鐘的控制下,寄存器時鐘M1中的信號會轉移給寄存器M2,然后再次轉移到寄存器M3,M4。行轉移時,讀出寄存器時鐘L1,L2不變,無像元信號輸出。在行轉移結束之后,進行第2行電荷的讀出;每讀出1行信號,進行1次行轉移,如圖3所示,如此循環1 056次則感光階段完成。
轉移階段即為門控時鐘A的下降沿階段,如圖4所示。幀轉移控制信號P1,P2,P3,P4與行轉移控制信號M1,M2,M3,M4相同,且一直有效。讀出寄存器時鐘L1,L2無效,不輸出數據。在幀轉移結束之后,進人感光階段,存儲區首先進行1次行轉移,開始信號的輸出,同時感光區像元進入電荷積累。這樣就構成了TH7888A工作的1個周期。
圖3 感光階段的行轉移時序圖
圖4 幀轉移階段的時序圖
主時鐘脈沖周期定為50 ns,然后主時鐘通過4分頻產生L和R。L作為基礎波形會在以后產生和控制L1,L2和M類波形時使用,L的占空比為2∶2,R的占空比為3∶1。給L建一個循環記數器CL,它的范圍為0~1 065,在感光階段即A的上升沿階段當CL小于1 057的時候L1=L其余階段L1為低電平,L1取反為L2;當1 057<CL<1 063時M1為高電平,其余階段為低電平;當1 059 3 驅動的實現及仿真結果 Max+Plus Ⅱ是Altera公司推出的一種開發設計平臺,他功能強大,可以生成文本文件和波形文件。并支持層次設計和從頂至底的設計方法,支持VHDL語言[8] ??梢跃幾g并形成各種能夠下載到各種FPGA器件的文件,還可以進行仿真以檢驗設計的可行性。 硬件描述語言(VHDL)是用來描述集成電路的結構和功能的標準語言,設計人員無需通過門級原理圖,而是針對設計目標進行功能描述,從而加快設計周期,VHDL元件的設計與工藝無關,方便工藝轉換[9] 。基于以上優點和上述的時序分析,該系統采用VHDL語言實現CCD驅動時序電路。由于系統的一次周期比較長大概在200 ms,所以波形仿真時的END TIME比較大,圖5所示為感光階段的波形仿真,圖6所示為轉移階段的波形仿真圖。 圖5 感光階段的波形仿真圖 圖6 轉移階段的波形仿真圖 由圖可知設計所產生的波形與TH7888A的技術 手冊上的驅動要求所需脈沖完全吻合,能夠達到TH7888A的驅動要求。 4 結 語 用XILINX公司系列FPGA-SPARTAN芯片,在Quartus Ⅱ5.0開發環境下采用VHDL語言輸入方法開發設計出了高分辨率全幀CCD TH7888A的驅動電路,能夠產生滿足TH7888A要求的驅動脈沖。與以往常采用的驅動方法相比其面積大大減小了,采用FPGA進行設計,簡化了CCD驅動電路的電路系統。整個設計編程完畢后進行仿真、時序驗證正確后再下載到器件中,然后進行電路的測試校驗直到達到預期效果。這樣的設計修改起來較為方便,只要修改程序即可,不需要像傳統的設計方法要更換器件修改設計電路等,實驗證明,把VHDL 應用于CCD驅動電路的設計,可以滿足系統的高速性和電路的集成度等要求[10] 。 參考文獻 [1]王慶有.CCD應用技術[ M] .天津:天津大學出版社,2000. [2]許秀貞,李自田.基于CPLD的可選輸出CCD驅動時序設計[ J] .光子學報,2004,33(12):1505-1507. [3]ETC.TH7888A技術應用手冊[ EB/OL] .[ 2008-03-02] .http://www.datasheet5.com. [4]Spartan-3 FPGA Family:Complete Data Sheet. [5]高志國.VHDL 在CCD驅動電路中的應用[ J] .光學儀器,2006,28(3):21-27. [6]李連鳴,馮延,馮軍,等.2.5 Gb/s 0.35 μm CMOS激光驅動器[ J] .東南大學學報:自然科學版,2004,34(4):423-425. [7]黎向陽,高偉.基于VHDL的面陣CCD圖像傳感器的驅動設計[ J] .科學技術工程,2007,14(3):3584-3586. [8]王開軍,姜宇柏.面向CPLD/FPGA的VHDL設計[ M] .北京:機械工業出版社,2007. [9]雷伏容.VHDL電路設計[ M] .北京:清華大學出版社,2006. [10]曹昕燕.CPLD在CMOS圖像傳感器驅動電路中的應用[ J] .儀表技術與傳感器,2005(4):33-35. [11]葉煥玲,葉松.基于CPLD的CIS積分時間軟調節[ J] .現代電子技術,2008,31(24):187-188,194. [12]黎向陽,高偉,楊光宏,等.面陣CMOS圖像傳感器LUPA4000的驅動設計[ J] .現代電子技術,2008,31(8):17-19.