基于STM32的MEMS矢量水听器实时定向系统
2022-07-02张一凡张国军荆博原梁晓琦
张一凡,张国军,荆博原,朱 珊,梁晓琦
(中北大学,省部共建动态测试技术国家重点实验室,山西太原 030051)
0 引言
随着对海洋资源开发利用的重视,对水下目标进行实时方位估计成为近年来重要的研究课题[1]。矢量水听器不仅可以检测水下目标的声压信息,还能够检测振速信息。因此,矢量水听器具有单支就可以进行目标方位估计的优势[2-3]。设计的定向系统使用自主研制的仿生MEMS矢量水听器,该水听器具有体积小、成本低、灵敏度高以及指向性良好等优点。随着水听器制作工艺以及工作性能的不断优化,该矢量水听器将被广泛应用于水声领域[4-5]。因此,设计基于STM32的MEMS矢量水听器定向系统对水下目标探测具有重要意义。
1 总体设计方案
基于STM32的MEMS矢量水听器实时定向系统主要由MEMS矢量水听器、信号调理电路模块、A/D转化模块、STM32单片机核心控制模块以及串口通信模块等部分组成。为了达到实时计算方位角的目的,将具有良好的抗同向干扰的平均声强器算法集成到单片机中,对采集的目标声源信息进行处理计算,并将计算结果通过串口发送到上位机,系统的总体设计方案如图1所示。
图1 总体设计方案
STM32作为实时定向系统的主控单元,负责整个定向系统的控制、数据采集和处理等任务,它主要控制MEMS矢量水听器、A/D转化电路模块、串口通信模块以及数据处理模块进行工作,分别获得声源目标的标量信息以及矢量信息,然后对这些信息进行分析与处理,以实现对目标方位的实时计算。同时STM32控制串口通信模块将方位角的计算结果在计算机串口界面进行输出显示。
2 定向原理
2.1 矢量水听器原理
研制的MEMS矢量水听器采用了仿生原理、MEMS技术以及压阻效应实现了水下微弱声信号的识别,四梁结构和刚性柱体组成的敏感单元来检测矢量声信号,利用压电陶瓷采集标量声信号,即声压信号[6],敏感单元如图2所示。
图2 敏感单元
声信号在水中以波的形式进行传播[7],当纤毛在水中检测到波动时发生偏转,十字悬臂梁上的压敏电阻产生相应变化,在x和y方向分别由4个压敏电阻构成的惠斯登电桥会将这种变化转换为相应电压值的变化。基于MEMS矢量仿生水听器,可以检测到μV级别的声信号[8-9],实现了矢量声信号的采集,而压电陶瓷在接收声信号时,在其内外表面会产生极性相反的电荷,也实现了声信号到电信号的转变[10]。
2.2 测向原理
在自然环境中,各向同性噪声往往是噪声的主要成分,为提高输入信号的信噪比,减少各向同性噪声在计算方位角时对计算结果造成的误差,定向系统需选用具有较好抗各向同性噪声能力的平均声强法进行方位角计算[11-12],平均声强器原理图如图3所示。
图3 平均声强器原理
在图3中np、nx、ny表示各向同性噪声场中的噪声,他们与目标声源x(t)是相互独立的,依据图3,可得计算式如下[13-14]:
(1)
式中:p(t)为声压;Vx(t)和Vy(t)分别为X和Y方向的振速;θ为水平方位角;α为垂直方位角。
如图3所示,对采集的信号进行平均算法并对其进行化简,化简结果如下:
(2)
(3)
3 硬件电路设计
硬件电路设计主要包括主控单元模块、A/D转化模块、微弱信号处理模块以及串口通信模块。
3.1 主控单元模块
定向系统将具有丰富片上外设的单片机STM32F103作为核心处理芯片,通过单片机的FSMC并口驱动AD7606进行电信号的模数转换,单片机通过串口通信模块将目标方位角的计算结果进行输出显示,并通过串口通信模块实现程序的下载。将单片机STM32、供电电路和A/D转换模块进行集成,最终设计直径为42 mm的圆形电路板,方便其放入管壳。单片机STM32F103与A/D转换芯片AD7606分别放置在PCB板的两侧,极大地减小了硬件电路的体积,实现了定向系统的小型化设计。主控芯片电路图如图4所示。
图4 主控芯片电路
3.2 放大电路模块
图5 放大电路模块
3.3 A/D转换电路模块
通过A/D转换模块将矢量水听器输出的模拟电信号转化成数字信号来进行后续的方位计算。本文使用AD7606作为转化芯片,具有较高的采样率,可进行8路通道的数据采集以及最高可达200 KSPS的16 bit模数转化。本文将OS0、OS1和OS2同时接地使得AD7606以最高的采样速率运行,采用5 V单电源供电,使用8080并口读取A/D转换的原始数据,同时对矢量水听器采集的3路信号进行数据转换,A/D转化电路模块如图6所示。
图6 A/D转化电路模块
4 软件设计
软件设计在STM32CubeMX和Keil uVision5软件开发平台中完成,核心部分为将平均声强器算法集成到单片机中进行方位角的实时计算。STM32CubeMX的使用在很大程度上减小了软件设计的难度。
为了保证方位角计算的实时性,需要将采集的声源信息经AD7606转换后通过SPI 发送到单片机,直接在单片机进行方位角的计算。软件设计的整体流程如图7所示,首先将单片机和AD7606进行复位以及初始化,在STM32CubeMX中对FSMC的映射地址空间、数据存储类型以及地址和数据建立时间等进行配置,根据设置选择不同的映射地址起始位。CVA和CVB是启动A/D转换的控制信号输入端,输入上升沿,启动A/D转换,当引脚RD输入下降沿时开始读取数据。
图7 软件设计的整体流程
平均声强器软件处理流程为:将x和y方向的矢量信息与声压信息进行叉乘,将计算结果寄存到定义的存储单元中。将x和y方向的计算结果进行多次叠加求取平均值,最后根据平均声强器算法计算出方位角。
将计算得到的方位角通过串口发送到上位机中进行数据显示,调用串口中断查询的方式实现单片机与上位机之间的串口通信,达到了方位角的实时计算及显示的目的。
5 系统功能实验测试
为了验证定向系统的可行性和准确性,将设计好的定向系统放入驻波桶中进行室内测试,定向系统的整体结构如图8所示。
图8 定向系统的整体结构
5.1 角度实时计算测试
在驻波桶内进行角度实时计算实验,测试环境如图9所示。发声频率设置为315 Hz,控制自动升降装置进行角度旋转,通过串口进行角度的读取,实验结果如表1所示,测量范围在-180°~180°之间。将水听器固定到测试装置上,通过右侧的回旋控制仪旋转水听器,从而改变水听器与声源的相对方位角。由表1可知,实际角度与计算角度误差角度在3°以内。
图9 测试环境
表1 驻波桶测试结果 (°)
5.2 数据采集测试
设计的实时定向系统可以实现方位角的实时输出显示,还可以通过串口将采集的3路信号传输到计算机上以.TXT文件形式进行存储,数据传输界面如图10所示。
图10 数据传输界面
为了测试定向系统在计算机上进行数据存储的准确性,在回旋控制仪显示-20°时,对应水听器的实际方位角为102°,将3路声信号通过串口以.TXT格式的文件存储在计算机上,然后通过MATLAB对数据进行时域、频域分析以及方位角计算,分析结果如图11~图13所示。图11中的T表示采集到的声压信号,X和Y分别为X和Y方向的振速信号。
图11 X和Y方向的振速信号和声压信号的时域图
实验结束后,对通过串口回传到计算机上的原始数据进行分析处理,从图11~图12中可以看出采集的声信号频率为315 Hz的正弦波信号,与测试定向系统时驻波桶所发射的声信号一致。使用平均声强算法进行方位角度的计算,计算结果如图13所示,可以看出角度计算结果为102°,与回转坐标系统设定角度误差为0°。
(a)X方向振速信号
图13 方位角计算结果
6 结束语
从测试结果可以看出,设计的基于STM32的MEMS矢量水听器定向系统可以精确地采集目标声源信息,同时实现对水下全方位目标的实时方位估计,定向误差为3°,并且可以在串口端直观地看到方位角的度数变化,对后期MEMS矢量水听器在水下平台上实现目标的实时定向具有重要意义。