付天舒,劉 強(qiáng),王立剛
(1.東北石油大學(xué) 電子科學(xué)學(xué)院,黑龍江 大慶 163318;2.哈爾濱工程大學(xué) 理學(xué)院,黑龍江 哈爾濱 150001)
線陣CCD是一種自掃描成像器件,其在非接觸測量方面應(yīng)用十分廣泛。線陣CCD的驅(qū)動是整個(gè)測量系統(tǒng)的基礎(chǔ),其涉及到系統(tǒng)的穩(wěn)定性。線陣CCD的驅(qū)動方案有很多種,其中最具優(yōu)勢的是FPGA/CPLD(field programmable gate array現(xiàn)場可編程門陣列/complex programmable logic device復(fù)雜可編程邏輯器件)驅(qū)動方式,現(xiàn)在FPGA和CPLD的開發(fā)成本不斷下降,技術(shù)指標(biāo)和芯片內(nèi)部資源不斷提升,無論是對于實(shí)驗(yàn)室科研,還是工業(yè)專用集成電路的前期設(shè)計(jì),都是合適的驅(qū)動方式[1-2]。
以往對這種積分時(shí)間可調(diào)型線陣CCD進(jìn)行驅(qū)動,在輸入方式上大多使用原理圖輸入法,在驅(qū)動時(shí)序上通常是使用芯片供應(yīng)商所提供芯片手冊上的兩種驅(qū)動時(shí)序。采用原理圖輸入方式有兩個(gè)缺點(diǎn):一是當(dāng)測量系統(tǒng)預(yù)先要求電路時(shí)序精度非常高時(shí),原理圖輸入方式很難滿足精度要求,必須進(jìn)行反復(fù)的調(diào)試才有可能達(dá)到設(shè)計(jì)要求;二是當(dāng)測量環(huán)境等因素改變或測量目標(biāo)改變時(shí),使用原理圖輸入方式進(jìn)行時(shí)序調(diào)整會很繁瑣,不利于程序移植。在驅(qū)動時(shí)序上使用傳統(tǒng)的兩種驅(qū)動時(shí)序也有各自的缺點(diǎn),第一種驅(qū)動時(shí)序的積分時(shí)間是同行掃描周期關(guān)聯(lián)的,當(dāng)行掃描周期確定時(shí),積分時(shí)間就不能再進(jìn)行調(diào)整,減少了時(shí)序控制的靈活性;第二種驅(qū)動時(shí)序雖然解決了第一種驅(qū)動時(shí)序的問題,但時(shí)序計(jì)算比較復(fù)雜,并且在光積分電極的低電平區(qū),轉(zhuǎn)移脈沖有嚴(yán)格的時(shí)序要求,這又給程序移植帶來了麻煩?,F(xiàn)根據(jù)線陣CCD光積分控制柵的工作原理,提出了一種新的時(shí)序工作方式,在光積分電極的低電平區(qū)附近,對轉(zhuǎn)移脈沖的時(shí)序加以改進(jìn),并在輸入方式上采用硬件描述語言方式,解決了以上傳統(tǒng)方法的缺點(diǎn),達(dá)到了時(shí)序控制靈活性好、方便移植的目的。對于該方案采用了第三方驗(yàn)證工具modelsim進(jìn)行功能驗(yàn)證,并進(jìn)行了硬件實(shí)測。
文中采用的線陣CCD是東芝公司的TCD1304AP,它是一種雙溝道線陣CCD,具有高響應(yīng)度、低暗電流的特點(diǎn),包括3 648個(gè)像敏單元,像敏單元尺寸為8μm×200μm,并且?guī)в须娮涌扉T和采樣保持電路,另外還集成了邏輯控制器,這給電路驅(qū)動的時(shí)序控制提供了方便,但同時(shí)也帶來了不確定性。驅(qū)動電路的設(shè)計(jì)框圖如圖1所示,現(xiàn)采用的CPLD芯片是ALTERA公司MAXⅡ系列的EPM240,邏輯單元240個(gè),典型等價(jià)宏單元192個(gè),最大輸出輸入管腳80個(gè),用戶閃存比特?cái)?shù)是8 192,引腳至引腳延時(shí)間4.7ns[3]。其實(shí)對于驅(qū)動而言只要基本單元夠用即可,驅(qū)動芯片的內(nèi)部資源多少可以根據(jù)系統(tǒng)外擴(kuò)的情況來決定。
圖1 設(shè)計(jì)框圖Fig.1 The block diagram of the design
TCD1304AP比普通CCD芯片多了一個(gè)光積分控制柵,它是由驅(qū)動脈沖ICG控制的,只有當(dāng)ICG為高電平時(shí),積分柵才能使感光像元陣列產(chǎn)生的光電流在積分柵形成的存儲陣列中積累,所以通過控制ICG就能控制曝光時(shí)間。轉(zhuǎn)移柵控制脈沖SH的作用同普通CCD的轉(zhuǎn)移柵控制脈沖沒有區(qū)別,因此如果在一個(gè)掃描周期里把ICG常置高,這樣也可以利用SH的時(shí)序來控制曝光時(shí)間,相當(dāng)于在一個(gè)掃描周期里把SH最后一對高低電平之前的信號電荷倒掉,只留下最后一段時(shí)間積累的電荷,這就啟用了芯片的快門功能[4-5]。
一般對于這種芯片的時(shí)序控制有兩種方法:
第一種時(shí)序驅(qū)動關(guān)系如圖2所示,這種驅(qū)動方法優(yōu)點(diǎn)是實(shí)現(xiàn)起來比較簡單,但這種工作方式屬于傳統(tǒng)CCD芯片的工作方式,沒有體現(xiàn)出電子快門的優(yōu)勢,不能把積分時(shí)間控制得非常短。并且這種驅(qū)動方法會對某些非接觸測量系統(tǒng)的實(shí)時(shí)測量產(chǎn)生影響,如果想增大或減小積分時(shí)間,需要增加或減小行掃描周期。通常情況下,在實(shí)時(shí)的高精度非接觸測量系統(tǒng)中調(diào)整積分時(shí)間時(shí),掃描周期最好不要變化,否則后續(xù)的信號處理和算法部分就要加入對應(yīng)于積分時(shí)間調(diào)整的自適應(yīng)算法,會增加算法設(shè)計(jì)和系統(tǒng)調(diào)試的復(fù)雜程度。
第二種時(shí)序驅(qū)動關(guān)系如圖3所示,這種驅(qū)動方法彌補(bǔ)了第一種方法的不足,可以在行掃描周期不變的情況下改變積分時(shí)間,但改變積分時(shí)間會導(dǎo)致ICG在低電平期間內(nèi)同SH的時(shí)序?qū)?yīng)關(guān)系發(fā)生變化,這樣就需要重新計(jì)算SH同ICG的時(shí)序,來保證SH同ICG的時(shí)序?qū)?yīng)關(guān)系。在積分時(shí)間改變或驅(qū)動程序移植時(shí)會增加設(shè)計(jì)者的計(jì)算量,影響了開發(fā)效率[6-7]。
圖2 第一種驅(qū)動方法的時(shí)序Fig.2 The first driving sequence
圖3 第二種驅(qū)動方法的時(shí)序Fig.3 The second driving sequence
文中根據(jù)芯片的工作原理采用了一種新的時(shí)序驅(qū)動方式,先設(shè)計(jì)主時(shí)鐘計(jì)數(shù)器,確定一個(gè)掃描周期的長短,CPLD的輸入時(shí)鐘為50MHz,所以計(jì)數(shù)器是每20ns計(jì)數(shù)1次。然后確定光積分控制柵的時(shí)序ICG,ICG同SH的時(shí)序關(guān)系設(shè)定如圖4所示,讓ICG在一個(gè)周期里只有t2為低電平,其余為高電平,在前面的預(yù)留的t1是為了方便對SH脈沖編程,所以寫ICG的Verilog程序時(shí)從t1段脈沖開始,SH的第1段為t3低電平,ICG同SH在t3和t1的起始端同時(shí)開始工作,SH的第2段為t4高電平,這兩段脈沖的作用是確保積分時(shí)間之前多余的信號電荷被移除,第3段為t5低電平,第4段為t6高電平,t3、t4和t5的總脈沖長度要超過t1,要讓ICG在t2期間只對應(yīng)有SH一段高電平t6,要讓t6的下降沿也落在t2內(nèi),t5和t6之和就是一個(gè)掃描周期的積分時(shí)間,第5段為t7低電平,這一段是確保積分時(shí)間結(jié)束。邏輯控制器主時(shí)鐘ΦM的時(shí)序在ICG上升沿處的前20ns和后20ns都為高電平。時(shí)序控制框圖如圖5所示。
圖4 改進(jìn)方案的驅(qū)動時(shí)序Fig.4 The driving sequence of the improved scheme
圖5 改進(jìn)方案的時(shí)序控制框圖Fig.5 The sequence block diagram of the improved scheme
在應(yīng)用這種驅(qū)動方法時(shí),可以根據(jù)自己的需要調(diào)整電路時(shí)序,以達(dá)到預(yù)期的設(shè)計(jì)目標(biāo)。調(diào)整轉(zhuǎn)移脈沖SH的t5和t6,就可以控制積分時(shí)間,調(diào)整主時(shí)鐘計(jì)數(shù)器clk_50M_cunter,就可以控制掃描周期。
下面提供了部分主要的時(shí)序程序。
主時(shí)鐘計(jì)數(shù)程序:
積分控制柵脈沖ICG程序:
轉(zhuǎn)移脈沖SH程序:
邏輯控制器主時(shí)鐘ΦM程序:
這里調(diào)整ΦM周期時(shí),可以通過上面程序中的參數(shù)a來控制,實(shí)驗(yàn)中a設(shè)置為5,程序中M即為邏輯控制器主時(shí)鐘ΦM。
首先使用通用的第三方驗(yàn)證工具M(jìn)entor公司的Modelsim來進(jìn)行功能驗(yàn)證,由Modelsim軟件生成的仿真時(shí)序圖如圖6所示,利用軟件的標(biāo)尺工具對圖6中的ΦM、SH和ICG進(jìn)行了測量,仿真結(jié)果和Verilog程序設(shè)定的時(shí)序完全一致。
然后采用RIGOL公司的DS5062M示波器進(jìn)行硬件電路的實(shí)測,其帶寬60M,事實(shí)采樣頻率500MSa/s,波形刷新率1 000wfms/s。
邏輯控制主時(shí)鐘ΦM在高低電平的起始端有不規(guī)則的尖峰出現(xiàn),但其作為輸入脈沖并不影響CCD芯片的工作。實(shí)測得到了ΦM的各項(xiàng)參數(shù),峰峰值為7.36V,最高電壓為5.28V,最低電壓為-2.08V,平均電壓為1.72V,周期為1.280μs,上升時(shí)間小于50.0ns,下降時(shí)間小于50ns,見圖7。
圖6 仿真驗(yàn)證時(shí)序圖Fig.6 The sequence diagram of simulation
在圖8中,上面為光積分控制脈沖ICG,下面為轉(zhuǎn)移柵控制脈沖SH,驅(qū)動脈沖波形同驅(qū)動程序的預(yù)期一致。實(shí)測得到了ICG的各項(xiàng)參數(shù),峰峰值為3.64V,最大電壓為3.48V,最小電壓為-160mV,平均電壓為2.85V,上升時(shí)間小于200ns,下降時(shí)間小于200ns。實(shí)測得到了SH的各項(xiàng)參數(shù),峰峰值電壓為3.60V,最大電壓為3.52V,最小電壓-80.0mV,平均電壓1.33V,上升時(shí)間小于4.00μm,下降時(shí)間小于小于4.00μm。
圖7 邏輯控制主時(shí)鐘ΦMFig.7 Master clock pulse of logic controlΦM
圖8 實(shí)測轉(zhuǎn)移柵控制脈沖SH與光積分控制脈沖ICGFig.8 Shift Gate pulse SH and integration clear gate pulse ICG
圖9 實(shí)測輸出信號Fig.9 The output signal of actual measurement
TCD1304AP輸出的是負(fù)極性信號,在實(shí)測時(shí)用不透光的薄片遮擋CCD玻璃窗的兩端,可以看出輸出信號低電平的寬度隨透光寬度的變化而變化,說明CCD芯片工作正常。圖9為一副實(shí)測截圖,其中峰峰值為1.48V,最大電壓為2.36V,最小電壓為880mV,平均電壓2.14V,上升時(shí)間3.30ms,下降時(shí)間2.30ms,上升時(shí)間和下降時(shí)間比較大是由于通過CCD玻璃窗的光線的散射和在邊緣處光線的衍射造成的。另外利用這套硬件電路還做了平行光成像法的測徑實(shí)驗(yàn),待測物的直徑為1.964mm,實(shí)驗(yàn)的光源是LS650-5半導(dǎo)體激光器,它的波長為650nm,功率為5mW,實(shí)驗(yàn)得到的測量相對誤差為0.39%。
通過實(shí)驗(yàn)和仿真兩方面檢驗(yàn),該設(shè)計(jì)方案成功驅(qū)動了積分時(shí)間可調(diào)型線陣CCD芯片。硬件設(shè)計(jì)采用Verilog語言,根據(jù)CCD芯片的工作原理,重新設(shè)計(jì)了工作時(shí)序。這種驅(qū)動方法相比傳統(tǒng)的驅(qū)動方法有很多優(yōu)勢,可以在不改變掃描周期的情況下方便地增加或減少積分時(shí)間,在改變積分時(shí)間時(shí),也不用重新計(jì)算各驅(qū)動脈沖的關(guān)聯(lián)關(guān)系。這對于CCD積分時(shí)間的調(diào)整十分有利。另外這種方法沒有利用CPLD宏單元模塊,并且CPLD芯片的設(shè)計(jì)輸入只采用硬件描述語言的輸入方式,從而達(dá)到了方便移植的目的。這樣在工程開發(fā)上,可以很好地提高開發(fā)效率,減小開發(fā)成本。方案對于CPLD的各項(xiàng)優(yōu)化設(shè)置為均衡設(shè)置,當(dāng)有速度或面積特殊需求時(shí),在此基礎(chǔ)上可以方便調(diào)整,以達(dá)到更高的技術(shù)指標(biāo)。
[1]王慶有.圖像傳感器應(yīng)用技術(shù)[M].北京:電子工業(yè)出版,2003:90-99.
[2]張化朋.用單片機(jī)驅(qū)動線陣CCD的探討[J].光學(xué)技術(shù),2000,26(4):342-347.
[3]王 誠.AlteraFPGA/CPLD設(shè)計(jì)[M].北京:人民郵電出版,2005:63-68.
[4]彭曉鈞,何平安,袁炳夏.基于CPLD的線陣 CCD驅(qū)動電路設(shè)計(jì)與實(shí)現(xiàn)[J].光電子·激光,2007,18(7):803-807.
[5]XU T X.Design of FPGA based on linear array CCD driver circuit[C]∥Proceedings of 9th International Conference on Electronic Measurement and Instruments.Piscataway:IEEE Computer Society,2009:2766-2769.
[6]顧 一,葉 煒,許 煜.基于CPLD的面陣 CCD驅(qū)動時(shí)序發(fā)生器設(shè)計(jì)[J].光學(xué)儀器,2008,30(6):54-59.
[7]付天舒,趙春暉.基于 Verilog的線陣CCD驅(qū)動時(shí)序設(shè)計(jì)[J].光學(xué)技術(shù),2010,36(5):740-743.