馬 駿,尉廣軍
(軍械工程學院 導彈工程系,河北 石家莊050003)
現(xiàn)代高技術(shù)條件下的信息戰(zhàn)爭要求武器裝備具備狀態(tài)檢測與戰(zhàn)場故障診斷能力、快速搶修和維修保障能力以及狀態(tài)信息化在線記錄和實時共享能力。某型導彈隨動裝置是其發(fā)射制導裝置重要組成部分,其性能直接影響導彈發(fā)射的成功率。目前該型導彈檢測工程車配備的檢測儀可對隨動裝置進行離線檢測,但該組檢測儀體積大,自動化程度低,且不能完成實時在線檢測。為了提高該型導彈戰(zhàn)場保障能力,在其正常運行過程中或者不拆卸的前提下,需要設(shè)計小體積、低功耗、快速實時的便攜式在線檢測儀,實現(xiàn)對該型隨動裝置運行狀況的在線檢測,并對現(xiàn)場的突發(fā)故障進行診斷。
SoPC是基于 FPGA解決方案的 SoC,是 MCU、DSP、FPGA的有機結(jié)合,而基于Nios II軟核的SoPC系統(tǒng),以其配置靈活、開發(fā)環(huán)境優(yōu)秀、成本低,在便攜式設(shè)備、測試測量領(lǐng)域得到了廣泛的應用[1-2]。USB接口以其即插即用、成本低、速度快、連接簡單等優(yōu)點得到廣泛應用[3]。而FIFO緩存和DMA技術(shù)加入到SoPC嵌入式系統(tǒng)中,可大大提高數(shù)據(jù)采集速度和傳輸效率。
針對該隨動裝置預留了測試接口的特點,本系統(tǒng)采用FPGA+Nios II的架構(gòu)進行設(shè)計[2]??傮w結(jié)構(gòu)如圖1所示,系統(tǒng)包括信號采集模塊、測量模塊、存儲器模塊、通信模塊。該隨動裝置有兩個電子箱,預留的測試接口輸出32路信號,其中15路模擬量、4路頻率信號、13路數(shù)字量。15路模擬量經(jīng)過調(diào)理電路,再經(jīng)模擬開關(guān)、A/D轉(zhuǎn)換成數(shù)字量寫入FIFO,然后FPGA讀出經(jīng)信號恢復存入SDRAM中;4路頻率信號經(jīng)電壓變換接入FPGA測頻電路,測頻結(jié)果存入FIFO,13路數(shù)字量經(jīng)過電平轉(zhuǎn)換寫入FIFO,然后FPGA讀出存入SDRAM。最后SDRAM中數(shù)據(jù)經(jīng)DMA控制通過USB傳輸?shù)缴衔粰C進行顯示、診斷等處理。
本設(shè)計選用的FPGA器件是Altera公司的Cyclone II系列EP2C35F672芯片。該芯片內(nèi)置35個18×18的硬件乘法器,有105個 M4K RAM塊,共 483 840 bit。在該芯片上構(gòu)建基于Nios II的SoPC系統(tǒng),使用軟硬件協(xié)同的方法對數(shù)據(jù)采集和通信傳輸及外圍電路進行控制[4]。存儲器模塊包括一片MT48LC2M32B2 4 M×16 bit的 SDRAM,用來存儲系統(tǒng)運行的中間數(shù)據(jù);一片AMD29LV128M123R 16 MB的Flash 存儲器,用來保存固化的程序和數(shù)據(jù)。
信號采集模塊包括模擬信號采集、數(shù)字信號采集和頻率信號采集。模擬信號采集包括三部分:前端信號調(diào)理電路、A/D轉(zhuǎn)換電路。本設(shè)計待測模擬信號中有15V、26V等高電壓,所以采集前需要進行隔離衰減。前端信號調(diào)理電路選用世特美公司的電量隔離傳感器,其中包括直流電壓傳感器、交直流電壓傳感器器件,通過這些傳感器將待測信號按比例轉(zhuǎn)換成0~5 V信號,隔離送入A/D轉(zhuǎn)換。
A/D轉(zhuǎn)換電路包括一個模擬開關(guān)和一個ADC器件。模擬開關(guān)采用16選1的ADG1606芯片,+5 V電源供電。ADC選用AD公司的12bit A/D轉(zhuǎn)換芯片AD7892-1,+5 V電源供電,轉(zhuǎn)換時間為 1.6 μs,采樣速率為 500 kS/s,誤差為±1 LSB,精度可達 0.04%。當 VIN2接VIN1時,輸入范圍為±5 V;當MODE為高電平時并行輸出。AD7892-1連接原理圖如圖2所示。
數(shù)字量高電平輸出有TTL信號,也有非TTL信號;采用串口芯片系列的SP3243E芯片統(tǒng)一轉(zhuǎn)換為滿足FPGA接口的電平。SP3243E是一個3驅(qū)動器/5接收器器件,本設(shè)計只用到了其接收口。系統(tǒng)需要采集13路信號,因此需要3個同樣的器件。
頻率信號其幅值為5 V,采用8通道雙向電壓轉(zhuǎn)換器芯片74LVT245,將5 V電壓轉(zhuǎn)換為3.3 V接入FPGA。
為了滿足數(shù)據(jù)采集傳輸速度的需要,采用飛利浦公司的ISP1362芯片實現(xiàn)USB通信。ISP1362包含有OTG控制器,完全兼容 USB2.0,支持 12 Mb/s的全速傳輸和1.5 Mb/s的低速傳輸,本設(shè)計采用12 Mb/s的全速傳輸。ISP1362提供了DMA和PIO兩種與外部微處理器的連接模式,本設(shè)計中,兩種模式下芯片的對應管腳都連接到了FPGA的I/O上,但開發(fā)時采用的是DMA模式。DMA模式下,由DMA控制器控制微處理器的系統(tǒng)存儲器和ISP1362的內(nèi)部緩存之間進行傳輸數(shù)據(jù)。ISP1362有 2個 USB端口:端口 1(Host)和端口 2(Device)。 端口 1通過硬件配置,可用作下行口、上行口或OTG口;端口2只可作下行口。本設(shè)計沒有使用OTG,因此將它們都配置成下行口[4]。ISP1362接口電路原理圖如圖3所示。
本設(shè)計中A/D轉(zhuǎn)換控制器用Verilog HDL編寫控制時序與接口邏輯,來產(chǎn)生ADG1606的地址選擇和AD7892的轉(zhuǎn)換控制信號,其控制模塊仿真波形如圖4所示。測頻模塊采用等精度測量的方法,為每路信號都設(shè)計一測頻電路。
為解決速率匹配、數(shù)據(jù)緩沖的問題,利用FPGA片上RAM資源設(shè)計FIFO,將A/D采樣的數(shù)據(jù)、數(shù)字量信號和測頻輸出數(shù)據(jù)進行存儲[5]。模擬信號經(jīng)A/D轉(zhuǎn)換器并行輸出12bit的數(shù)字量,對其設(shè)計容量為1 K×12 bit的 FIFO。13路數(shù)字信號,對每路設(shè)計容量為32×1 bit的FIFO。測頻結(jié)果輸出為16 bit,對每路測頻輸出設(shè)計容量為128×16 bit的 FIFO。
為了提高數(shù)據(jù)采集效率,應用了DMA傳輸方式,DMA傳輸是指存儲器與存儲器、存儲器與外設(shè)或者外設(shè)與存儲器之間的數(shù)據(jù)傳輸不經(jīng)過微處理器直接傳輸;在這種方式下,一次傳輸只需要執(zhí)行一個DMA周期(相當于一個總線時鐘周期),因而能顯著提高數(shù)據(jù)傳輸速度,提高數(shù)據(jù)采集的效率。本設(shè)計中輸入信號較多,需要不同的處理,處理完后存入SDRAM中,然后DMA控制數(shù)據(jù)從SDRAM傳送到ISP1362緩存[6],通過USB總線直接傳輸?shù)缴衔粰C。使用DMA方式傳輸時,需要DMA控制器來協(xié)調(diào)外設(shè)接口和存儲器的數(shù)據(jù)傳輸,SoPC Builder內(nèi)部集成了該控制器IP核,可直接調(diào)用。
2.3.1 SoPC系統(tǒng)設(shè)計
SoPC硬件構(gòu)建是基于Altera公司的SoPC開發(fā)軟件SoPC Builder,Altera公司為SoPC工具提供了眾多的IP核支持,可以直接使用[1]。ISP1362控制器使用友晶公司的DE2開發(fā)系統(tǒng)中提供的ISP1362控制器核。將系統(tǒng)所需的IP核添加到SPC Builder中生成SoPC系統(tǒng),如圖5所示。點擊Generate生成Nios II系統(tǒng)。
2.3.2 頂層模塊設(shè)計
頂層模塊的主要功能是實現(xiàn)硬件各個功能模塊的信號連接。加入測頻模塊和A/D控制模塊,生成如圖6所示的NiosII系統(tǒng)頂層設(shè)計原理圖,再加入FIFO模塊。最后分配引腳,編譯下載到FPGA中,就完成了FPGA硬件設(shè)計。
系統(tǒng)軟件分為Nios軟件設(shè)計和上位機軟件設(shè)計,完成信號采集與處理、數(shù)據(jù)傳輸以及數(shù)據(jù)顯示與故障診斷任務。Nios軟件設(shè)計是在Nios II IDE環(huán)境中完成,主要包括數(shù)據(jù)采集控制與處理、USB固件程序。在Nios II開發(fā)環(huán)境中,以Hello World為模板建立工程,添加采集控制程序、數(shù)據(jù)處理程序和USB固件程序。采集控制包括定時器設(shè)置,采樣控制;數(shù)據(jù)處理主要是根據(jù)前段衰減倍數(shù)進行信號恢復;固件程序包括初始化部分、主循環(huán)部分、中斷服務程序和接收發(fā)送數(shù)據(jù)程序。
當設(shè)備連接到主機后,先進行系統(tǒng)初始化,初始化ISP1362寄存器;然后主機通過給ISP1362的端點0發(fā)送包含標準USB請求的控制傳輸(Setup包),然后ISP1362產(chǎn)生一個中斷給FPGA (INT0),FPGA對請求作出響應,并通過端點0回送請求信息;主機從返回的信息中讀取描述數(shù)據(jù),分配和載入一個設(shè)備驅(qū)動程序?qū)υO(shè)備進行配置,配置好后,就可以使用配置中支持的端點來傳輸數(shù)據(jù)。
數(shù)據(jù)采集模塊軟件流程如圖7所示。FPGA通過UART接收上位機發(fā)出的采樣任務及控制參數(shù),控制ADC開始轉(zhuǎn)換,同時開啟頻率測量,將采集和測量的數(shù)據(jù)存儲到片上FIFO緩存中,然后經(jīng)不同處理后存入SDRAM中,DMA控制從SDRAM中的數(shù)據(jù)經(jīng)USB傳送到上位機[7]。
圖7 軟件流程
上位機采用PC104工控機,軟件包括USB設(shè)備驅(qū)動程序和客戶應用程序。設(shè)備驅(qū)動程序由芯片公司提供,直接安裝即可;應用程序在Windows XP系統(tǒng)下基于Visual C++6.0開發(fā)平臺完成設(shè)計,主要任務是讀取數(shù)據(jù)采集模塊所采集的數(shù)據(jù),將采集結(jié)果存儲到緩存中;然后計算機讀取緩存中的數(shù)據(jù),依據(jù)相應算法進行計算、分析,根據(jù)計算結(jié)果判斷工作設(shè)備否工作正常,并顯示診斷結(jié)果[8]。
通過仿真手段,模擬輸入一組實驗數(shù)據(jù),經(jīng)采集系統(tǒng)采集輸入到上位機進行顯示與故障診斷,仿真結(jié)果表明數(shù)據(jù)采集速度快、USB通信良好、系統(tǒng)響應速度快,滿足在線檢測系統(tǒng)要求。
隨動裝置運行參數(shù)和信息的在線采集和傳輸是在線檢測系統(tǒng)的核心。本設(shè)計基于Nios II軟核的SoPC系統(tǒng)作為在線檢測系統(tǒng)的數(shù)據(jù)采集前端,與傳統(tǒng)的基于單片機、DSP的檢測系統(tǒng)相比,具有配置靈活、可重構(gòu)、功耗低、實時性好、體積小、成本低等優(yōu)點。通過仿真驗證,很好地滿足系統(tǒng)在線檢測的要求。該在線檢測系統(tǒng)可以通過重新配置SoPC軟硬件,可檢測該型導彈發(fā)射車其他分系統(tǒng)。
[1]李蘭英等.Nios II嵌入式軟核SOPC設(shè)計原理及應用[M].北京:北京航空航天大學出版社,2009.
[2]潘宗樹.基于 Nios II的 SOPC系統(tǒng)設(shè)計與研究[D].武漢:武漢科技大學,2007.
[3]劉硯一.基于FPGA的USB接口數(shù)據(jù)采集系統(tǒng)研究[J].南京:南京林業(yè)大學,2007.
[4]張志剛.FPGA與SOPC設(shè)計教程——DE2實踐[M].西安:西安電子科技大學出版社,2007.
[5]趙擎天,尉廣軍,姚義.基于SOPC的多路并行同步數(shù)字信號采集系統(tǒng)設(shè)計[J].軍械工程學院學報,2011(3):60-64.
[6]羅輝舞,洪海麗,何國勇.一種基于SoPC的FPGA在線測試方法[J].現(xiàn)代電子技術(shù),2010,32(2):164-166.
[7]王銳,雷金奎.基于軟核 Nios II的 SOPC數(shù)據(jù)采集系統(tǒng)的設(shè)計[J].計算機測量與控制,2008.16(8):1199-1201.
[8]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)工業(yè)出版社,2006.