祝世平, 周富強(qiáng), 劉惠蘭, 張永健
(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院, 北京 100191)
EDA在線陣CCD驅(qū)動(dòng)電路設(shè)計(jì)教學(xué)中的應(yīng)用
祝世平, 周富強(qiáng), 劉惠蘭, 張永健
(北京航空航天大學(xué) 儀器科學(xué)與光電工程學(xué)院, 北京 100191)
CCD(電荷藕合器件)是一種廣泛應(yīng)用的固體成像器件,在CCD應(yīng)用中的關(guān)鍵問題之一是其驅(qū)動(dòng)電路的設(shè)計(jì)。在本科生實(shí)驗(yàn)課程中開設(shè)的CCD驅(qū)動(dòng)電路設(shè)計(jì)實(shí)驗(yàn)?zāi)軒椭鷮W(xué)生鞏固所學(xué)的模擬電路和數(shù)字電路的知識(shí),使學(xué)生在分析、設(shè)計(jì)和動(dòng)手能力等方面得到提高,使實(shí)驗(yàn)教學(xué)和課堂教學(xué)得到結(jié)合。本文給出了在實(shí)驗(yàn)課程中采用EDA軟件針對(duì)線陣CCD TCD2252D驅(qū)動(dòng)電路的幾種設(shè)計(jì)方案。
CCD;驅(qū)動(dòng)電路設(shè)計(jì); FPGA;Proteus
CCD(Charge Coupled Device)作為一種新興的固體成像器件, 具有體積小、重量輕、分辨率高、靈敏度高、可靠性好等優(yōu)點(diǎn),廣泛應(yīng)用于機(jī)器視覺系統(tǒng)、視頻監(jiān)控和安防系統(tǒng)、智能交通系統(tǒng)以及互聯(lián)網(wǎng)等領(lǐng)域[1-4]。
CCD應(yīng)用的關(guān)鍵之一是驅(qū)動(dòng)電路的設(shè)計(jì)。因不同廠家生產(chǎn)的CCD其驅(qū)動(dòng)時(shí)序不盡相同,且同一廠家生產(chǎn)的不同型號(hào)的CCD其驅(qū)動(dòng)時(shí)序也不完全一樣,從而使CCD驅(qū)動(dòng)電路設(shè)計(jì)很難實(shí)現(xiàn)規(guī)范化,因此用戶必須認(rèn)真面對(duì)CCD驅(qū)動(dòng)電路的設(shè)計(jì)問題[5-10]。隨著EDA軟件平臺(tái)的不斷進(jìn)步,在設(shè)計(jì)CCD驅(qū)動(dòng)電路方面,EDA軟件發(fā)揮著不可替代的作用。
CCD驅(qū)動(dòng)電路的設(shè)計(jì)既能充分利用學(xué)生現(xiàn)有的數(shù)字電路、模擬電路的知識(shí),又具有一定的實(shí)用價(jià)值。因此我院針對(duì)本科生開設(shè)了基于線陣CCD的綜合實(shí)驗(yàn),使學(xué)生熟悉線陣CCD的基本工作原理以及其測(cè)量原理,同時(shí)在實(shí)驗(yàn)課下讓學(xué)生完成線陣CCD驅(qū)動(dòng)電路的設(shè)計(jì)與仿真,并進(jìn)行仿真結(jié)果的驗(yàn)證和檢查。本實(shí)驗(yàn)課程使學(xué)生在分析、設(shè)計(jì)和動(dòng)手能力等方面得到提高,同時(shí)使實(shí)驗(yàn)教學(xué)和課堂教學(xué)緊密結(jié)合。
基于此,本文以東芝公司線陣CCD 圖像傳感器TCD2252D為例,探討了在實(shí)驗(yàn)課程中EDA軟件在線陣CCD驅(qū)動(dòng)電路設(shè)計(jì)中的應(yīng)用,并給出幾種實(shí)用的設(shè)計(jì)方案。
圖1引用東芝公司TCD2252D技術(shù)手冊(cè),給出了TCD2252D線陣CCD驅(qū)動(dòng)電路的各個(gè)驅(qū)動(dòng)脈沖的時(shí)序要求。本文所有的時(shí)序設(shè)計(jì)均以此為依據(jù)。在設(shè)計(jì)驅(qū)動(dòng)電路時(shí),首先以高低電平的時(shí)序關(guān)系為主要設(shè)計(jì)對(duì)象,待后期進(jìn)行調(diào)試時(shí)再考慮上升沿與下降沿的影響。
圖1 線陣TCD2252D驅(qū)動(dòng)電路的驅(qū)動(dòng)脈沖時(shí)序要求
Multisim是美國國家儀器(NI)有限公司推出的以Windows為基礎(chǔ)的仿真工具,是一款很好的EDA(Electronic Design Automation)設(shè)計(jì)軟件,適用于板級(jí)的模擬/數(shù)字電路板的設(shè)計(jì)工作。在進(jìn)行實(shí)際電路的搭建時(shí),首先利用Multisim進(jìn)行時(shí)序電路圖的設(shè)計(jì),然后進(jìn)行仿真。為之后實(shí)物搭接的電路實(shí)驗(yàn)進(jìn)行指導(dǎo),方便其調(diào)試與修改。本文所設(shè)計(jì)的電路圖如圖2所示。
圖2 線陣TCD2252D驅(qū)動(dòng)電路的Multisim設(shè)計(jì)電路圖
本方案的總體設(shè)計(jì)的步驟是:先形成滿足占空比的波形,然后對(duì)各個(gè)波形進(jìn)行延時(shí)以達(dá)到滿足CCD時(shí)序驅(qū)動(dòng)的要求。故先從理論上推導(dǎo)出滿足時(shí)序要求所需要的D觸發(fā)器及非門的個(gè)數(shù),然后通過示波器(Multisim或?qū)嶋H搭建電路時(shí))的觀察來得到需要的波形,線陣CCD TCD2252這款芯片所需的驅(qū)動(dòng)信號(hào)有SH,φ1、φ2,SP,RS,CP等,它們的實(shí)現(xiàn)詳述如下:
(1) SH的實(shí)現(xiàn):SH的實(shí)現(xiàn)主要是靠1400進(jìn)制的計(jì)數(shù)器,這里采用的是三個(gè)16進(jìn)制計(jì)數(shù)器(74LS161),可以比其它進(jìn)制的計(jì)數(shù)器少用芯片而達(dá)到相同的效果。2800D=101011110000B從而知道將U8的QC和QA端引出,U7的QD端引出,即約為一個(gè)1400計(jì)數(shù)器(從CCD驅(qū)動(dòng)原理上知道只需要滿足SH大于1388個(gè)Φ1的周期即可,故在此用1408代替,誤差可以忽略),Φ1的頻率為0.5 MHz,故其一個(gè)周期的時(shí)間剛好為2000 ns,當(dāng)Φ1的第1407個(gè)上升沿到來時(shí)SH被置高電平,當(dāng)?shù)?408個(gè)Φ1的上升沿到來時(shí),SH復(fù)位,剛好為2000 ns。再將它根據(jù)實(shí)際的需要進(jìn)行一定時(shí)間的延時(shí),即可得到滿足要求的SH波形。
(2) φ1、φ2的實(shí)現(xiàn):相對(duì)較為簡(jiǎn)單,它接一個(gè)JK觸發(fā)器,J=K=1,每來一個(gè)上升沿實(shí)現(xiàn)一次翻轉(zhuǎn),這樣就能將時(shí)鐘十分頻后的信號(hào)進(jìn)行二分頻,得到滿足驅(qū)動(dòng)要求的0.5 MHz的1:1的方波,后面接的U10是一個(gè)8D觸發(fā)器,它主要是配合整個(gè)電路的驅(qū)動(dòng)時(shí)序?qū)崿F(xiàn)對(duì)Φ1的延時(shí),從而得到滿足要求的脈沖。
(3) SP、RS和CP的實(shí)現(xiàn):三者的實(shí)現(xiàn)原理是相同的,只不過是在時(shí)間延時(shí)方面不同,可以選擇先產(chǎn)生某一信號(hào)如SP,然后對(duì)其進(jìn)行延時(shí),即可得到RS和CP,SP的產(chǎn)生直接利用10 MHz的信號(hào)延時(shí)調(diào)整后與SH“或”即可得到(也可以先進(jìn)行“或”操作再進(jìn)行延時(shí)而得到),再對(duì)SP進(jìn)行一些時(shí)序上的延時(shí)處理以達(dá)到滿足要求的三個(gè)信號(hào)。如圖2所示:U3的5D、6Q和8Q輸出的即為相應(yīng)的SP、RS和CP。
本方案選擇10 MHz晶振作為整個(gè)驅(qū)動(dòng)電路的驅(qū)動(dòng)時(shí)鐘,利用一個(gè)10進(jìn)制計(jì)數(shù)器U1對(duì)其進(jìn)行分頻,即可得到占空比為1:9的頻率為1 MHz的方波,再利用一個(gè)JK觸發(fā)器U2A進(jìn)行二分頻,即可得到頻率為0.5 MHz的方波,把它作為1408計(jì)數(shù)器(U6-U7-U8)的驅(qū)動(dòng)時(shí)鐘,當(dāng)?shù)?407個(gè)U2A,剩下的就是利用SH與RS進(jìn)行邏輯運(yùn)算,再經(jīng)過延時(shí)處理,即可得到滿足要求的波形。在延時(shí)方面,考慮到每一個(gè)非門延時(shí)15 ns左右,每個(gè)施密特觸發(fā)器(74LS14)延時(shí)約22 ns,而D觸發(fā)器在驅(qū)動(dòng)時(shí)鐘為10 MHz時(shí)延時(shí)約100 ns,故可以利用此來設(shè)計(jì)具體的時(shí)序要求。
本方案采用ALTERA 公司的EP1C6Q240 芯片,利用的實(shí)驗(yàn)平臺(tái)是ALTERA公司的Quartus II 8.0 Web Edition版。Quartus II是Altera公司推出的CPLD/FPGA開發(fā)工具,它提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性。用FPGA實(shí)現(xiàn)驅(qū)動(dòng)電路的設(shè)計(jì)有許多方法,例如通過VHDL語言、Verilog HDL語言等,在已經(jīng)搭建好IC仿真電路的基礎(chǔ)上,有一種更為方便的方式,那就是利用Quartus II 的原理圖輸入方式,可以充分利用軟件本身已經(jīng)寫好的各個(gè)邏輯部件的語句,利用在Multisim里的電路圖進(jìn)行搭建,在一些細(xì)節(jié)處進(jìn)行修改(如某些延時(shí)方面采用D觸發(fā)器進(jìn)行等)即可完成FPGA的驅(qū)動(dòng)設(shè)計(jì)。利用Quartus II設(shè)計(jì)的電路圖如圖3所示。
圖3 線陣TCD2252D驅(qū)動(dòng)電路的Quartus II設(shè)計(jì)電路圖
圖中U1部分:由于使用的時(shí)鐘是50 MHz的脈沖,因此此部分將時(shí)鐘進(jìn)行分頻,變?yōu)?0 MHz的時(shí)鐘信號(hào)作為整個(gè)電路的驅(qū)動(dòng);U2部分為10分頻電路,對(duì)10 MHz的時(shí)鐘進(jìn)行分頻以得到1 MHz的RS信號(hào);U3部分為RS具體產(chǎn)生電路,它用U2部分產(chǎn)生的信號(hào)取反后與SH或即可得到實(shí)際要求的RS信號(hào),再經(jīng)過一個(gè)74LS273(8D觸發(fā)器)進(jìn)行延時(shí)后即可以產(chǎn)生所需要的SP、RS、CP信號(hào);U5部分為Φ1、Φ2的產(chǎn)生電路,它由U3的JK觸發(fā)器得到原始信號(hào)后經(jīng)過D觸發(fā)器延時(shí)得到要求的Φ1、Φ2信號(hào);U4部分為1400進(jìn)制的計(jì)數(shù)器,它的驅(qū)動(dòng)脈沖來自U3產(chǎn)生的Φ1原始脈沖,每1408個(gè)Φ1脈沖即可產(chǎn)生一個(gè)SH高電平,它即是所要求的SH脈沖。
Proteus軟件是英國Labcenter electronics公司推出的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。
設(shè)計(jì)電路圖如圖4所示,其中XTAL1和XTAL2是MEGA16的時(shí)鐘輸入端,為便于計(jì)算,這里選用的時(shí)鐘驅(qū)動(dòng)頻率為10 MHz,因此每個(gè)時(shí)鐘周期(也是MEGA16的指令周期)即為100 ns,這樣只要保證在每個(gè)指令周期內(nèi)按要求對(duì)每個(gè)端口進(jìn)行賦值,即可實(shí)現(xiàn)AVR單片機(jī)的各個(gè)端口對(duì)所需波形的要求,當(dāng)然也可以選用頻率更高的晶振作為驅(qū)動(dòng),這樣的話每個(gè)指令周期的時(shí)間得根據(jù)所選擇的晶振周期進(jìn)行分配,在每個(gè)指令的周期內(nèi)進(jìn)行對(duì)端口賦值即可實(shí)現(xiàn)要求的波形。圖4中RESET端接的是復(fù)位電路,實(shí)現(xiàn)上電復(fù)位的功能。按圖4所示的接線方式,PA0~PA5出現(xiàn)的依次是SH、Φ1、Φ2、SP、RS和CP,即驅(qū)動(dòng)CCD的各個(gè)信號(hào)。
圖4 線陣TCD2252D驅(qū)動(dòng)電路的Proteus設(shè)計(jì)電路圖
利用AVR單片機(jī)來進(jìn)行驅(qū)動(dòng)電路的設(shè)計(jì),主要是考慮驅(qū)動(dòng)頻率的問題,TCD2252D要求的驅(qū)動(dòng)頻率最高為1 MHz(MEGA16單片機(jī)的大多數(shù)指令為單個(gè)的系統(tǒng)時(shí)鐘周期,系統(tǒng)時(shí)鐘最高頻率可以提高到16 MHz,這是它與51單片機(jī)的最大區(qū)別所在),我們選擇10 MHz作為它的時(shí)鐘周期,這樣的話就能保證在100 ns的窄脈沖要求。在確定好利用AVR單片機(jī)后,具體到脈沖信號(hào)的產(chǎn)生又有兩種不同的方案,即利用MEGA16的3個(gè)定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)自動(dòng)的定時(shí),且MEGA16的計(jì)數(shù)器有3個(gè),2個(gè)8位的T/C0和T/C2,1個(gè)16位的定時(shí)器T/C1,均能實(shí)現(xiàn)脈沖寬度調(diào)制PWM(Pulse Width Modulation),這樣可以利用T/C1來產(chǎn)生SH,T/C0和T/C2分別產(chǎn)生Φ1和SP,通過對(duì)單片機(jī)定時(shí)器寫入相應(yīng)的控制字即可實(shí)現(xiàn)。這種方案的優(yōu)點(diǎn)是操作不占用CPU的時(shí)間,但缺點(diǎn)也很明顯,高電平部分不容易產(chǎn)生,驅(qū)動(dòng)信號(hào)為6路,因此必須依靠附加的外部IC來調(diào)整以滿足要求,這樣無異于利用IC搭建電路,只不過是1400計(jì)數(shù)器利用單片機(jī)代替。另外一種思路是直接依靠程序的不停循環(huán)來實(shí)現(xiàn)驅(qū)動(dòng)信號(hào)的輸出,這種方案的缺點(diǎn)是一直占用了CPU的操作時(shí)間,但優(yōu)點(diǎn)也很明顯,直接利用單片機(jī)就可以實(shí)現(xiàn)驅(qū)動(dòng),無需附加任何外部設(shè)備。
利用編程的方法實(shí)現(xiàn)驅(qū)動(dòng)電路的產(chǎn)生,關(guān)鍵的是要實(shí)現(xiàn)在光生電荷累積階段和光生電荷轉(zhuǎn)移階段(暫稱為普通周期和高電平周期),這樣的話分別用兩個(gè)循環(huán)語句控制兩個(gè)不同周期的輸出,利用一個(gè)變量X賦初值為1400,每個(gè)普通周期減1,當(dāng)它小于零時(shí)即跳轉(zhuǎn)到高電平周期中執(zhí)行,在高電平周期又對(duì)X賦值1400即可實(shí)現(xiàn)循環(huán)。MEGA16有32個(gè)寄存器,因此可以利用17~25來存儲(chǔ)其中的9個(gè)狀態(tài)的值,利用R27-R26組合實(shí)現(xiàn)一個(gè)16位計(jì)數(shù)器的功能,部分程序如下:(普通周期循環(huán)部分)各個(gè)寄存器對(duì)應(yīng)值及在周期中的值如圖5所示。
圖5 各個(gè)寄存器對(duì)應(yīng)值及在周期中的值
loop1:out porta, r17;對(duì)應(yīng)起始
r17=0b00110010,其余同理可得:
out porta, r28;PA0輸出SH
out porta, r18;PA1輸出Φ1
out porta, r28;PA2輸出Φ2
out porta, r19;PA3輸出SP
out porta, r28;PA4輸出RS
out porta, r20;PA5輸出CP
ld r30, -X;16位計(jì)數(shù)器r27-r26每一個(gè)周期減1
subr27, r29;r29=0,相當(dāng)于與零比較,在下個(gè)周期進(jìn)行判斷跳轉(zhuǎn)
out porta, r21
out porta, r20
out porta, r22
out porta, r20
out porta, r23
out porta, r20
out porta, r28
breq loop2;brne、breq負(fù)責(zé)積分周期的跳轉(zhuǎn)brne loop1
高電平周期同理可得對(duì)其進(jìn)行賦值,注意普通周期中是比較r27與零的大小,因此在賦值時(shí)應(yīng)賦為:r26=0b01111000,r27=0b00000110。(說明:2800轉(zhuǎn)換成二進(jìn)制為101011110000B,原本r27=0b00000101,當(dāng)綜合考慮后依上述進(jìn)行賦值),可以參考以上程序?qū)懗觥?/p>
利用Multisim進(jìn)行仿真的實(shí)驗(yàn)結(jié)果如圖6所示。
圖6 利用Multisim進(jìn)行仿真的實(shí)驗(yàn)結(jié)果
利用Quartus II進(jìn)行仿真的實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 利用Quartus II進(jìn)行仿真的實(shí)驗(yàn)結(jié)果
利用Proteus進(jìn)行仿真的實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 利用Proteus進(jìn)行仿真的實(shí)驗(yàn)結(jié)果
針對(duì)利用IC分立元件搭接的面包板實(shí)際電路效果,利用Tektronix四通道彩色示波器進(jìn)行截圖結(jié)果如圖9所示。
針對(duì)利用FPGA開發(fā)板的實(shí)際電路效果,利用Tektronix四通道彩色示波器進(jìn)行截圖結(jié)果如圖10所示。
圖9 利用IC分立元件搭建面包板實(shí)際電路的實(shí)驗(yàn)結(jié)果
圖10 FPGA開發(fā)板實(shí)際電路的實(shí)驗(yàn)結(jié)果
針對(duì)利用AVR單片機(jī)的實(shí)際電路效果,利用Tektronix四通道彩色示波器進(jìn)行截圖結(jié)果如圖11所示。
圖11 AVR單片機(jī)實(shí)際電路的實(shí)驗(yàn)結(jié)果
在實(shí)際測(cè)試中,在CH1通道信上,線陣CCD輸出波形如圖12所示。
從以上幾種方案的設(shè)計(jì)過程來看,從最初的方案設(shè)計(jì)、仿真到最終的電路實(shí)現(xiàn),EDA軟件在其中起著不可或缺的作用。IC電路設(shè)計(jì)復(fù)雜,偏重于硬件實(shí)現(xiàn),調(diào)試相對(duì)困難,靈活性差。FPGA的設(shè)計(jì)是基于IC電路,因此較為簡(jiǎn)單,但需要有前期IC設(shè)計(jì)
圖12 線陣CCD的輸出波形
的準(zhǔn)備。AVR單片機(jī)的實(shí)現(xiàn)相對(duì)較為簡(jiǎn)單,偏重于軟件的編程,只需按所需要的驅(qū)動(dòng)脈沖波形對(duì)端口進(jìn)行連續(xù)的賦值即可實(shí)現(xiàn),但需要掌握匯編語言等。綜上,本實(shí)驗(yàn)課程所給出的TCD2252D驅(qū)動(dòng)電路設(shè)計(jì)修改時(shí)序相對(duì)簡(jiǎn)單,移植較為容易,具有較高的實(shí)用價(jià)值,同時(shí)能幫助熟悉線陣CCD驅(qū)動(dòng)電路的設(shè)計(jì)。
[1] 王慶友. CCD應(yīng)用技術(shù)[M]. 天津: 天津大學(xué)出版社.
[2] Franceschini, N. Small brains, smart machines: from fly vision to robot vision and back again[J]. Piscataway, USA: Proceedings of the IEEE, 2014, 102(5): 751-781.
[3] Liu, Yan, Yu, Feihong. Automatic inspection system of surface defects on optical IR-CUT filter based on machine vision[J]. Oxford, England, UK: Optics and Lasers in Engineering, 2014, 55: 243-257.
[4] Ali, MH, Kurokawa, S, Uesugi, K. Camera based precision measurement in improving measurement accuracy[J]. Oxford, England, UK: Measurement, 2014, 49, 138-147.
[5] 黃彤津, 朱禮堯, 遲涵文, 等. 基于CPLD的線陣CCD驅(qū)動(dòng)電路的設(shè)計(jì)[J]. 北京: 電子測(cè)量技術(shù), 2014, 37(7): 66-70.
[6] 劉月林, 諸葛晶昌. 一種光積分時(shí)間可調(diào)的線陣CCD驅(qū)動(dòng)設(shè)計(jì)[J]. 南京: 工業(yè)控制計(jì)算機(jī), 2013, 26(12): 100-101.
[7] 劉燕, 張會(huì)生, 王靖. 基于FPGA的TDICCD8091驅(qū)動(dòng)時(shí)序電路設(shè)計(jì)[J]. 西安: 現(xiàn)代電子技術(shù), 2013, 36(17): 165-167.
[8] 張亮, 劉潤(rùn)民. 可配置的通用線陣CCD驅(qū)動(dòng)電路的研究與設(shè)計(jì)[J]. 北京: 電子技術(shù)應(yīng)用, 2013, 39(12): 55-67, 60.
[9] 李寧寧, 李志農(nóng), 劉治華, 等. 基于CPLD的線陣CCD驅(qū)動(dòng)電路的設(shè)計(jì)[J]. 沈陽: 機(jī)械設(shè)計(jì)與制造, 2011, 6: 30-32.
[10] 譚露雯, 李景鎮(zhèn), 陸小微, 等. 基于CPLD工作模式可調(diào)的線陣CCD驅(qū)動(dòng)電路設(shè)計(jì)[J]. 西安: 光子學(xué)報(bào), 2010, 39(3): 436-440.
Teaching Application of the Designing of Linear CCD Driving Circuit with EDA
ZHU Shi-ping, ZHOU Fu-qiang, LIU Hui-lan, ZHANG Yong-jian
(SchoolofInstrumentationScienceandOptoelectronicsEngineering,BeihangUniversity,Beijing100191,China)
CCD (Charge Coupled Device) is a kind of wildly used solid imaging device, one key problem of CCD application is the design of the driving circuit. The undergraduate course for the CCD driving circuit designing is offered based on the computer aid design, which can help undergraduate students to improve their knowledge of analog circuit and digital circuit. This paper proposes several design schemes for the linear CCD driving circuit of TCD2252D by using EDA software.
CCD; design of driving circuit; FPGA; Proteus
2016-08-11;
2017-07- 14
北京航空航天大學(xué)2015年校級(jí)教學(xué)改革項(xiàng)目。
祝世平(1970-),男,博士,副教授,主要從事圖像處理和視頻壓縮等方面的教學(xué)和研究,E-mail: spzhu@163.com
TN949.12
A
1008-0686(2017)04-0092-05