EMCCD相機數(shù)字控制系統(tǒng)的VHDL設(shè)計
0 引言
電荷耦合器件(CCD)現(xiàn)在廣泛應(yīng)用于天文圖像。
傳統(tǒng)的CCD讀出較慢且在高幀率的情況下有很高的讀出噪音,這限制了它在高時間分辨率天文學(xué)的應(yīng)用。
21世紀初,英國的E2V 公司和美國TI公司各自獨立地研發(fā)了一種具有新型讀出結(jié)構(gòu)的CCD 器件,即電子倍增CCD(Electron Multiplying Charge Coupled Device),簡記為EMCCD.這是新一代高質(zhì)量微光成像器件。與傳統(tǒng)的CCD相比,它采用了片上電子增益技術(shù),利用片上增益寄存器使圖像信息在電子轉(zhuǎn)移過程中得到放大,這使得它在很高的讀出速率下仍具有相對很低的讀出噪聲,能在微光源下高分辨率成像。
EMCCD 的這些特性,使得它能對微弱光信號進行快速的成像。近年來EMCCD被越來越多地運用到了天文觀測,國外研究人員采用E2V 公司的EMCCD 器件L3 VISION CCD設(shè)計的相機取得了極好的觀測效果,并進行了光子技術(shù)成像實驗。而國內(nèi)對天文用EMCCD相機的研制與應(yīng)用還處于起步階段。目前,實驗室正在研制一套基于EMCCD的二維天文光子計數(shù)實驗成像系統(tǒng),該成像系統(tǒng)可使用TI公司的EMCCD 器件TC253和TC285作為圖像傳感器。
本文針對使用TC253器件構(gòu)成的圖像采集系統(tǒng),主要介紹EMCCD的數(shù)字控制方案和設(shè)計方法。由于硬件系統(tǒng)使用Altera公司EP3C16Q240C8N FPGA芯片,所以該數(shù)字系統(tǒng)是在Altera Quartus Ⅱ 8.0開發(fā)環(huán)境下采用VHDL語言來進行設(shè)計并實現(xiàn)整個系統(tǒng)的數(shù)字控制部分。本文闡述了該數(shù)字控制系統(tǒng)的設(shè)計思想以及VHDL 的實現(xiàn)過程,給出了關(guān)鍵信號的仿真與實測波形,并對結(jié)果進行了分析。
1 EMCCD圖像傳感器與模擬信號處理器的
控制要求
TC253 是一款具有680(H)×500(V)像素的幀轉(zhuǎn)移CCD圖像傳感器,其結(jié)構(gòu)圖如圖1所示。它被廣泛的應(yīng)用于要求高靈敏度、低噪聲并且小尺寸的特殊用途的成像系統(tǒng)之中。該圖像傳感器的像素尺寸為7.4 μm×7.4 μm,具有快速單脈沖清除能力,以及逐行掃描、隔行掃描、行合并三種讀出模式。在本系統(tǒng)設(shè)計中,使用的是逐行掃描模式。
TC253 屬于幀轉(zhuǎn)移結(jié)構(gòu)的EMCCD 器件,其面陣分為圖像傳感區(qū)(亦稱成像區(qū))和存儲區(qū)兩部分,如圖1所示。上電工作時,光學(xué)影像照射到圖像傳感區(qū)的像素上,對應(yīng)像素的勢阱會產(chǎn)生并收集電子,形成一幅電子影像。在曝光結(jié)束以后,這幅電子影像在成像區(qū)和存儲區(qū)的垂直時鐘驅(qū)動下快速轉(zhuǎn)移到圖像存儲區(qū)域。此后該電子影像在存儲區(qū)的垂直轉(zhuǎn)移時鐘的驅(qū)動下,逐行地轉(zhuǎn)移到水平寄存器中,并在水平轉(zhuǎn)移時鐘的驅(qū)動下,通過水平串行寄存器轉(zhuǎn)移到輸出放大器。TC253 的水平串行寄存器分為前后兩部分,前一部分與其他CCD 圖像傳感器的設(shè)計一樣;后一部分則是獨特的,包含400個級聯(lián)的電子倍增寄存器,在這些倍增寄存器前后還有一些過渡的啞元像素,具體級數(shù)與位置如圖1 所示。
這400個級聯(lián)的倍增寄存器是該器件最具特色的部分,根據(jù)所施加的倍增電極電平高低和工作溫度,可以進行電子影像的放大。要使EMCCD能夠準確無誤的讀出光電圖像,需使光電子能有序地進行垂直與水平的交替轉(zhuǎn)移,并通過放大與相關(guān)雙取樣(CDS)電路進行模擬信號處理,最后經(jīng)模/數(shù)轉(zhuǎn)換器(ADC)輸出。因此,必須按照EMCCD 以及CDS 和ADC 的數(shù)據(jù)手冊所述的驅(qū)動時序來進行相關(guān)時鐘的時序設(shè)計。EMCCD TC253 一共有4 個時鐘驅(qū)動信號,4 個垂直轉(zhuǎn)移信號(IAG1,IAG2,SAG1,SAG2),3 個水平轉(zhuǎn)移信號(SRG1,SRG2,CMG),一個曝光溢出控制信號(ODB)。在本系統(tǒng)中,為簡化CCD模擬信號處理電路的設(shè)計,使用了單片模擬信號處理器AD9845B 作為CCD 輸出模擬信號的放大、CDS 和ADC電路。
模擬信號處理器AD9845B是一款針對CCD應(yīng)用的處理器AD9845A 的升級版,亦稱為模擬前端處理器(AFE)。它具有30 MHz單通道結(jié)構(gòu),用于面陣CCD 隔行掃描和逐行掃描信號的調(diào)理和采樣[8].根據(jù)其與CCD對應(yīng)的時序關(guān)系,共需要設(shè)置6個時鐘驅(qū)動信號,分別是相關(guān)雙采樣采集參考電平的時鐘SHP、相關(guān)雙采樣采集數(shù)據(jù)信號電平的時鐘SHD、讀出數(shù)據(jù)時鐘DATACLK、黑電平箝位時鐘CLPOB、輸入箝位時鐘CLPDM 以及消隱數(shù)據(jù)時鐘PBLK[9].6個驅(qū)動信號按照圖2所示的時序進行設(shè)置,這與AD9845B 數(shù)據(jù)手冊所提供的時序稍有不同。
2 數(shù)字系統(tǒng)總體設(shè)計思想
由EMCCD 和ADC 的數(shù)據(jù)手冊并結(jié)合該項目的要求可知,該數(shù)字控制系統(tǒng)就是要實現(xiàn)EMCCD圖像傳感器在幀轉(zhuǎn)移讀出模式和ODB清零模式下的驅(qū)動時鐘信號,以及在幀轉(zhuǎn)移讀出模式下,驅(qū)動ADC正常工作的時鐘信號。幀轉(zhuǎn)移讀出模式有4種水平讀出頻率,分別為12.5 MHz,6.25 MHz,3.125 MHz,1.562 5 MHz,標準讀出頻率為12.5 MHz,另外三種讀出頻率,為了對比測試圖像采集的效果而設(shè)置的。同時要求可以控制曝光積分時間,選擇是否超越讀出(Overscan)。根據(jù)VHDL語言的特點,采用頂層模塊控制底層模塊的方式,即以頂層邏輯控制各個底層邏輯的方式來實現(xiàn)該數(shù)字控制系統(tǒng)的功能。這種設(shè)計思想在實驗室設(shè)計的RDCCD 相機[10]、KAISS 相機[11] 中都使用過,控制效果良好,程序結(jié)構(gòu)清晰。
在頂層模塊中,定義了一些與底層模塊連接的端口,以及數(shù)字控制系統(tǒng)與外部硬件連接的端口,設(shè)置了頂層模塊與各底層模塊端口匹配的方式。生成了各個模塊需要的各種時鐘信號。以及協(xié)調(diào)了幀轉(zhuǎn)移讀出模式與ODB清零模式的切換。
在底層模塊中主要是兩個子模塊:ODB 清零和幀轉(zhuǎn)移讀出。每個子模塊都有其獨立的輸入時鐘信號與輸出端口,在相應(yīng)模塊被選中執(zhí)行時能順利完成各自任務(wù),生成正確的輸出時鐘信號。
3 數(shù)字系統(tǒng)的實現(xiàn)與仿真
該設(shè)計是在Altera Quartus Ⅱ 8.0的開發(fā)環(huán)境下,分別對頂層模塊和底層模塊進行VHDL編程設(shè)計與仿真的。下面將介紹各模塊的具體設(shè)計、仿真過程和一些實現(xiàn)技巧。
3.1 頂層模塊的設(shè)計
頂層模塊中定義了一些輸入端口、輸出端口和一些與底層模塊連接用端口及其映射關(guān)系,生成了底層模塊需要的各種時鐘信號,設(shè)置了各模塊的切換條件。以clkin作為輸入主時鐘,生成了3個底層用時鐘:清零時鐘clock_C,垂直轉(zhuǎn)移時鐘clock_V、水平轉(zhuǎn)移時鐘clock_H;以clkin_1 μs作為另一輸入時鐘,生成曝光階段時鐘clock_1 μs.還設(shè)置了“cs”,“read_select”,“start_read”三個判斷信號,用于選擇、切換ODB清零與幀轉(zhuǎn)移讀出模式。在Quartus Ⅱ中編譯成功后生成頂層模塊,命名為top.頂層模塊的VHDL 程序流程圖如圖3所示。
3.2 底層模塊的設(shè)計
底層模塊包含ODB清零子模塊與幀轉(zhuǎn)移讀出子模塊,有時亦稱為ODB 清零工作模式與幀轉(zhuǎn)移讀出工作模式。下面分別介紹這兩個子模塊的具體設(shè)計過程與仿真結(jié)果。
3.2.1 ODB清零模式由頂層模塊流程圖(即圖3)可知,當(dāng)片選信號cs='1',并且read_select='0‘時,系統(tǒng)將運行ODB 清零模塊。該模塊就是在系統(tǒng)上電后或CCD未進入曝光工作狀態(tài)時對CCD 成像區(qū)的殘余電荷進行清除。根據(jù)TC253的數(shù)據(jù)手冊,曝光溢出控制信號ODB在整個圖像采集過程中有三個電平值,溢流控制階段為5.3 V,清零階段為12.5 V,電荷轉(zhuǎn)移階段為4.8 V.因此在具體的VHDL編程過程中,可以生成ODB1,ODB2兩個信號,將它們輸出到一個ODB 驅(qū)動電路中,可形成ODB 控制信號。
該模塊以頂層生成的時鐘信號clock_C作為參考時鐘,當(dāng)清零使能信號start_read='0’時,開始ODB清零過程。在此過程中,垂直轉(zhuǎn)移信號SAG1、SAG2運行一個周期。圖4 為該子模塊VHDL 程序的仿真結(jié)果。通過對比TC253的數(shù)據(jù)手冊可知,仿真波形與該器件要求的時序是一致的。
3.2.2 幀轉(zhuǎn)移讀出模式
根據(jù)TC253 的數(shù)據(jù)手冊,將該EMCCD 器件的成像與幀轉(zhuǎn)移讀出模式劃分為4個階段,按順序分別是清零階段S1、曝光階段S2、垂直轉(zhuǎn)移階段S3、水平輸出階段S4.在頂層生成的4個時鐘信號,分別用作這4階段的控制時鐘,使之能夠準確地形成并輸出滿足TC253所需的各信號。[!--empirenews.page--]
為了能使4 個階段的信號順序執(zhí)行、互不沖突,在VHDL 程序代碼中,需要設(shè)置必要的判定信號,以控制狀態(tài)的轉(zhuǎn)移。這4個階段的狀態(tài)轉(zhuǎn)移圖如圖5所示。由圖可知,系統(tǒng)上電后進入初始狀態(tài)S0,當(dāng)read_select='1‘時,進入幀轉(zhuǎn)移讀出模式。當(dāng)使能信號C_enable='1’時,進行成像區(qū)電荷清除S1,直到結(jié)束標志位C_end='1‘后進入曝光階段S2;當(dāng)曝光使能位ClrM_en='1’時,開始曝光,直到結(jié)束標志位Exp_end='1‘后進入垂直轉(zhuǎn)移階段S3;當(dāng)垂直轉(zhuǎn)移使能位V_enable='1’時,開始垂直轉(zhuǎn)移,直到結(jié)束標志位V_end='1‘后進入水平輸出階段S4;當(dāng)水平輸出使能位H_enable='1’時,開始水平輸出,直到結(jié)束標志位H_end='1‘后回到初始狀態(tài)S0.
為了能正確輸出數(shù)字圖像,在水平輸出階段,還需要對模擬信號處理器AD9845B 進行控制。為此,在此階段(S4),需要根據(jù)AD9845B 的時序要求(見圖2),產(chǎn)生并輸出該器件要求的DATACLK,SHP,SHD,PBLK,CLPDM,CLPOB信號波形。
圖6 為幀轉(zhuǎn)移模式下主要信號的仿真結(jié)果。按TC253 實際的幀轉(zhuǎn)移行數(shù)680 和水平寄存器數(shù)目500,仿真波形將很長,無法顯示。由于仿真的目的是驗證邏輯和時序關(guān)系,因此,在仿真時我們將幀轉(zhuǎn)移行數(shù)和水平寄存器數(shù)目分別設(shè)定為10 和10,才獲得圖6 的結(jié)果。該結(jié)果與TC253在時序要求上是一致的。
4 實測結(jié)果分析與設(shè)計修正
為了使該EMCCD數(shù)字控制系統(tǒng)在實際的硬件電路環(huán)境下也能順利運行。在Altera SOPC Builder 下定制了一個Nios Ⅱ軟核CPU模塊,并在Altera Nios Ⅱ 8.0環(huán)境下設(shè)計了相應(yīng)的C 程序,以便對前面設(shè)計生成的EMCCD數(shù)字控制器進行測試。實際電路板上進行測試與仿真還是有所不同的。發(fā)現(xiàn)有些仿真能順利得到波形但是在將程序下載到實際電路板上之后,程序卻并不運行。需要經(jīng)過一系列的調(diào)整與修改,程序在電路板上才能正常運行,并得到具有正確時序的信號波形。對標準電平的數(shù)字信號,測試時使用的是安捷倫公司生產(chǎn)的1693A 邏輯分析儀,對于驅(qū)動電路輸出的時鐘信號,則使用安捷倫公司生產(chǎn)的MSO6012A 示波器。由于篇幅有限,這里僅給出部分測試波形,如圖7~圖9所示。
圖7為ODB清零模式實測信號波形圖,圖8為幀轉(zhuǎn)移讀出模式垂直轉(zhuǎn)移階段、清零及曝光階段、水平讀出階段的信號波形圖,其中AFE 的驅(qū)動信號波形在圖8(c)中。由于波形的名字顯示太小,看不清楚,故只截取了波形圖,信號名是單獨編輯上去的。通過觀察實測波形,其中垂直轉(zhuǎn)移信號IAG1,IAG2,SAG1,SAG2頻率為1.046 MHz,水平讀出信號SRG1,SRG2及電子倍增信號CMG 頻率為3.125 MHz.這些都符合數(shù)據(jù)手冊上的要求。將實測波形、仿真波形與數(shù)據(jù)手冊上的要求進行對比,說明實測波形時序是正確的。邏輯控制信號經(jīng)FP-GA產(chǎn)生,輸入相應(yīng)驅(qū)動電路,產(chǎn)生控制信號。其中電荷倍增驅(qū)動電路是實現(xiàn)EMCCD器件片上增益功能的關(guān)鍵。
這里采用的是TI公司生產(chǎn)的TC253芯片及該公司推薦的電荷倍增高壓驅(qū)動電路,并進行了一定修改。
由于IAG1,IAG2信號的頻率較高而驅(qū)動電路中三極管的開關(guān)特性非理想,造成了輸出信號的占空比出現(xiàn)一個小的固定偏差。以這個實測的偏差作為時序修正量,在VHDL程序的時鐘生成部分進行少量修改,即可改變FPGA的輸出(亦即驅(qū)動電路輸入)信號的占空比,或者說,預(yù)先對其進行修正;然后利用三極管開啟和關(guān)斷時間的不同,使最后從驅(qū)動電路輸出的時鐘的占空比基本達到50%.這種方法與段帷用硬件電路進行調(diào)整的,電路結(jié)構(gòu)簡單,且易于實現(xiàn),但調(diào)節(jié)的精度稍差。經(jīng)過時鐘驅(qū)動電路后的部分垂直、水平時鐘信號實測波形如圖9所示,其中,圖9(a)~(c)中波形的縱坐標10 V/div,圖9(d)中則為5 V/div.
圖9(a)中IAG1(上)、IAG2(下),頻率均為1.046 MHz,IAG1 高電壓為5.3 V,IAG2 高電平為3.1 V,IAG1 低電壓為-6.2 V,IAG2低電壓為-7 V;圖9(b)中SAG1(上)、SAG2(下),頻率均為1.046 MHz,高電壓均為3.3 V,SAG1 低電壓為-7 V,SAG2 低電壓為-6.9 V;圖9(c)中SRG1(上)、SRG2(下),頻率均為3.125 MHz,高電壓均為5.0 V,SRG1低電壓為-4.3 V,SRG2低電壓為-5.6 V;圖9(d)中為CMG 的輸出實測波形,頻率為3.125 MHz,高電壓為15 V,低電壓為-3.0 V.這些說明實測信號基本滿足數(shù)據(jù)手冊的要求。波形中的欠阻尼振蕩是因為測試時只接了電容負載而沒有接阻尼電阻。當(dāng)插入EMCCD后,硬件上將接入一個小的阻尼電阻,將可有效減小這種阻尼振蕩的幅值。
5 結(jié)語
通過對所用EMCCD器件TC253和模擬信號處理器AD9845B的分析,結(jié)合成像系統(tǒng)硬件的具體情況,采用頂層控制底層的VHDL模塊設(shè)計方法,完成了基于FPGA的EMCCD數(shù)字控制系統(tǒng)的設(shè)計與實現(xiàn)工作。仿真和實測的信號波形在邏輯與時序兩方面都完全達到了成像控制與圖像采集系統(tǒng)的控制要求。這說明對基于TC253和AD9845B的EMCCD成像系統(tǒng)的分析及其時鐘信號的VHDL 設(shè)計方法是正確的。另外,在較高頻率下,信號經(jīng)過多級輸出或驅(qū)動電路后,可能會出現(xiàn)時序偏差。采用實測的方法獲得這個偏差,以此作為VHDL信號時序的修正量,實現(xiàn)了時鐘驅(qū)動波形的正確輸出。
這也突顯以VHDL進行FPGA邏輯與時序控制電路設(shè)計的優(yōu)點。