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