0 引言
信息技术的发展,特别是各种数字处理器件处理速度的提高,实时处理大量的数据已经成为现实。但是,在一些恶劣环境和数据无法进行实时传输的情况下,还必须用到存储测试的方法。存储测试是指在对被测对象无影响或影响在允许的范围条件下,在被测体内置入微型存储测试系统,现场实时完成信息快速采集与存储,事后对存储器进行回收,由计算机处理和再现被测信息的一种动态测试技术。针对具体的情况,我们研制开发了一种用蓄电池就可工作的、能在各种恶劣环境下应用的、可回收的小体积低功耗的大容量数据采集存储系统。
1 系统总体设计
整个系统以FPGA为核心控制器来组织工作,它控制着整个系统的读、写、擦除等操作。系统主要解决的问题是采集、存储和数据事后读取。系统整体框图如下图1所示。
1.1 数据采集
由于要同时对多路信号进行采集,我们采取了FPGA对模拟开关进行均等时间推进以实现通道的转换。当转换到某一通道时,FPGA同时要启动A/D进行模数转换。为了达到高精度采集的目的,采用16位的AD转换器AD762l,模拟开关选用ADG706。以下是AD转换器的硬件电路连接图2。
1.2 AD采集时序
AD采集时序图如下图3所示。AD采集过程从/CNVST信号下降沿开始,BUSY信号下降沿完成,BYTE信号控制数据类型,低电平为低8位数据,高电平为高8位数据。延迟0.9us给出第一个WRFIFO信号,WRFIF0高电平有效,在此期间数据线上的数据为低8位数据,经过1.8us的低电平后,给出第二个WRCLK信号,此时数据为高8位数据,一个数据的转换完成。图3 AD采集时序图
1.3 数据存储
对数据的存储,我们采用闪存(FLASH Memory)作为存储器.它具有体积小、功耗低和数据不易丢失的特点。对FLASH的写操作过程有其固定的操作模式,如图3所示。由于FLASH是按页存储的,当一页写完之后要进行下一页的控制字和地址的重新写入,为了使采集回来的数据能及时准确的写/kFLASH,而不至于在页与页的交替时间内使数据丢失.所以不可能将采集回的数据直接存入FLASH,我们利用FPGA内部集成FIF0来缓存FLASH MEMORY编程期间A/D控制器上传的数据,A/D转换器总的采样率为12KSPS,精度为12位,加上通道号和帧计数,每秒钟A/D控制器上传到FIF0的数据为34KB。FLASH MEMORY最大编程时间为300us。在FLASH MEMORY编程期间A/D转换器上传到FIF0的数据为:34KB×300us=10.2B。因此FPGA内部集成FIF0设计成宽度为一个字节,深度为1024的异步FIFO,即总容量为1KB,完全能够缓存FLASH MEMORY编程期间A/D控制器上传的数据。