基于FPGA的時(shí)間間隔測量模塊設(shè)計(jì)
摘要:介紹一種基于FPGA技術(shù)的時(shí)間間隔測量方法,通過分析FPGA的主要技術(shù)優(yōu)勢及其在工業(yè)控制領(lǐng)域中所處的重要地位,給出設(shè)計(jì)時(shí)間間隔測量模塊所選用的FPGA器件并進(jìn)行硬件設(shè)計(jì),以及所選用的軟件并進(jìn)行軟件設(shè)計(jì)。描述時(shí)間間隔測量模塊的軟件及硬件設(shè)計(jì)方法,給出設(shè)計(jì)過程的硬件原理圖及軟件流程圖,并對(duì)設(shè)計(jì)的各功能模塊進(jìn)行功能時(shí)序仿真。
關(guān)鍵詞:FPGA:時(shí)間間隔測量;模塊設(shè)計(jì);功能時(shí)序仿真
隨著半導(dǎo)體技術(shù)、嵌人式技術(shù)和EDA技術(shù)的不斷發(fā)展,數(shù)字設(shè)計(jì)技術(shù)將逐步取代模擬技術(shù)。而FPGA技術(shù)是數(shù)字技術(shù)的最新研究成果,利用FPGA技術(shù)進(jìn)行數(shù)字電路的設(shè)計(jì)是必然趨勢。電子工藝技術(shù)的不斷改進(jìn)使得FPGA的成本不斷降低,用FPGA進(jìn)行數(shù)字電路的設(shè)計(jì)具有開發(fā)周期短、成本低、電路設(shè)計(jì)簡單的特點(diǎn)。由于生產(chǎn)FPGA的各大廠家在工藝上不斷提升技術(shù),使得FPGA的市場迅速擴(kuò)大。
1 基本設(shè)計(jì)原理
圖l為時(shí)間間隔測量系統(tǒng)框圖。
圖l中,F(xiàn)PGA模塊作為整個(gè)時(shí)間間隔測量模塊的核心器件,當(dāng)有啟動(dòng)信號(hào)時(shí),經(jīng)光電耦合器進(jìn)行電平轉(zhuǎn)換,得出5 V的數(shù)字信號(hào)。此時(shí),F(xiàn)PGA向時(shí)間間隔測量程序發(fā)送數(shù)字信號(hào)1通知,時(shí)間間隔測量程序開始測量,當(dāng)光電耦合器件再次收到信號(hào)時(shí),此信號(hào)可以設(shè)置為停止信號(hào),此時(shí)FPGA向時(shí)間間隔測量程序發(fā)送停止信號(hào),得到兩個(gè)信號(hào)間的間隔數(shù)據(jù),F(xiàn)PGA根據(jù)經(jīng)驗(yàn)進(jìn)行分析判斷測量數(shù)據(jù)是否為正確數(shù)據(jù)。若為正確測量數(shù)據(jù),F(xiàn)PGA向STC單片機(jī)發(fā)送中斷信息,通知STC單片機(jī)進(jìn)行數(shù)據(jù)的讀取。此時(shí),STC單片機(jī)向FPGA發(fā)送控制信號(hào),F(xiàn)PGA根據(jù)STC單片機(jī)發(fā)來的控制信號(hào)進(jìn)行識(shí)別,根據(jù)控制信號(hào)有序地向STC單片機(jī)進(jìn)行數(shù)據(jù)傳輸。FPGA采用A1tera公司的EPlC3T10017器件進(jìn)行硬件設(shè)計(jì),采用A1-
tera公司開發(fā)的Quartus II進(jìn)行軟件設(shè)計(jì)。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)是整個(gè)系統(tǒng)的骨架,是數(shù)字電路設(shè)計(jì)的核心部件。所有程序代碼都在FPGA內(nèi)部運(yùn)行,但是要使FPGA能夠正常運(yùn)作,需要架構(gòu)一些基本的硬件支撐FPGA小型系統(tǒng)。
時(shí)間間隔測量系統(tǒng)的硬件設(shè)計(jì)主要包括:信號(hào)接口、電源、時(shí)鐘等模塊。
1)信號(hào)接口電路 信號(hào)接口電路主要用于接收外部輸入信號(hào)并進(jìn)行電平轉(zhuǎn)換,以使協(xié)處理器得到穩(wěn)定電平的信號(hào),起到保護(hù)協(xié)處理器的作用,并起到外部電壓波動(dòng)的抗干擾作用。
2)電源 為使儀器直接與外部的市電220 V相接。這里外部電源采用開關(guān)電源220 V轉(zhuǎn)換5 V,內(nèi)部電源采用5 V轉(zhuǎn)換3.3 V電源模塊和5 V轉(zhuǎn)換1.5 V電源。整個(gè)儀器的內(nèi)部工作電壓為5 V、3.3 V和1.5 V 3種電壓模式。
3)時(shí)鐘 時(shí)鐘模塊是協(xié)處理器夠正常工作的保證,同時(shí)也是測量儀獲取時(shí)間間隔的重要依據(jù),本設(shè)計(jì)計(jì)數(shù)功能模塊采用脈沖計(jì)數(shù)法來獲取時(shí)間間隔,設(shè)計(jì)時(shí)需要考慮校準(zhǔn)時(shí)鐘,以便定期對(duì)時(shí)鐘進(jìn)行校準(zhǔn)。
整個(gè)硬件電路原理設(shè)計(jì)如圖2所示。
3 系統(tǒng)軟件設(shè)計(jì)
測量模塊內(nèi)部需要的集成電路都是通過軟件來實(shí)現(xiàn),所以,先設(shè)計(jì)系統(tǒng)軟件流程計(jì)。其軟件設(shè)計(jì)包括:信號(hào)預(yù)處理、計(jì)數(shù)程序、總線控制器、鎖存器等模塊設(shè)計(jì)。
由于該系統(tǒng)軟件設(shè)計(jì)的4大模塊的設(shè)計(jì)過程類似,所以這里只介紹信號(hào)預(yù)處理模塊的設(shè)計(jì)流程及其后面的功能實(shí)現(xiàn)及仿真。
由于時(shí)間間隔測量儀在實(shí)際使用中可能會(huì)受到各種干擾,在靶場實(shí)際應(yīng)用中,經(jīng)常會(huì)存在蚊蟲干擾,沖擊波干擾,細(xì)小物體和外界光線的干擾,因此,需要在時(shí)間間隔測量儀的前端做濾波程序,但由于器件自身的特性及環(huán)境的復(fù)雜性,實(shí)際應(yīng)用中信號(hào)由光電靶傳輸?shù)綍r(shí)間間隔測量儀會(huì)存在誤跳變誤觸發(fā)現(xiàn)象,這種現(xiàn)象會(huì)導(dǎo)致時(shí)間間隔測量儀的誤判及誤測,針對(duì)這種異?,F(xiàn)象,時(shí)間間隔測量儀可以模擬人的視覺來接收環(huán)境信息,并由神經(jīng)沖動(dòng)進(jìn)行信息傳遞,采取神經(jīng)網(wǎng)絡(luò)感知識(shí)別措施非常必要,識(shí)別程序流程如圖3所示。
啟動(dòng)時(shí)間間隔測量儀,感覺器等待信號(hào)的到來,如果有信號(hào),立即進(jìn)行感知判斷,詢問是否為信號(hào)l,如果為信號(hào)1,則判斷是否啟動(dòng)計(jì)數(shù),若計(jì)數(shù)程序正在執(zhí)行上一次信號(hào)的工作,則不啟動(dòng)計(jì)數(shù)器,否則啟動(dòng)計(jì)數(shù)器并發(fā)出中斷信號(hào),發(fā)出開始信號(hào),即使中斷置為高電平,通知主控制器準(zhǔn)備讀取數(shù)據(jù),開始置為高電平。如果不是信號(hào)l,也就是當(dāng)信號(hào)2到來時(shí),則判斷是否停止計(jì)數(shù)器,如果信號(hào)2到來前未收到信號(hào)l,則感知程序可認(rèn)為此時(shí)的信號(hào)2為無用信號(hào),直接丟棄。如果信號(hào)2到來前已收到信號(hào)l,并已在計(jì)數(shù),但若小于預(yù)設(shè)的閘門關(guān)閉時(shí)間,則不關(guān)閉閘門,即中斷保持高電平不變,停止信號(hào)保持低電平。等待計(jì)數(shù)程序(計(jì)數(shù)模塊)結(jié)束發(fā)出復(fù)位信號(hào),否則發(fā)出停止信號(hào),即使停止置為高,計(jì)數(shù)器停止計(jì)數(shù)。若計(jì)數(shù)程序結(jié)束,則發(fā)出巾斷信號(hào),使中斷置為低電平,進(jìn)入下一步丁作。
4 功能實(shí)現(xiàn)及仿真
通過QuartusⅡ開發(fā)環(huán)境,文本編輯方式,用VHDL語言進(jìn)行編程,生成圖元,結(jié)合頂層原理圖設(shè)計(jì),實(shí)現(xiàn)信號(hào)預(yù)處理模塊原理圖,如圖4所示。
對(duì)編寫的程序進(jìn)行調(diào)試、編譯通過,然后進(jìn)行功能時(shí)序仿真,實(shí)現(xiàn)如果信號(hào)2到來之前已經(jīng)收到信號(hào)l,并且已經(jīng)在計(jì)數(shù),但若小于預(yù)設(shè)的閘門關(guān)閉時(shí)間80 ns,則不進(jìn)行閘門關(guān)閉。即中斷保持高電平不變,停止信號(hào)保持低電平,感知器認(rèn)為此信號(hào)為非測量信號(hào)2,繼續(xù)監(jiān)測信號(hào)2的到來,如圖5所示。
如果信號(hào)2到來之前已經(jīng)收到信號(hào)1,并且已經(jīng)在計(jì)數(shù),但若大于或是等于預(yù)設(shè)的閘門關(guān)閉時(shí)間80 ns,則進(jìn)行閘門關(guān)閉,即中斷由高電平跳變?yōu)榈碗娖?,停止信?hào)由低電平跳變?yōu)楦唠娖?,感知器判斷出此信?hào)為所要測量的信號(hào)2,通知主控制器讀取數(shù)據(jù),如圖6所示。
5 結(jié)論
該系統(tǒng)硬件設(shè)計(jì)采用Ahera公司的FPGA器件EPIC3T10017,同時(shí)軟件設(shè)計(jì)采用其公司自行開發(fā)的QuartusII開發(fā)環(huán)境進(jìn)行程序設(shè)計(jì)及其功能時(shí)序的仿真。實(shí)踐表明,由于FPGA器件簡單易學(xué),市場占有量大,開發(fā)設(shè)計(jì)人員容易購置,開發(fā)技術(shù)易于掌握,尤其是FPGA本身功能強(qiáng)大,故其在工業(yè)控制領(lǐng)域中將占據(jù)重要的位置。這里所介紹的時(shí)間間隔測量技術(shù)可在靶場測試、激光測距、物理實(shí)驗(yàn)、航空航天等領(lǐng)域發(fā)揮良好的作用。