鄭倩瑛 段 超 曾祥偉 開百勝
(1.西安工業大學光電工程學院 西安 710021)(2.黑龍江北方工具有限責任公司 牡丹江 157013)
彈丸自離開炮口開始,直到抵達落點時刻結束的時間間隔即為全彈道飛行時間[1~2]。準確測量彈丸全彈道飛行時間,可提高彈藥研制工作效率、縮短研制周期、節約研制成本,對于彈丸設計,空氣動力學性能研究以及引信設計等都具有重大意義[3~5]。國內靶場常用的測時方法為區截測時法,即將探測裝置按一定距離擺放在預定彈道線上,當飛行彈丸依次穿過探測區域時,測時儀記錄彈丸依次穿過探測區域所產生的兩個脈沖信號,并計算出其時間間隔,實現彈丸飛行參數測量[6~7]。目前靶場測測試區截裝置有天幕靶和光幕靶[8~10],但因彈丸全彈道距離過長,常規測量方式存在布線繁瑣、耗時耗力,無法在短時間內對電纜故障進行準確定位,因此常規的測量方式已不滿足彈丸全彈道飛行時間的測量。為了解決這一問題,本文提出一種彈丸全彈道飛行時間測量方法,采用單片機配合FPGA設計了長時間測時電路[11~12],用于測量異地兩點信號的時間差。
針對距離較遠的兩個測試點,設計了兩塊相同的測時板(1#測時板和2#測時板)。如圖1所示,在飛行時間測時試驗開始前,利用信號發生器產生的標準方波信號同步啟動1#測時板和2#測時板。經啟動后的測試板被放置在炮口處和落點處,將1#測時板的停止通道接至炮口火焰探測器信號輸出接口,將2#測時板的停止通道接至落點位置處的天幕靶信號輸出接口。當彈丸離開炮口的瞬時,火焰探測器探測到炮口火光,輸出相應的脈沖信號使1#測時板停止計時;當彈丸飛行到落區時,天幕靶輸出彈丸過幕信號使2#測時板停止計時。求取2#測時板測量的時間與1#測時板測量時間的差值,即為彈丸全彈道飛行時間。為了避免在布置測時板的過程中產生誤觸發現象,因此在信號輸入部分添加了相應的人工允許按鍵,提高可靠性。

圖1遠距離兩點同步測時方法框圖
針對彈丸全彈道飛行時間測量,在原有測時儀的基礎對電路進行了改進。因1#測時板與2#測時的參數等完全相同,下文僅以1#測時板為例進行說明。測時板組成結構如圖2,其主要由信號輸入、邏輯電路、結果顯示三部分組成。

圖2 測時板組成框圖
單片機控制整個電路的工作過程,給外部設備分配地址,測時結束后在地址總線的控制下讀取FPGA的測時數據并發送給顯示板進行顯示,測時儀以單片機作為主控制單元。如圖3所示,測時子程序采用循環掃描的方式,當處于工作狀態時,首先判斷其有沒有起始信號,如果起始信號到來,給顯示板發送全1數據;然后判斷有沒有停止信號到來,如果有停止信號,單片機通過總線讀取計數器數據,處理完之后通過串口總線發給顯示板顯示。

圖3 測時流程圖
測時程序中,時間數據T轉換公式如下:

式中:DHH、DH、DM、DL分別為計數器高、中高、中低、低32位數據的十進制轉換;fsoc為FPGA的計數時鐘晶振頻率。
接收前端傳感器輸出的炮口觸發信號,經地線隔離后,傳輸給單片機控制電路,可有效濾除地線干擾。光耦隔離電路由輸入部分、光電耦合部分和輸出部分構成。光耦合電路采用高速光耦合器6N137,響應時間快,可有效隔離地線干擾。
邏輯電路部分將輸入信號傳輸給FPGA芯片,主要包括譯碼邏輯電路、輸入邏輯綜合電路、32位計數器電路以及數據緩沖邏輯電路(U10)等。輸入信號邏輯綜合電路、計數邏輯電路和數據緩沖邏輯電路主要測量兩個脈沖信號時間間隔。輸入邏輯綜合電路在地址總線的控制下完成各個輸入信號的時序處理,包括計時開始、停止和清零等命令;計數邏輯電路在起始信號到來時開始計數,當停止信號到來時停止計數,并將輸出數據鎖存到數據緩沖邏輯電路中,采用分時傳輸方式傳輸給單片機的數據總線。為了滿足測時板測量精度的同時增大測量范圍,邏輯計數電路采用32位宏功能計數器,采用恒溫1MHz晶振作為計數基準,最長測量時間范圍為71min。如圖4所示,U7為32位宏功能計數器,其輸入信號Start接到一個D觸發器的CLK端,該觸發器的Q端接計數器的使能端。當Start信號上升沿來,計數機就開始計數。Stop信號通過一個反門接入D觸發器的清零端,當Stop為高電平時,計數器就會停止計數。
測時儀進入測時準備狀態時,通過wr[0]控制D觸發器(U4)的Q端為高電平,開啟與門(U6),可防止干擾信號提前觸發計數器。P1為起始信號,連接到D觸發器(U1)的D端,在Clk-in(時鐘信號)的作用下進行時鐘同步,防止競爭冒險。啟動信號(P1)經過U1、U3和U6后,由低電平翻轉到高電平,上升沿對應了P1信號的上升沿,控制計數器U7開始計數。U2,U5與U8的工作過程與前述邏輯基本一致,停止信號(P2)來時,計數器停止計數。
為了防止信號的串擾,以及噪聲信號干擾,設計了500μs封門邏輯電路。同時為了讓單片機掌控計數器工作狀態,輸入的起始信號和停止信號分別經D觸發器輸出給74244,單片機可通過讀取74244就可得知計數器是處于等待、計數還是計數結束狀態,從而判斷是否可讀取計數器中的數據。
如圖5所示,設計的顯示板使用兩組4位共陰數碼管在單片機的控制下進行動態刷新顯示。該顯示板除單片機外只需一片CD4511用于譯碼驅動和一片74LS138用于片選。U1為CD4511,U2為74LS138,其中U1的四個數據輸入端連接至單片機的P10~P13管腳,輸出管腳連接至兩組四位共陰數碼管的段選信號;U2的輸入管腳連接至單片機的P14~P16管腳,實現數碼管的片選功能;單片機的P17通過三極管來控制數碼管小數點的亮與滅。顯示模塊單片機接收到經FPGA處理后的測時數據,再將其轉化成可直接用于顯示的數據。

圖4 測時邏輯邏輯電路

圖5 顯示電路
采用信號源模擬的方式對本文所提出的全彈道測時方法進行測試。人工啟動1#測試板和2#測時板信號的輸入允許按鍵,由信號源產生的一路信號作為兩測時板同步起始信號,測時板開始計時。在不同時間間隔后,由信號發生器產生具有一定時間間隔t0的兩路信號,分別作為兩測時板的停止信號。2#測時板的計時結果T2減去1#測時板的計時結果T1為測得的時間間隔t。對t與t0值進行分析,限于信號源的輸出信號間隔范圍有限,t0最大為10s。

表1 測時實驗結果
對表1中的測試數據進行分析,最大測時誤差平均值為0.1ms,滿足所設計的測時板計時間寬度和精度要求。若測時時間增加后,由于兩塊測時板的計數時鐘存在漂移,測時誤差會增大。
本文提出一種彈丸全彈道飛行時間測量方法,采用單片機配合FPGA設計了長時間測時電路,簡化了電路設計難度、提高了測量范圍。該測試系統組成簡單,便于維護且降低了測試成本。為了滿足系統的高精度測時需求,可選用更高精度的晶振;若需要增加測時范圍,可將計數器由32位擴展至40位。