APP下载

基于AD7173的多通道数据采集高速存储系统

2018-05-14牛婉琳刘磊甄国涌焦新泉李辉景宋坤涛

中国测试 2018年3期

牛婉琳 刘磊 甄国涌 焦新泉 李辉景 宋坤涛

摘要:为解决测试系统中弹内空间狭小、无法同时容纳多套传统数据采集系统的问题.设计基于AD7173的多通道数据采集高速存储系统,实现对多传感器(四轴MEMS加速度计、四轴MEMS陀螺仪、三轴地磁传感器和温度传感器)的高精度采集存储。选用∑一△型高精度模数转换芯片AD7173实现对多路传感器信号的模数转换;在转换时实时监测数据的准确性,并通过芯片的RDY引脚作为STM32外部中断来判断是否转换完成,以此来实现高精度的数据采集,并通过流水线设计实现数据的高速存储。试验结果表明:输入角速率与敏感角速率误差控制在±0.0017°/s以内。对多个传感器的采集验证表明该数据采集高速存储系统能够实现对多通道信息的高精度采集存储,具有一定的工程应用价值。

关键词:高精度数据采集;高速数据存储;多通道;MEMS传感器

0引言

在国外,因为数据采集存储系统研发较早,所以在技术方面占据领先优势,如美国DT公司、法国ETEP公司以及奥地利DEWESOFT公司等。ETEP公司的产品主要优势是可在恶劣的环境下稳定运行,其中S800属于較经典一款,其数据传输速率最高可达800MB/s,支持存储器最大容量为8TB,传输媒介支持多样化,比如USB、光纤电缆、CAN等。DEWESOFT公司新一代数据采集系统不仅配备具有隔离作用的输入放大器,而且还实现160 dB的超高动态范围,可达每通道200 kHz的采样率,同步智能实时计数器。

我国相比较国外的研发水平有一定的差距,这是由于研发与设计起步较晚。但经过多年的努力,我国也出现一些有竞争力的单位,比如中北大学、北京阿尔泰科技发展有限公司等。中北大学在国内数据采集存储方面所研制的产品主要面向航天、航海及军事领域,最典型的案例就是辅助我国成功完成天宫二号的发射,并且能够完整地获取相关数据参数,为我国载人航天工程做出贡献。

目前我国大多数常规炮弹采用微惯性测量系统进行惯性制导与控制,炮弹在发射到落地的过程中其滚转轴转速和加速度的变化量较大,若采用单一量程传感器,会导致测量精度降低,所以采用冗余设计来解决此问题。由于传感器数量的增加且弹内空间狭小,传统的数据采集记录系统难以实现多通道的数据采集,本系统设计的基于AD7173的多通道数据采集存储系统最大可以实现对十六通道信息的高精度实时采集存储,通过回收固态存储器中的数据,可以分析飞行过程中记录的各项指标性能。

1系统硬件设计

本系统主要实现对多路模拟信号的高精度采集存储,STM32单片机控制高精度模数转换芯片AD7173,将经过信号调理后的传感器输出模拟信号进行采样、量化,然后将数据在单片机内部进行编帧和缓存,最后再控制将数据存储到大容量的固态存储器Hash中。系统硬件设计框图如图1所示,由电源模块、信号调理模块、模数转换模块、存储模块和控制模块组成。

系统由电源模块供电,电源输出的可靠性和精度会直接影响到整个系统的性能指标。考虑到机载和弹载的特殊应用环境,本设计选用质量轻、能量密度高的锂电池作为系统的外部供电电源,系统内部选用REGl04-5为信号调理和模数转换模块供电,选用AMS1117-3.3为单片机和Flash存储模块供电。

信号调理电路的作用主要是对待测信号进行放大、滤波等操作转换成为采集设备能够识别的标准信号。

模数转换芯片的转换精度决定了数据采集系统采样精度,本数据采集系统的模数转换芯片选用低功耗、高精度、快速建立的24位∑-A型模数转换芯片AD7173。该芯片采用三线SPI通信方式,地址、命令、数据线共用一个SPI接口,在很大程度上减少了I/O口的使用量:其内部集成数字滤波器可产生2.5 v参考电压,降低了外围电路的复杂程度。

存储模块用于存机载和弹载测试系统输出的传感器原始数据,以便飞行试验后对系统回收后进行数据的回读、解算和分析。因飞行器飞行时间相对较短、动态性高,所以需要进行短时、快速的数据存储。

控制模块采用基于Contex-M4架构的32位STM32F405RGT6型微控单元,其主频可达168 MHz,让数据的快速传输和存储成为可能。其主要功能为对模数转换的控制,数据的编帧、传输和存储等。

2系统软件设计

系统以STM32为主控单元,通过SPI串口控制模数转换模块对传感器输出的模拟信号进行采样、保持并判断模数转换模块是否转换完成,然后通过对转换完成后的数字信号进行编帧并存储于Flash中。系统的程序流程框图如图2所示。

2.1 A/D采集

AD7173采用SPI接口进行数字通信,工作模式为SPI模式3:通过配置ADCMODE、IFMODE等寄存器使芯片工作在连续转换模式和非连续读取模式并在24位数据前附加读取时的状态信息(ADC和串行接口的状态信息),以便实时检测数据的正确性。在连续转换模式下,通过RDY引脚作为STM32外部中断来判断是否转换完成,转换完成后控制模数将数据通过SPI传输给STM32进行编帧、缓存。

2.2数据缓存

本系统采用的AD7173最高采样率为31250S/s,每通道数据为4B,本数据采集系统中的Flash采用页编程,每页的最短编程时间为200μs,在页编程期间会产生25 B左右的数据,为了保证数据的完整性,故采用循环数组的方式来缓存数据。

循环数组实现方式为:设指针两个变量分别指示队列头元素和尾元素,初始化时,令队列头元素和尾元素等于0。当有新数据写入队列尾时,尾元素加1;当读出数据时,头元素加1;当头元素或者尾元素为最大队列数时,将其置0,以实现数据的循环缓存。

2.3Flash高速存储

高速存储常用方法为多片NAND Flash构建存储阵列。在存储阵列基础上,流水线设计为常用高速存储技术之一。流水线操作原理如图3所示。

由图3可知,加载完第1片Flash数据后,进入busy状态,然后把数据送入第2片Flash;加载完第2片Flash数据后,再把数据送人下一片Flash;同理,加载完第Ⅳ片Flash数据后,第Ⅳ片进入busy状态,此时已完成第1片Flash数据的加载,进入readv状态,可以进行数据加载,再次将数据送入第1片Flash。通过循环上述操作可完成高速数据的持续存储。

Hash存储芯片数据加载时间为164.13μs,页编程时间560 μs,至少需要5片才能满足以上流水线操作。因為第1片数据加载完之后的4片数据加载时间为164.13 μsx4=656.52μs,正好大于第1片页编程时间,能够满足流水线操作。每个存储芯片内部有两个target,相当于两片Hash,因此本设计选用3个Flash芯片完成流水线操作。理想状态时(不考虑无效块识别、地址操作、以及每个Flash之间切换),这3个Flash芯片(6片Flash)可达到8 KB+164.13μs=47.599 MB/s存储速度,实现数据的高速存储。

3系统验证

本数据采集系统的主要功能是对多路模拟信号的高精度采集与传输,采用静态测试和动态测试来验证本数据采集系统是否可靠可行。

3.1静态测试

利用本数据采集系统以31 250S/s的采样率对多个干电池进行电压采集,读出Hash中的数据,利用上位机进行数据分离,将3 B的原始数据转化为十进制记为x,AD7173输出电压的模拟量u与数字量x的对应关系为

根据式(1),利用Matlab将其中一个通道采集到的数据转化为电压值,并绘出相应的关系如图4所示,噪声0.1 mV左右。经测试,本采集系统采集到的数据正确有效,无错帧、丢帧现象。

3.2动态测试

利用本数据采集系统对某惯性组合传感器(三轴陀螺、三轴加速度计、三轴地磁传感器、一轴高过载传感器)进行采集,其中三轴MEMS陀螺(±75°/s)在9组不同转速的组态下(-75°/s,-50°/s,-30°/s,-10°/s,0°/s,10°/s,30°/s,50°/s,75°/s)进行采集,每个组态稳定20 s。用Matlab对数据采集系统输出的原始数据进行分离,MEMS陀螺的输出电压与敏感角速率大小之间的关系,即MEMS陀螺的一阶模型为

由式(2)可以将陀螺输出的电压值转换为其敏感角速率的大小,并将其与三轴转台外框的实际转动角速率进行对比,结果如表1所示,误差控制在±0.0017°/s以内。经测试,本采集系统能够实现多路传感器信息的高精度采集。

4结束语

本数据采集系统采用AD7173与STM32F405RGT6完成对数据的采集处理,实现了数据的多通道、高精度采集,能够实时存储采集到的数据,而且系统外围电路简单,程序可移植性高,系统功能扩展容易。经试验证,系统稳定可靠,能够满足一般的工程性应用要求。