基于ARM的超声波测距设计
2016-05-14陶文超董辛张益铭
陶文超 董辛 张益铭
摘要:本文基于ARM内核的STM3处理器设计了一种单脉 冲反射式超声测距系统。在分析了超声波传感器测距原理和测距范围后, 提出了自动可调增益减小盲区、DSl8B20温度补偿的设计方案。实验表明自动可调增益电路可使回波信号有较高的信噪比;温度补偿校正可以提高超声测距仪的精度;所设计系统达到毫米级精度。
关键词:测距仪 超声波传感器 温度补偿
中图分类号:TB517 文献标识码:A 文章编号:1007-9416(2016)07-0164-01
1 介绍
超声波测距是一种非接触式的检测技术,主要有脉冲回波法和相位差法,脉冲回波法使用脉冲激励探头向外辐射超声波,同时接收反射回来的回波,通过检测超声波从发射至接收所经历的时间(ToF),可计算出探头与被测物体的距离d,即,其中c为声波在介质中的传播速度,可由下式得出:
t是空气温度(℃),T0=273.16K。工程上一般考虑的是温度的影响
2 系统设计
本系统从结构来分主要有五个部分:发射接收部分,温度检测模块,显示模块、中央处理单元。
(1)发射模块负责发送40KHZ的方波信号。
(2)接收部分将接收到的回波信号, 经检波放大整形等处理后,送至单片机中断口。
(3)单片机通过中断控制得出超声波在空气中的传播时间t,最后根据公式 s=c×t/2便可得出测量结果(c为声速)。
(4)温度检测模块实时检测环境温度以修正温度变化对测量距离精度的影响。
(5)显示模块采用LCD显示坐标,其中X轴为时间,Y轴为测得距离,坐标轴下方实时显示测得的距离。
3 主要考虑参数
(1)传感器的指向角θ是声束半功率点的夹角,它直接影响测量的分辨率,对圆片传感器来说,它的大小与工作波长λ,传感器半径r有关,因(2π/λ)*r*sin(θ/2)=1.615。
本设计选f0=40KHz时λ=C/ f0=8.5mm,压电传感器片半径r=6.3mm,故指向角。
(2)工作频率。空气中超声波的衰减对频率很敏感,要求合理选择超声波频率,本方案选择40KHz左右。
(3)声速。考虑到环境温度对超声波传播速度的影响,通过温度补偿的方法对传播速度予以校正,以提高测量精度。计算公式为:V=331.5+0.607T其中,T是温度。
(4)发射脉冲宽度。发射脉冲宽度决定了测距仪的测量盲区,也影响测量精度,同时与信号的发射能量有关。本设计中,选用了8个40KHz脉冲方波的发射脉冲宽度。
4 系统软件结构
本设计采用单片机内部定时器来测量超声波从传播到返回的时间,系统的主控芯片STM32采用72MHz主频,距离值的得出及显示在中断子程序中完成。中断响应之后,原始数据经换算子程序计算后显示输出。整个系统软件功能的实现可以分为主程序、子程序、中断服务程序几个主要部分。
系统初始化过程中,首先对主控芯片STM32时钟进行设置:关闭外设时钟功能,并配置中断向量表;然后开启外部时钟,即置位RCC->CR.16位也就是HSEON位,并等待时钟就绪;设置APB1时钟二分频;PLL时钟三倍频,并设置HSE时钟作为PLL时钟输入;设置PLL时钟作为系统时钟。
设置GPIOA工作时钟为50MHZ。开启TIMER3时钟,设置TIMER3的自动重装初值为50000,720预分频。设置TIMER0的抢占优先级为1,响应优先级为3,分配至第2组。TIM3->CR1第一位置位,使能定时器3。
人机界面初始化:LCD应用GPIOB和GPIOC,在初始化中,均设置为推挽输出模式,工作时钟频率为50MHZ。初始化后,LCD显示屏显示出超声波距离---测距次数的坐标抽,并显示字符串“distancem”。
5 超声波测距程序流程
超声波TRIG引脚即GPIOA第八脚,发送一个大于10uS的方波,使超声波模块发射一段超声波,然后等待ECHO被拉高。拉高之后,超声波ECHO引脚开始检测返回声波并启动定时器,记录当前定时器3的计数器TIM3->CNT寄存区,此数据为new_cnt,然后等待超声波的ECHO引脚拉低,当超声波模块检测到回声后,记录此时定时器3的计数器TIM3->CNT寄存器,此数据为old_cnt。两次计数器的值相减即得到超声波在空气中的传输时间。根据公式:S=(new_cnt-old_cnt)*340/(2*100000)。
即可计算出距离S,能够精确至毫米。得到距离S后,需要进行一个盲区处理,超声波具有3-5厘米的盲区处理,因此只有当S>5厘米时,证明采集的距离有效。
6 过程及分析
基于前面设计的电路及程序进行了超声回波特性试验。
实验一:同一温度下,测量不同的距离,记录实际距离和测量距离,并进行比。
实验二:不同温度下在一固定处分别对有温度补偿和无温度补偿的系统进行距离测量实验,实由实验可知,若温度变化不大,则可认为声速是基本不变,可通过标准距离(1+T/273.16)1/2校准后使用。如果温度变化较大且测距精度要求高,则应通过温度补偿加以校正。
实验三:在不同位置处测量距离,目的是检测测距仪表的盲区大小,由实验三分析可知,本测距仪表的盲区为6cm。
7 结语
本文完成了对小盲区的超声波测距系统的设计研究,在设计中采用了自动可调增益电路和温度补偿校正的方法来减小系统的盲区并提高其精度,并且通过实验来证实其效果。由于篇幅的限制,并未给出相关程序。
参考文献
[1]陈莹.基于单片机的超声测距系统[D].华中科技大学硕士学位论文,2004.
[2]王莹.高精度超声波测距仪的研究设计[D].安徽大学硕士学位论文,2007.
[3]周丽军.便携式多功能超声检测系统设计[D].华中科技大学硕士学位论文,2005.