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