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