張敏光,劉群華,趙新林,韓 峰
(1.西安工業大學 陜西省薄膜技術與光學檢測重點實驗室,陜西 西安 710032;2.西安北方秦川集團有限公司,陜西 西安710032)
隨著半導體技術、嵌入式技術和EDA技術的不斷發展,數字設計技術將逐步取代模擬技術。而FPGA技術是數字技術的最新研究成果,利用FPGA技術進行數字電路的設計是必然趨勢。電子工藝技術的不斷改進使得FPGA的成本不斷降低,用FPGA進行數字電路的設計具有開發周期短、成本低、電路設計簡單的特點[1]。由于生產FPGA的各大廠家在工藝上不斷提升技術,使得FPGA的市場迅速擴大。
圖1為時間間隔測量系統框圖。

圖1 時間間隔測量系統框圖圖
圖1中,FPGA模塊作為整個時間間隔測量模塊的核心器件,當有啟動信號時,經光電耦合器進行電平轉換,得出5 V的數字信號。此時,FPGA向時間間隔測量程序發送數字信號1通知,時間間隔測量程序開始測量,當光電耦合器件再次收到信號時,此信號可以設置為停止信號,此時FPGA向時間間隔測量程序發送停止信號,得到兩個信號間的間隔數據,FPGA根據經驗進行分析判斷測量數據是否為正確數據[2]。若為正確測量數據,FPGA向STC單片機發送中斷信息,通知STC單片機進行數據的讀取。此時,STC單片機向FPGA發送控制信號,FPGA根據STC單片機發來的控制信號進行識別,根據控制信號有序地向STC單片機進行數據傳輸[3]。FPGA采用Altera公司的EP1C3T100I7器件進行硬件設計,采用Altera公司開發的Quartus II進行軟件設計。
系統硬件設計是整個系統的骨架,是數字電路設計的核心部件,所有程序代碼都在FPGA內部運行,但是要使FPGA能夠正常運作,需要架構一些基本的硬件支撐FPGA小型系統。
時間間隔測量系統的硬件設計主要包括:信號接口、電源、時鐘等模塊。
1)信號接口電路 信號接口電路主要用于接收外部輸入信號并進行電平轉換[4],以使協處理器得到穩定電平的信號,起到保護協處理器的作用,并起到外部電壓波動的抗干擾作用。
2)電源 為使儀器直接與外部的市電220 V相接,這里外部電源采用開關電源220 V轉換5 V,內部電源采用5 V轉換3.3 V電源模塊和5 V轉換1.5 V電源。整個儀器的內部工作電壓為5 V、3.3 V和1.5 V 3種電壓模式。
3)時鐘 時鐘模塊是協處理器夠正常工作的保證,同時也是測量儀獲取時間間隔的重要依據,本設計計數功能模塊采用脈沖計數法來獲取時間間隔,設計時需要考慮校準時鐘,以便定期對時鐘進行校準。
整個硬件電路原理設計如圖2所示。

圖2 硬件電路原理圖
測量模塊內部需要的集成電路都是通過軟件來實現,所以,先設計系統軟件流程計。其軟件設計包括:信號預處理、計數程序、總線控制器、鎖存器等模塊設計。
由于該系統軟件設計的4大模塊的設計過程類似,所以這里只介紹信號預處理模塊的設計流程及其后面的功能實現及仿真。
由于時間間隔測量儀在實際使用中可能會受到各種干擾[5],在靶場實際應用中,經常會存在蚊蟲干擾,沖擊波干擾,細小物體和外界光線的干擾[6],因此,需要在時間間隔測量儀的前端做濾波程序,但由于器件自身的特性及環境的復雜性,實際應用中信號由光電靶傳輸到時間間隔測量儀會存在誤跳變誤觸發現象,這種現象會導致時間間隔測量儀的誤判及誤測,針對這種異常現象,時間間隔測量儀可以模擬人的視覺來接收環境信息,并由神經沖動進行信息傳遞,采取神經網絡感知識別措施非常必要,識別程序流程如圖3所示。
啟動時間間隔測量儀,感覺器等待信號的到來,如果有信號,立即進行感知判斷,詢問是否為信號1,如果為信號1,則判斷是否啟動計數,若計數程序正在執行上一次信號的工作,則不啟動計數器,否則啟動計數器并發出中斷信號,發出開始信號,即使中斷置為高電平,通知主控制器準備讀取數據,開始置為高電平。如果不是信號1,也就是當信號2到來時,則判斷是否停止計數器,如果信號2到來前未收到信號1,則感知程序可認為此時的信號2為無用信號,直接丟棄。如果信號2到來前已收到信號1,并已在計數,但若小于預設的閘門關閉時間,則不關閉閘門,即中斷保持高電平不變,停止信號保持低電平。等待計數程序(計數模塊)結束發出復位信號,否則發出停止信號,即使停止置為高,計數器停止計數。若計數程序結束,則發出中斷信號,使中斷置為低電平,進入下一步工作。

圖3 信號預處理模塊程序流程
通過Quartus II開發環境,文本編輯方式,用VHDL語言進行編程,生成圖元,結合頂層原理圖設計,實現信號預處理模塊原理圖,如圖4所示。

圖4 信號預處理模塊電路設計實現圖
對編寫的程序進行調試、編譯通過,然后進行功能時序仿真,實現如果信號2到來之前已經收到信號1,并且已經在計數,但若小于預設的閘門關閉時間80 ns,則不進行閘門關閉,即中斷保持高電平不變,停止信號保持低電平,感知器認為此信號為非測量信號2,繼續監測信號2的到來,如圖5所示。
如果信號2到來之前已經收到信號1,并且已經在計數,但若大于或是等于預設的閘門關閉時間80 ns,則進行閘門關閉,即中斷由高電平跳變為低電平,停止信號由低電平跳變為高電平,感知器判斷出此信號為所要測量的信號2,通知主控制器讀取數據,如圖6所示。
該系統硬件設計采用Altera公司的FPGA器件EP1C3T100I7,同時軟件設計采用其公司自行開發的Quartus II開發環境進行程序設計及其功能時序的仿真。實踐表明,由于FPGA器件簡單易學,市場占有量大,開發設計人員容易購置,開發技術易于掌握,尤其是FPGA本身功能強大,故其在工業控制領域中將占據重要的位置。這里所介紹的時間間隔測量技術可在靶場測試、激光測距、物理實驗、航空航天等領域發揮良好的作用。

圖5 感知器自動識別非測量信號的干擾功能仿真結果

圖6 感知器自動識別出正確測量信號功能仿真結果
[1]周潤景,圖 雅,張麗敏.基于 Quartus II的 FPGA/CPLD數字系統設計實例[M].北京:電子工業出版社,2007.
[2]韓 峰,劉群華.基于CPLD的天幕靶抗干擾技術研究[J].電子設計工程,2007,15(11):3-6.
[3]陳 鵬.高分辨率智能測時儀的研制[D].南京:南京理工大學,2004.
[4]倪晉平,李晉惠,王鐵嶺,等.智能化多功能測時儀研制[J].西安工業學院學報,2000,20(3):182-186.
[5]楊明元,趙小明,姜 華.一種智能化高精度測時儀的設計[J].電子科技,2008,21(5):16-18.
[6]劉群華,韓 峰,蔡榮立,等.CPLD在紅外密集度光電立靶測試系統中的抗干擾的應用[J].光學技術,2004,30(6):756-760.