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