胡社教, 余 升, 張 錚
(合肥工業(yè)大學(xué) 計(jì) 算機(jī)與信息學(xué)院,安徽 合 肥 230009)
隨著微電子技術(shù)和材料科學(xué)的快速發(fā)展,光電轉(zhuǎn)換技術(shù)有了長足的進(jìn)步。光電檢測已不再局限于可見光,非可見光尤其以紅外和紫外應(yīng)用發(fā)展迅速。紫外探測成為繼紅外和激光探測之后又一新的領(lǐng)域[1]。紫外全幀背照式面陣(Charge Coupled Device,簡稱CCD)以其高靈敏度和高動(dòng)態(tài)范圍成為紫外探測的首選器件,廣泛應(yīng)用于生命科學(xué)、物理實(shí)驗(yàn)、光譜分析、工業(yè)成像及粒子圖像測試等領(lǐng)域。
紫外探測的另一重要應(yīng)用是對電暈的強(qiáng)度檢測和定位,它可以發(fā)現(xiàn)高壓電力設(shè)施的早期故障隱患,確保高壓線輸電線路正常運(yùn)行。本研究是紫外-可見光雙光譜成像系統(tǒng)的重要組成部分,該系統(tǒng)利用紫外成像來完成對高壓電力設(shè)施電暈強(qiáng)度檢測,根據(jù)紫外圖像在可見光圖像中的位置來確定電暈的位置。紫外CCD和可見光CCD的成像和融合是系統(tǒng)的關(guān)鍵,紫外-可見光雙光譜成像系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 紫外-可見光雙光譜系統(tǒng)結(jié)構(gòu)圖
通過背照明以及勢阱耗盡的概念,CCD在寬頻帶范圍內(nèi)實(shí)現(xiàn)高量子效率響應(yīng)以及低噪聲讀出[2]。S7171-0909是濱松公司研制的多相位內(nèi)嵌的背照式全幀轉(zhuǎn)移CCD,具有較寬的光譜響應(yīng)范圍,特別適合紫外成像檢測。其背照式設(shè)計(jì)使得CCD具有足夠薄的襯底厚度,能使微弱光從CCD背面直接進(jìn)入到芯片的有源區(qū),該結(jié)構(gòu)不需經(jīng)過透明電極,保證了對紫外光的高靈敏度和量子效率,且對0.1~1 000nm的光子以及高能量帶電粒子具有高靈敏度[3]。像素合并模式設(shè)計(jì)可以降低噪聲、提高信噪比和視頻信號的幀速率。像素合并由CCD片上的時(shí)序電路控制,在視頻信號模擬放大之前設(shè)定了并行和串行寄存器的工作狀態(tài),S7171-0909系統(tǒng)結(jié)構(gòu)如圖2所示。
圖2 S7171-0909系統(tǒng)結(jié)構(gòu)圖
S7171-0909芯片由感光區(qū)、存儲(chǔ)區(qū)、水平移位寄存器3個(gè)部分組成。為使該芯片正常工作,需要8路信號。分別為“Start”信號、2路垂直轉(zhuǎn)移脈沖P1V和P2V、水平轉(zhuǎn)移脈沖P1H和P2H、加在垂直轉(zhuǎn)移柵上的轉(zhuǎn)移脈沖(TG)、加在融合柵上的像素合并時(shí)鐘脈沖(SG)和復(fù)位脈沖(RG)。由于面陣CCD的驅(qū)動(dòng)信號數(shù)量多,相位要求嚴(yán)格,且需要多種電壓的驅(qū)動(dòng),因此進(jìn)行時(shí)序分析并設(shè)計(jì)出高精度的驅(qū)動(dòng)時(shí)序電路是問題的關(guān)鍵。
基于單片機(jī)線陣CCD驅(qū)動(dòng)電路,對于目前工藝更復(fù)雜、成像性能更好的面陣CCD,多采用可編程邏輯器件來實(shí)現(xiàn)[4]。文獻(xiàn)[5]提出了一種幀轉(zhuǎn)移CCD驅(qū)動(dòng)設(shè)計(jì)方法來驗(yàn)證傳感器在X射線激勵(lì)下的表現(xiàn)性能,雖說該設(shè)計(jì)也是基于FPGA的系統(tǒng),但其硬件驅(qū)動(dòng)電路都是通過水平時(shí)鐘驅(qū)動(dòng)、垂直時(shí)鐘驅(qū)動(dòng)以及存儲(chǔ)區(qū)時(shí)鐘驅(qū)動(dòng)3個(gè)分立的元器件來實(shí)現(xiàn)的,這增加了軟件設(shè)計(jì)的復(fù)雜度和硬件調(diào)試上的難度。文獻(xiàn)[1]則是利用CPLD以及門電路完成CCD驅(qū)動(dòng)時(shí)序的設(shè)計(jì),其中三相時(shí)鐘是由3個(gè)D觸發(fā)器配合產(chǎn)生的,文獻(xiàn)[1,5]均能完成設(shè)計(jì),但是在設(shè)計(jì)上均為完成硬件與軟件的合理搭配,在資源利用和效率上有待進(jìn)一步改進(jìn),而且CPLD一般是在CCD工作頻率較低時(shí)比較適合,與現(xiàn)場可編程邏輯陣列(FPGA)相比缺乏通用性。
文獻(xiàn)[6]提出了一種基于FPGA分離紫外CCD數(shù)模信號的驅(qū)動(dòng)設(shè)計(jì)方法,較好地達(dá)到設(shè)計(jì)目的,其缺點(diǎn)是在軟件設(shè)計(jì)時(shí)利用VHDL語言開發(fā),該語言與Verilog語言相比較難掌握,還需要有Ada編程基礎(chǔ),增加了開發(fā)難度。
而本設(shè)計(jì)則是以FPGA為開發(fā)平臺(tái),在軟件上利用Verilog描述狀態(tài)有限狀態(tài)機(jī)和鎖相環(huán)形成軟核來實(shí)現(xiàn)主時(shí)鐘以及各路脈沖的產(chǎn)生,而且Verilog開發(fā)環(huán)境幾乎能實(shí)現(xiàn)目前能用硬件實(shí)現(xiàn)的所有功能,并進(jìn)行功能仿真和綜合優(yōu)化,從而避免了到硬件調(diào)試才會(huì)發(fā)現(xiàn)問題,大大縮短了開發(fā)周期,加快了復(fù)雜電路的設(shè)計(jì),而且該設(shè)計(jì)方法更容易實(shí)現(xiàn)其他功能模塊接口的連接,增加系統(tǒng)的可靠性。
S7171-0909完成一幀圖像的采集要經(jīng)歷感光、垂直轉(zhuǎn)移和水平讀出3個(gè)階段,并且有線性合并模式和陣列掃描模式,本文研究了線性合并模式,驅(qū)動(dòng)時(shí)序如圖3所示。在感光階段,“start”信號處于高電平,傳感器開始接受曝光,在P1V和P2V為低電平時(shí)進(jìn)行曝光積分,電荷在P1V、P2V電極形成勢阱積累。
垂直轉(zhuǎn)移電荷主要由P1V、P2V、TG配合時(shí)鐘脈沖CLK完成的,P1V的下降沿光積分結(jié)束,在P2V到達(dá)高電平后開始整幀轉(zhuǎn)移。垂直移位寄存器中的電荷在雙相垂直驅(qū)動(dòng)時(shí)鐘P1V和P2V交替作用下逐行地向水平寄存器轉(zhuǎn)移,此時(shí)水平驅(qū)動(dòng)時(shí)鐘P1H、P2H、SG、RG、CLAMP均保持不變,而傳輸時(shí)鐘TG與垂直驅(qū)動(dòng)脈沖P2V保持同步。垂直和水平轉(zhuǎn)移循環(huán)交替進(jìn)行,電荷由光敏區(qū)轉(zhuǎn)移到存取區(qū)是由與P2V同頻同相的行計(jì)數(shù)TG脈沖控制,電荷完成520行的垂直轉(zhuǎn)移后,傳感器就開始下一次的積分。
水平讀出階段主要由P1H、P2H、SG、RG、CLAMP配合時(shí)鐘脈沖CLK完成,在P1H、P2H時(shí)鐘脈沖的控制下,開始水平轉(zhuǎn)移,P1H、P2H為同頻反相的脈沖,在每一個(gè)P1H的上升也即是P2H的下降沿,并且在復(fù)位脈沖RG達(dá)到高電平時(shí),開始逐一讀出電荷,融合脈沖SG同時(shí)亦為列計(jì)數(shù)脈沖,為避免RG抖動(dòng)引入噪聲,CLAMP為RG鉗位脈沖,存儲(chǔ)區(qū)電荷向水平寄存器轉(zhuǎn)移并完成像素合并后輸出530個(gè)像元,有效像素為512個(gè),其中包括8個(gè)空白像素和12個(gè)暗像素,作為輸出信號的參考電平。
圖3 垂直轉(zhuǎn)移和水平讀出時(shí)序圖
CCD驅(qū)動(dòng)時(shí)序可以采用直接數(shù)字電路、單片機(jī)、EPROM、微處理器或數(shù)字信號處理器(DSP)和可編程器件產(chǎn)生。FPGA是第4代可編程器件,它將定制ASIC的高集成度、高性能的優(yōu)點(diǎn)與可編程器件靈活性優(yōu)點(diǎn)結(jié)合在一起,從而避免了定制ASIC的高成本、高風(fēng)險(xiǎn)、長設(shè)計(jì)周期和可編程器件密度低的缺點(diǎn)[7]。
本文采用FPGA進(jìn)行邏輯電路的設(shè)計(jì),用Verilog HDL描述時(shí)序邏輯。設(shè)計(jì)采用Altera公司的Cyclone II系列芯片EP2C8作為硬件平臺(tái),該芯片含有8 256個(gè)邏輯單元,容量為162k的RAM、內(nèi)嵌18個(gè)乘法器、2個(gè)PLL以及最多可以使用的182個(gè)I/O引腳。FPGA工作需要提供I/O供電電壓、內(nèi)核(內(nèi)嵌CPU或DSP)工作電壓以及輔助工作電壓。典型的I/O電壓有3.3、2.5、1.8V,目前90nm工藝的 FPGA 內(nèi)核電壓為1.2V,輔助電壓根據(jù)內(nèi)嵌功能塊不同,在1.2~ 2.5V。在本芯片中輔助供電2.5V 為PLL供電電壓。
EP2C8提供3.3V有源主時(shí)鐘50MHz的晶振,設(shè)計(jì)輸入信號為3路,輸出為8路信號。S7171-0909工作頻率為1MHz,工作時(shí)512×512像素參加曝光,考慮幀轉(zhuǎn)移和像素合并以及像素讀出所占用的時(shí)間,幀頻為96幀/s,由于CCD各個(gè)驅(qū)動(dòng)信號間的嚴(yán)格時(shí)序要求,本設(shè)計(jì)采用多計(jì)數(shù)器和雙循環(huán)套嵌方式實(shí)現(xiàn)。曝光結(jié)束后,垂直電荷轉(zhuǎn)移和水平像素輸出構(gòu)成內(nèi)循環(huán),通過主時(shí)鐘、垂直計(jì)數(shù)器和水平計(jì)數(shù)器控制實(shí)現(xiàn)。由“Start”信號、復(fù)位脈沖和主時(shí)鐘控制外循環(huán),以雙重循環(huán)狀態(tài)機(jī)實(shí)現(xiàn)對整個(gè)工作過程的控制。
狀態(tài)機(jī)流程圖如圖4所示,狀態(tài)機(jī)的4個(gè)狀態(tài)分別為IDLE、積分狀態(tài)、PV、PH。其中IDLE:復(fù)位時(shí)鐘(nRST)為低電平時(shí)為空閑狀態(tài),主時(shí)鐘、垂直、水平計(jì)數(shù)器都清零,P1V=0,P1H=1。積分狀態(tài):復(fù)位時(shí)鐘(nRST)為高電平時(shí)開始積分,“Start”為高電平,轉(zhuǎn)到狀態(tài)PV。狀態(tài)PV:P1V=0,P1H=1,開始垂直電荷轉(zhuǎn)移,垂直寄存器開始計(jì)數(shù);電荷向水平寄存器內(nèi)轉(zhuǎn)移520行后,轉(zhuǎn)向狀態(tài)PH,否則,自循環(huán)。狀態(tài)PH:水平讀出狀態(tài);水平計(jì)數(shù)器計(jì)數(shù),完成水平讀出532個(gè)像元后,轉(zhuǎn)向IDLE狀態(tài),否則自循環(huán)。其中“Start”為場有效標(biāo)志,當(dāng)“Start”=1時(shí),進(jìn)入積分狀態(tài),開始下一幀的工作。
圖4 狀態(tài)機(jī)流程圖
針對FPGA/CPLD開發(fā)應(yīng)用,Altera公司提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境Quartus II,它含有FPGA和CPLD設(shè)計(jì)所有階段的解決方案,支持設(shè)計(jì)輸入、邏輯綜合、布局布線、仿真、時(shí)序分析、功耗管理以及最后的下載配置。設(shè)計(jì)時(shí)主要有原理圖輸入、Verilog語言輸入和波形圖輸入3種輸入方式,目前的設(shè)計(jì)大都采用Verilog語言進(jìn)行代碼設(shè)計(jì),并且軟件支持第三方軟件對工程設(shè)計(jì)進(jìn)行仿真測試,以便及時(shí)查錯(cuò),對設(shè)計(jì)做出調(diào)整。
Verilog HDL是用于邏輯設(shè)計(jì)的硬件描述語言,并且都已成為IEEE標(biāo)準(zhǔn)[8],因此可以容易地把設(shè)計(jì)移植到不同廠家的不同芯片中去,從而增加了設(shè)計(jì)的靈活性,縮短工程周期。在設(shè)計(jì)時(shí),不需要底層電路原理圖,而是在頂層根據(jù)設(shè)計(jì)目標(biāo)進(jìn)行邏輯功能的設(shè)計(jì)和模塊的劃分,然后進(jìn)行代碼設(shè)計(jì)、綜合優(yōu)化、實(shí)現(xiàn)。該硬件語言在設(shè)計(jì)具體功能模塊時(shí),與具體器件的制作工藝沒有關(guān)系,容易完成工藝映射[9]。本文利用Verilog HDL設(shè)計(jì)自頂向下與自底向上相結(jié)合的方法設(shè)計(jì)CCD的時(shí)序脈沖。在對Verilog語言描述的時(shí)序狀態(tài)機(jī)發(fā)生器進(jìn)行編譯后,并編寫Testbench測試文件,再調(diào)用第三方仿真軟件Modesim對驅(qū)動(dòng)時(shí)序發(fā)生器進(jìn)行功能仿真,仿真結(jié)果如圖5所示。
由圖5可看出,CLK、START、P1V、P2V及TG各路時(shí)鐘脈沖與圖3a垂直轉(zhuǎn)移時(shí)序保持一致,CLK、START、P1H、P2H、SG、RG 及CLAMP各路時(shí)鐘脈沖與圖3b水平轉(zhuǎn)移時(shí)序保持一致,由此說明該芯片的驅(qū)動(dòng)時(shí)序脈沖能夠完全滿足芯片對時(shí)序以及相位關(guān)系的要求,為后續(xù)硬件實(shí)現(xiàn)奠定了基礎(chǔ)。
CCD時(shí)序驅(qū)動(dòng)電路由直流偏置電壓、FPGA組成的CCD時(shí)鐘信號產(chǎn)生電路和驅(qū)動(dòng)電路3部分組成[10]。系統(tǒng)供電電源模塊要求提供(+5、+15、-15、+24V)4個(gè)等級的電壓為系統(tǒng)提供直流偏置。FPGA的I/O輸出信號的電壓等級為0~3.3V,無法滿足各路時(shí)序脈沖的電壓等級,CCD驅(qū)動(dòng)電路的作用是把FPGA時(shí)序單元產(chǎn)生的時(shí)序脈沖進(jìn)行功率放大,以滿足CCD對波形電壓電流以及時(shí)序的要求。
本文將FPGA產(chǎn)生的TTL邏輯電平轉(zhuǎn)換到-6、8V2個(gè)電壓等級。對于為容性負(fù)載的CCD,在供給較大擺幅的電壓情況下,需要在電壓快速變化延時(shí)為其提供足夠大的瞬態(tài)電流,因此要選擇工作電流足夠大的器件以滿足要求[11]。本文采用EL7202對各路脈沖進(jìn)行放大以完成對CCD的驅(qū)動(dòng)。
EL7202可以驅(qū)動(dòng)較大的電容負(fù)載,最大脈沖電流可達(dá)2A,最高輸出電壓大于15V。負(fù)載電容為1 000pF時(shí),上升和下降沿分別為10ns和13ns(典型值)。垂直移位寄存器在電容CP1VCP2V為6 400pF以及轉(zhuǎn)移柵電容70pF時(shí)上升和下降時(shí)間Tprv、Tpfv均為200ns,水平移位寄存器在電容CP1HCP2H為120pF以及融合柵電容為30pF時(shí)上升和下降時(shí)間Tprh、Tpfh均為10ns,復(fù)位柵電容為30pF時(shí)上升和下降時(shí)間Tprr、Tpfr為5ns,該芯片能夠滿足信號上升和下降速度的匹配,并完成對TTL信號功率放大的要求。該Elantec驅(qū)動(dòng)EL7202接受TTL輸入以及垂直、水平轉(zhuǎn)移所需的CCD時(shí)鐘電壓的峰值,該峰值是可以調(diào)整的,驅(qū)動(dòng)輸出為交流電壓,提供可調(diào)整的從負(fù)極到正極的時(shí)鐘偏移。垂直、水平時(shí)鐘脈沖驅(qū)動(dòng)電路圖如圖6所示。圖6中,R1為水平脈沖電壓匹配電阻,R2為下拉匹配電阻,通過調(diào)整R3可以調(diào)整垂直脈沖偏壓。設(shè)置電容C1的大小,可以調(diào)整上升和下降時(shí)間。
圖6 EL7202應(yīng)用電路
仿真后給開發(fā)板上電,程序下載方式設(shè)置為JATG下載配置,把程序下載到EP2C8芯片中,最后通過板級調(diào)試對CCD器件進(jìn)行成像實(shí)驗(yàn),如圖7所示,表明S7171-0909芯片工作正常穩(wěn)定,達(dá)到了預(yù)期效果。
圖7 不同電荷容量時(shí)CCD輸出波形
本文以EP2C8為硬件平臺(tái),在Quartus II 9.1環(huán)境下,完成了S7171-0909驅(qū)動(dòng)時(shí)序電路,該軟件設(shè)計(jì)基于狀態(tài)機(jī)設(shè)計(jì),使CCD工作模式更加清晰,有利于后續(xù)對數(shù)據(jù)的傳輸和處理的控制。對于其他類型的CCD器件驅(qū)動(dòng)設(shè)計(jì),只需修改一些參數(shù)即可,因此該狀態(tài)機(jī)設(shè)計(jì)有一定的通用性,可以縮短開發(fā)周期。本課題選用高性能的電壓轉(zhuǎn)換芯片和驅(qū)動(dòng)器保證CCD的正常穩(wěn)定工作。
[1] 姚鳴暉,李自田,劉 軍.紫外面陣CCD驅(qū)動(dòng)時(shí)序設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(11):281-289.
[2] Meidinger N,Andritschke R,Assmann W,et al.CCD detector development for the eROSITA space telescope[C]//2010IEEE Nuclear Science Symposium Conference Record(NSS/MIC),2010:24-31.
[3] Tower J R,Swain P K,Hsueh F L,et al.Large Format Backside Illuminated CCD Imager for Space Surveillance[J].IEEE Transactions on Electron Devices,2003,50(1):218-224.
[4] 韋曉茹,居戩之.基于單片機(jī)ATmegal6的CCD驅(qū)動(dòng)電路的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2010,29(16):33-36.
[5] 姚 遠(yuǎn).高速線陣CCD的驅(qū)動(dòng)分析與設(shè)計(jì)[J].合肥工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,32(4):560-563.
[6] 馬慶軍,宋克非,曲 藝,等.紫外臨邊成像光譜儀CCD電路系 統(tǒng) 的 設(shè) 計(jì) [J].光 學(xué) 精 密 工 程,2011,19(7):1538-1544.
[7] 程鵬飛,顧明劍,王模昌.基于FPGA的幀轉(zhuǎn)移面陣CCD驅(qū)動(dòng)電路設(shè)計(jì)[J].紅外技術(shù),2006,28(9):519-522.
[8] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008:13-14.
[9] 雷伏容.VHDL電路設(shè)計(jì)[M].北京:清華大學(xué)出版社,2006:6-8.
[10] Lee H L,Madden T,F(xiàn)ernandez P,et al.Kodak CCD-based detector for small angle X-ray scattering[C]//2009 IEEE Nuclear Science Symposium Conference Record(NSS/MIC),2009:1807-1810.
[11] 薛旭成,曲洪豐,李洪法,等.CCD相機(jī)功率驅(qū)動(dòng)電路設(shè)計(jì)[J].微計(jì)算機(jī)信息,2007,23(25):272-273.