孫正磊 ,王曉東 ,曲洪豐
(1.中國科學院長春光學精密機械與物理研究所,吉林 長春130033;2.中國科學院研究生院,北京100039)
電荷耦合器件 CCD(Charge Coupled Device)自 20世紀70年代由貝爾實驗室發(fā)明以來,因其分辨率高、測量誤差小等優(yōu)點,被廣泛應用于各種成像儀器中。CCD按照成像維數(shù)分為線陣與面陣兩種類型。線陣CCD因其本身只有一維,需要進行推掃才能形成二維圖像,主要用于光譜分析與圖像掃描等領域;面陣CCD因其本身就能形成二維圖像,而被廣泛應用于數(shù)碼相機、攝像機及工業(yè)機器人等領域[1]。
面陣CCD按電荷讀出方式又分為全幀轉(zhuǎn)移、幀轉(zhuǎn)移、行間轉(zhuǎn)移三種,其中行間轉(zhuǎn)移CCD因其不需要機械快門、讀出速度最快等優(yōu)點,一直被作為高幀頻CCD相機的首選。
CCD的驅(qū)動時序產(chǎn)生方法主要有以下四種:直接數(shù)字電路(IC)驅(qū)動法、單片機驅(qū)動法、EPROM 驅(qū)動法、可編程邏輯器件法等[2]。近些年來,隨著可編程器件的高速發(fā)展,F(xiàn)PGA因其高速并行處理方式,極強的編程靈活性,十分適合用來產(chǎn)生CCD的驅(qū)動時序,加之其能很好地避免其他驅(qū)動方式的弊端,因而已經(jīng)成為CCD驅(qū)動電路的首選。
本文針對功耗體積要求嚴格的高幀頻高分辨率CCD相機應用場合,選用FPGA作為高速行間轉(zhuǎn)移CCD的驅(qū)動控制,在減小系統(tǒng)體積,降低系統(tǒng)功耗的同時,完成控制任務。
KAI-1020是美國柯達公司生產(chǎn)的行間轉(zhuǎn)移型面陣 CCD,總像元數(shù) 1 028(H)×1 008(V),其中有效像元1 000(H)×1 000(V),像元尺寸 7.4 μm(V)×7.4 μm(H),有效成像面積 10.5 mm[2-3]。
KAI-1020具有逐行讀出和交錯讀出(只讀取CCD 1 000行成像有效單元中的500行)兩種方式,最大像元讀出速率40 MHz,可以選擇單通道或雙通道讀出。采用逐行掃描,雙通道讀出方式,圖像分辨率為1 000(H)×1 000(V),幀頻可達 48幀/秒,本文設計即為完成此工作模式。
為保證KAI-1020在高幀頻工作模式下的信號質(zhì)量,其內(nèi)部集成了相關雙采樣電路。成像區(qū)在感光后,將光信號轉(zhuǎn)化為電荷包,在驅(qū)動信號的控制下,將電荷包轉(zhuǎn)移到鄰近的存儲區(qū),依次將電荷信號轉(zhuǎn)移、讀出,送入內(nèi)部集成的CDS電路采樣后輸出。
KAI-1020工作時所需驅(qū)動信號較為復雜,需要6種偏置電壓,電壓加載順序也有一定要求。將驅(qū)動電路分為電壓產(chǎn)生、FPGA控制、時序驅(qū)動器3個模塊。電壓產(chǎn)生模塊用來產(chǎn)生FPGA及CCD工作需要的各種偏置電壓;FPGA控制模塊分為電壓控制模塊和時序發(fā)生模塊,分別用來控制CCD電壓上電順序和CCD驅(qū)動時序產(chǎn)生;時序驅(qū)動器用來匹配FPGA端口電壓與CCD驅(qū)動信號電壓。驅(qū)動硬件結構如圖1所示。
CCD作為高精度的圖像傳感器,對電源電壓穩(wěn)定性及電路噪聲水平要求較高。DC/DC電源效率高,但紋波大。LDO電源穩(wěn)定性好,但壓差大時發(fā)熱量也大,會增加系統(tǒng)功耗及電路噪聲[4]。
KAI-1020因內(nèi)部結構要求,需要進行三步上電,F(xiàn)PGA作為控制單元,+3.3 V、+2.5 V、+1.2 V的工作電壓需要隨系統(tǒng)上電加載。
相機母線電壓為+12 V,為保證CCD正常工作,降低系統(tǒng)功耗,減少CCD高速工作時電壓紋波及電路噪聲造成的影響,電壓產(chǎn)生模塊采用先大壓差DC/DC變換,再小壓差線性穩(wěn)壓,由FPGA控制上電順序的方案。電源模塊電壓變換過程如圖2所示。
為相機小型化考慮,F(xiàn)PGA選用Xilinx公司Spartan-3AN系列中的XC3S400AN。XC3S400AN資源豐富,擁有40萬門電路和多達311個用戶I/O,內(nèi)部集成了4 Mbit Flash作為程序存儲區(qū),不需要外接配置芯片,十分適合對空間敏感和安全性要求較高的場合。
相機加電后,F(xiàn)PGA完成配置,進入工作狀態(tài),接到上電命令后,通過控制穩(wěn)壓器的使能端控制電壓加載,完成CCD三步上電。FPGA控制流程如圖3所示。
-9 V電壓加載后,V1MID與 V1MID(-1.2 V)通過對地串聯(lián)的兩個二極管導通形成。
XC3S400AN每個BANK都可配置管腳電壓為LVTTL或 LVCOMS,但 CCD驅(qū)動時序電壓為 0~5 V,所以需要在FPGA與CCD之間增加電平轉(zhuǎn)換芯片。
TI公司的SN74LV8T245是一款8 bit轉(zhuǎn)換電壓可調(diào)、輸出三態(tài)、雙供電總線收發(fā)器,其內(nèi)部分為AB兩路,由DIR控制數(shù)據(jù)流向為A到B或B到A,兩路電壓均可配置為1.65 V~5.5 V。將 DIR配置為 1,數(shù)據(jù)流向為 A到B,A路接+3.3 V電壓,接口與 FPGA驅(qū)動信號連接,B路接+5 V電壓,接口與CCD驅(qū)動電容連接,完成FPGA與CCD驅(qū)動電壓的匹配。
KAI-1020工作在逐行掃描、雙通道讀出模式下,主要驅(qū)動信號有 V2B、V2A、V1、H1、H2、SH、R、SA、SB、T。V2B為幀轉(zhuǎn)移信號,下降沿時,CCD將感光單元中的電荷包轉(zhuǎn)移到存儲單元中;V2A、V1為垂直轉(zhuǎn)移信號,負責將存儲單元中每一行的電荷包轉(zhuǎn)移到讀出寄存器中;H1、H2為水平轉(zhuǎn)移信號,負責將每一行中的每個像元從寄存器中讀出;SH為電子快門信號,SH的一個高脈沖可以將CCD之前曝光積累的電荷清零,電荷的積累時間變?yōu)閺腟H的下降沿到V2B的下降沿,從而實現(xiàn)控制曝光時間;R、SA、SB、T為相關雙采樣的控制時序,R與 T同相,與SA、SB有一定的相位差,其具體時序關系如圖4所示。
KAI-1020驅(qū)動信號中,水平轉(zhuǎn)移信號與CDS信號頻率最高,為 40 MHz,占空比分別為 50%和 33.33%,這幾個信號之間存在一定的相位關系,通過更高頻的信號分頻實現(xiàn)。相機的工作時鐘為30 MHz,經(jīng)FPGA的DCM進行8倍頻后,再將信號六分頻并進行移位得到不同相位的40 MHz信號。對于垂直轉(zhuǎn)移信號及電子快門等低頻信號,通過對40 MHz的信號計數(shù)分頻實現(xiàn)。實現(xiàn)過程如圖5所示。
KAI-1020工作在雙端口讀出模式時,左右兩面的數(shù)據(jù)分左右兩路讀出。讀出寄存器中,左右兩路各有8個空像元,水平轉(zhuǎn)移時序需要重復522次,才能將一行圖像數(shù)據(jù)從左右兩路讀出。為保證讀出行的電荷不對下一行電荷造成影響,一般水平轉(zhuǎn)移序列至少重復523次,垂直轉(zhuǎn)移時序需要重復1 008次,將1 008行數(shù)據(jù)依次從存儲區(qū)轉(zhuǎn)移到讀出寄存器。
將驅(qū)動時序通過狀態(tài)機實現(xiàn),幀轉(zhuǎn)移由狀態(tài)s0表示,垂直轉(zhuǎn)移和水平轉(zhuǎn)移由s1表示,通過計數(shù)器計數(shù)完成延時要求,狀態(tài)轉(zhuǎn)換過程如圖6所示。
在垂直轉(zhuǎn)移信號變化時,水平轉(zhuǎn)移信號H1、H2需要分別保持高電平和低電平。在狀態(tài)s1中,設置信號H_en,通過將 H_en與 40 MHz信號進行“或”運算,得到H1信號,將H_en與 40 MHz信號“或”運算后再取反,得到H2信號。
電子快門信號SH需要加載于某行電荷信號讀取完成后,V1與 V2A信號上升沿之前,H1、H2在此期間需要保持變化。當計數(shù)器cnt3計到曝光所需的行數(shù)T后,狀態(tài)機跳轉(zhuǎn)到狀態(tài)s2,完成SH信號延時后跳轉(zhuǎn)回s1,實現(xiàn)電子快門1-1007級可調(diào)。
通過時序分析,采用VHDL語言進行程序設計,在Xilinx公司的集成開發(fā)環(huán)境ISE 10.1中編寫源代碼,并進行仿真,仿真波形如圖7所示。
圖7(a)為整體仿真波形的一部分,V2B、V2A、V1在幀轉(zhuǎn)移階段完成后,V2B保持低電平,V2A、V1開始重復;圖7(b)為水平轉(zhuǎn)移信號與相關雙采樣信號的部分仿真波形,H1、H2反相,R、SA、SB、T 相位關系與時序要求相同,當V2A、V1變化時,H1為高電平,H2為低電平。
在仿真通過后,對VHDL源代碼進行綜合和實現(xiàn),生成可編程文件,將該文件下載到FPGA后,控制CCD產(chǎn)生圖像信號,經(jīng)過后端處理電路,將模擬圖像信號轉(zhuǎn)化為數(shù)字信號,并對兩路輸出的圖像信號進行拼接,形成一行圖像,通過高速串行LVDS信號將圖像信號發(fā)送至數(shù)據(jù)接收端,解碼LVDS信號,通過采集卡在上位機形成圖像。經(jīng)實際成像測試,CCD在設計的軟硬件驅(qū)動下,幀頻可達 48 幀/秒,圖像分辨率為 1 000(H)×1 000(V),并能通過電子快門對曝光時間進行1-1007級調(diào)節(jié),靈活控制圖像亮度。
使用FPGA作為CCD KAI-1020的控制單元及時序發(fā)生器,可以十分方便地產(chǎn)生各種控制及驅(qū)動信號,完成CCD上電順序控制及復雜驅(qū)動時序產(chǎn)生,其強大的可編程和并行處理能力也十分利于系統(tǒng)擴展和升級。
[1]陶明慧,張星祥,張宇,等.KAI-2093型面陣CCD多模式驅(qū)動時序設計[J].液晶與顯示,2011,26(1):105-110.
[2]周根榮,姜平.一種基于高速超微型單片機的CCD驅(qū)動電路設計[J].電子技術應用,2006,32(3):105-107.
[3]Eastman Kodak Company.KODAK KAI-1020 Image Sensor[M].New York:Eastman Kodak Company,2010.
[4]周望.CCD數(shù)字相機的電源系統(tǒng)設計[J].電子技術應用,2008,34(2):60-62,65.