微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ARM的振动信号采集及文件存储系统

基于ARM的振动信号采集及文件存储系统

时间:09-12 来源:互联网 点击:

除、修改和查找等功能。主要包括SPI模式的配置、SPI字节的读写实现、SD卡的读写实现和USB接口的配置。

②RTC时钟配置。利用LPC1768内含的RTC设备实现实时时钟功能,主要包括时钟频率的选择SysTick_Config、RTC实时时钟的初始化RTC_Init及设定RTC_SetFullTime,为文件系统提供准确的时间,可实现对每个存储文件的时间标记。

③FatFs的移植。对FatFs接口函数的编写,主要包括:存储介质初始化函数disk_initialize、存储介质状态检测函数disk_status、读扇区函数disk_read、写扇区函数disk _write、存储介质控制函数disk_ioctl等。

3.2 算法设计和软件流程实现

LPC1768微控制器内置一个8通道的12位A/D转换器,而该采集系统仅用到单路信号输入,可以实现较高频率的采样,提高了采集数据的精度。软件设计思想是在系统初始化后首先进行模式的判断,分为采集模式和USB通信模式。在采集模式下,正式数据采集存储前先进行数据预采集,对预采集的信号进行采样处理,计算采集到的信号的幅值差,并与满量程3.3 V进行判断是否需要调节和计算出调节值。通过I2C总线来调节AD5245,预调节完成后进行正式信号采集,把采集到的数据进行数字滤波并存储到数组中,数组中的数据通过SPI总线存储在SD卡中,存储完成后通过功放播放语音信号提示完成。USB模式主要为SD卡中数据与PC机的通信。主流程如图5所示。

3.2.1 信号幅值检测的算法

在程控放大器的设计中,对被测信号振幅的检测至关重要,它是实现程控放大的关键。以往的程控放大器,多数是根据被测信号的幅值来调节程控放大器的放大倍数,此方法比较适合直流信号的检测。交流信号的幅值是变化的,若根据被测信号的幅值调节程控放大器的增益,需要时刻改变程控放大器的增益,这将浪费CPU的很多资源,影响了A/D转换的速度,限制了被测信号的范围。因器件程序的计算和器件的延时也会给测量结果带来很大的误差,不适合做高频信号的采集。

故本设计采用预采集进行幅值判断,具体方法为开辟定长的数组Buffer用来存储预采集信号,同时注意在设定此Buffer长度的时候,一定要满足该长度至少为待采集信号的一个周期,然后对预采集信号进行处理判断,确定调节值及调节方向。

对预采集信号的处理:首先要计算出数组中的最大值和最小值,由于定义的数组可能较大,故给出一种新的算法代码,以大幅提高其效率(n很大时)。具体做法是:每次成对地处理数据,先将一对元素进行比较,然后把较大者与当前最大值比较,较小者与当前最小者比较,因此每两个元素需要比较3次。具体实现时需考虑n的奇偶,n为奇数,3×(n /2)次;n为偶数,3n/2—2次,因此总的比较次数至多为3×(n-2),大大提高了计算的速度。

根据以上算法可得△V=Vmax-Vmin,故需要调节的放大倍数β约为:

这样就计算出了需要调节的AD5245_W的调节值,通过I2C总线通信完成调节,进而进行数据的正式采集。

4 实验结果及分析

通过对系统进行设计和实现,并对系统进行了测试,在采样频率为50 kHz下,对振动信号进行采样分析,预采集信号时间长度为50 ms,正式采集长度为4 00ms,由频带为1~10 kHz的激励源来激振被测物体,同时实验存储数据格式为标准的WAV格式。通过USB接口上传到PC,用上位机频谱分析软件对实验数据原信号和频谱分析进行对比试验,试验现象如图6所示。

通过对普通采样系统和本系统采样的原信号对比,可见在相同振动激励下普通信号采集系统采集出信号的幅值最大值约为1000,并未填满A/D转换采集模块最大的量程4096而本系统通过对信号的自适应放大,可将采集信号幅值最大提高到4 000左右,在一定程度上提高了信号采集的精度。

对普通采样系统和本系统采样信号的频谱分析图进行对比,如图7所示。

可见普通采集系统的信号的频谱分析不仅能量值较小,而且易受到其他频率波的干扰,信噪比较低,影响了对信号特征的有效分析,而本采集系统则能较好地解决此类问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top