基于FPGA的TDI-CCD時序電路的設(shè)計
關(guān)鍵詞:TDI;FPGA;VHDL;驅(qū)動時序
1 引言
CCD(Charge Coupled Devices),即電荷耦合器件,它是20世紀70年代初發(fā)展起來的新型半導體集成光電器件,是美國貝爾實驗室的W.S.Boyle和G.E.Smith于1970年首先提出來的【1】。30年來, CCD的研究取得了驚人的進步,已成為現(xiàn)代光電子學和現(xiàn)代測量技術(shù)中最活躍、最富有成果的新興領(lǐng)域之一。尤其是在攝像方面的應(yīng)用, CCD圖像傳感器具有體積小、重量輕、功耗小等優(yōu)點,在分辨率、動態(tài)范圍、靈敏度、實時傳輸和自掃描等方面的優(yōu)越性也是其它攝像器件無法比擬的。而在CCD的使用中,不同型號的CCD器件的驅(qū)動時序不同,因此快速、方便地設(shè)計出CCD的時序電路成為應(yīng)用技術(shù)中的關(guān)鍵【2】。
2 TDI-CCD器件結(jié)構(gòu)、工作原理及特性
TDI (Time Delay and Integration)是一種掃描方式,它是一項能夠增加線掃描傳感器靈敏度的技術(shù)。TDI-CCD的結(jié)構(gòu)像一個長方形的面陣CCD,但從功能上說它是一個線陣CCD。其工作過程是基于對同一目標多次曝光,通過延時積分的方法,以增加等效積分時間,增強光能的收集。它的列數(shù)是一行的像元數(shù),行數(shù)為延遲積分的級數(shù)M。工作原理如下:某一行上的第一個像元在第一個曝光積分周期內(nèi)收集到的信號電荷并不直接輸出,而是與同列第二個像元在第二個積分周期內(nèi)收集到的信號電荷相加,相加后的電荷移向第三行…… CCD最后一行第M 行的像元收集到的信號電荷與前面(M-1)次收集到的信號電荷累加后轉(zhuǎn)移到輸出移位寄存器中,按普通線陣CCD的輸出方式進行讀出。由此可見,CCD輸出信號的幅度是M 個像元積分電荷的累加,即相當于一個像元的M 倍積分周期所收集到的信號電荷,輸出幅度擴大了M 倍。在TDI-CCD中,根據(jù)不同的應(yīng)用背景,積分級數(shù)M 可設(shè)計為6,12,24,48,96等可調(diào)。由于TDI-CCD的曝光時間與使用的TDI級數(shù)成比例,通過改變TDI級數(shù),即改變了可見光CCD的曝光時間。因此,可見光TDI-CCD用于成像系統(tǒng),在不改變幀頻的情況下,通過改變TDI級數(shù),可以在不同的照度下正常工作,這是非常有義的。隨著TDI級數(shù)增加,信號隨TDI級數(shù)M成線性增加,而噪聲隨TDI級數(shù)成平方根增加,TDI-CCD 的信噪比(SNR)可以增加 倍。TDI-CCD 另一個特點是通過多次曝光可減少像元間響應(yīng)不均勻和固定圖形噪聲的影響?;谝陨咸攸c,TDI-CCD在航天、航空等領(lǐng)域有著非常廣泛的用途。在航空和航天遙感上,傳輸型TDI-CCD遙感相機是當前世界上技術(shù)最先進、性能最優(yōu)越的新一代的遙感相機。
DALSA公司IL-E2型TDI-CCD是單向、單端輸出,級數(shù)可選,具有藍光響應(yīng)增強功能的TDI-CCD。如圖1所示,整個TDI-CCD可以分為3個功能區(qū),即光敏元探測區(qū)、電荷傳輸區(qū)、檢測輸出區(qū)。
圖 1 IL-E2 TDI-CCD 結(jié)構(gòu)圖
3 TDI-CCD驅(qū)動時序
3.1 積分級數(shù)選擇
IL-E2型TDI-CCD共有5種級數(shù)可選,分別為6、12、24、48、96級。根據(jù)TDI-CCD 的時序關(guān)系,TDI-CCD的積分級數(shù)控制,就是控制TDI-CCD級數(shù)選擇時鐘CSS6、CSS12、CSS24、CSS48來實現(xiàn)。選中那一級對應(yīng)CSS驅(qū)動信號為-7V,其他CSS驅(qū)動信號與CI4相同,選96級時所有CSS驅(qū)動信號與CI4相同。
圖2 IL-E2 TDI-CCD總體驅(qū)動時序
圖3 IL-E2 TDI-CCD詳細驅(qū)動時序
圖2中,CSS12的驅(qū)動信號為-7V,CSS6、 CSS24、 CSS48均與CI4相同,表明此時選中的積分級數(shù)為12。
3.2 驅(qū)動時序
為了使TDI-CCD完成正常的掃描成像工作,即電荷的積分、轉(zhuǎn)移和讀出等,施加在TDI-CCD各個引腳上的時鐘脈沖應(yīng)有著嚴格的時間關(guān)系。
IL-E2 TDI-CCD的像元移位讀出時鐘為CR1,CR2。CIx(x=1,2,3,4)、TCK、OS分別為成像區(qū)時鐘、行轉(zhuǎn)移時鐘、輸出信號。驅(qū)動時序分析如下:將各驅(qū)動時鐘脈沖加到TDI-CCD的相應(yīng)引腳上,在行轉(zhuǎn)移時鐘脈沖TCK為高電平期間,像元感光產(chǎn)生的信號電荷在成像區(qū)時鐘脈沖CI1、CI2、CI3、CI4的共同作用下,沿著TDI方向積累并轉(zhuǎn)移到輸出移位寄存器中。當TCK為低電平時,TDI-CCD在像元移位讀出時鐘脈沖CR1、CR2的作用下,輸出復位時鐘脈沖RST每來一個有效的高電平時,TDI-CCD的輸出信號OS 端輸出一個信號,直到信號輸出完為止;與此同時,像元感光(曝光)產(chǎn)生信號電荷。之后TCK由低電平變?yōu)楦唠娖?,CI1、CI2、CI3、CI4也相應(yīng)的變?yōu)橛行щ娖?,開始一個新的周期。
驅(qū)動時序如圖2和圖3所示:臨近的CI高電平交疊時間t1不小于1.0us,CI高電平持續(xù)時間t3不小于3.0us,TCK的上升沿與CI3的下降沿之間的t4最小為0,TCK的下降沿與CI4的上升沿之間的t5最小為0,CI4的上升沿與CR1的下降沿之間的t6最小為100ns, TCK的下降沿與CR1的下降沿之間的t7最小為100ns,CR1與RST的上升沿和下降沿之間的t8、t9最小為0,RST高電平持續(xù)時間t10最小為15ns, CI1的上升沿與CI3的下降沿之間的t11最小為100ns。只有嚴格的遵循此時序關(guān)系,設(shè)計出的時序電路才能穩(wěn)定、可靠的工作。
4 時序電路設(shè)計與時序仿真
IL-E2 TDI-CCD的像元數(shù)有每行512,1024和2048三種,本文以項目使用的像元數(shù)為2048的為例設(shè)計時序電路。2048為有效像元數(shù),每行有128個啞像元,設(shè)計中使每行輸出2288個信號電平,即每個行周期內(nèi)有2288個CR1、CR2、RST驅(qū)動脈沖。除了2048+128=2176個像元驅(qū)動脈沖以外,其余為空驅(qū)動脈沖??镇?qū)動數(shù)越多,CCD曝光積分時間越長,靈敏度提高,但過長的曝光積分時間會使CCD輸出飽和失真,故空驅(qū)動數(shù)目不易過多。
行積分時間和像元移位讀出時鐘頻率是CCD時序電路的設(shè)計依據(jù)。在工程應(yīng)用中,我們根據(jù)技術(shù)指標要求,算出行積分時間即行周期(T)為0.25ms,以此確定合適的系統(tǒng)主時鐘。
設(shè)計時,先產(chǎn)生CR信號,然后以此為基礎(chǔ),根據(jù)周期相位關(guān)系產(chǎn)生其它驅(qū)動時序信號。
驅(qū)動時序用超高速集成電路硬件描述語言(VHDL)編寫【3】,程序主要包括:(1)調(diào)用所需的庫函數(shù)和程序包;(2)定義輸入和輸出端口;(3)用計數(shù)器對輸入的系統(tǒng)主時鐘進行分頻。(4)驅(qū)動時序信號的產(chǎn)生和輸出。部分源代碼如下:
process(cr2_s)
begin
if cr2_s'event and cr2_s = '1' then
if cr_count_s 2288 + CONV_INTEGER(linecycle_s) then
cr_count_s = cr_count_s + 1;
else cr_count_s = 0;
end if;
end if;
end process;
process(sysclk,cr_count_s,cr1_s,cr2_s) DD產(chǎn)生CR信號
begin
if sysclk'event and sysclk = '1'then
if cr_count_s 64 then
cr1 = '0'; cr2 = '1';
else
cr1 = not cr1_s; cr2 = not cr2_s;
end if;
end if;
end process;
process(sysclk,sys_count_s) DD產(chǎn)生輸出復位信號RST
begin
if sysclk'event and sysclk = '1' then
case sys_count_s is
when 1 => rst_s = '1';
when 2 => rst_s = '1';
when others => rst_s = '0';
end case;
end if;
end process;
process(cr_count_s,cr2_s) DD產(chǎn)生CI和TCK信號
begin
if cr2_s'event and cr2_s = '1' then
if cr_count_s 16 then
ci1_s = '1'; ci2_s = '0'; tck_s = '1';
elsif cr_count_s 24 then
ci1_s = '1'; ci2_s = '1'; tck_s = '1';
elsif cr_count_s 40 then
ci1_s = '0'; ci2_s = '1'; tck_s = '1';
else
ci1_s = '0'; ci2_s = '0'; tck_s = '0';
end if;
end if;
end process;【4】
由XILINX公司的設(shè)計軟件ISE6.2對XQVR300器件進行時序設(shè)計,通過時序仿真與工程應(yīng)用驗證了能完成上述所有功能。
5 結(jié)束語
本文的創(chuàng)新點是完成了對像元數(shù)為2048的IL-E2 TDI-CCD的驅(qū)動時序的VHDL編寫和在可編程器件中的下載實現(xiàn),時序仿真和硬件電路測試表明該時序電路能夠較好地產(chǎn)生器件所需的時序脈沖;使用延遲量小的FPGA使得系統(tǒng)可以工作在百兆赫茲的高頻段,可靠性和穩(wěn)定性得到了很好的保證;程序可移植性強,可作為其它類型的CCD驅(qū)動時序設(shè)計的參考。
參考文獻:
[1]王慶友.CCD應(yīng)用技術(shù)[M].天津:天津大學出版社, 2005:P1-5
[2]常丹華,于洋.基于VHDL的CCD驅(qū)動時序設(shè)計[J].今日電子,2003,10,P27-29
[3]蔡澤彬,蔣躍.基于CPLD技術(shù)的線陣CCD驅(qū)動電路設(shè)計[J].空軍雷達學院學報,2004,18(1),P50-52
[4]馮江,王曉燕等.IC設(shè)計中的VHDL語言應(yīng)用研究[J].微計算機信息,2006年一二期,P250
評論