基于FPGA的線陣CCD數(shù)據(jù)采集系統(tǒng)
摘 要:本文介紹了一種基于FPGA的線陣CCD數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方法。該系統(tǒng)在Altera的Cyclone EP1C6Q240C8上實(shí)現(xiàn),使用SoPC Builder開發(fā)組件定制CPU軟核處理器和系統(tǒng)所需的IP模塊,CPU軟核處理器作為微控制器實(shí)現(xiàn)邏輯控制和數(shù)據(jù)采集功能,用硬件描述語言編程實(shí)現(xiàn)CCD驅(qū)動電路的設(shè)計。
關(guān)鍵詞:CCD;數(shù)據(jù)采集;Nios II
引言
CCD(Charge Coupled Devices,電荷耦合器件)具有光電轉(zhuǎn)換、信息存儲等功能,而且集成度高、動態(tài)范圍大、線性好、信噪比高,在很多領(lǐng)域都得到了廣泛應(yīng)用。CCD有面陣和線陣之分,面陣CCD主要用于攝像、圖像處理、數(shù)據(jù)存儲和機(jī)器人視覺等領(lǐng)域;線陣CCD的應(yīng)用也很廣泛,像光譜分析、測徑,測量微小位移等。
本文介紹了一種在FPGA片內(nèi)利用SoPC技術(shù)實(shí)現(xiàn)的線陣CCD數(shù)據(jù)采集系統(tǒng),系統(tǒng)中的CCD選用東芝公司的TCD103D,這是2592像元的二相線陣CCD;ADC選用TLC876,精度為10位,轉(zhuǎn)換速率20MSPS。整個系統(tǒng)在一片FPGA(EP1C6Q240C8)上完成,在Quartus II軟件中用硬件描述語言實(shí)現(xiàn)CCD的驅(qū)動電路和A/D采樣控制器的設(shè)計。使用SoPC Builder定制了一個32位軟核處理器作為微控制器,協(xié)調(diào)CCD驅(qū)動電路、A/D采樣控制電路之間的工作時序,完成數(shù)據(jù)采集、存儲等功能。系統(tǒng)分3部分:硬件電路、驅(qū)動電路和數(shù)據(jù)采集部分。
系統(tǒng)硬件設(shè)計
硬件平臺結(jié)構(gòu)見圖1。系統(tǒng)中的UART和SDRAM Controller是SoPC Builder內(nèi)建的IP核庫中的IP模塊,通過Avalon Bus和Nios II CPU相連。SoPC Builder能自動產(chǎn)生每個模塊的HDL文件,同時自動產(chǎn)生一些必要的仲裁邏輯來協(xié)調(diào)Avalon Bus上各功能模塊的工作。Nios II CPU是系統(tǒng)的核心,協(xié)調(diào)CCD驅(qū)動電路、A/D采樣控制電路之間的工作時序,完成數(shù)據(jù)采集、存儲和數(shù)據(jù)傳輸。SDRAM作為數(shù)據(jù)緩存器,軟件程序和配置文件存儲在外擴(kuò)的Flash中。系統(tǒng)通過RS-232接口和計算機(jī)相連,接收計算機(jī)的控制命令。CCD工作時要求驅(qū)動脈沖的幅值在11V以上(典型值為12V),因此,CCD模塊包含一個電平轉(zhuǎn)換電路,將FPGA輸出的電平轉(zhuǎn)換成12V。
驅(qū)動電路設(shè)計
FPGA具有集成度高、速度快、可靠性好及硬件電路易于編程等特點(diǎn),非常適合驅(qū)動電路的設(shè)計。CCD驅(qū)動電路和A/D采樣控制電路在Quartus II軟件中編程實(shí)現(xiàn),產(chǎn)生CCD和ADC所需的工作時序。
CCD驅(qū)動電路設(shè)計
TCD103D是一種高靈敏度、低暗電流、2592像元的二相線陣CCD圖像傳感器。分辨率為11mm,它在4路驅(qū)動信號作用下輸出OS和DOS信號。正常工作時先輸出64個啞元信號,然后連續(xù)輸出S1~S2592有效像素單元信號。S2592信號輸出后,又輸出28個啞元信號,以后便是空驅(qū)動。DOS是補(bǔ)償輸出信號。4路驅(qū)動信號分別是轉(zhuǎn)移信號SH、兩相時鐘信號Φ1、Φ2 和復(fù)位信號RS。SH 的周期就是器件的光積分時間。
復(fù)位脈沖RS的產(chǎn)生
RS 是使輸出擴(kuò)散二極管復(fù)位的復(fù)位管控制脈沖,復(fù)位一次輸出一個信號,脈沖占空比為1:3,典型頻率為1MHz。RS 由U1單元產(chǎn)生。如圖2所示,單元內(nèi)兩個D觸發(fā)器構(gòu)成一個環(huán)形計數(shù)器,CLK 為4MHz 的時鐘脈沖,經(jīng)分頻輸出兩個1MHz、相差90的方波脈沖和,將這兩路脈沖經(jīng)或非門輸出,即可形成RS脈沖。除RS脈沖外,U1單元還產(chǎn)生fai_base脈沖和AD_CLK脈沖。前者頻率為0.5MHz,占空比為1:1,用于產(chǎn)生時鐘脈沖信號。AD_CLK是ADC的采樣時鐘信號,頻率為1MHz。
時鐘脈沖Φ1和Φ2的產(chǎn)生
時鐘脈沖Φ1、Φ2的典型頻率為0.5MHz,相位相差180,為避免MOS電容中的信號電荷包向上/下2列模擬移位寄存器的電極轉(zhuǎn)移不完全的情況發(fā)生,要求Φ1、Φ2在并行轉(zhuǎn)移時有一個大于SH=1持續(xù)時間的寬脈沖。在圖3所示的電路中(圖中Φ1、Φ2分別用fai1、fai2表示),cnt12b是一個異步清零的加法計數(shù)器,當(dāng)計數(shù)值至少大于1341(計數(shù)值由光積分時間決定),p1輸出高電平,開啟dec4b。dec4b是一個異步清零的減法計數(shù)器,輸出為1100時,立即產(chǎn)生異步清零信號,將兩個計數(shù)器全部清零,同時生成Φ1、Φ2所需的寬脈沖。
轉(zhuǎn)移脈沖SH的產(chǎn)生
SH是使MOS 電容中的信號電荷轉(zhuǎn)移到移位寄存器中的轉(zhuǎn)移柵控制脈沖。如圖3所示,dec4b的q3產(chǎn)生的寬脈沖經(jīng)過一個下降沿觸發(fā)的DFF,波形滯后q3半個CLK周期,兩個信號作與運(yùn)算,即產(chǎn)生SH脈沖。
EN是驅(qū)動電路的使能信號,EN為高電平時,電路工作。
A/D采樣控制時序的產(chǎn)生
TLC876以多級流水線結(jié)構(gòu)原理設(shè)計而成,在每一個采樣時鐘的上升沿都啟動一次采樣,完成一次采樣,但從模擬值采樣到10位數(shù)字量輸出有5個時鐘周期的延遲。
采樣時鐘AD_CLK由U1單元產(chǎn)生,頻率為1MHz。采樣控制電路的作用是協(xié)調(diào)CCD和TLC876之間的工作時序。CCD正常工作時前后各有64和28個啞元信號,這 92 個啞元信號在 A/D 轉(zhuǎn)換時不需要采樣。但是,因?yàn)檩敵鲂盘栍?個周期的延遲,實(shí)際應(yīng)采2597個點(diǎn)。采樣控制單元的主要功能是:使能信號ENABLE有效后,模塊等待當(dāng)前的積分周期結(jié)束,并在下一個積分周期開始時對前64個啞元信號進(jìn)行計數(shù),等64個信號全部移出后啟動采樣時鐘,ADC在AD_CLK控制下連續(xù)對信號進(jìn)行采樣和輸出。
數(shù)據(jù)采集系統(tǒng)設(shè)計
Nios II CPU是系統(tǒng)的核心,協(xié)調(diào)各模塊之間的工作,實(shí)現(xiàn)數(shù)據(jù)采集功能。當(dāng)計算機(jī)發(fā)出控制信號時,微處理器啟動CCD驅(qū)動電路和A/D采樣控制電路,CCD在驅(qū)動時序控制下將堆積的電荷導(dǎo)出并開始新的積分周期。A/D采樣控制電路等待當(dāng)前積分周期結(jié)束后產(chǎn)生TLC876的采樣時鐘AD_CLK。AD_CLK和Nios II CPU的一個I/O相連,該I/O口定制時設(shè)置成邊沿中斷。因此,在每個AD_CLK的上升沿啟動一次采樣的同時產(chǎn)生一次中斷,通知CPU讀取轉(zhuǎn)換好的數(shù)據(jù)。CPU將讀取的數(shù)據(jù)暫存在SDRAM中,一次數(shù)據(jù)采集完成后,由微處理器將采樣控制器中的計數(shù)器清零并關(guān)閉采樣控制單元和CCD驅(qū)動電路。這部分采用C語言在Nios II的集成開發(fā)環(huán)境(IDE)中實(shí)現(xiàn)。軟件流程如圖4所示。
結(jié)語
本文提出了一種基于FPGA的線陣CCD數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方法。該系統(tǒng)在Altera公司的Cyclone FPGA上實(shí)現(xiàn),使用SoPC Builder開發(fā)組件定制系統(tǒng)所需的IP模塊,具有開發(fā)周期短、集成度高等特點(diǎn)。軟硬件均采用編程實(shí)現(xiàn),設(shè)計靈活,在實(shí)際應(yīng)用中收到很好的效果。
參考文獻(xiàn):
1 饒程,袁祥輝.積分時間和頻率同時可調(diào)的線陣CCD驅(qū)動. 醫(yī)療衛(wèi)生裝備.2005年第10 期.
2 仁愛鋒,初秀琴等.基于FPGA的嵌入式系統(tǒng)設(shè)計.西安:西安電子科技大學(xué)出版社,2004
3 TOSHIBA. TCD103D Datasheet
評論