超声波测距仪的
目 录 一、系统
比较与选择 ............................................................................................... 2
方案一:利用分立模块的超声波测距仪 ............................................................... 2
方案二:基于AT89C51单片机的超声波测距仪................................................. 2 二、理论分析与计算 ....................................................................................................... 3
1、测量与控制方法 .................................................................................................. 3
2、理论计算 ............................................................................................................... 4
三、电路与程序设计 ....................................................................................................... 4
1、检测与驱动电路设计 .......................................................................................... 4
2、总体电路图 .......................................................................................................... 8
3、软件设计与工作流程图 .................................................................................... 10
四、系统调试 .................................................................................................................. 20
1 超声波测距误差分析 .......................................................................................... 21
2 提高精度的方案及系统设计 ............................................................................. 21
六、设计结论 .................................................................................................................. 22
1
一、系统方案比较与选择
方案一:利用分立模块的超声波测距仪
系统包括超声波测距模组、LED数码显示模组、驱动模组控制模组及电源五部分。
超声波测距模块主要由发射部分和接收部分组成,超声波的发射受主控制器控制(如图1所示);超声波换能器谐振在40KHz的频率,模块上带有40KHz方波产生电路。
显示模块是一个8位段数码显示的LCD;测量结果的显示用到三位数字段码,格式为X点XX米,同时还用两位数字段码显示数据的个数。
电源采用9V的DC电源输入,经稳压管后得出5V以及3.3V的电源供系统各部分电路使用。
系统结构
图1 超声波测距模块组硬件框图
优点:具有历史数据存储功能、出错管理功能。
缺点:能测的最小距离比较长,不能实现双向测距,电路复杂性能稳定性不高。 方案二:基于AT89C51单片机的超声波测距仪
超声波测距仪主要以单片机AT89C51为核心,其发射器是利用压电晶体的谐振带动周围空气
振动来工作的.超声波发射器向某一方向发射超声波,在发射的同时开始计时 ,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。一般情况下,超
声波在空气中的传播速度为340m/ s,根据计时器记录的时间t ,就可以计算出发射点距障碍物的
距离 s,即s=340×t/2, 这就是常用的时差法测距。
在测距计数电路设计中,采用了相关计数法,其主要原理是:测量时单片机系统先给发射电路
提供脉冲信号,单片机计数器处于等待状态,不计数;当信号发射一段时间后,由单片机发出信号
使系统关闭发射信号,计数器开始计数,实现起始时的同步;当接收信号的最后一个脉冲到来后,
计数器停止计数。
双向超声波测距仪的系统主要有几下部分组成(如图2所示): LED显示模块,AT89C51芯片,
2
超声波发射模块,超声波接收模块,电源模块等五大模块组成。
图2 系统设计总体框图
优点双向测距,精度高,功耗低。
在电路中我们采用PIC芯片它的优点是:精简指令使其执行效率大为提高;
彻底的保密性;
其引脚具有防瞬态能力,通过限流电阻可以接至220V交流电源,可直接与继电器控制电路相连,无须光电耦合器隔离,给应用带来极大方便。
基于上述两种方案的比较,方案一,测量盲区较长,结构复杂且稳定性不高。方案二,能进行
双向测距,精度高,功耗低,模块简单,稳定性高。所以选用方案二。 二、理论分析与计算
1、测量与控制方法
声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反
射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回
声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。这就是本系统的测量原理。
超声波传感器的结构如图3所示。
图3 超声波传感器结构
由于此超声波测距仪可以实现双向测距,所以需进行测距选择,而这个测距选择就以自动选择
功能来实现。
3
2、理论计算
图4 测距的原理
如图4所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来测量距离其
原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回
波时间T利用公式S=C*(T/2)其中,S为被测距离、V为空气中声速、T为回波时间(T=T1+T2),
可以计算出路程,这种方法不受声波强度的影响,直接耦合信号的影响也可以通过设置“时间门”
来加以克服。这样可以求出距离:
S=C(T1-T2)/2
本次设计是用555时基电路振荡产生40Hz的超声波信号。其振荡频率计算公式如下:
f=1.43/((R9+2*R10)*C5)
三、电路与程序设计
1、检测与驱动电路设计
本系统在设计过程中主要选取了以下一些器件: 1. AT89C51:测距仪的核心单片机
2.HEF4052B:双4通道的模拟选择器/分配器
3.NE5532P:双低噪声运算放大器
4.发射探头R40-16
5.接受探头T40
6.电位器5332
7.变压器
4
图5 AT89C51系列引脚图
:1引脚A放大器输出,2引脚A放大器反相输入端,3引脚A放大器同相输入,4引脚负电源,5引脚B放大器同相输入端,6引脚B放大器反相输入端,7引脚B放大器输出,8引脚正电源。其引脚图如图5所示。
图6 NE5532P引脚图
:HEF4052B是双4通道的模拟选择器/分配器,即可作为从4路的输入信号中选择一路作为输出的选择器 ,也可作为将一路输入信号分配到4路输出通道中的一路输出的分配器。
通道之间是双向的。IC内置的译码器有4个间接的模拟开关输出,对2*4个通道进行选择/分配。MT#用作对AV1,AV2/DVD(共用),YPRPB/VGA(共用),TV四路伴音信号的选择。其引脚图如图6所示。1脚、2脚、4脚、5脚的Y0B to Y3B和11脚、12脚、14脚、15脚的Y0A to Y3A为独立的输入/输出通道;9脚A1、10脚A0为地址输入(选择端);6脚E\为使能端(低电平有效);3脚ZB、13脚ZA为公用的输入/输出通道;7脚VEE为输入/输出信号的下限值;8脚VSS为接地
端;16脚VDD为供电端。其引脚图如图7所示。
图7 HEF4052B引脚图
5
以超声波作为检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感
器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感
器也可具有发送和接收声波的双重作用。超声波传感器是利用压电效应的原理将电能和超声波相互
转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转
换成电信号。
:
1.
图8 发射电路原理
由图9所示发射部分由高频振荡器、单脉冲发生器、编码调制器、功率放大器及超声换能器组
成。 单脉冲发生器在振荡器的每个周期内都被触发,产生固定脉宽的脉冲序列,来自单片机的编
码信号对脉冲序列进行编码调制,经功率放大后,通过超声换能器发射超声波。
555单脉冲超声功率编码
电路发生器换能器放大器调整器
图9 发射电路组成图
由555型电路组成多谐振荡器,它的振荡频率为40kHz。RPI用来校准振荡频率。多谐振荡器产生的40kHz的脉冲由3脚输出,经D1、D2两级缓冲、整形后,通过超声波发射器UCM40-T向外
发射。
:
6
图10 接收电路原理
本电路包括超声波接收头,电压器、检波电路和单稳态延时电路,如图11所示。超声波接收头 UCM4a-R将运动物体反射的超声波接收并转换为电脉冲信号后,由R5、C4组成的高频滤波电路滤除干扰脉冲后,经RP2分压调节,由C5、R6藕合至电压放大器进行电压放大。RP2兼作超声波接收头的负载与接收灵敏度的调节电位器。
超声波接单稳态电压器检波电路收头延时电路
图11 接收电路组成图
在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一的能量来源,稳
压电源的主要任务是将50Hz的电网电压转换成稳定的直流电压和电流,从而满足负载的需要,直
流稳压电源一般由整流、滤波、稳压等环节组成。其电路图如图11所示。其中,变压器将交流电源(220V/50Hz)变换位符合整流电路所需要的交流电压;整流电路是具有但方向导电性能的整流
器件,将交流电压整流成单方向脉动的直流电压;滤波电路滤去单向脉动直流电压中的交流部分,
保留直流成分,尽可能供给负载平滑的直流电压;稳压电路是一种自动调节电路,在交流电源电压
波动或负载变化时,通过此电路使直流输出电压稳定。
超声波测距仪显示模块如图12所示。通过单片机的15、16、17三个管脚的信号控制三个三极管的B级,利用三极管的开关特性,实现数码管的点亮,从而实现动态显示。
7
aPIC16F876Abc2Kdef282Kgh272K26
2K25ab24c2Kde23f2Kg22h 212K20a19bcd18ef17gh16
15
S85504.7K
S85504.7K
S85504.7K
图12 显示模块
采用LED动态显示,数据经过PIC芯片的计算后传到LED上,显示精度是厘米。 2、总体电路图
本系统采用双向测距,通过双向收发来实现,两方发送分别由082D和NE5534P两个运放来控制,将信号放大由超声波传感器发送;再经过超声波传感器接收,由变压器进行耦合经三极管放
大,将左右(分别由红绿两盏灯区分)两组数据送入CD4052数据选择器进行数据选择,选出信号
强(测量距离近)的那个信号送入PIC主芯片,再由PIC进行处理将结果送到数码管显示。其总
体电路图如图13所示。
8
图13 超声波测距仪总体电路图
9
3
超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程
序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易
精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细
计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。程序流程如图14所示:
开始
系统初始化
显示初始化
N串行口控制命令?
Y
进入测距程序
存储数据
刷新显示
图14 软件设计流程框图
其工作流程是:上电后首先对系统进行初始化,紧接着调用显示子程序,显示完后判断有没有
超声波被接收,若有,则停止计时并将计时值送入距离计算子程序,然后将所测距离显示1秒,最
后返回进行下一轮液位测量,若没有信号进来,则继续调用显示子程序。其流程图如图15所示。
10
开始
系统初始化
发送超
声波脉冲
等待发
射超声波
计算距离
显示结果0.5s图15 工作流程图 ;*********************************************
;*超声波测距器 *
;*采用AT89C52 12MHz晶振 *
;*采用共阳LED显示器 2008.10.3 *
;*********************************************
;测距范围10cm-5.5m,堆栈在4FH以上,20H用于标志 ;显示缓冲单元在40H~43H,使用内存44H、45H、46H用于计算距离
;
VOUT EQU P1.0 ;脉冲输出端口 ;
;********************************************
;*中断入口程序 * ;********************************************
;
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
LJMP INTT0
11
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
;
;************************************
;* 主程序 *
;************************************
;
START: MOV SP,#4FH
MOV R0,#40H ;40~43H为显示数据存放单元(40为最高位)
MOV R7,#0BH
CLEARDISP: MOV @R0, #00H
INC R0
DJNZ R7, CLEARDISP
MOV 20H, #00H
MOV TMOD, #21H ;T1为8位自动重装模式,T0为16位定时器
MOV TH0, #00H ;65ms初值
MOV TL0, #00H
MOV TH1, #0F2H ; 40kHz初值
MOV TL1, #0F2H
MOV P0, #0FFH
MOV P1, #0FFH
MOV P2, #0FFH
MOV P3, #0FFH
12
MOV R4, #04H ;超声波脉冲个数控制(为赋值的一半)
SETB PX0
SETB ET0
SETB EA
SETB TR0 ;开启测距定时器
start1: LCALL DISPLAY
JNB 00H, START1 ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
SETB EA
CLR 00H
SETB TR0 ;重新开启测距定时器
MOV R2, #64H ;测量间隔控制(约4*100=400ms)
LOOP: LCALL DISPLAY
DJNZ R2, LOOP
SJMP Start1
;
;*****************************************
;* 中断程序 *
;*****************************************
;
;T0中断,65ms中断一次
INTT0: CLR EA
CLR TR0
MOV TH0, #00H
MOV TL0, #00H
SETB ET1
SETB EA
SETB TR0 ;启动计时器T0,用以计算超声波来回时间
13
SETB TR1 ;开启发超声波用定时器T1
OUT: RETI
;T1中断,发超声波用
INTT1: CPL VOUT
DJNZ R4,RETIOUT
CLR TR1 ;超声波发送完毕,关T1
CLR ET1
MOV R4,#04H
SETB EX0 ;开启接收回波中断 RETIOUT: RETI
;外中断0,收到回波时进入
PINT0: CLR TR0 ;关计数器
CLR TR1
CLR ET1
CLR EA
CLR EX0
MOV 44H, TL0 ;将计数值移入处理单元
MOV 45H, TH0
SETB 00H ;接收成功标志
RETI
;
;*******************************************
;* 显示程序 *
;*******************************************
;40H为最高位,43H为最低位,先扫描高位 DISPLAY: MOV R1, #40H;G
MOV R5,#0F7H;G
PLAY: MOV A, R5
MOV P0, #0FFH
MOV P2, A
MOV A, @R1
MOV DPTR, #TAB
14
MOVC A, @A+DPTR
MOV P0, A
LCALL DL1MS
INC R1
MOV A, R5
JNB ACC.0, ENDOUT;G
RR A
MOV R5, A
AJMP PLAY
ENDOUT: MOV P2, #0FFH
MOV P0, #0FFH
RET
;
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共阳数码管 0, 1, 2,3,4,5,6,7,8,9,不亮,A, —
;
;************************************************** ;* 延时程序 *
;************************************************** ;
DL1MS: MOV R6, #14H
DL1: MOV R7, #19H
DL2: DJNZ R7, DL2
DJNZ R6, DL1
RET
;
;*************************************************** ;* 距离计算程序(=计算值×17/1000cm) 近似 *
;*************************************************** ;
WORK: PUSH ACC
15
PUSH PSW
PUSH B
MOV PSW, #18H
MOV R3, 45H
MOV R2, 44H
MOV R1, #00D
MOV R0, #17D
LCALL MUL2BY2
MOV R3, #03H
MOV R2, #0E8H
LCALL DIV4BY2
LCALL DIV4BY2
MOV 40H, R4
MOV A, 40H
JNZ JJ0
MOV 40H, #0AH ;最高位为0,不点亮
JJ0: MOV A, R0
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #100D
LCALL DIV4BY2
MOV 41H, R4
MOV A, 41H
JNZ JJ1
MOV A, 40H ;次高位为0,先看最高位是否为不亮
SUBB A, #0AH
JNZ JJ1
MOV 41H, #0AH ;最高位不亮,次高位也不亮
JJ1: MOV A, R0
16
MOV R4, A
MOV A, R1
MOV R5, A
MOV R3, #00D
MOV R2, #10D
LCALL DIV4BY2
MOV 42H, R4
MOV A, 42H
JNZ JJ2
MOV A, 41H ;次次高位为0,先看次高位是否为不亮
SUBB A, #0AH
JNZ JJ2
MOV 42H, #0AH ;次高位不亮,次次高位也不亮
JJ2: MOV 43H, R0
POP B
POP PSW
POP ACC
RET
;
;**************************************** ;* 两字节无符号数乘法程序 *
;**************************************** ;R7R6R5R4<=R3R2 * R1R0
;
MUL2BY2: CLR A
MOV R7, A
MOV R6, A
MOV R5, A
MOV R4, A
MOV 46H, #10H
MULLOOP1:CLR C
MOV A, R4
17
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R0
RLC A
MOV R0, A
MOV A, R1
RLC A
MOV R1, A
JNC MULLOOP2
MOV A, R4
ADD A, R2
MOV R4, A
MOV A, R5
ADDC A, R3
MOV R5, A
MOV A, R6
ADDC A, #00H
MOV R6, A
MOV A, R7
ADDC A, #00H
MOV R7, A MULLOOP2:DJNZ 46H, MULLOOP1
RET
18
;
;*******************************************
;* 四字节/两字节无符号数除法程序 *
;*******************************************
;R7R6R5R4/R3R2=R7R6R5R4(商)...R1R0(余数)
;
DIV4BY2: MOV 46H, #20H
MOV R0, #00H
MOV R1, #00H
DIVLOOP1: MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
MOV A, R0
RLC A
MOV R0, A
MOV A, R1
RLC A
MOV R1, A
CLR C
MOV A, R0
SUBB A, R2
MOV B, A
19
MOV A, R1
SUBB A, R3
JC DIVLOOP2
MOV R0, B
MOV R1, A
DIVLOOP2: CPL C
DJNZ 46H, DIVLOOP1
MOV A, R4
RLC A
MOV R4, A
MOV A, R5
RLC A
MOV R5, A
MOV A, R6
RLC A
MOV R6, A
MOV A, R7
RLC A
MOV R7, A
RET
;
END
四、系统调试
超声波测距仪的制作和调试都比较简单,其中超声波发射和接收采用Φ15的超声波换能器
TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中
心轴线平行并相距4~8cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则
可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C的大小,4
以获得合适的接收灵敏度和抗干扰能力。
硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以
修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。
20
根据所设计的电路参数和程序,测距仪能测的范围为0.10~5.0m,测距仪最大误差不超过1cm。系
统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量
要求。
1 超声波测距误差分析
1、发射接收时间对测量精度的影响分析
采用 TR40 压电超声波传感器,脉冲发射由单片机控制,发射频率 40KHz ,忽略脉冲电路硬件产生的延时,可知由软件生成的起始时间对于一般要求的精度是可靠的。对于接收到的回波,
超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。
设测量设备基准面距被测物距离为h,则空气中传播的超声波波动方程为:
,2,k (1) AAcosAcos,,ht+ktet+kt,,,,,,,,0
由以上公式可知,超声波在传播过程中存在衰减,且超声波频率越高,衰减越快,但频率的增
高有利于提高超声波的指向性。
经以上分析,超声波回波的幅值在传播过程中衰减很大,收到的回波信号可能十分微弱,要想
判断捕获到的第一个回波确定准确的接受时间,必须对收到的信号进行足够的放大,否则不正确的
判断回波时间,会对超声波测量精度产生影响。
2、当地声速对测量精度的影响分析
当地声速对超声波测距测量精度的影响远远要比收发时间的影响严重。超声波在大气中传播的
速度受介质气体的温度、密度及气体分子成分的影响,即:
,RT C, (2) sM
由上式知,在空气中,当地声速只决定于气体的温度,因此获得准确的当地气温可以有效的提
高超声波测距时的测量精度。工程上常用的由气温估算当地声速的公式如下:
(3) CC1T273,,,0
式中C0=331.4m/s ; T为绝对温度,单位K 。
此公式一般能为声速的换算提供较为准确的结果。实际情况下,温度每上升或者下降 1oC, 声
速将增加或者减少 0.607m /s ,这个影响对于较高精度的测量是相当严重的。因此提高超声波测量
精度的重中之重就是获得准确的当地声速。
2 提高精度的方案及系统设计
(1)温度校正的方法提高测距精度
由上述的误差分析知,如果能够知道当地温度,则可根据公式 ? 求出当地声速,从而能够获得较高的测量精度。而问题的关键在于获得温度数据的方法。采用热敏电阻、热电耦、集成温度传
21
感器都可以获得较为准确的温度值。
为了便于对温度信号的数据采集及处理,我们采用 DALASS 公司生产的 DS18B20 集成温度传感器。 DS18B20 采用了 DALASS 公司的 1-WIRE 总线专利技术,能够仅在占用控制器一个 I/O 口的情况下工作(芯片可由数据线供电),极大的方便了使用者的调试使用,而且其在- 10oC ~+ 85oC 的工作环境下可以保持? 0.5% 的使用精度,在这个空间内足以保证为超声波测
距设备提供足够的精度范围。
通过 DS18B20 芯片获得的数据信号经由 1-WIRE 总线传至 MCU ,由软件进行声速换算。为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推出的 STC12C5410 单片机实现超声波测距的各项功能。 STC12C5410 采用了低成本、低功耗、强抗干扰设计,并且
在最高支持 48MHz 的前提下能够实现 1 个时钟 / 机械周期的运行速度。由于能够使用高频率的
晶振,因此相对于普通单片机来说可以有效的减少由计时问题带来的量化误差,能够满足较高精度
超声波测距仪的设计要求。
(2)标杆校正的方法提高测距精度
在复杂环境下,如果难于获得环境温度,或者不便获得环境温度时,如果仍旧要求较高的测量
精度,我们采用所谓标杆校正的方法实现超声波测距精度的校正。标杆校正的示意图如图15 所示。
图16 标杆校正的示意图
超声波测距装置首先测量距离已知为 h 的基平面(标杆)声波往返所用的时间,而后由测得
的时间和距离 h 根据公式 ? 求出当地声速。通过这样的方法,我们也能够顺利的求出声速,省
去了使用传感器测量温度所带来的麻烦。因此,只用为测距设备设定“标定”和“测量”两种状态,
即能够实现温度校正所能实现的高精度测距功能。
六、设计结论
对所设计的电路进行测量、校准发现其测量范围15cm~300cm内的平面物体做了多次测量发
现,其最大误差为3cm,显示最小分辨率为0.01 m,测量盲区小于0.15米,且重复性好。
该测距仪具有准双向测距功能,稳定性比较高、灵敏度比较高,盲区范围小,分辨率小于0.01m, 被测目标不需要垂直于超声波测距仪角度保持在正负30度,被测目标
面不需要平坦;但是在检
测过程中会有一些不便的地方:
1.测量时在超声波测距仪周围没有其他可反射超声波的物体,由于发射功率有限,测距仪无法
测量5m外的物体。
22
2.因为实现双向测距所以电路的电流相对比较大。
3.不能够实现不同温度下的测距功能。
4.因为超声波是将空气作为媒介所以受电磁干扰比较大。
23