基于FPGA的数据采集存储系统的设计与实现

2016-09-08 09:23李金猛
电子设计工程 2016年13期
关键词:下位存储系统流水线

李金猛

(国营芜湖机械厂 安徽 芜湖 241007)

基于FPGA的数据采集存储系统的设计与实现

李金猛

(国营芜湖机械厂安徽芜湖241007)

针对大规模集成电路测试中需要采集记录总线数据并用于后续产品测试分析的目的,采用了基于FPGA的数据采集存储系统的软硬件设计方法,硬件采用“上位机+下位机”架构,下位机直接由FPGA直接控制FLASH阵列盘,实现长时数据采集存储,上位机在采集完成后通过USB接口对数据进行离线分析,通过对采集系统的硬件进行设计与仿真,开发出与下位机控制盒相配套的采集软件,进行实际数据采集试验得出所采集的16路总线数据信号有效。

采集;存储;流水线;FIFO;FPGA

随着电子技术的发展及带大规模器件的电路板、总线接口类产品在电子设备的大规模应用,传统的电子设备的测试修理模式将发生重大转变。有很多产品电路板中由大规模集成芯片组成的板件,给维修工作带来很大的困难,对该类板件数据信号分析是解决产品板件修理的一种重大检测手段。文中重点介绍应用在电子产品维修中的一套基于FPGA的数据采集存储系统的软硬件设计方法及实现过程。

1 系统总体结构

本采集存储系统将以定制计算机与固态硬盘为上位机,下位机由数据控制板、数据存储板、数据采集与数据传输板组成,系统框架关系示意图如图1所示。上下位机的通讯接口为2个USB2.0通讯接口,其中1个为USB2.0通讯接口,另1个为数据采集测控板的JTAG调试与下载配置接口。

图1 系统原理框图

2 FPGA数据采集存储模块

2.1硬件设计

数据采集存储模块[1-6]硬件设计包括FPGA最小系统设计、多级流水线电路设计、USB2.0通讯接口设计3部分,这里重点阐述前两部分,具体如下:

2.1.1FPGA最小系统设计

1)底板设计

控制器底板硬件设计包括FPGA最小系统与USB2.0通讯接口两部分电路设计。

2)存储板设计

本采集系统初步设计为16通道。与多级流水线的设计相匹配,存储板需要21片NAND型FLASH器件,对应7级流水线,每级3片NAND型FLASH,该FLASH器件选用MT29F2G16,该器件容量为2 G×16 bit,电平标准为3.3 V,电平与FPGA兼容。

3)程序配置电路

FPGA是SRAM型结构,因此需要一片FLASH结构的配置芯片来存储配置信息,用于进行上电复位。本设计中的配置芯片选用EPCS128。

4)信号转换板设计

由于本采集存储系统的数字探针输出信号为峰峰值为0.4 V,该信号过小且容易受到干扰。如果将此信号直接输入到FPGA的I/O口,很难被准确检测。因此需要对信号进行放大,所利用的信号转换器件为高速运放ADA4891-2,其单通道信号转换电路如图2所示。

图2 ADA4891接口电路

2.1.2多级流水线电路设计

这里利用多级流水线工作原理来解决数据采集与满足数据存储之间的读写速度匹配问题。

1)多级流水线工作原理

这里以16通道的存储模块、并以50 MHz采样频率为例进行说明。

16路被采信号经过阻抗匹配电路输入至FPGA的I/O口,经过MUX处理存入FPGA内部建立的3块FIFO内,具体存放顺序为:第1个字存入第一块FIFO,第2个字存入第二块FIFO,第3个字存入第3块FIFO,第4个字存入第一块FIFO,依次循环,等第3块FIFO存满1024字时,同时对3块FIFO进行读取,把第一个FIFO的1024字对第一级第一片Flash进行写寄存器,把第二个FIFO的1024字对第一级第二片Flash进行写寄存器,把第3个FIFO的1024字对第一级第3片Flash进行写寄存器,在读取FIFO的过程中,数据不断的往每一个FIFO内进行存储。每一块的FIFO读完1024字之后,等待第3块FIFO下一次再次存满1024字时,再进行下一次的读取FIFO,把下一次的3块FIFO中的数据存入下一级的3片Flash中,依次循环。采集与存储流程示意图如图3所示。

图3 采集与存储流程示意图

2)FIFO设计

本方案中FPGA建立3块2KWord的FIFO,具体设计理由阐述如下:

①FIFO空间设计

本采集仪NAND型FLASH器件型号为MT29F2G16,该器件的写周期最小值为25 ns,自动编程时间为220~600 μs。由于Flash的页写空间为1KWord,因此一个FIFO的空间至少需要大于1KWord,留有一定余量,因此选取每块FIFO的空间大小为2KWord。

②FIFO块数设计

由于采样频率为50 MHz,而Flash的写入频率最大为25 MHz(字写入的时间twc最快为35 ns,留有一定的余量,取40 ns),因此,需要采用乒乓算法,把采样频率由50 MHz降低为25 MHz,因此FIFO块数至少需要3片FIFO(50/25=2,留一定余量,取3),所以FIFO块数需要拥有3片FIFO。因此相当于每块FIFO的输入频率为16.7 MHz。

③Flash片数的选择

Flash的写入分两个步骤:写页寄存器和页编程,前一过程时间较短而后一过程时间较长。当被采信号为50 MHz时,由于Flash的页写大小为1KWord,而每一个字写入的时间Twc最小值为40 ns(手册上所给出的最小值为25 ns),因此页写的时间Tpage=Twc*1 024=40*1 024 ns=42 us,而页编程时间Tprog典型值为220 us,所以除了第一片Flash以外还需要的Flash级数n=Tprog/TwrFIFO=220/42=5.2,加上第一级,共6.2,留有一定的余量,取n为7级。FLASH流水线示意图如图4所示。

2.2软件开发

数据存储模块主要包括以下功能:命令接收与执行功能(控制器底板可以接收上位机软件所发送来的采集、暂停、复位、读取、退出命令,并执行相应的命令);数据采集与存储功能(下位机在收到上位机发送的采集存储命令之后,将基于流水线操作实现多通道数据采集与存储功能,直至结束);数据读取与发送功能(下位机在收到上位机发送的读取命令之后,将通过USB接口向上位机发送所采集存储的数据)。通过软件实现主要归纳为以下几个部分:1)USB2.0通讯功能的软件开发;2)FLASH器件读写/擦除功能的软件开发;3)数据采集存储功能的软件开发;4)数据读取发送功能的软件开发。其中第1)部分为上下位机按约定的通讯协议格式进行通信完成特定的命令解析功能,这里限于篇幅,仅对2)~4)部分软件开发进行介绍。

图4 Flash流水线操作示意图

2.2.1FLASH器件读写/擦除功能的软件开发

以MT29F2G16ABAEAWP为FLASH器件,下面给出其操作(包括页读、页写、块擦除)的软件开发过程,具体仿真时序如图5所示。

图5 Flash操作时序图

2.2.2数据采集存储功能的软件开发

对于存储板所需采集的通道而言,按照前面的多级流水线采集存储示意图,每16通道共需要3个大小为2 k的FIFO参与数据采集、需要7级流水线共计21片的阵列(简称存储板)参与数据存储。下面将给出单组数据采集存储的仿真时序图如图6所示。

图6 数据采集存储仿真时序图

2.2.3数据读取发送功能的软件开发

对于数据读取发送功能的软件开发,其中数据读取是数据存储的逆过程,将按照先前存储时标进行依次读取,数据发送则是按照快速写入到FPGA的FIFO中后采取块发送(64 kB)的方式。

3 上位机软件设计

上位机设计为软件设计,采用基于VC6.0的图形化设计方法,主要实现以下功能如下:命令发送功能(上位机软件可以向采集存储板发送采集、暂停、复位、读取、退出命令,下位机根据收到的命令实行相应的操作);数据读取与文件保存功能(上位机在向下位机发送读取命令之后,下位机向上位机发送数据。在接收的过程中,数据进行实时保存,直至结束);数据显示与波形控制功能(上位机可以打开所保存的文件,并对文件内容进行曲线显示,针对所显示的曲线,可以对曲线进行拖动、选择、放大、缩小等控制);文件时序对比分析功能(上位机软件可以对2个文件的时序进行比对,并把比对出不同数据的时间、数值进行显示)。这里重点阐述数据显示和数据分析两个方面,具体如下:

3.1数据显示

同样利用内存映射文件技术,将文件对象全部或部分映射到创建的文件映射中,通过指向文件映射的指针快速对文件进行访问。对于波形显示,不可能同时将几十个G的数据内容同时显示在波形上,这是不切实际的,那么就必须进行分段显示,由于利用内存文件映射技术,可以快速的从这几十个G的文件中取到某个时刻要显示数据块,并将该数据块快速显示在波形上,根据实际情况控制好显示的速度。

3.2数据时序分析对比

同时打开2个帧头相同的文件,显示的实现办法还是利用内存映射文件进行显示,在拉动时间进度条时,需要改变内存映射的地址。

4 具体应用测试

采集存储系统的使用及其具体的硬件测试电路框图如图1所示。整个测试过程如下:PC上位机发送采集命令中的各种状态控制字,下位机解析进行数据采集并完成数据的上传,经测试,所采集的16通道数据满足产品输出型号的特征,测试效果如图7所示。

图7 数据采集界面

5 结束语

本文在对基于FPGA的数据采集存储系统架构进行系统诠释的基础上,从最小系统、存储板以及信号转换板3个方面,对系统的硬件进行设计与仿真,并基于VC6.0,开发出与下位机相配套的采集软件,并对实际待测信号进行了测试验证,试验结果表明待测通道的信号满足设计的采集存储要求,满足后续产品应用测试的需求。

[1]刘继武,胡修林,张蕴玉,等.高速大容量存储通道的设计[J].华中科技大学学报:自然科学版,2005,33(11):30-32.

[2]马晓明,赵凤军.高速大容量固态存储系统的设计[J].科学技术与工程,2009,12(9):3512-3514.

[3]马培娇,张宇光,姚永兴,等.高速大容量存储系统的关键技术实现[J].化工自动化及仪表,2011,38(7):869-872.

[4]李超,王虹现,邢孟道.高速大容量FLASH存储系统设计[J].火控雷达技术,2007,36(3):83-88.

[5]刘瑞,黄鲁,陈楠.基于FLASH的高速固态存储系统设计[J].测控技术,2009,28(4):10-14.

[6]胡世明,康怀祺,滕云龙.高速大容量存储系统的应用设计[J].火控雷达技术,2012,41(1):34-38,80.

Design and implementation of data acquisition and storage system based on FPGA

LI Jin-meng
(State-owned Wuhu Machinery Factory,Wuhu 241007,China)

For the purpose of the product test analysis after collected and recorded the bus data onto the large scale integrated circuits testing.It is adopted software and hardware design method of data acquisition and storage system which based on FPGA.The hardware adopted"Host computer+Slave computer"structures,Slave computer is controlled flash disk arrays of the FPGA directly,Achieve long time data acquisition and storage,The Host computer analysis data through the USB interface after the completion of the acquisition,Through the design and simulation of acquisition system hardware,and developed the software of the control box is.The 16 bus data signals collected by practical data acquisition experiment is effective.

acquisition;storage;Assembly line;FIFO;FPGA

TN06

A

1674-6236(2016)13-0085-03

2015-07-04稿件编号:201507043

李金猛(1981—),男,江苏建湖人,硕士研究生,工程师。研究方向:电子设备测控技术。

猜你喜欢
下位存储系统流水线
分布式存储系统在企业档案管理中的应用
流水线
天河超算存储系统在美创佳绩
发射机房监控系统之下位机
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
报废汽车拆解半自动流水线研究
华为震撼发布新一代OceanStor 18000 V3系列高端存储系统
CAN总线并发通信时下位机应用软件设计
流水线生产杀死艺术