摘 要: 在分析TOSHIBA公司的TCD1702C型線陣CCD驅(qū)動(dòng)時(shí)序關(guān)系的基礎(chǔ)上,,結(jié)合現(xiàn)場(chǎng)可編程門(mén)陣列FPGA器件和VHDL硬件描述語(yǔ)言,采用Quartus Ⅱ 3.0軟件平臺(tái)與仿真環(huán)境,,設(shè)計(jì)了可調(diào)節(jié)曝光時(shí)間的CCD驅(qū)動(dòng)時(shí)序發(fā)生器,,并闡述了其邏輯設(shè)計(jì)原理。
關(guān)鍵詞: FPGA VHDL Quartus Ⅱ 3.0 電荷耦合器件(CCD) 驅(qū)動(dòng)時(shí)序發(fā)生器
電荷耦合器件(CCD)作為一種光電轉(zhuǎn)換器件,,具有自?huà)呙?、體積小、分辨率高,、可靠性好、光譜響應(yīng)寬等優(yōu)點(diǎn),已廣泛應(yīng)用于圖像傳感,、景物識(shí)別,、非接觸測(cè)量等領(lǐng)域。CCD應(yīng)用的關(guān)鍵是驅(qū)動(dòng)信號(hào)的產(chǎn)生及輸出信號(hào)的處理,。CCD芯片的轉(zhuǎn)換效率,、信噪比等光電轉(zhuǎn)換特性只有在合適的時(shí)序脈沖驅(qū)動(dòng)下,才能達(dá)到器件工藝所規(guī)定的最佳值而輸出穩(wěn)定可靠的視頻信號(hào),。然而由于不同廠家,、不同型號(hào)的CCD器件的驅(qū)動(dòng)電路各不相同,致使驅(qū)動(dòng)信號(hào)的產(chǎn)生必須根據(jù)具體的CCD器件時(shí)序要求來(lái)設(shè)計(jì)驅(qū)動(dòng)電路,。如何快速,、方便地產(chǎn)生CCD驅(qū)動(dòng)電路,成為CCD應(yīng)用的關(guān)鍵問(wèn)題之一,。
隨著CCD技術(shù)的飛速發(fā)展,,傳統(tǒng)的時(shí)序發(fā)生器實(shí)現(xiàn)方法如單片機(jī)驅(qū)動(dòng)法、EPROM驅(qū)動(dòng)法,、直接數(shù)字驅(qū)動(dòng)法等,,由于速度和功能上的限制,已不能很好地滿(mǎn)足CCD應(yīng)用向高速,、小型化,、智能化發(fā)展的需要。而可編程邏輯器件(CPLD,、FPGA)以其高集成度,、高速度、高可靠性,、開(kāi)發(fā)周期短可滿(mǎn)足這些需要,,與VHDL語(yǔ)言的結(jié)合可以很好地解決上述問(wèn)題。由于可編程邏輯器件可以通過(guò)軟件編程對(duì)其硬件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),,從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷,。
本文以TCD1702C型線陣CCD芯片為例,在分析其驅(qū)動(dòng)時(shí)序關(guān)系的基礎(chǔ)上,,使用VHDL語(yǔ)言對(duì)驅(qū)動(dòng)時(shí)序發(fā)生器進(jìn)行硬件描述,,運(yùn)用Quartus Ⅱ 3.0軟件對(duì)所做的設(shè)計(jì)進(jìn)行功能和時(shí)序仿真,選用Altera公司的現(xiàn)場(chǎng)可編程門(mén)陣列FPGA器件EP1K30作為硬件設(shè)計(jì)載體,,設(shè)計(jì)了可調(diào)節(jié)曝光時(shí)間的CCD驅(qū)動(dòng)時(shí)序發(fā)生器,。
1 線陣CCD的工作原理及驅(qū)動(dòng)時(shí)序分析
TCD1702C為T(mén)OSHIBA公司生產(chǎn)的一種有效像元數(shù)為7 500的雙溝道二相線陣CCD,其像敏單元尺寸為長(zhǎng)7μm,、高7μm,、中心距亦為7μm,,像敏區(qū)總長(zhǎng)為52.5mm,最佳工作頻率1MHz,。TCD1702C的原理結(jié)構(gòu)如圖1所示,,它的有效象素單元分奇、偶2列轉(zhuǎn)移并分別由OS1和OS2端口輸出,;驅(qū)動(dòng)脈沖由時(shí)鐘脈沖Φ1和Φ2,、轉(zhuǎn)移脈沖ΦSH、復(fù)位脈沖ΦRS,、鉗位脈沖ΦCP構(gòu)成,。其中鉗位脈沖使輸出信號(hào)鉗制在零信號(hào)電平上。這些信號(hào)均由CCD驅(qū)動(dòng)時(shí)序發(fā)生器產(chǎn)生,。TCD1702C驅(qū)動(dòng)脈沖波形結(jié)構(gòu)如圖2所示,。
由圖2可知,CCD的1個(gè)工作周期分為二個(gè)階段:光積分階段和電荷轉(zhuǎn)移階段,。在光積分階段,,ΦSH為低電平,它使存儲(chǔ)柵和模擬移位寄存器隔離,,不會(huì)發(fā)生電荷轉(zhuǎn)移現(xiàn)象,。存儲(chǔ)柵和模擬移位寄存器分別工作,存儲(chǔ)柵進(jìn)行光積分,,模擬移位寄存器則在驅(qū)動(dòng)脈沖的作用下串行地向輸出端轉(zhuǎn)移信號(hào)電荷,,最后由OS1和OS2端分別輸出。從圖中可以看到,,OS1和OS2幾乎是并行輸出的,,OS1輸出奇數(shù)像元的信號(hào),OS2輸出偶數(shù)像元的信號(hào),,ΦRS信號(hào)清除移位寄存器中的殘余電荷,。在電荷轉(zhuǎn)移階段,ΦSH為高電平,,存儲(chǔ)柵和模擬移位寄存器之間導(dǎo)通,,實(shí)現(xiàn)感光陣列光積分所得的光生電荷并行地分別轉(zhuǎn)移到光敏區(qū)二側(cè)的模擬移位寄存器的電荷勢(shì)阱中。此時(shí),,輸出脈沖停止工作,,輸出端沒(méi)有有效信號(hào)輸出。
由于結(jié)構(gòu)上的安排,,OS1和OS2端首先分別輸出13個(gè)虛設(shè)單元信號(hào),,再輸出51個(gè)暗信號(hào),然后才連續(xù)輸出S1到S7500的有效象素單元信號(hào),。在S7500信號(hào)輸出后,,又分別輸出7個(gè)暗信號(hào),,再輸出1個(gè)奇偶檢測(cè)信號(hào),以后便是空驅(qū)動(dòng)(空驅(qū)動(dòng)數(shù)目可以是任意的),。由于該器件是2列并行分奇,、偶傳輸,所以在1個(gè)ΦSH周期中至少要有3 822個(gè)Φ1脈沖,,即TSH>3 822T1。由此可知,,改變時(shí)鐘頻率或增加光積分周期內(nèi)的時(shí)鐘脈沖數(shù),,就可以改變光積分周期。
本系統(tǒng)的設(shè)計(jì)方法是:在系統(tǒng)最佳工作頻率下,,通過(guò)基本計(jì)數(shù)單元產(chǎn)生CCD工作所需的基本波形,,保證CCD正常工作;而通過(guò)積分時(shí)間控制信號(hào)A1,、A2,、A3控制積分時(shí)間的改變;000~111分別控制8檔積分時(shí)間變換,。000時(shí)間最短,,111時(shí)間最長(zhǎng);將該驅(qū)動(dòng)器通過(guò)A/D采集卡與計(jì)算機(jī)連接,,則可以通過(guò)軟件動(dòng)態(tài)設(shè)置積分時(shí)間,,實(shí)現(xiàn)CCD光積分時(shí)間的智能控制。
根據(jù)TCD1702C驅(qū)動(dòng)脈沖時(shí)序關(guān)系,,可以確定各路脈沖的技術(shù)指標(biāo)如下:
Φ1=Φ2=1MHz,,占空比為1:1,方波,;ΦSH脈沖寬度為1 000ns,。Φ1、Φ2在并行轉(zhuǎn)移時(shí)有一個(gè)大于ΦSH為高電平時(shí)的持續(xù)時(shí)間的寬脈沖,,脈寬為2 000ns,。ΦRS=1MHz,占空比為1:4,,方波,,低電平有效;ΦCP=1MHz,,脈沖寬度為125ns,,方波,低電平有效,。
2 可調(diào)曝光時(shí)間的CCD驅(qū)動(dòng)時(shí)序的VHDL描述與仿真
系統(tǒng)采用Altera公司開(kāi)發(fā)的Quartus Ⅱ3.0軟件平臺(tái)與仿真環(huán)境,。QuartusⅡ是新一代PLD開(kāi)發(fā)系統(tǒng),,能夠提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,可以很好地滿(mǎn)足特定設(shè)計(jì)的需要,,并可幫助設(shè)計(jì)者加快可編程單芯片(SOPC)設(shè)計(jì),。使用QuartusⅡ軟件在QuartusⅡBlock Editor中建立設(shè)計(jì),Block Editor用作以原理圖和流程圖的形式輸入和編輯圖形設(shè)計(jì)的信息,。每個(gè)原理圖設(shè)計(jì)文件包含塊和符號(hào),,這些塊和符號(hào)代表設(shè)計(jì)中的邏輯,Block Editor會(huì)自動(dòng)地將每個(gè)流程圖,、原理圖或符號(hào)代表的設(shè)計(jì)邏輯融合到工程中,。
總體設(shè)計(jì)思想是選用原理圖設(shè)計(jì)文件中的塊(Block)建立設(shè)計(jì)文件,將驅(qū)動(dòng)時(shí)序分成3個(gè)功能模塊,,分別是FENPIN模塊,、RESETCLAMP模塊和CLOCKPHASE模塊。每個(gè)模塊均由VHDL硬件描述語(yǔ)言編寫(xiě),。驅(qū)動(dòng)時(shí)序發(fā)生器頂層原理構(gòu)成框圖如圖3所示,。其中驅(qū)動(dòng)時(shí)序發(fā)生器還經(jīng)由CLOCKPHASE模塊提供行同步掃描信號(hào)FC以及像元同步脈沖SP,為用戶(hù)提供控制脈沖,。行同步脈沖FC的上升沿對(duì)應(yīng)于CCD有效視頻輸出的開(kāi)始(通常線陣CCD輸出的前后端都包含有若干像元的無(wú)效信號(hào)),;像元同步脈沖SP的上升沿對(duì)應(yīng)于單個(gè)像元的視頻輸出,如果需要對(duì)輸出信號(hào)進(jìn)行A/D轉(zhuǎn)換,,可在SP的上升沿對(duì)輸出進(jìn)行采樣,。
FENPIN模塊的功能是將外部信號(hào)發(fā)生器產(chǎn)生的8MHz高頻信號(hào)脈沖經(jīng)分頻器分頻后產(chǎn)生脈沖信號(hào)CLK,以得到占空比為1:1的1MHz CCD最佳工作頻率,。RESETCLAMP(RS_CP)模塊用以產(chǎn)生復(fù)位脈沖信號(hào)RS和鉗位脈沖信號(hào)CP,。CLOCKPHASE模塊產(chǎn)生FC、SP,、時(shí)鐘脈沖信號(hào)Φ1,、Φ2和轉(zhuǎn)移脈沖信號(hào)ΦSH?;居?jì)數(shù)電路計(jì)數(shù)范圍為0~7 701,,用以保證CCD的最小光積分時(shí)間要求。而積分時(shí)間的改變是通過(guò)程序內(nèi)附加的延時(shí)電路實(shí)現(xiàn)的,。通過(guò)積分時(shí)間控制信號(hào)對(duì)積分時(shí)間的控制,,在保證基本光積分時(shí)間下,可以實(shí)現(xiàn)1ms,、3ms,、5ms、10ms,、20ms,、50ms,、100ms的延時(shí)。修改程序的延時(shí)電路的預(yù)值數(shù),,可進(jìn)一步延長(zhǎng)CCD的積分時(shí)間,,以適應(yīng)那些需要特別長(zhǎng)積分時(shí)間的場(chǎng)合。在系統(tǒng)各項(xiàng)性能指標(biāo)得以滿(mǎn)足的情況下,,適當(dāng)更改系統(tǒng)主頻,,也可以增加光積分時(shí)間。由于篇幅所限,,下面僅給出基本計(jì)數(shù)電路下積分延時(shí)時(shí)間為1ms的VHDL程序,,其他延時(shí)時(shí)間的VHDL程序原理相同,僅延時(shí)預(yù)置初值不同,。
PROCESS(CLKIN)
VARIABLE COUNT:INTEGER;
VARIABLE N:INTEGER RANGE 0 TO 199,;
VARIABLE BB:INTEGER RANGE 0 TO 2 000,;
VARIABLE AA,CC,,DD:STD_LOGIC,;
VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
TEMP:=A1&A2&A3,;
IF(CLKIN′EVENT AND CLKIN=′1′) THEN
CASE TEMP IS
WHEN ″001″=>
IF(N=1) THEN COUNT:=1,;N:=0;
ELSE COUNT:=COUNT+1,;
IF(COUNT>7701) THEN
IF(BB=2000) THEN BB:=0,;N:=N+1;
ELSE BB:=BB+1,;
END IF,;
END IF;
END IF,;
WHEN OTHERS=>NULL,;
END CASE;
IF(COUNT<5) THEN AA:=′1′,;
ELSE AA:=NOT AA,;
END IF;
IF(COUNT=2 OR COUNT=3) THEN CC:=′1′,;
ELSE CC:=′0′,;
END IF;
SHIFT_PULSE<=CC,;
CLOCKPHASE1<=AA,;
CLOCKPHASE2<=NOT AA,;
END IF;
END PROCESS,;
FPGA設(shè)計(jì)開(kāi)發(fā)流程可歸納為6個(gè)步驟,,即:設(shè)計(jì)輸入、設(shè)計(jì)綜合,、功能仿真,、布局布線、時(shí)序分析和器件編程與配置,。系統(tǒng)邏輯功能時(shí)序仿真波形如圖4所示,,其輸出波形與圖2的時(shí)序波形相吻合,達(dá)到了預(yù)期的結(jié)果,。
3 驅(qū)動(dòng)時(shí)序發(fā)生器的實(shí)現(xiàn)
TCD1702C的時(shí)序邏輯是由現(xiàn)場(chǎng)可編程門(mén)陣列FPGA器件EP1K30實(shí)現(xiàn)的,。EP1K30芯片典型門(mén)數(shù)為30 000門(mén),1 728個(gè)邏輯單元,,SRAM結(jié)構(gòu),,可在線重新編程。這些特點(diǎn)使得時(shí)序的調(diào)試與調(diào)整比較容易,。經(jīng)過(guò)設(shè)計(jì)輸入,、編譯和仿真等步驟,即可通過(guò)JTAG加載電纜將生成的數(shù)據(jù)序列加載到目標(biāo)芯片,,完成系統(tǒng)結(jié)構(gòu)功能配置,,實(shí)現(xiàn)所需硬件功能;再經(jīng)電平轉(zhuǎn)換,,將時(shí)序脈沖轉(zhuǎn)變成具有特定波形和電壓幅度的邏輯驅(qū)動(dòng)信號(hào),,完成CCD驅(qū)動(dòng)時(shí)序發(fā)生器的整個(gè)設(shè)計(jì)。
4 結(jié) 論
在分析TOSHIBA公司的TCD1702C型線陣CCD驅(qū)動(dòng)時(shí)序關(guān)系的基礎(chǔ)上,,結(jié)合現(xiàn)場(chǎng)可編程門(mén)陣列FPGA和VHDL硬件描述語(yǔ)言,,設(shè)計(jì)了可調(diào)節(jié)曝光時(shí)間的CCD驅(qū)動(dòng)時(shí)序發(fā)生器。系統(tǒng)測(cè)試表明,,所設(shè)計(jì)的驅(qū)動(dòng)時(shí)序發(fā)生器產(chǎn)生的各時(shí)序信號(hào)可以滿(mǎn)足線陣CCD1702C芯片的驅(qū)動(dòng)要求,。由于驅(qū)動(dòng)器結(jié)構(gòu)是可再編程的,如果要增加或減少某些功能,,則可在不改變?nèi)魏斡布那闆r下,,只對(duì)器件重新編程,就可實(shí)現(xiàn)驅(qū)動(dòng)器的更新?lián)Q代,。硬件電路設(shè)計(jì)的軟件化是電路設(shè)計(jì)的發(fā)展趨勢(shì),,以HDL語(yǔ)言表達(dá)設(shè)計(jì)意圖、CPLD/FPGA作為硬件載體、計(jì)算機(jī)為設(shè)計(jì)開(kāi)發(fā)工具,、EDA軟件為開(kāi)發(fā)環(huán)境的現(xiàn)代電子設(shè)計(jì)方法日趨成熟,。該方法不僅簡(jiǎn)化了硬件的開(kāi)發(fā)和制造過(guò)程,使設(shè)計(jì)人員擺脫了電路細(xì)節(jié)的繁瑣,,而且具有體積小,、可靠性高、設(shè)計(jì)與調(diào)試靈活等優(yōu)點(diǎn),。
參考文獻(xiàn)
1 谷林,,胡曉東,羅長(zhǎng)洲等.基于CPLD的線陣CCD光積分時(shí) 間的自適應(yīng)調(diào)節(jié).光子學(xué)報(bào),,2002,;31(12)
2 王軍波,孫振國(guó),,陳強(qiáng)等.高速CCD攝像機(jī)驅(qū)動(dòng)時(shí)序發(fā)生器 的設(shè)計(jì)及基于CPLD技術(shù)的實(shí)現(xiàn).光學(xué)技術(shù),,2002;28(2)
3 TOSHIBA公司.線陣CCD器件手冊(cè).1997
4 王慶有.CCD應(yīng)用技術(shù).天津:天津大學(xué)出版社,,2000
5 曾繁泰,,陳美金.VHDL程序設(shè)計(jì).北京:清華大學(xué)出版社, 2001