基于USB接口的炮彈測速系統(tǒng)設(shè)計
引 言
目前彈丸初速測量的主要方法有激光測量法、紅外線測量法、線圈靶法。由于火藥氣體對光的污染,對激光測量法和紅外線測量法都有一定的影響,火炮的強大機械沖擊也會影響測量的性能;野外作業(yè)還需要測試系統(tǒng)便于攜帶。本文闡述從分立邏輯器件測量炮口初速改裝為應用CPLD測量炮速,提高了測量系統(tǒng)的集成度,且傳輸接口采用的是目前流行的串行高速數(shù)據(jù)傳輸接口USB 2.O接口技術(shù)。該接口具有操作方便、速度快的特點,其理論最大傳輸速度為480 Mbps,故炮彈測速的可靠性和方便性大大提高,具有非常重要的現(xiàn)實意義和廣闊的應用前景。
1 測量原理
首先要求在炮口的末端安裝兩個間距為s(20 cm)的感應線圈靶;線靶傳感器輸出端以差分方式接至測量儀器上。打炮時,帶有磁性的彈丸出炮口,先后穿過感應線圈靶,在感應線圈靶中產(chǎn)生感應電動勢。在測量儀器輸入端會得到具有一定時間間隔(△t)的兩次突變信號,如圖1中A路信號和B路信號。兩次突變的信號經(jīng)調(diào)理整形后變成了脈沖信號,速度為ds/dt,彈丸的初速為V=s/△t。
時間間隔△t是通過計數(shù)的方式測量的,采用40 MHz的有源晶振作為計數(shù)脈沖源,計數(shù)的最小分辨率可達到O.25μs。測量原理如圖2所示。
2 系統(tǒng)方案及硬件實現(xiàn)
在圖1中,當炮彈經(jīng)過線圈A和B時將產(chǎn)生一定脈沖幅度的感應信號,并且這兩個信號之間有一定的時間間隔。調(diào)理部分即是將感應信號整形為規(guī)則的方波,然后再輸入到測速模塊中去。測速模塊在完成速度測量后將結(jié)果由USB接口傳輸?shù)街骺刂婆_。由主控制臺軟件來進行顯示和處理,如圖3所示。
2.1 調(diào)理模塊
彈丸穿過感應線圈輸出的信號為ys(t),信號幅度在150 mv左右。因為外界的干擾(如溫度和電源的變化),即使沒有彈丸穿過感應線圈,感應線圈上也有20 mV左右的隨機信號輸出.yn(t),即背景噪聲。
感應線圈輸出y(t)的表達式:
y(t)=ys(t)+yn(t)
實際上,輸出信號為感應信號ys(t)和背景噪聲yn(t)的疊加。把彈丸穿過感應線圈的有用信號和隨機背景噪聲分離的通常辦法有:閥值比較法、濾波處理和智能法。本系統(tǒng)選用了閥值比較法。它簡單明了,易于實現(xiàn)。
因為最前端感應線圈輸出的模擬信號微弱,所以調(diào)理模塊最前端選用了儀表運放IN129,差模輸入。它輸入阻抗高,內(nèi)部包括三級運放。后端采用高精密雙運放AD712,它有輸入失調(diào)電壓小,輸入失調(diào)電壓漂移小的優(yōu)點,可以減小信號在傳輸放大過程中的失真。最后一級通過電壓比校器LM311來實現(xiàn)閥值比較。其中閥值是通過理論計算和實驗得出的經(jīng)驗值。整個工作過程是炮彈通過線圈的感應信號(150 mV左右)經(jīng)過高輸入阻抗的儀表運放IN129后,再用高精密運放AD712進行一定倍數(shù)放大,最后和基準電壓比較后整形輸出方波。輸出的方波信號直接作為計數(shù)的門控制。
2.2 測速模塊
要在啟停脈沖的控制下實現(xiàn)計數(shù)主要三種方法:MCU(單片機)實現(xiàn)、數(shù)字集成電路搭接、CPLD/FPGA硬件描述語言實現(xiàn)。用單片機定時器或中斷方式實現(xiàn)時,單片機計數(shù)快慢受MCU的主頻限制,彈丸速度測量精度會受到影響。用數(shù)字集成塊搭接的方式過于繁瑣,且印制板體積會加大,影響穩(wěn)定性和集成度。本系統(tǒng)采用硬件描述語言在CPLD中實現(xiàn)的方式,集成度高,穩(wěn)定性好,且可以在不改動印制板的情況下實現(xiàn)硬件的升級。測速模塊是在Altera公司MAX3000A系列的EPM3128ATC144-10芯片中實現(xiàn),如圖4所示。其中主要的功能子模塊有:計數(shù)控制模塊、24位計數(shù)模塊、I2C收/發(fā)模塊。計數(shù)控制模塊收到開始計數(shù)信號(上升沿)后通知24位計數(shù)模塊開始清零、計數(shù)。當停止信號到來時,計數(shù)停止并發(fā)出中斷請求,通知芯片CY7C68013的固件程序,固件程序通過I2C總線接收計數(shù)值,并等待下一次計數(shù)。
2.3 USB2.0接口芯片CY7C68013
CY7C68013芯片是Cypress Semiconductor公司推出的EZ-FX2系列高速USB2.0設(shè)備控制器,最高可支持480 Mbps(高速)操作。它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強的8051微控制器和可編程的外圍接口(GPIF、FIFO、I2C)。在上電時,CY7C68013芯片可通過I2C接口從外掛E2PROM中讀入固件程序,完成協(xié)議的自舉過程。如圖5所示,測量開始后,CY7C68013芯片在固件的控制下工作,當收到中斷INT6,表示測量完成且轉(zhuǎn)換為24位計數(shù)值,固件程序通過I2C接口讀出24位計數(shù)值,即彈丸先后通過感應線圈靶的時間間隔(△t),然后通過USB接口上傳給上位機。連發(fā)測量時重復上述過程,只是CY7C68013每讀回一次數(shù)據(jù)都會把計數(shù)值清零,且允許下次計數(shù)。
3 軟件設(shè)計
軟件設(shè)計分為芯片CY7C68013固件程序設(shè)計和上位機應用軟件設(shè)計,其中主要為固件程序設(shè)計,程序流程如圖6所示。固件程序的開發(fā)應用Keil C51來完成,并且利用Hex2bix.exe在Keil C51的強大編譯環(huán)境下將HEX文件轉(zhuǎn)換成I2C文件,然后用EZ-USB Control Panel將I2C文件下載到E2PROM(24LC64)。在程序編寫中,先將端點2和4設(shè)為塊輸出,端點6和8設(shè)為塊輸入。
當一發(fā)炮彈射出后,炮彈經(jīng)過前后線圈后產(chǎn)生一個計數(shù)值,利用I2C總線讀出24位計數(shù)模塊的數(shù)據(jù),分高、中、低8位分別送回CY7C68013,然后通過USB 2.0傳給上位機。
應用程序使用Visual C++6.0開發(fā)工具。測試炮彈速度時,先單擊按鈕"準備測試",然后打炮N發(fā)(N≤20),再單擊"測試完成",炮彈速度就顯示在左邊文本框,從而實現(xiàn)單發(fā)或連發(fā)炮彈速度測量。新建MFC工程,在BOOL CUsbTestDlg::OnInitDialog()中打開USB設(shè)備,得到端點信息。
送控制信息給端點2,固件程序根據(jù)所送之數(shù)進行"準備測試"或"測試完成"操作。
結(jié)語
隨著通用串行總線USB接口技術(shù)的發(fā)展,USB接口已被廣泛應用于測試領(lǐng)域。本文介紹了一種應用USB接口技術(shù),并結(jié)合大規(guī)模集成電路和電子設(shè)計自動化技術(shù)的炮速測量系統(tǒng)。該系統(tǒng)在炮速測量中具有很高的實用價值,在實際使用中表現(xiàn)出較高的靈活性和穩(wěn)定性;加之優(yōu)良的性價比,這種實現(xiàn)方法在測試領(lǐng)域有著較好的應用前景。
評論