基于Nios II的CCD采集系統(tǒng)的設(shè)計(jì)
摘要:設(shè)計(jì)了一種在Nios II處理器上的CCD數(shù)據(jù)采集系統(tǒng)。電荷耦合器件(Charge-Coupled Device,CCD)采集到的信號(hào)經(jīng)過(guò)前端的差分運(yùn)放處理后再進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)存儲(chǔ)于外部SDRAM中,被讀取后顯示在LCD上。本文重點(diǎn)介紹了各器件的電路設(shè)計(jì)和驅(qū)動(dòng)程序的編寫(xiě)。實(shí)踐表明,該設(shè)計(jì)成本低,實(shí)時(shí)性較高。
關(guān)鍵詞:Nios II;CCD;數(shù)據(jù)采集系統(tǒng);AD9844A;驅(qū)動(dòng)時(shí)序
引言
電荷耦合器件(Charge-Coupled Device,CCD)具有尺寸小、精度高、功耗低、壽命長(zhǎng)、測(cè)量精度高等優(yōu)點(diǎn),在圖像傳感和非接觸測(cè)量領(lǐng)域得到了廣泛應(yīng)用。大部分研制的數(shù)據(jù)采集卡將采集到的數(shù)據(jù)傳入PC機(jī),在PC機(jī)上編寫(xiě)程序進(jìn)行數(shù)據(jù)處理,這種處理方法速度較慢,不適合對(duì)實(shí)時(shí)性要求較高的場(chǎng)合,且需要較大的平臺(tái)?,F(xiàn)場(chǎng)可編程門陣列(FPGA)由于其豐富的邏輯資源和較容易的硬件編程語(yǔ)言,在數(shù)據(jù)處理上得到越來(lái)越到的應(yīng)用。本設(shè)計(jì)在FPGA上給出了一種基于Nios II處理器的CCD采集系統(tǒng)的設(shè)計(jì),將采集到的信號(hào)經(jīng)過(guò)一系列的處理后直接顯示在LCD上,方便且實(shí)時(shí)性較高。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)硬件結(jié)構(gòu)
如圖1所示,CCD采樣控制器控制CCD進(jìn)行采樣,得到的信號(hào)經(jīng)放大器AD623處理之后進(jìn)入A/D采樣電路,由A/D采樣控制器控制,轉(zhuǎn)換之后的數(shù)據(jù)存儲(chǔ)于片上存儲(chǔ)器中。系統(tǒng)所有的控制部分都由Nios II軟核來(lái)完成,Nios II處理器將片上存儲(chǔ)器中的數(shù)據(jù)逐一讀取并進(jìn)行處理之后顯示在LCD上,Avalon總線負(fù)責(zé)各個(gè)控制器模塊的數(shù)據(jù)傳輸。FPGA選用Altera公司的EP3C5E144C8。
1.2 分模塊的設(shè)計(jì)
1.2.1 TCD1501D模塊
根據(jù)工程項(xiàng)目的技術(shù)要求,本系統(tǒng)選用日本Toshiba公司的TCD1501D作為傳感器,該器件是高靈敏度、低噪聲和寬動(dòng)態(tài)范圍的線陣CCD器件。主要參數(shù)如下:
◆光敏像元數(shù):5 000個(gè)。
◆像元尺寸:7μm×7μm×7μm。
◆光譜響應(yīng)范圍:300~1000μm。
◆靈敏度:10.4~15.6 V/(Lx·s)。
◆動(dòng)態(tài)范圍典型值:3 000 nm。
◆飽和曝光度典型值:0.23 Lx·s。
◆驅(qū)動(dòng)時(shí)鐘頻率最大值:12 MHz。
該器件正常工作的驅(qū)動(dòng)脈沖主要有:復(fù)位時(shí)鐘rs,移位脈沖f1、f2,轉(zhuǎn)移脈沖sh,箝位脈沖cp和采樣保持脈沖sp。該器件具有5 000個(gè)有效像元,正常工作還需要76個(gè)虛設(shè)單元信號(hào)。由于該器件是兩列并行傳輸,所以在一個(gè)周期內(nèi)至少需要2 538個(gè)f1(或f2)時(shí)鐘脈沖才能完成一幀圖像的轉(zhuǎn)移。采用硬件描述語(yǔ)言(Verilog)的輸入方式,設(shè)計(jì)各脈沖產(chǎn)生的程序,各驅(qū)動(dòng)脈沖由基準(zhǔn)時(shí)鐘分頻產(chǎn)生。其脈沖參數(shù)分別為:f1=f2=0.5 MHz,占空比為1:1,波形為方波,f1、f2在并行轉(zhuǎn)移時(shí)有一個(gè)大于sh高電平的寬脈沖,脈寬為2 000 ns;復(fù)位脈沖rs=1 MHz,占空比為3:1,波形為方波;sh在轉(zhuǎn)移時(shí)寬脈沖為1 000 ns;箝位脈沖cp和采樣保持脈沖sp分別為rs脈沖的延遲。正確編譯后,進(jìn)行波形仿真,得到的仿真時(shí)序圖如圖2所示。
對(duì)比芯片手冊(cè)要求的時(shí)序關(guān)系(如圖3所示),各時(shí)序脈沖均滿足芯片手冊(cè)要求。其中,φ1B、φ2B即圖2中的f1、f2,φTE.0就是f1、f2在并行轉(zhuǎn)移時(shí)大于sh高電平的那個(gè)寬脈沖。
1.2.2 AD623模塊
AD623集成了3路運(yùn)放,可單電源或雙電源工作,具有較高的CMRR和極低的電壓漂移。除了一個(gè)可編程的外接電阻外,所有元件都集成在內(nèi)部,提高了電路溫度穩(wěn)定性和可靠性。AD623的連接電路圖如圖4所示,將視頻信號(hào)及其補(bǔ)償輸出分別送至AD623的反相和同相輸入端,在AD623的輸出端接一級(jí)射極跟隨器以增強(qiáng)信號(hào)的驅(qū)動(dòng)能力。選用該器件可消除采用普通運(yùn)放和外圍電阻所引起的輸出信號(hào)的溫度漂移。
1.2.3 AD9844A模塊
AD9844A是ADI公司的一款面向CCD的完善的低功率單通道模擬信號(hào)處理器,具有采樣速率高達(dá)20 Msps的單通道輸入體系結(jié)構(gòu),這種設(shè)計(jì)能采樣并處理隔行掃描CCD陣列后所得的輸出信號(hào)。芯片要求的時(shí)序圖如圖5所示,圖6為仿真得到的時(shí)序圖。
AD9844A是集相關(guān)雙采樣、自動(dòng)增益放大、12位A/D轉(zhuǎn)換于一體的可編程集成芯片,可配置為CCD-Mode、AUX1-Mode等多種模式。其中AUX 1-Mode對(duì)交流耦合信號(hào)進(jìn)行采樣,沒(méi)有相關(guān)雙采樣;CCD-Mode可對(duì)CCD輸出進(jìn)行CDS處理。CCD幀信號(hào)的箝位時(shí)序,包括PBLK、CLPOB、CLPDM。其中線性輸入箝位電路(CLPDM)用來(lái)消除CCD視頻信號(hào)暗像素電流偏置,要求CLPDM脈沖覆蓋整個(gè)CCD的48個(gè)暗像素;預(yù)消除電路(PBLK)用于水平箝位,削弱幀水平轉(zhuǎn)移時(shí)所帶來(lái)的暗電流噪聲,要求與sh同時(shí)有效;光學(xué)暗點(diǎn)箝位電路(CLPOB)用于調(diào)整A/D轉(zhuǎn)換后的視頻變化和剩余偏差。這3個(gè)時(shí)序有非常嚴(yán)格的要求,這也是相關(guān)雙采樣箝位電路難于實(shí)現(xiàn)的原因。圖7是箝位時(shí)鐘仿真時(shí)序圖。
內(nèi)部寄存器描述如表1所列。由于本系統(tǒng)中AD9844A工作于CCD模式,內(nèi)部操作寄存器、VGA增益寄存器、箝位電壓寄存器及采樣增益寄存器的設(shè)置均為默認(rèn)值。本設(shè)計(jì)所要做的是配置控制寄存器,選擇同步時(shí)鐘的極性,實(shí)現(xiàn)與時(shí)鐘發(fā)生器的時(shí)鐘同步,即采樣時(shí)鐘SHP/SHD為高電平觸發(fā)采樣周期,箝位時(shí)鐘CLP為低電平有效,數(shù)據(jù)輸出時(shí)鐘DATACLK為下降沿觸發(fā)。芯片內(nèi)部寄存器的工作方式通過(guò)一個(gè)3線串口編程得到。
1.2.4 SDRAM模塊
Avalon總線接口的SDRAM控制器結(jié)構(gòu)框圖如圖8所示。與FPGA片內(nèi)的SDRAM控制器IP核與外部的SDRAM存儲(chǔ)器芯片之間的硬件接口,這些接口包括了SDRAM芯片的時(shí)鐘接口(clk)、時(shí)鐘屏蔽接口(cke)、地址總線(addr)、塊選信號(hào)(ba)、片選信號(hào)(cs)、行選信號(hào)(ras)、列選信號(hào)(can)、寫(xiě)選通信號(hào)(we)、數(shù)據(jù)字節(jié)屏蔽信號(hào)(dqm)、數(shù)據(jù)總線(dq)。需要注意的是,PLL輸出連接到SDRAM芯片和SDRAM控制器IP核模塊工作的兩個(gè)時(shí)鐘是同頻不同相的。
1.2.5 LCD顯示模塊
本設(shè)計(jì)采用的是一款3.5寸320×240的LQ035NC111 TFT液晶屏,此款LCD接口信號(hào)歸為5類:
①數(shù)字信號(hào)接口,如RESET、SPENA、SPCLK、SPDAT、Rx、Gx、Bx、HSYNC、VSYNC、DCLK和DE。此類接口主要是傳輸顯示數(shù)據(jù)給LCD面板。
②液晶的模式設(shè)置專用輸入接口,包括IF0、IF1、IF2等信號(hào),它們的主要功能就是設(shè)置數(shù)據(jù)傳輸模式,本設(shè)計(jì)采用RGB數(shù)據(jù)傳輸。
③觸摸屏信號(hào)接口,是模擬信號(hào),如Y1、X1、Y2、X2。
④電源接口。
⑤背光電源,即VBL+和VBL-。
圖9中各個(gè)模塊設(shè)計(jì)好后,打開(kāi)SOPC,添加Nios II處理器、片內(nèi)存儲(chǔ)器、系統(tǒng)ID和LCD顯示組件,分配好地址和中斷優(yōu)先級(jí)后,然后生成系統(tǒng)。把生成的系統(tǒng)和上面各模塊例化到頂層模塊中,分配好引腳,做好時(shí)序約束,編譯整個(gè)工程,完成硬件部分的設(shè)計(jì)。其中頂層模塊包括:
◆sys_ctrl模塊:系統(tǒng)復(fù)位信號(hào)和PLL控制模塊。
◆tcd1501d模塊:CCD系統(tǒng)模塊。
◆ad9844a模塊:A/D控制模塊。
◆sdram模塊:SDRAM封裝控制模塊。
◆sdfifo模塊:讀/寫(xiě)SDRAM數(shù)據(jù)緩存FIFO模塊。
◆LCD模塊:LCD顯示模塊。
2 系統(tǒng)軟件程序
軟件程序主要是數(shù)據(jù)處理和LCD的顯示。數(shù)據(jù)過(guò)來(lái)后先清屏LCD,接下來(lái)就是坐標(biāo)的一些定位與溢出處理,以滿足從左到右、從上到下的顯示順序。
(1)LGD寫(xiě)數(shù)據(jù)函數(shù)
void lcd_wrdb(alt_u16 xaddr,alt_u16 yaddr,alt_u16 cor);
其中xaddr、yaddr、cor分別為X坐標(biāo)地址、Y坐標(biāo)地址和顯示的色彩。
(2)顯示函數(shù)
void print_db(alt_u16 row,alt_u16 col,alt_u8 *ptr,alt_u16 cor_b0,alt_u16 cor_q0);
該函數(shù)功能為在指定的位置顯示數(shù)據(jù)。
部分主函數(shù)程序如下:
結(jié)語(yǔ)
本文在Nios II處理器的基礎(chǔ)上實(shí)現(xiàn)了CCD采集系統(tǒng)的設(shè)計(jì),經(jīng)測(cè)試,該方法能較好地采集光電信號(hào),并把圖像實(shí)時(shí)地顯示到LCD上,達(dá)到了本設(shè)計(jì)的預(yù)期目標(biāo)。該方案穩(wěn)定可行,程序操作性強(qiáng),在圖像采集和處理上具有一定的參考價(jià)值。