武建誠,吳國東,王志軍,吉元峰,郝志偉
(中北大學機電工程學院,山西 太原 030051)
隨著軍事力量的不斷發展,各種新型彈藥不斷問世,武器不再僅僅依靠破片殺傷目標,更多依靠爆炸生成的沖擊波超壓殺傷敵人[1]。準確測量炸藥爆炸產生的沖擊波超壓和沖量,可以為武器研發中的爆炸類型判別、威力對比、毀傷效能以及地面防護提供重要依據[2]。由于在該領域中目前還不能通過解析方法和數值模擬方法精確計算沖擊波超壓值[3],因此通過實測方法得到沖擊波參數值是最為重要和有效的途徑[4]。
傳統的沖擊波測試主要是通過物理學(如靶板法、壓力罐法、生物試驗法等)方法將事先標定好的物品或特定的生物體放入爆炸場中,等試驗結束后通過觀察被測物品的損傷程度來確定沖擊波的毀傷效應[5-6],但是該方法只能得出沖擊波壓力的大體范圍,不能準確地給出沖擊波的壓力峰值及其持續時間。引線電測法組建系統簡單易行,得到了較為普遍的應用[7],但因傳感器和后續記錄儀表分離,其間的長電線成為測試系統防護的薄弱環節,被彈片擊中或信號漂移等因素致使測試失效的現象時有發生,數據捕獲率低[8],且在復雜的試驗環境中會遇到調試、安裝不便以及人員安全性的問題[9]。針對當前測試方法的不足,設計了基于FPGA+ARM的沖擊波超壓測試系統。
當進行戰斗部爆破試驗時,安全風險較大,整個過程中操作人員需撤離到距待測點數公里外的安全區域,無法近距離對數據采集設備進行操作,因此本文提出基于FPGA+ARM的沖擊波超壓測試系統。該系統可對信號進行實時監測,獲得準確的沖擊波超壓信號,并進行數據的在線傳輸與保存,實現在線與離線兩種采集方式。
選用RTL8211EG設計以太網接口,在線采集時FPGA控制千兆網卡進行原始數據的實時傳輸。選用USB3300芯片設計USB2.0接口,離線采集時,系統采集的數據存儲在ARM端的SD卡,采集結束后可通過USB2.0接口導出作后續處理,為進一步的毀傷效能研究提供數據支撐。離線采集功能使得試驗安全性更高,保證了操作者的安全,可以應對復雜的試驗環境。
該系統采用模塊化進行設計,后續可以根據試驗要求進行系統擴展,設計中選擇江蘇聯能型號為CY-YD-205的傳感器負責沖擊波超壓信號的采集。壓力靈敏度為100 pC/MPa,測壓范圍0~30 MPa(0~60 MPa可選)。傳感器信號送交AD9226進行模數轉換,轉換速度可達65 Ms/s。FPGA采用SPARTAN6系列的XC6SLX16-2CSG324,并加入128 MB的DDR3 SDRAM作為數據緩沖器。ARM主芯片選擇STM32F407,FPGA與STM32通過可變靜態存儲控制器(FSMC)接口連接。整體結構框圖如圖1所示。

圖1 系統硬件總體框圖Fig.1 Overall block diagram of system hardware
根據設計要求和目的,該系統的整體功能有:
1) FPGA具有高度并行數據處理能力,豐富的接口資源,可保證對沖擊波超壓采集的并行性和實用性,選用其作為主控制器可實現對A/D轉換,千兆網卡數據傳輸, FSMC接口與ARM端進行數據交換的邏輯控制。
2) 為了保證數據傳輸的高速可靠,選用DDR3 SDRAM大容量高速緩存設備,可以解決數據存儲容量不足以及速度過慢問題,同時解決與千兆網卡進行數據傳輸時的丟包問題。
3) ARM具有強大的數據處理及進程運行能力,負責利用FSMC接口讀取FPGA采集到的多路數據并進行存儲。
AD9226的芯片電壓范圍為1~3 V,信號輸入端的電壓范圍為-5~+5 V,為使芯片正常工作,在A/D模塊加入高性能運算放大器AD8065設計信號調理電路[10]。作為電壓反饋型的單路放大器,電路設計方便,工作時產生的噪聲干擾很低,性能出色,性價比高[11]。信號調理電路的轉換公式如下:
Vout=(1/5)Vin+2,
(1)
式(1)中,當輸入電壓為-5 V時,計算可得輸出電壓為1 V;同理,輸入電壓為5 V時,輸出電壓為3 V;1~3 V的輸入電壓可以保證系統芯片的正常運行。
系統在進行沖擊波超壓信號采集時,如果將數據直接傳遞給上位機,數據溢出以及丟失的問題會相當嚴重,FPGA利用其I/O接口眾多的優勢,連接高速DDR3 SDRAM作為外部緩存設備,型號為MT41J64M16LA-187E,擁有128 MB的存儲容量,16 b總線。
由于前端數據采集和后端數據存儲的時鐘域不同,數據在不同的時鐘域間傳遞容易引起亞穩態問題,同時為了在讀寫時無需操作復雜時序,設計異步FIFO來緩沖數據。在系統進行數據采集時,多通道的數據信號首先在異步FIFO中進行緩存,然后通過FPGA的數據讀寫控制模塊,最后經過DDR3 SDRAM的內存控制器IP核將數據緩存到DDR3 SDRAM的相應地址區域,當收到數據讀取命令時,從DDR3 SDRAM中讀取所需數據,通過相應的FIFO將數據讀出。DDR3 SDRAM的數據讀寫邏輯方案如圖2所示。

圖2 DDR3 SDRAM的系統邏輯方案Fig.2 System logic scheme of DDR3 SDRAM
FPGA與STM32間的數據交換需要很高的傳輸速度,并盡可能要求配置靈活,采用新型存儲器擴展技術——FSMC可以很好地滿足這樣的接口要求。在FSMC中,外接存儲器被劃分為4個大小均為256 MB的區域,不同的控制管理器負責不同的BANK區域,根據不同的存儲設備類型選擇相應的映射位置。FPGA與ARM進行數據通信時,將FPGA看作Bank1中的一段內存,起始地址為0x60 000 000,通過擴展出的數據/地址/控制三總線來實現操作。STM32與FPGA的硬件連接如圖3所示。FPGA作為STM32的外設接入,通過存儲器讀寫指令訪問FPGA。

圖3 FPGA與STM32連接原理圖Fig.3 Connection schematic between FPGA and STM32
FSMC作為銜接CPU與外部存儲的橋梁,往相應的地址里寫數據時,不需要軟件來模擬外部存儲芯片的讀寫時序,只需對FSMC相關時序寄存器進行配置,就可以進行相關的數據讀寫,操作靈活方便。以STM32的控制信號為基礎,進行FPGA端的時序設計。對于STM32,FSMC有四種擴展模式:A、B、C和D,讀寫操作可以通過混合這四種模式來執行。在進行程序設計時,采用A模式用于讀寫。如圖4所示,圖4(a)是讀取時序圖,圖4(b)是寫入時序圖。

圖4 模式A讀寫時序圖Fig.4 Pattern A read-write timing diagram
系統選用RTL8211EG芯片設計以太網接口用于將FPGA采集到的數據實時傳輸至上位機,與FPGA之間采用并行通訊,接收時鐘信號由網卡芯片提供,發送時鐘信號由FPGA芯片提供,時鐘上升沿觸發采樣進行數據的接收和發送。系統進行在線采集時,FPGA與千兆網卡通過GMII總線和網卡芯片進行數據交互,最后將數據通過網線傳遞到上位機。采集啟動后,先發送預設的UDP數據到網絡,如果FPGA檢測到從網絡端口發送的UDP數據包,接收到的數據包會通過寫FIFO將數據存儲到FPGA內部的DDR3 SDRAM中,然后通過網絡端口將DDR3 SDRAM中的數據包連續發送回以太網。千兆以太網與上位機數據傳輸的邏輯框圖如圖5所示。
收到發送指令后,數據首先從DDR3 SDRAM存儲器中發送到異步FIFO中,并進行存儲;其次經過MAC層,進行UDP信息,以太幀信息和CRC信息的添加,使數據轉換為符合以太網標準的以太幀數據;最后轉換為GMII接口數據,傳遞到PHY端,通過千兆網線將上位機與RJ45接口進行連接,便可以進行數據的傳輸。數據接收時,GMII 接口接收的數據在MAC層進行數據幀CRC校驗以及UDP的接收,將數據進行篩選,獲得有效數據后,將數據傳輸到FIFO中緩存,最后存入DDR3 SDRAM。

圖5 千兆網卡數據傳輸邏輯圖Fig.5 Gigabit network card data transmission logic diagram
對于采集的大量數據需要可靠的存儲器將其存儲,便于進一步的數據導出與分析。
SD存儲卡作為常用的存儲設備,具有體積小、傳輸速度快、存儲容量大等優點,滿足沖擊波超壓數據采集系統的內存需求。離線采集結束后,數據被保存在ARM中的SD卡,設計UART和USB2.0兩個接口與上位機進行數據傳輸。該設計使數據采集系統更加完善,提高了數據采集系統應用的廣泛性與靈活性。
USB接口是目前較為常用的通訊接口方式,USB2.0的傳輸速度遠遠高于串口的傳輸速度,且在上位機軟件開發方面對于開發者有著極大的便利,如API接口技術成熟、操作系統支持、資料齊全等。目前Windows操作系統已經裝有HID類設備的驅動程序,當USB設備與電腦主機進行連接后,主機會向設備請求各種描述符來識別設備。STM32通過外接高速USB芯片USB3300芯片實現高速數據傳輸。
程序設計中,STM32模塊作為一個受PC機控制的HID設備,與主機配合完成設備的枚舉和數據傳輸的方向和大小。STM32的 USB 程序主要包含三個部分:USB 控制器初始化、主機請求響應和通訊數據收發。其中 USB控制初始化包括端點的使能、中斷方式、數據緩存設置等,至少需要響應獲取描述符、設置地址、設置配置、設置閑置四種請求; 通訊數據收發主要是以中斷的方式向數據緩沖區讀寫數據。
完成系統初步設計之后,對相關模塊進行測試,主要包括A/D數據采集模塊測試、DDR3 SDRAM時序分析,然后將各模塊進行系統連接,并進行在線與離線采集試驗,以驗證該系統的可靠性。
以ISE作為FPGA芯片仿真環境,將編譯生成的bit文件燒寫到FPGA芯片進行編譯運行,信號發生器與A/D模塊的一個采集通道相連接,輸入頻率2 kHz,峰-峰值4 V的正弦波形信號,打開Chipscope查看通道1的波形顯示如圖6所示。AD9226數據采集準確,該設計可以完成數據采集任務。

圖6 Chipscope波形顯示Fig.6 Chipscope waveform display
將DDR3 SDRAM的讀寫程序燒寫完成后,使用 Chipscope在線調試工具對數據的讀寫結果進行驗證,結果如圖7所示。DDR3 SDRAM的讀寫狀態穩定,可以很好地實現數據的寫入與讀出,滿足系統的設計要求。

圖7 DDR3 SDRAM數據讀寫Fig.7 DDR3 SDRAM data read and write
將系統各模塊拼裝,進行在線采集功能測試,將程序通過仿真器燒寫完成以后,斷開仿真器,信號發生器與A/D模塊相連接,輸入正弦波形,峰-峰值設置為4 V(-2~2 V), 正弦波頻率為1 kHz,通過網線將千兆網卡與PC端相連接,移動電源進行供電,打開PC端的示波軟件,波形顯示與信號發生器的波形相同,證明數據采集系統的在線采集功能可靠。具體實驗過程如圖8所示。

圖8 在線采集功能測試Fig.8 Online acquisition function test
為了驗證系統離線采集功能,采集系統與PCB恒流源放至于堅固的外殼中,置于試驗場挖掘的土坑中,將采集程序提前燒寫,系統可以實時監測信號,并進行數據的保存。試驗結束后,使用USB接口將ARM中的數據導出,系統的采集結果部分曲線如圖9所示。可以看出,該系統可以完成沖擊波超壓的離線采集,符合設計需求。

圖9 沖擊波超壓測試結果曲線Fig.9 Curve of shock wave overpressure test results
本文提出基于FPGA+ARM的沖擊波超壓測試系統。該系統采用模塊化進行設計, FPGA控制A/D模塊并行采集,將數據通過千兆以太網實時傳輸至上位機,同時設計USB2.0接口進行數據導出,實現對沖擊波超壓的在線與離線采集。測試驗證結果表明,該系統的在線與離線采集功能可靠,可以實現對沖擊波超壓數據的實時采集與存儲。