1、引言
在高频的超声波数据采集及频率分析的应用中,通常会采用实收实发的系统来模拟收到信号,目前最经常采用的模式是使用下位机高速连续采样,上位机进行数据分析的模式,然后在将检测的信号通过D/A发送出去。这种模式可以完成M级甚至于G级的数据连续采样,目前已经在高速的工业信号采集中得到了广泛的应用。
提出基于STM32的实收实发系统,主控芯片采用目前最新的STM32F407芯片,属于ARM公司推出的最新一代低功耗高性能片上系统,内核为CORTexM4,最高主频可以到168MHz,内部采用ARM的精简指令集,单周期指令,并且集成了ARM公司的浮点DSP指令集,可以对数据进行信号滤波以及FFT运算,计算能力超过TI的200M主频的DSP;由于采用了片上系统设计,因此片内集成了大量的外设,具有较强的控制通信能力,很适合在工业控制信号处理中使用。整个系统基于STM32的低功耗设计,且系统体积较小,整个系统可以在不依赖主机的情况下进行独立工作,具有较好的应用前景。
2、系统组成结构
提出基于STM32的超声波实收实发系统主要由3部分构成:1)信号调理;2)数据采样分析;3)PWM发射组成。硬件总体设计如图1所示。
图1 总体设计方案
系统的核心处理器采用了基于CORTexM4内核的STM32F407芯片,最高稳定工作主频为168MHz,内核功耗仅为128μA/MHz,采用ARM的32bIT精简指令集,单周期指令,并且集成了ARM公司的浮点DSP指令集,拥有乘累加器与除法器,可以对数据进行信号滤波以及FFT运算,计算能力较强,并且可以采用开源的ARM-gCC编译器进行编译,软件设计较为灵活,同时意法半导体已经将芯片的内核及外设都编写了驱动库,更加简化了应用的难度。
3、信号调理部分设计
信号调理部分采用了模拟比较器输入的结构,结构如图2所示。
图2 模拟比较器输入结构
信号通过高速运放搭建的模拟比较器,比较器的比较电压通过STM32F407的DAC提供,用于初始化进行噪声采集,门限自适应,这样可以滤除存在于信道中的噪声。
信号经过了模拟比较器后得到了一个标准的方波信号,方波信号进入到STM32F407的IO口中。
4、信号判断及处理
首先利用STM32F407片内的ADC对外部噪声进行采集,由于需要判断的信号频率在300~500kHz,因此采样率需要设定为500kHz的2倍以上。
STM32F407的单个ADC控制器工作的最高频率为36MHz,并且一个采样周期最短为15个工作周期,因此最大的采样率为2.4MHz。不过对于更为高速的信号,STM32F407可以将3路ADC并联使用,形成交错采样,因此STM32F407最高的采样率为7.2MHz。
图3 噪声采集设计原理
为了 保证采样的精度,因此采用了2路ADC并联使用,使得采样率达到4.8MHz,保证了在500kHz的噪声频带上也能有10倍的采样率。噪声采集设计原理如图3所示。
将噪声采集后使用DMA传输8192个点的噪声信号,计算噪声的幅度,并根据噪声的最大值与均方根值确定比较器的电压幅度门限,然后通过DAC发出门限电压信号给比较器,形成电压门限。
承载了单频脉冲的待测信号经过了模拟比较器后变成了1个方波信号,方波信号进入了STM32F407芯片的PA0脚,在PA0脚中会产生一个上升沿的脉冲信号,该上升沿会触发中断,从而开始记录信号的脉冲次数以及信号的脉冲长度,通过脉冲长度与脉冲次数的商值可以得到信号的频率、脉宽。当信号的2次脉冲的间隔小于预设区间或者大于预设区间时,就会被判定为无效脉冲或者是噪声脉冲,由此减小信号的虚警概率。频率计算如式(1)。
单个信号周期时间=脉冲宽度时间/信号上升沿(1)
频率脉宽测量流程如图4所示。
图4 频率脉宽测量流程
经过频率计算后,通过定时器进行物理延时,模拟信号传播的时间,在延时后,启动PWM定时器,将测量的频率值输入至PWM定时器中。同时再启动一个定时器,作为控制PWM信号脉冲宽度的定时器。控制脉冲宽度的定时器控制发射的时间需要比检测到的脉冲长度长20%,以模拟接收到的高频声信号的拖尾现象。PWM脉冲发射控制流程如图5所示。
图5 PWM脉冲发射控制流程
5、软件设计
软件设计的分为了2个部分,第1部分为主功能模块设计,这部分的设计流程已在信号判断处理这部分中进行了详细的阐述;第2部分为总体工作模块,这部分需要对软件进行整体的架构设计,同时在整体框架下还包括了子通信模块。整体软件的架构如图6所示。
图6 软件总体设计流程
整体软件的架构由信号判断处理模块、延时工作模块、通信模块等4个部分组成,信号判断处理软件模块用于噪声门限、信号频率判断的程序。
第4个部分是SD卡的存储,STM32F407有一个SDIO的接口,可以实现4线SD卡存储或者是其他符合SDIO协议的设备工作,例如SDIOWIFI设备等。这里采用了基于2.0标准的SDHC卡,这种类型的卡出了容量远远大于第1代标准的卡以外,在初始化的程序上也有所不同,加入了CMD8命令用于确认工作电压是否稳定,具体初始化与工作的流程如图7所示。
图7 SD卡初始化流程
6、系统测试
首先建立测试环境,模拟一个40M距离的声传播反射通道,试验现场情况如图8所示。
图8 试验现场情况
系统测试首先给出噪声信号进行预处理,经过采集的噪声后,将数据通过进行保存并用于确定门限,噪声信号采集如图9所示。
图9 噪声信号采集
预处理结束后中接入3组单频脉冲信号,分别为300kHz、400kHz、500kHz的单频脉冲信号,初始信号通过传播管道进行超声传递,本系统根据噪声信号确定门限,检测到传播的信号,并准确测量出给定信号的频率,最终输出的PWM信号,输出信号结果如图10所示。图10(A)为输出的单个脉冲内的方波信号,图(b)为单频脉冲信号在长时间下的情况。
图10 PWM结果输出
7、结论
研究了基于STM32的实收实发系统,通过对比分析各种不同的信号发生系统,得出了本系统的设计方案:采用意法半导体公司基于ARMCORTexM4内核的STM32F407。系统实现了快速鉴频,测量脉冲宽度等功能;并且在检测结束后延时发射单频脉冲信号,并模拟信号拖尾的情况。同时还带有UART通信接口,采用DMA方式工作,用于与上位机的数据通信。数据采样的结果通过SDIO接口存入SDHC卡中。经过实际测试,系统的稳定可靠,频率计算精准,PWM频率精度高,本系统具有较好的应用价值。