摘要: 針對面陣CCD KAI-1020 在高幀頻工作模式下的驅(qū)動要求, 以FPGA 作為控制單元及時序發(fā)生器,完成CCD 高幀頻工作模式下的硬件及軟件設計,仿真驗證了驅(qū)動時序的正確性,完成了硬件電路的調(diào)試與試驗。成像實驗表明,該設計滿足了CCD KAI-1020 在雙端口輸出模式下成像的各種驅(qū)動控制功能,圖像分辨率為1 000×1 000,幀頻達到48 f/s。
電荷耦合器件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)功耗的同時, 完成控制任務。
1 KAI-1020 結構及特點
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 電路采樣后輸出。
2 硬件電路設計
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 所示。
2.1 電壓產(chǎn)生模塊
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 所示。
2.2 FPGA 控制模塊
為相機小型化考慮,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)的兩個二極管導通形成。
2.3 時序驅(qū)動模塊
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ū)動電壓的匹配。
3 軟件設計
3.1 時序分析
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 所示。
3.2 邏輯設計
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)。
3.3 邏輯仿真
通過時序分析, 采用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 為低電平。
4 實驗結果
在仿真通過后,對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)擴展和升級。
評論
查看更多