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

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

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

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

圖4 模式A讀寫(xiě)時(shí)序圖Fig.4 Pattern A read-write timing diagram
系統(tǒng)選用RTL8211EG芯片設(shè)計(jì)以太網(wǎng)接口用于將FPGA采集到的數(shù)據(jù)實(shí)時(shí)傳輸至上位機(jī),與FPGA之間采用并行通訊,接收時(shí)鐘信號(hào)由網(wǎng)卡芯片提供,發(fā)送時(shí)鐘信號(hào)由FPGA芯片提供,時(shí)鐘上升沿觸發(fā)采樣進(jìn)行數(shù)據(jù)的接收和發(fā)送。系統(tǒng)進(jìn)行在線采集時(shí),F(xiàn)PGA與千兆網(wǎng)卡通過(guò)GMII總線和網(wǎng)卡芯片進(jìn)行數(shù)據(jù)交互,最后將數(shù)據(jù)通過(guò)網(wǎng)線傳遞到上位機(jī)。采集啟動(dòng)后,先發(fā)送預(yù)設(shè)的UDP數(shù)據(jù)到網(wǎng)絡(luò),如果FPGA檢測(cè)到從網(wǎng)絡(luò)端口發(fā)送的UDP數(shù)據(jù)包,接收到的數(shù)據(jù)包會(huì)通過(guò)寫(xiě)FIFO將數(shù)據(jù)存儲(chǔ)到FPGA內(nèi)部的DDR3 SDRAM中,然后通過(guò)網(wǎng)絡(luò)端口將DDR3 SDRAM中的數(shù)據(jù)包連續(xù)發(fā)送回以太網(wǎng)。千兆以太網(wǎng)與上位機(jī)數(shù)據(jù)傳輸?shù)倪壿嬁驁D如圖5所示。
收到發(fā)送指令后,數(shù)據(jù)首先從DDR3 SDRAM存儲(chǔ)器中發(fā)送到異步FIFO中,并進(jìn)行存儲(chǔ);其次經(jīng)過(guò)MAC層,進(jìn)行UDP信息,以太幀信息和CRC信息的添加,使數(shù)據(jù)轉(zhuǎn)換為符合以太網(wǎng)標(biāo)準(zhǔn)的以太幀數(shù)據(jù);最后轉(zhuǎn)換為GMII接口數(shù)據(jù),傳遞到PHY端,通過(guò)千兆網(wǎng)線將上位機(jī)與RJ45接口進(jìn)行連接,便可以進(jìn)行數(shù)據(jù)的傳輸。數(shù)據(jù)接收時(shí),GMII 接口接收的數(shù)據(jù)在MAC層進(jìn)行數(shù)據(jù)幀CRC校驗(yàn)以及UDP的接收,將數(shù)據(jù)進(jìn)行篩選,獲得有效數(shù)據(jù)后,將數(shù)據(jù)傳輸?shù)紽IFO中緩存,最后存入DDR3 SDRAM。

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

圖6 Chipscope波形顯示Fig.6 Chipscope waveform display
將DDR3 SDRAM的讀寫(xiě)程序燒寫(xiě)完成后,使用 Chipscope在線調(diào)試工具對(duì)數(shù)據(jù)的讀寫(xiě)結(jié)果進(jìn)行驗(yàn)證,結(jié)果如圖7所示。DDR3 SDRAM的讀寫(xiě)狀態(tài)穩(wěn)定,可以很好地實(shí)現(xiàn)數(shù)據(jù)的寫(xiě)入與讀出,滿足系統(tǒng)的設(shè)計(jì)要求。

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

圖8 在線采集功能測(cè)試Fig.8 Online acquisition function test
為了驗(yàn)證系統(tǒng)離線采集功能,采集系統(tǒng)與PCB恒流源放至于堅(jiān)固的外殼中,置于試驗(yàn)場(chǎng)挖掘的土坑中,將采集程序提前燒寫(xiě),系統(tǒng)可以實(shí)時(shí)監(jiān)測(cè)信號(hào),并進(jìn)行數(shù)據(jù)的保存。試驗(yàn)結(jié)束后,使用USB接口將ARM中的數(shù)據(jù)導(dǎo)出,系統(tǒng)的采集結(jié)果部分曲線如圖9所示??梢钥闯觯撓到y(tǒng)可以完成沖擊波超壓的離線采集,符合設(shè)計(jì)需求。

圖9 沖擊波超壓測(cè)試結(jié)果曲線Fig.9 Curve of shock wave overpressure test results
本文提出基于FPGA+ARM的沖擊波超壓測(cè)試系統(tǒng)。該系統(tǒng)采用模塊化進(jìn)行設(shè)計(jì), FPGA控制A/D模塊并行采集,將數(shù)據(jù)通過(guò)千兆以太網(wǎng)實(shí)時(shí)傳輸至上位機(jī),同時(shí)設(shè)計(jì)USB2.0接口進(jìn)行數(shù)據(jù)導(dǎo)出,實(shí)現(xiàn)對(duì)沖擊波超壓的在線與離線采集。測(cè)試驗(yàn)證結(jié)果表明,該系統(tǒng)的在線與離線采集功能可靠,可以實(shí)現(xiàn)對(duì)沖擊波超壓數(shù)據(jù)的實(shí)時(shí)采集與存儲(chǔ)。