文献标识码: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)