基于NUC472的超声波测距匹配算法的研究*
2016-11-08许高斌马渊明金传恩
闵 锐,许高斌*,陈 兴,马渊明,金传恩
(1.合肥工业大学电子科学与应用物理学院,安徽省MEMS工程技术研究中心,合肥230009;2.合肥科盛微电子科技有限公司,合肥230000)
基于NUC472的超声波测距匹配算法的研究*
闵锐1,许高斌1*,陈兴1,马渊明1,金传恩2
(1.合肥工业大学电子科学与应用物理学院,安徽省MEMS工程技术研究中心,合肥230009;2.合肥科盛微电子科技有限公司,合肥230000)
为了使超声波测距系统中的换能器智能识别自身发出去的信号,以及避免其他设备换能器回波的干扰,提出了一种基于NUC472系列ARM芯片的超声波回波匹配算法的实现方案。详细介绍了各步算法的工作原理和实现过程,构建了发送码元序列的结构,阐述了编解码方式,并利用主控MPU内部ADC单元、FPU计算单元以及DSP指令库完成匹配算法的设计,最后将算法用于板级实验进行性能测试。实验结果表明:此算法不仅能识别多组不同换能器设备,而且方便对于嵌入式系统的移植,具有很强的通用性。
超声波测距;NUC472;信道编码;匹配算法
EEACC:7220;7230doi:10.3969/j.issn.1004-1699.2016.10.013
超声波测距系统具有极强的抗干扰能力(例如:抗雾霾、抗雨雪等)而被广泛的运用于工业、军事、汽车制造业等众多领域,传统的超声波换能器的工作频率为40 kHz居多。目前国内对于超声波测距和数据采集技术的研究很成熟[1-6],但是对于回波特征匹配方法介绍的很少。为了识别不同厂家、同一厂家不同设备之间的超声波回波,提高测距系统的安全性,需要增加信号的匹配工作。由于超声波换能器的余震,以及换能器的载带特性,使得超声波信号传输中的编解码和调制解调难度提升。传统的无线通讯设备中,对于信号传输(例如序列的传输)会增加编码器和解码器[7],以及调制解调器。对于功能单一的超声波测距系统,加入这些通讯器件无疑会增加系统的开发成本以及算法设计的复杂性。解决信号匹配问题的另一种思路是利用相关算法[8-10]。基于超声波回波的相关算法有很多的研究,其主流思路是利用伪随机序列如m序列进行互相关时延估计[11]。虽然伪随机序列有尖锐的自相关特性,但是一个四阶的m序列只有2组本原多项式,这说明一个15 bit长度的m序列只能区分两组换能器,无法解决多组换能器识别的目的。
本文提出了一种基于NUC472主控芯片的匹配算法。考虑到BCH信道编码适用于短序列的传输[12],算法利用软件形式设计 BCH的编解码。NUC472其Cortex-M4内核拥有FPU单元,编解码设计借助其高速的数据处理得以最大限度的缩短算法延时,提高工作系统的稳定性和实时性;M4内核具有DSP指令库,其丰富的库函数方便数字带通滤波器的设计,用来滤除无线信道中噪声的干扰;同时其主控内部有丰富的外设资源,利用阈值比较输出可以巧妙的解析出01序列,实现与解调操作相同的功能。整套的匹配算法不需要增加额外的硬件模块,节约了开发成本。此算法设计有很强的可移植性。同时,NUC472主控体积小便于集成,应用前景广阔。
1 超声波测距系统组成
系统的组成框图如图1所示。其工作流程为:NUC472主控芯片首先通过软件程序对带有换能器编号的序列进行BCH编码操作,通过IO来模拟2ASK调制之后的波形输出,载频为40 kHz。此40 kHz的高低电平经过驱动放大器的放大,并通过中周模块的稳频,驱动超声波换能器发出40 kHz的超声波。当超声波遇障碍物之后返回,在接收电路前级进行多级放大,将mV级的电压放大为0.5 V左右以便于CPU处理,再经过ADC单元以及数字带通滤波器滤噪后,利用软件的阈值比较输出回归序列,然后进行BCH解码和匹配工作。如果与发送的序列一致,则认为匹配成功,再进行后续的距离计算。
图1 系统组成框图
由图1可看出,其编解码、调制解调工作以及距离计算等数据处理工作,均可以在NUC472主控内部通过软件编程以及库函数的调用实现,为系统的小型化以及高度集成化提供了便捷。
2 匹配算法模块设计
匹配算法模块设计分为发送端设计及接收端设计两部分。相比于发送端,接收端模块设计需从信道中滤除噪声、增加还原序列,所以设计难度和复杂性会有所増加。匹配算法模块的组成及相互关系示意图如图2所示。
图2 匹配算法模块组成及柤互关系图
2.1发送端序列的设计以及编解码方式的确立
信道编码即纠错编码(ECC),是指在信息序列中加入一些冗余码元,组成一个相关的码元序列,译码时利用码元之间的相关性质来检测错误和纠正错误。考虑到超声波测距系统的独特性,即不需要传输类似于语音信号、图像信号等信息量较大的信号,只要其内部嵌入的信息量能保证换能器的识别即可。所以编码方式可以选用汉明编码或者BCH编码。汉明编码可以检测和纠正所有的1位的随机错误,而BCH编码不仅能检测出全部的单个错码和全部的离散二位错码,并能检测出全部的奇数个错码。同时,BCH编码特别适用于不太长的码,如适用于无线通讯。综合对比分析,本设计方案采用BCH编码方式。传输位数设定为15 bit,对应的生成多项式为:x4+x+1,其设计的发送端序列位分布如图3所示。
图3 发送端序列位分布图
同步位用于帮助分辨接收到的数据是否为本系统换能器组所发出的数据,其所占用的位数为7 bit;换能器编号位用于辨别此信号来源于换能器组中具体的换能器,例如若将换能器编号位设为4 bit,则可以区分16个不同的换能器(0000~1111);加入冗余位编码不仅可以帮助信号的匹配工作,同时可以纠正传输中的错误。其中同步位和换能器编号位可以根据实际情况适当的增加与缩减比特数,这种设计方式结构分明,而且适用于工业生产批量化的需求。
本实验中采用的超声波探头中心频率和中周谐振频率均为40 kHz,通带带宽为3 kHz。为了实现序列的传输,需要将发送序列进行调制处理。由于超声波探头的窄带特性,决定了不宜采用2FSK调制。而单脉冲超声波不规律的拖尾现象,也决定了不适合采用2PSK调制。由于2ASK调制方式不仅易于软件实现,而且没有来自窄带特性和拖尾现象的困扰,所以決定采用2ASK调制。当序列值为“1”时,发送2周期的40 kHz超声波;当序列值为“0”时,不发送。
在实验过程中,由于采用的是压电式超声波换能器,且收发一体,所以在经过高电平和低电平的切换之后,会产生余震的干扰并影响01序列的区分,如图4所示。其中信号2为软件发送的序列,信号1为回波电路中的响应电压,从信号1中已经无法区分01序列了。为了使后续的处理工作能顺利进行,需要在发送高电平后,延时时间t来过滤掉余震的影响。经过实验对2周期高电平余震的测量,确定时间t为400 μs左右,所以为了滤除余震以及方便计算机的识别处理,设定01序列的码片时宽均为450 μs。为了简化调制过程,在超声波发送前,我们可以人工模拟已经调制后的序列(如图5所示,显示了1和0的表示方式)并用IO口发送,这样可以减少发送端的软件延迟,为CPU减负,同时可以降低硬件资源的消耗。
图4 换能器余震对回波的影响示意图
图5 2ASK已调序列的表征方式
2.2数字带通滤波器的设计
在回波信号经过多级放大之后,被NUC472内部的ADC模块采样。ADC模块可以采用单端输入的模式,采样频率设定为 400 kHz,对于频率为40 kHz的超声波满足采样定理的需求。由于超声波信号在空气中传播会受噪声的干扰,所以为了提高序列采集工作的准确性,这里的带通滤波器尤为重要。由于传统的带通滤波器是由RC阻容耦合电路构成,而这种硬件滤波电路,会随着使用时间的推移而发生老化,所以滤波性能不稳定。相比于硬件滤波器,数字滤波器在稳定性和使用成本方面会有很大的优越性。由于NUC472内部有DSP指令库,其内部丰富的库函数便于带通滤波器的设计,所以在带限滤波方面,IIR滤波器比FIR滤波器会在阶数上有很大的缩减,从而进一步缩减软件资源的开销。IIR滤波器通常是根据工业生产的要求来确定滤波器参数。经过反复试验,确定了带通滤波器的阶数为2比较适宜。设计方法是采用模拟滤波器通过双线性变化成数字滤波器。考虑到测距系统用户并不需要自己设计滤波器,所以可以结合MATLAB中FDAtool开发工具来完成滤波器的设计。将得到的滤波器系数带入到DSP库函数中,即可完成滤波操作。设计的带通滤波器测试结果如图6所示,其中图6(a)为ADC的输出波形,可以观测到在无线信道中进行超声波传输,会叠加高斯噪声,而且高斯噪声的幅度不稳定,会影响到后期阈值比较的处理;图6(b)为带通滤波器的输出,从图像上可以看出高斯噪声已经被最大限度的抑制,清晰的展现出回波信号的脉络信息。
图6 数字IIR带通滤波器性能测试波形
2.3软件阈值比较回归序列的设计及解码处理
经过带通滤波器的处理,超声波回波信号会保存在数组中。发送波采用2ASK形式的调制方式,由于压电式换能器起震和余震的物理特性,使回波信号会呈现多个如图6(b)中的橄榄形。序列1和序列0的码字宽度均为450 μs,所以只需要等间隔的设置阈值即可完成序列的回归操作。对于阈值的设置,多阈值系统存在以下两个缺点:①多阈值系统需要额外的存储空间来保存时间与阈值的比例关系,对于单个的换能器而言,如果该系统中有4个阈值,则需要8个对应的入口参数;如果超声波测距系统用在汽车倒车雷达或者无人机导航飞行上,则至少需要10个左右的换能器,对应的入口参数高达80个,无疑加重了高度集成化系统内存的负担;②在系统的工作过程中,为了和时间轴同步,CPU会不断的校准时间尺度与阈值设定之间的对应关系,这个校准过程会有时间消耗,对于实时系统而言,所带来的时间误差是不可忽略的。
单阈值系统则避开了以上的两个问题,不仅设置简单,而且不会占用多余的时空资源。单阈值的设定有很多方法,本文利用噪声信号的基准线来估计固定阈值的大小,单阈值的计算推导过程如下:
假设u(t)为发送信号,a(t)为回波信号,b(t)为信道中的噪声,则:
对于a(t),假设A表示回波信号的幅度,fc表示一系列正弦脉冲的载波频率,则:
则IIR数字带通滤波器的输出y(t)可以表示为:
在式(3)中,f(bandpass)是数字带通滤波器的函数,f(ADC)为ADC模块的量化函数,假设参考时间是由超声波从换能器端发射出来开始计时,即t0=0,阈值用L表示,则当关系式:
满足时,可以认定在tob处遇到了障碍物。用K表示放大器的增益,bext(t)为外部噪声,bamp(t)为放大器的噪声,bADC(t)为ADC的电路噪声,q(t)为ADC的量化值,bbandpass(t)为IIR带通滤波器在数值计算上的数值错误,假设每一个噪声元素都相互独立而且为零均值和非零方差的高斯噪声。则信道中的总噪声b(t)可以表示为:
将式(1)、式(2)和式(5)带入式(3),数字带通滤波器的品质因数用Q表示,ADC的采样频率用 fs表示,波峰因数值取6.6,可以计算出阈值L:
将各个系数值带入式(6),最后确定阈值设定为45合适,由于阈值的比较是基于数字带通滤波器的输出数组,所以再根据码元序列的时间间隔450 μs,以及ADC的采样率400 kHz,可以计算出间隔点数Gap为180,码元个数为N,软件阈值比较的流程图如图7所示。
得到回归序列h[N]之后,通过BCH解码使带有换能器同步以及编号信息的序列得以恢复,BCH解码方式即编码方式的逆过程,主要通过校验矩阵的方式得以实现。编辑BCH解码的函数体,在主函数中直接调用即可。
图7 软件阈值比较流程图
3 综合实验结果及数据分析
为了测试匹配算法方案的可行性,在自主设计的以NUC472为主控的ARM超声波测距板上进行了多组实验,测试平台的实物图如图8所示。
图8 测试平台实物图
实验中取3组不同的编码信号作为多组换能器的替代,同时,三组编码信号对应的测试距离也不相同,用来检测对于距离变化的编码性能的稳定性。3组实验编码如下:
①发送序列为:10110111011;BCH编码后的序列为:101101110111001;对应的测试距离为1.53 m;
②发送序列为:10110110011;BCH编码后的序列为:101101100110010;对应的测试距离为2.14 m;
③发送序列为:10110111001;BCH编码后的序列为:101101110011111;对应的测试距离为3.04 m;
从序列的位设置上可以看出,其同步位均为:1011011,换能器编号各不相同,还原了工业生产中的编号设计方式,使实验具有代表性。3组实验的结果如图9所示,其中匹配的结果通过uart串口输出的方式打印到PC机串口调试器上。
图9 实验结果图
实验结果证明:匹配算法性能良好,完成了序列识别和BCH编解码的工作,同时可以看出算法的性能不受距离变化的影响。在第二组实验中,可能由于噪声的干扰以及信号的形变,使回归序列的过程中第三位发生了错误,但是BCH解码成功的识别并纠正了错码,从而验证了匹配算法的纠错能力。
4 结束语
超声波测距系统日益深入人们的日常生活,无论是在汽车倒车雷达、机器人扫地机还是军事战场上的无人机上都有广泛的运用。如何提高超声波测距系统的安全性以及私密性成了热门的研究课题。本文提出的基于NUC472主控的超声波回波信号匹配算法,设计思路清晰,且便于软件的实现与移植,很大程度上节约了硬件开发的成本。又由于充分利用了主控芯片的外设资源以及Cortex-M4内核的运算处理能力,所以促进了集成系统的小型化发展。同时经过了板级实验验证了该算法的可行性,实验证明匹配算法性能优良,特别适用于大量程的测距系统。同时此算法可以区分带有不同特征序列的换能器,满足了工业生产的需求。
5 致谢
本文研究得到了合肥科盛微电子科技有限公司的大力支持,在此表示感谢!
[1]赵晴晴,黄亮,傅贤锋,等.基于超声波六元阵列测距的WSN节点定位技术研究[J].传感技术学报,2014,27(3):368-372.
[2]李劲松,叶琛,梅德松.超声波检测数据高速采集和传输技术的研究[J].无损检测,2003,25(8):395-398.
[3]苏镇.一种基于超声波的潜艇数据传输系统[J].舰船电子工程,2012,32(12):142-143.
[4]荣少巍.基于STM32F4的水声定位系统研究[J].电声技术,2015,39(4):65-68.
[5]赵晴晴,段渭军,傅贤锋.基于超声波六元阵列TDOA测距的WSN定位系统设计与实现[J].传感技术学报,2014(9):1247-1252.
[6]朱晓强.基于嵌入式的超声波数据采集与故障诊断系统[D].大连:大连理工大学,2008.
[7]史光丽,孙淑琪,谷建成.一对多单片机的无线通讯系统[J].计算机工程与应用,1995(1):54-56.
[8]葛万成.相关法高抗干扰超声波距离测量中的信号处理[J].同济大学学报(自然科学版),2002,30(1):71-76.
[9]潘仲明,简盈,王跃科.基于两步相关法的大量程超声波测距技术[J].电子测量与仪器学报,2006,20(5):73-77.
[10]靳霖霖,曾迎生,崔慧海.相关算法在实时超声检测系统中的应用研究[J].微计算机信息,2010,26(20):25-27.
[11]程晓畅,苏绍景,王跃科.伪随机码超声扩频测距系统设计与算法[J].测试技术学报,2007,21(1):79-84.
[12]刘爱莲.纠错编码原理及MATLAB实现[M].北京:清华大学出版社,2013:32-133.
闵锐(1991-),男,安徽南陵人,硕士研究生,研究方向为嵌入式系统算法设计,13075571696@163.com;
许高斌(1970-),男,安徽肥东人,博士,教授,安徽省MEMS工程技术研究中心主任,研究方向为CMOS MEMS、MEMS/NEMS器件与集成制备技术,gbxu@hfut.edu.cn。
The Research of Matching Algorithm of Ultrasonic Ranging System Based on NUC472*
MIN Rui1,XU Gaobin1*,CHEN Xing1,MA Yuanming1,JIN Chuan’en2
(1.Micro Electromechanical System Research Center of Engineering and Technology of Anhui Province,School of Electronic Science& Applied Physics,Hefei University of Technology,Hefei 230009,China;2.Silicon Ark Technology Co.Ltd,Hefei 230000,China)
In order to identify the signals of its own and avoid the interference from other devices in the ultrasonic distance measurement system,a kind of ultrasonic echo matching algorithm implementation scheme based on ARM chips NUC472 series was came up with.The working principle and realization process of each step algorithm was introduced in detail.Firstly,the send symbol sequence structure was built and the method of encoding and decoding was expounded.Then,the FPU calculation unit,ADC unit library and DSP instructions in the master MPU were used to complete the design.Finally,the algorithm was used in performance testing experiment on board level.Experimental results demonstrate that this algorithm scheme can identify multiple sets of transducer.Meanwhile,it is convenient to the transplantation of the embedded system and advantageous in strong versatility.
ultrasonic ranging;NUC472;Channel coding;matching algorithm
TN4
A
1004-1699(2016)10-1542-06
项目来源:国家863计划项目(2013AA041101)
2016-03-25修改日期:2016-04-11