文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.190603
中文引用格式: 王瀚,李杰,雷文彬,等. 智能彈藥飛參數據高速回讀系統關鍵技術研究[J].電子技術應用,2019,45(11):55-58.
英文引用格式: Wang Han,Li Jie,Lei Wenbin,et al. Research on key technologies of high-speed retrospective system for intelligent ammunition[J]. Application of Electronic Technique,2019,45(11):55-58.
0 引言
在常規彈藥制導化改造進程中,所有改造的推斷性效應必須經過靶場實彈測試進行驗證[1]。為了最大發揮實彈測試的驗證效果,離線式彈載采集存儲設備在實彈測試的過程中發揮著重要作用[2]。在測試中需要通過數據回讀裝置對彈體內部的固態存儲器進行數據回讀,對數據解析后得到相關飛參數據進行后續試驗[3]。現今彈載數據記錄儀的功能越來越多樣化,記錄數據的種類越來越多,雷達、舵機、飛控乃至圖像信息都在需要記錄的數據范圍內[4]。這導致對存儲容量的要求也越來越高,在一些對存儲速度、容量高要求的場合,已經使用了eMMC等大容量存儲芯片[5]。在大容量高速存儲的同時也引發了一些問題,在數據回讀時低速的回讀設備需要耗費很長時間才能回收數據,大大延長了數據分析的時間。因為需要根據記錄儀記錄的數據進行現場分析,并據此作出下一步試驗安排,低速回讀設備往往達不到現場數據處理的要求,導致靶場試驗無法繼續進行[6]。
針對以上問題,本設計使用FPGA搭配USB3.0接口,完成對eMMC存儲芯片內大量數據讀取以及上傳操作。低速USB2.0傳輸速度只有1.5 Mb/s,全速USB2.0傳輸速率為12 Mb/s,高速USB2.0極限速率也只達到480 Mb/s,而USB3.0最高速度達到5 Gb/s,可以使數據回讀時間得到極大的縮減。且USB3.0可熱插拔,安裝簡單,符合實際應用的需要。目前大部分USB3.0接口的設計是基于CYPRESS公司的CYUSB3014芯片,該芯片可實現復雜功能的同時,開發難度較大,開發周期較長,CYUSB3014采用BGA封裝,焊接和PCB(印制電路板)布線的難度都會大大增加[7]。本設計使用FTDI(Future Technology Devices International Ltd)公司的FT600芯片,該芯片采用QFN-56封裝,布線難度低,開發簡單,可靠性高,最高速度可以達到200 MB/s,滿足設計的需要。
1 總體方案設計
系統供電由USB口提供,并且設計電平轉換芯片提供芯片供電。系統主要由FPGA作為主控模塊,控制存儲器讀取數據,并將數據發送至FT600,再由FT600將并行數據轉為串行,然后發送至PC端。上位機接收后,存儲在電腦上,并進行數據處理[8]。總體設計如圖1所示。
2 硬件設計方案
系統硬件設計模塊較少,主要由三部分組成:電源模塊、主控模塊、USB3.0接口模塊。
2.1 電源模塊
系統設計通過USB口自供電,USB輸出5 V電壓,最高功率輸出最大電流達到900 mA,滿足系統的功耗要求,這種設計減少了外接電源的設計。為滿足FPGA,配置芯片以及FT600供電的需要,設計使用芯片TPS70345作為電壓轉換芯片,該芯片有準確的3.3 V、1.2 V雙通道輸出以及快速瞬態反應能力。電路設計如圖2所示,芯片本身無需復雜外部電路,減少了元器件的使用和占用的空間。電源輸入以及電壓輸出管腳上的電容目的是防止電源和地線上的噪聲耦合到有用信號上,進而防止電磁干擾對數字信號的影響。在設計過程中,為保障供電穩定,電壓輸出管腳應盡量靠近被供電器件。TPS70345輸出電壓可以提供FPGA內核供電、IO供電以及驅動電壓。FT600內部集成了1 V低壓差線性穩壓器,IO口支持+3.3 V/+2.5 V/+1.8 V供電,設計中IO供電與芯片供電保持一致,所以同樣選擇+3.3 V供電。
2.2 主控模塊
綜合考慮成本、功耗和性能,在本系統中使用Xilinx公司Spartan-6系列的XC6SLX9芯片作為主控芯片。這款芯片有9 152個邏輯單元、102個可配置I/O,滿足設計的需要。FPGA因為采用SRAM工藝,重復上電后內部程序無法保留,因此需要選用裝載程序的配置芯片,以便系統上電時能快速導入配置比特流。本設計使用Xilinx公司的XCF04S芯片作為配置芯片,該芯片3.3 V電壓供電,容量達到4 Mbit,滿足設計的要求。主控芯片主要作用是通過控制FT600芯片,實現與PC端通信以及對存儲芯片的讀取擦除。當FPGA芯片接收到PC端讀指令后,對eMMC芯片進行讀取操作,首先把數據暫存在FPGA內部FIFO中,之后傳輸到FT600內置FIFO內,再通過上位機把數據保存到PC端。當收到PC端擦除指令時,FPGA直接控制存儲芯片,進入擦除模式。
2.3 USB3.0接口模塊
USB3.0是USB總線接口的最新技術,具有多種數據傳輸模式、強大的供電能力和較低的設計成本,加上極高的數據傳輸速率,已成為應用最廣泛且最具性價比的接口。
系統中選用FTDI公司的FT600芯片,支持超高速USB3.0,同時支持控制傳輸(Control)、塊傳輸(Bulk)、中斷傳輸(Interrupt)多種傳輸模式[9]。這4種數據傳輸方式在端點類型、數據包長度、傳輸速率以及實際應用領域上各有各的特點。本設計要求的上傳數據量較大,對數據傳輸準確度要求較高,而且無實時性要求,宜采用塊傳輸模式。FT600擁有兩種并行從FIFO總線協議:多通道FIFO總線協議和245同步FIFO總線協議,擁有16 kB內部RAM,兼容USB2.0和USB3.0,內部自帶上電復位電路。該芯片可以滿足USB接口應用的需求。并且FTDI公司提供驅動程序,在硬件設計完成后,只需進行簡單的軟件設計以及芯片配置便可以投入使用。
3 邏輯設計
FPGA要想通過FT600與上位機通信,并且識別指令根據需要完成讀數擦除等功能,首先需要確定與上位機的通信協議,把F1&&11&&E1作為讀取指令,把F2&&22&&G2作為擦除指令,把F3&&33&&H3作為中斷指令。當上位機向系統發送這些指令時,系統識別這些指令,并進行相關操作。邏輯設計主要分為指令接收識別、數據回讀、擦除,以及接收到中斷指令時中斷當前操作的程序。FPGA通過FT600獲取上位機的指令,識別指令后,根據不同的上位機指令進入相應的模式。為了防止誤操作,還加入了中斷當前操作指令,識別后立即停止當前進行的數據讀取或者擦除操作。
在設計中,為保證數據準確以及不丟失,設計中多處使用了FIFO即先入先出存儲器隊列緩存數據。本設計是利用Xilinx FIFO生成器IP核建立FIFO,FIFO生成器IP核可以根據應用需求來設計FIFO的寬度、深度、可編程的空滿狀態標識、存儲器類型以及讀寫位寬。本設計中建立的FIFO均為利用塊RAM建立的首字預現型,首字預現即在不影響FIFO讀操作的條件下查看下一個數據的能力,當FIFO內數據可以被讀出時,FIFO內的第一個數據自動被掛在數據總線上[10]。這對實現低延時數據訪問和根據讀取的數據內容進行判斷有十分重要的意義。
在讀數過程中需要在短時間內將大量存儲器數據讀取到FPGA內部緩沖區,再發送給FT600。為了節約緩存空間,減小速度壓力,采用FIFO乒乓緩存的方案,乒乓操作流程如圖3所示。為防止FIFO在FPGA執行判斷語句時導致數據溢出,3個FIFO設置ALMOST_FULL標志位,表示FIFO滿之前能再進行一次寫操作,當ALMOST_FULL有效,停止存儲器數據讀取。
3.1 指令接收
FPGA在接收到可識別的上位機指令前,一直處于待命狀態。當FT600接收到上位機指令,表現為接收FIFO內有數據,就會即刻以將標志信號拉低方式通知FPGA,FPGA開始進行讀取FT600內部FIFO數據的操作。讀取FT600接收到指令信息流程如圖4所示。
3.2 數據上傳
當FPGA識別到上位機的指令為讀數指令時,進入讀取模式,FPGA開始讀取存儲器內部的數據,將數據取出來后首先緩存到FIFO中,再將FIFO內數據向FT600發送,通過FT600轉為串行并傳輸給PC端。控制FT600向上位機傳輸數據的流程如圖5所示。
3.3 上位機設計
上位機設計如圖6所示。實彈試驗中,數據記錄儀需要記錄射前后及落地一段時間內的彈體內部各參數,因此試驗完成后回讀的試驗數據不僅包括飛行過程中的參數,還有射前以及落地后一段時間的數據。數據分析時,要求根據需要分析不同階段的數據。由于數據量過大,如果將全部數據全部解析,會導致分析數據時浪費過多的時間精力,因此上位機設計中,每接收256 MB數據分為一塊,在解析數據時,根據測試階段確定需要解析數據塊。
4 系統驗證
設計完成后進行了實物焊接與調試,使用QT編寫的上位機進行eMMC存儲芯片的數據回讀,實測結果如圖7所示。結果顯示,在25 s內回讀了409 6 MB的數據量,結果表明,回讀eMMC存儲芯片內部數據的速度可達160 MB/s,經對比回讀的數據與存儲數據完全一致,無丟幀、錯幀問題,可以應用于工程應用中。
5 結論
本文介紹了一種基于USB3.0的高速數據回讀系統,該系統以FPGA作為主控芯片,操作存儲芯片和接口芯片,實現大量數據短時間內回讀。FT600作為USB3.0接口芯片,易于實現,有較強的可靠性,數據回讀度快。通過使用Qt設計的上位機回讀速度可達到160 MB/s,能夠實現大量數據短時間內回讀。
參考文獻
[1] 劉俊,石云波,李杰.微慣性技術[M].北京:電子工業出版社,2005.
[2] 黃玉崗,李杰,秦麗,等.基于FPGA和ADS8568的彈載實時記錄系統設計[J].傳感技術學報,2016,29(4):506-511.
[3] 郝曉明,李杰,胡陳君,等.基于FPGA的彈載數據回讀系統設計[J].傳感技術學報,2015,28(7):1023-1027.
[4] 姜海洋,李杰,楊文卿,等.彈載飛參高速測試系統關鍵技術分析與設計驗證[J].科學技術與工程,2019,19(3):124-129.
[5] 李君豪,畢麗霞,王永利.多通道高速數據安全傳輸系統的設計與實現[J].電子技術應用,2018,44(9):125-128.
[6] 羅軍,范劍峰,呂宏峰,等.基于FPGA的塊存儲器資源功能驗證及實現[J].電子技術應用,2018,44(9):44-47.
[7] 劉安,禹衛東,馬小兵,等.基于FPGA的高速串行數據收發接口設計[J].電子技術應用,2017,43(6):48-51.
[8] 李澤明.基于USB3.0接口的高速數據傳輸電路設計與實現[D].太原:中北大學,2014.
[9] 金瑜.基于USB3.0的數據采集模塊設計[D].廣州:華南理工大學,2017.
[10] 劉東華.Xilinx系列FPGA芯片IP核詳解[M].北京:電子工業出版社,2013.
作者信息:
王 瀚1,李 杰1,雷文彬1,張 波2
(1.中北大學 儀器與電子學院 動態測試技術省部共建國家重點實驗室培育基地,山西 太原030051;
2.蘇州中盛納米科技有限公司,江蘇 蘇州215123)