高 杰 張斌珍 劉建林
(中北大學(xué)電子與計(jì)算機(jī)科學(xué)技術(shù)學(xué)院1,山西 太原 030051;電子測試國防科技重點(diǎn)實(shí)驗(yàn)室2,山西 太原 030051)
利用海洋進(jìn)行水下軍事活動(dòng)的技術(shù)早己引起人們極大的重視。導(dǎo)彈在現(xiàn)代戰(zhàn)爭中具有突出地位,而潛射導(dǎo)彈由于其良好的生存性,愈加受到人們的重視。潛射導(dǎo)彈水下發(fā)射技術(shù)的研究與設(shè)計(jì)方案緊密相關(guān),且需要大量的試驗(yàn)研究工作。因此,只有在充分的、大量的水下試驗(yàn)的基礎(chǔ)上,才能對水下發(fā)射技術(shù)進(jìn)行透徹的認(rèn)識(shí)和了解,從而作出明確的方案選擇。
本設(shè)計(jì)主要針對某型號(hào)導(dǎo)彈模型試驗(yàn)的實(shí)際要求,進(jìn)行導(dǎo)彈模型水下發(fā)射動(dòng)響應(yīng)動(dòng)態(tài)參數(shù)的測試,目的在于為某一類潛射導(dǎo)彈的型號(hào)設(shè)計(jì)提供重要的參考依據(jù)[1]。
系統(tǒng)由導(dǎo)彈模型、地面計(jì)算機(jī)、傳感器、地面采集控制裝置和內(nèi)置測試系統(tǒng)五部分組成,其組成原理框圖如圖1所示。

圖1 系統(tǒng)組成原理框圖Fig.1 Composition principle of the system
地面采集控制裝置用于發(fā)動(dòng)機(jī)點(diǎn)火,并啟動(dòng)觸發(fā)記錄裝置。地面讀數(shù)裝置在數(shù)據(jù)記錄結(jié)束后成為連接數(shù)據(jù)記錄裝置與地面計(jì)算機(jī)的接口。地面計(jì)算機(jī)通過地面讀數(shù)裝置從數(shù)據(jù)記錄裝置來讀取數(shù)據(jù),并且采用專用軟件對數(shù)據(jù)進(jìn)行顯示、判讀和處理等。導(dǎo)彈模型包括發(fā)動(dòng)機(jī)、彈體和彈頭等。發(fā)動(dòng)機(jī)作為彈體水下運(yùn)動(dòng)的動(dòng)力;彈體部分放置配重、數(shù)據(jù)記錄裝置和傳感器等;彈頭呈圓形,以減小水對彈體運(yùn)動(dòng)的阻力。測試記錄裝置將加速度傳感器、表面壓力傳感器和光纖陀螺傳感器的模擬信號(hào)通過變換電路轉(zhuǎn)變成數(shù)字信號(hào),并對這些信號(hào)進(jìn)行記錄、存儲(chǔ)和保持。加速度傳感器安裝在彈體的重心處,表面壓力傳感器和光纖陀螺傳感器安裝在彈體內(nèi)關(guān)心部位的壁上。
試驗(yàn)過程中,首先將傳感器和記錄器安裝到彈體模型上,連接好彈體后把模型放入水中,再由岸上的控制裝置進(jìn)行點(diǎn)火和啟動(dòng)記錄設(shè)備。試驗(yàn)結(jié)束后,把彈體模型打撈至岸上,連接好地面讀數(shù)裝置、上位機(jī)和數(shù)據(jù)記錄設(shè)備,讀取數(shù)據(jù)至上位機(jī),由數(shù)據(jù)分析軟件進(jìn)行數(shù)據(jù)處理。試驗(yàn)過程示意圖如圖2所示。

圖2 試驗(yàn)過程示意圖Fig.2 Schematic of the experimental process
系統(tǒng)要求能對3路加速度、3路陀螺和9路表壓信號(hào)進(jìn)行采集,采樣率為每路50 kS/s,選用12位的高精度A/D進(jìn)行轉(zhuǎn)換,記錄時(shí)間不小于30 s。系統(tǒng)采用電池供電,待機(jī)時(shí)間不小于12 h。為了滿足至少1.6 MB/s的數(shù)據(jù)寫入能力和48 MB的數(shù)據(jù)容量,本設(shè)計(jì)選用三星公司生產(chǎn)的K9K8G08U0A大容量1 GB Flash,其寫入速度典型值為300 μs寫入2112 B。
整個(gè)系統(tǒng)分為電源、信號(hào)調(diào)理、電源控制、A/D轉(zhuǎn)換和記錄存儲(chǔ)五個(gè)模塊,其硬件設(shè)計(jì)原理如圖3所示。

圖3 硬件整體設(shè)計(jì)原理圖Fig.3 The general design principle of the hardware
由于系統(tǒng)采用電池供電,而干電池和鋰電池不能提供瞬間較大的電流,因此,系統(tǒng)采用了傳感器和控制電路分開供電的雙電源設(shè)計(jì)。電源模塊采用北京北達(dá)眾人電源技術(shù)研究所生產(chǎn)的DC-DC模塊,它具有輸入電壓寬(6~18 V)、隔離電壓高(>500 V)、輸出電壓精度高(±1%)、帶負(fù)載能力強(qiáng)和溫度系數(shù)小(0.03%)等特點(diǎn),且該模塊具有一個(gè)片選引腳,通過控制該引腳電平的高低,可以很方便地實(shí)現(xiàn)傳感器的電源控制。
整個(gè)系統(tǒng)通過MSP430F149單片機(jī)對DC-DC模塊、FPGA和Flash外圍電路進(jìn)行上電與斷電的控制,從而實(shí)現(xiàn)系統(tǒng)的超低功耗。美國德州儀器公司(TI)推出的MSP430系列超低功耗、16位混合信號(hào)處理器集多種領(lǐng)先技術(shù)于一體,尤以16位RISC處理器、超低功耗、高性能模擬技術(shù)及豐富的片內(nèi)外設(shè)和JTAG仿真調(diào)試為特色[2]。A/D轉(zhuǎn)換模塊采用AD公司生產(chǎn)的AD7490芯片,它具有精度高(12 bit)、16路信號(hào)同步采集、采樣率高(最高1 MS/s)和功耗低(典型值5.4 mW)等特點(diǎn)。
在本設(shè)計(jì)中,我們以Xilinx公司生產(chǎn)的Spartan-E系列的XC3S100E為主控制器,它采用1.2 V的內(nèi)核電壓,系統(tǒng)時(shí)鐘達(dá)到200 MHz。該器件集成了豐富的邏輯門,且內(nèi)含72 kB的雙端口 RAM,通過雙端口RAM可以組成內(nèi)部FIFO來緩存數(shù)據(jù)[3]。
在硬件設(shè)計(jì)時(shí),需要注意以下問題。
①在電源的輸入端串聯(lián)一個(gè)抗大電流的二極管,以防止電源反接電流過大燒毀器件。
②由于MSP430F149單片機(jī)和XC3S100E都為低功耗器件,與TTL電平不兼容。所以必須接一個(gè)電平轉(zhuǎn)換芯片74LVC4245,將5 V電平轉(zhuǎn)換為3.3 V。
③由于MSP430系列單片機(jī)為超低功耗單片機(jī),所以I/O口的驅(qū)動(dòng)能力不是很強(qiáng),在驅(qū)動(dòng)一些功耗較大的器件時(shí),需要增加專門的驅(qū)動(dòng)芯片[4]。
系統(tǒng)的軟件設(shè)計(jì)由單片機(jī)和FPGA兩部分組成。單片機(jī)程序流程圖如圖4所示[5]。

圖4 MSP430F149單片機(jī)程序流程圖Fig.4 Program flowchart of MSP430F149 MCU
單片機(jī)主要控制系統(tǒng)的電源,通過地面采集控制裝置發(fā)給記錄器上電指示。單片機(jī)在P1.0引腳接收到指示后,通過發(fā)送給DC-DC模塊的片選引腳高電平來給傳感器和記錄器供電。大約1 s后,傳感器上電趨于穩(wěn)定,地面控制裝置便會(huì)給FPGA發(fā)送一個(gè)采集觸發(fā)信號(hào)。FPGA在采集完畢后發(fā)送一個(gè)高電平指示信號(hào)給單片機(jī),單片機(jī)P1.1引腳接收到采集完畢信號(hào)后則斷開傳感器和記錄器的電源,并進(jìn)入低功耗等待狀態(tài),等待下一次的上電指令和采集指令。
FPGA主要控制A/D轉(zhuǎn)換和大容量Flash的讀、寫和擦除操作,是整個(gè)系統(tǒng)的主控制器。其主要工作流程如下。
首先,F(xiàn)PGA檢測記錄器是否連接地面讀數(shù)裝置,如果沒有,則FPGA對Flash芯片進(jìn)行上電自檢,檢測Flash芯片是否為空,如果為空,則工作指示燈亮,否則工作指示燈滅。如果工作指示燈亮,F(xiàn)PGA在檢測到由地面采集控制裝置發(fā)出的采集觸發(fā)指示后,啟動(dòng)A/D轉(zhuǎn)換和存儲(chǔ)數(shù)據(jù),在采集完畢后工作指示燈和觸發(fā)指示燈滅。
導(dǎo)彈模型在點(diǎn)火后,觸發(fā)線會(huì)落入水中,這時(shí)往往會(huì)造成誤觸發(fā)進(jìn)行下一次采集。因此,設(shè)計(jì)了外部復(fù)位信號(hào),要求設(shè)備只有在復(fù)位信號(hào)和觸發(fā)信號(hào)都觸發(fā)的時(shí)候才開始下一次采集。雙觸發(fā)有效地解決了誤觸發(fā)的問題[6]。
記錄器在采集完畢后被打撈到地面,由計(jì)算機(jī)和讀數(shù)裝置將數(shù)據(jù)讀取到計(jì)算機(jī)硬盤,并采用專用的數(shù)據(jù)分析軟件對數(shù)據(jù)進(jìn)行判讀、分析和描繪波形。
FPGA的程序流程圖如圖5所示。

圖5 FPGA程序流程圖Fig.5 Program flowchart of FPGA
為了便于上位機(jī)對采集到的數(shù)據(jù)進(jìn)行處理,必須規(guī)定好數(shù)據(jù)的幀結(jié)構(gòu)。經(jīng)多次試驗(yàn)測試,采用了以EB、90為幀頭,中間為16路A/D轉(zhuǎn)換的數(shù)據(jù),其排列順序具體為第1路高字節(jié)、低字節(jié),第2路高字節(jié)、低字節(jié)。依次類推,直到第16路的高字節(jié)和低字節(jié)數(shù)據(jù)。其中,每路的高字節(jié)的高四位為每一路的標(biāo)志位,最后為一個(gè)字節(jié)為遞增的幀計(jì)數(shù)。試驗(yàn)證實(shí),上述幀結(jié)構(gòu)穩(wěn)定可靠,能有效地防止數(shù)據(jù)的錯(cuò)位存儲(chǔ)或讀取。同時(shí),在采樣率一定的情況下,對于多通道的數(shù)據(jù)采集,上述幀結(jié)構(gòu)能使寫入的數(shù)據(jù)流最小。幀計(jì)數(shù)的加入無論對數(shù)據(jù)的寫入錯(cuò)誤還是讀取錯(cuò)誤都能起到很好的調(diào)試作用。數(shù)據(jù)幀結(jié)構(gòu)如表1所示。

表1 數(shù)據(jù)幀格式Tab.1 Format of data frame
由于制造工藝水平的限制,大容量的Flash芯片往往存在無效塊,所以,在存儲(chǔ)、讀數(shù)和擦除的時(shí)候必須要檢測并跳過無效塊。FPGA通過檢測每塊的第一或者第二頁的第2048個(gè)字節(jié)是否為FF來檢測是否為無效塊,如為FF,則該塊為無效塊。由于Flash芯片是按頁存儲(chǔ)的,當(dāng)一頁寫完后要進(jìn)行下一頁的控制字和地址的重新寫入,在這段時(shí)間內(nèi)必須有一個(gè)緩存裝置來存儲(chǔ)A/D轉(zhuǎn)換的數(shù)據(jù),否則數(shù)據(jù)會(huì)溢出,從而造成丟數(shù)的現(xiàn)象。異步FIFO由于不需要同步時(shí)鐘,數(shù)據(jù)的寫入和讀出彼此獨(dú)立,很適合于不同速度的處理器之間的數(shù)據(jù)緩存。由于FPGA內(nèi)部的寄存器資源是有限的,如果在VHDL編程時(shí)用數(shù)組來構(gòu)建異步FIFO結(jié)構(gòu),綜合時(shí)會(huì)耗用大量的寄存器。XC3S100E內(nèi)部集成了40 kB的塊RAM,可以直接調(diào)用它來構(gòu)建異步FIFO,提高了FPGA的芯片資源利用率。在數(shù)據(jù)讀寫時(shí)采用各自的時(shí)鐘輸入,配合各自不同的時(shí)序需要,如果寫地址A大于讀地址B,則數(shù)據(jù)寫入Flash芯片,否則數(shù)據(jù)寫入內(nèi)部FIFO中緩存。內(nèi)部FIFO功能示意圖如圖6 所示[7]。

圖6 內(nèi)部FIFO功能示意圖Fig.6 Schematic of inner FIFO function
下面以Flash的頁編程時(shí)序?yàn)槔齺碚f明對Flash的操作。Flash芯片控制時(shí)序由命令鎖存使能信號(hào)CLE、芯片使能信號(hào)、地址鎖存使能信號(hào)ALE、寫使能信號(hào)、數(shù)據(jù)輸入和輸出端口I/OX和Flash芯片反饋信號(hào)R組成。Flash頁編程時(shí)序如圖7所示[8]。

圖7 Flash頁編程時(shí)序圖Fig.7 Programming sequence of Flash page
具體的頁編程時(shí)序?yàn)槭紫葘懭朊钭?0 H,接著在四個(gè)寫周期內(nèi)分別將字節(jié)地址、頁地址和塊地址按順序依次寫入,然后從FIFO中讀取2 kB的數(shù)據(jù),最后寫入頁編程命令字10 H。此后,F(xiàn)lash會(huì)返回狀態(tài)信號(hào),在大約 40 μs的時(shí)間內(nèi),都會(huì)一直為低電平,說明Flash一直處于忙狀態(tài),此時(shí),對Flash進(jìn)行任何操作,其都不會(huì)有響應(yīng);當(dāng)為高電平,在一頁數(shù)據(jù)寫入結(jié)束時(shí),開始寫入下一頁數(shù)據(jù)。信號(hào)是Flash工作狀態(tài)的真實(shí)反映,為了防止信號(hào)抖動(dòng)對Flash工作狀態(tài)的誤判,必須對信號(hào)進(jìn)行軟件消抖處理。
當(dāng)數(shù)據(jù)采集完以后,需要將數(shù)據(jù)讀取到上位機(jī),以便軟件進(jìn)行數(shù)據(jù)處理。這時(shí),遠(yuǎn)程讀數(shù)裝置便是連接上位機(jī)與記錄器的橋梁。遠(yuǎn)程讀數(shù)裝置主要由FPGA、RS-422接口芯片MAX3087、高速數(shù)據(jù)緩存FIFO和USB單片機(jī)CY7C68013組成。Cypress公司推出的USB接口芯片CY7C68013除集成了超強(qiáng)的USB2.0引擎SIE外,還集成了改進(jìn)的增強(qiáng)型8051內(nèi)核。所以,開發(fā)者只要具有8051單片機(jī)的基礎(chǔ)和初步的應(yīng)用程序編程能力,就可以快速開發(fā)USB接口[9]。
讀數(shù)時(shí)的數(shù)據(jù)流程為首先讀數(shù)裝置將記錄器的數(shù)據(jù)經(jīng)RS-422總線接口遠(yuǎn)程讀取到FPGA,然后將數(shù)據(jù)緩存到大容量的高速緩存FIFO。當(dāng)FIFO半滿后,半滿信號(hào)經(jīng)FPGA傳遞給CY7C68013,CY7C68013接收到半滿信號(hào)后,將數(shù)據(jù)經(jīng)GPIF接口打包上傳至上位機(jī)。試驗(yàn)后上位機(jī)還原的波形如圖8所示[10]。

圖8 試驗(yàn)波形圖Fig.8 Waveforms of experiments
本文針對某潛射導(dǎo)彈模型的點(diǎn)火發(fā)射試驗(yàn)的具體要求,設(shè)計(jì)了基于MSP430F149單片機(jī)和FPGA的超低功耗數(shù)據(jù)采集系統(tǒng)。系統(tǒng)利用雙電源供電和MSP430F149單片機(jī)控制系統(tǒng)的電源以及配置本身的省電模式,在用電池供電的情況下實(shí)現(xiàn)了系統(tǒng)的超長待機(jī);通過手動(dòng)復(fù)位和觸發(fā)雙觸發(fā)模式,有效解決了系統(tǒng)的誤觸發(fā),提高了系統(tǒng)的可靠性;通過FPGA對A/D轉(zhuǎn)換和大容量Flash芯片的控制[11-12],完整地獲取了試驗(yàn)數(shù)據(jù);利用USB接口實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,兼容性強(qiáng),充分利用了微機(jī)的資源。實(shí)踐證明,本系統(tǒng)不僅體積小、功耗低,而且便于維護(hù)與升級,具有較大的實(shí)際應(yīng)用價(jià)值。
[1]張文棟.存儲(chǔ)測試系統(tǒng)的設(shè)計(jì)理論及其應(yīng)用[M].北京:高等教育出版社,2002.
[2]沈建華,楊艷琴,翟驍曙.MSP430系列16位超低功耗單片機(jī)實(shí)踐與系統(tǒng)設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005:2-10.
[3]覃永新,陳文輝,章帆.實(shí)時(shí)視頻數(shù)據(jù)采集的FPGA實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2009,35(9):1 -4.
[4]劉國勤.基于FPGA和DSP的數(shù)據(jù)采集器設(shè)計(jì)與實(shí)現(xiàn)[J].艦船電子工程,2006,26(6):2 -3.
[5]張貴清,張?zhí)煨颍伮缎拢?數(shù)據(jù)采集的硬件自校準(zhǔn)方法與FPGA實(shí)現(xiàn)[J].數(shù)據(jù)采集與處理,2006(B12):236-241.
[6]胡大可.MSP430系列單片機(jī)C語言程序設(shè)計(jì)與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2003:2-5.
[7]潘松,王國棟.VHDL實(shí)用教程[M].成都:電子科技大學(xué)出版社,2005:20 -27.
[8]張明,王禮平.基于FPGA的非對稱同步FIFO設(shè)計(jì)[J].電子設(shè)計(jì)應(yīng)用,2005(1).
[9]錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006:20-27.
[10]吳振宇,常玉保,馮林.基于FPGA和USB2.0的高速數(shù)據(jù)采集系統(tǒng)[J].儀器儀表學(xué)報(bào),2006(z1):1-3.
[11]黃容蘭,萬德煥.基于FPGA的A/D轉(zhuǎn)換采集控制模塊設(shè)計(jì)[J].數(shù)據(jù)采集與處理,2009,24(S1):238 -240.
[12]陳明義,連帥軍,周建國.基于FPGA的Flash控制器系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技,2008,21(7):11 -13.