针对以上问题,本设计利用搭配接口,完成对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)









