RET1
三、 数据读取和储存
为了得到发射信号与接收回波间的时间差,要读出T0计数器的计数值,然后存 储在 RAM 中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。
RECEIVE0:PUSH PSW PUSH ACC
CLR EX0 ;关外部中断0 MOV R7, TH0 ;读取时间值 MOV R6, TL0? CLR C
MOV A, R6
SUBB A, #0BBH ;计算时间差 MOV 31H, A ;存储结果 MOV A, R7 SUBB A, #3CH MOV 30H, A
SETB EX0 ;开外部中断0 POP ACC POP PSW RETI
四、 计算超声波传播时间
T0中读取出来的时间差数据并不能作为距离值直接显示输出,因为时间差值与实际的距离值之间转换公式为:S=0.5*V*T 。其中,V为声音在常温下的传播速度,T为发射信号到接收之间经历的时间,在这个部分中,信号处理包括计数值与距离值换算,二进制与十进制转换。
4.2.2 显示子程序和蜂鸣报警子程序
考虑到提高系统资源的利用率,显示采用动态显示法实现。采用8155芯片作为单片机应用系统的扩展I/O口。8155的PA口做为LED的字形输出口,PC口做为LED的位选控制口,采用共阴显示接法。将计算好的距离数据设置显示缓冲区起始地址,显示缓冲区中被显示的字符的字形码的地址偏移量预先制表放入。流程图及部分源程序如下:
11
图4.4 子程序流程图
DISP:MOV DPTR,#7F00H ;指向8155控制口 MOV A,#0DH ;8155初始化 MOVX @DPTR,A
MOV R7,#01H ;从右边第1位显示器开始 MOV R1,#30H ;显示缓冲区首地址送R1 LOOP:MOV DPTR,#7F03H ;指向8155控制口地址 MOV A,R7 ;位控码初值 MOVX @DPTR,A
MOV DPTR,#7F01H ;指向8155段控制口地址 MOV A,@R1 ;取待显示数据
MOV DPTR, #TAB ;取字形段码表首地址 MOVX A,@A+DPTR ;查表获取字形段码 INC R1 ;指针指向下一缓冲单元 MOV A,R7
JB A CC.5,RETURN ;判断是否到最高位?返回 RL A ;不到,左移一位 MOV R7,A
AJMP LOOP ;继续扫描 RETURN:RET
TAB: DB 0C0H,OF9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H
12
DB 88H,83H,0C6H,0A1H,86H DB 8EH,0BFH,8CH,0FFH
五、系统误差分析及改进
本文将从引起超声测距误差的原因入手,分析温度对超声波声速的影响,回波检测对时间测量的影响和超声波传感器所加电压对测量精度和范围的影响。
5.1误差产生原因分析
5.1.1 温度对超声波声速的影响
空气中传播的超声波是由机械振动产生的纵波,由于气体具有反抗压缩和扩张的弹性模量,气体反抗压缩变化力的作用,实现超声波在空气中传播。因此,超声波的传播速度受气体的密度、温度及气体分子成份的影响 即:
C?B/p (5-1)
其中B为气体的弹性模量,r为气体的密度。气体弹性模量,由理想气体压缩特性可得:B=g·r ,其中g为定压热容与定容热容的比值,空气为1.40,P为气体的压强。气体的压强为:
R·TR·T·PP?? (5-2)
VM其中,R为普适常量 8.314kg/mol,T为气体温度K(绝对温度),M为气体分子量,空气为28.8×10-3 kg/mol。所以
C?r·R·T (5-3) M由公式6-3可知,超声声速与空气的温度有密切关系。例如:20 ℃时,T=293.15, CS=344.2 m/s;40℃时,T=313.15,CS=355.8 m/s;-20℃时,T=253.15,CS=319.9 m/s;从上面的计算可以看出,温度对超声波在空气中的传播速度有明显的影响。当需要精确确定超声波传播速度时,必须考虑温度的影响。
5.1.2 回波检测对时间测量的影响
超声波从超声传感器发出,在空气中传播,遇到被测物反射后,再传回超声传感器。整个过程,超声波会有很大的衰减。其衰减遵循指数规律。设在距离超声接收器x 处有被测物,则空气中传播的超声波波动方程描述为:
A=A(x)cos(ax+kt) (5-4)
其中A为超声传感器接收的振幅;A0 为超声传感器初始振幅;α为衰减系数;x 为超声波传播距离;w角频率;k 为波数。衰减系数α=b·f。其中b为空气介质常数,f为超声波频率。由此可见,超声波频率越高,其衰减越快。同时超声波频率的过高会产生较多的副瓣,引起近场区的干涉。但是,超声波频率越高,指向性越强,这一点有利于距离测量。由于超声回波随距离的增加而变得十分微弱,所以在设计超声接收电路时,要设计较大放大倍数(万倍级)和较好滤波特性的放大电路,使回波易于检测。
5.1.3 超声传感器所加脉冲电压对测量范围和精度的影响
13
制作超声传感器的材料分为磁致伸缩材料和压电材料两种。超声测距常用压电材料传感器,例如TR40 压电超声传感器。超声传感器外加脉冲电压的幅值会影响压电转换效率。当压电材料不受外力时,其应变S与外加电场强度E 的关系为:
S=d·E (5-5)
其中d 为应变电场常数。超声传感器外加的脉冲电压影响压电材料的电场强度,从而影响其应变量和超声转换的效率,进而影响超声波幅值。这些会直接影响超声波的回波幅值。所以,为提高压电转换效率,提高超声测距精度和范围,应尽量提高超声传感器外加脉冲电压的幅值。
5.2 针对误差产生原因的系统改进方案
在实际应用中,为了方便处理,超声波常调制成具有一定间隔的调制脉冲波信号。测距系统一般由超声波发送、接收、时间计测、微机控制和温度测量五个部分组成。如何提高测量精度是超声测距的关键技术。其提高测距精度的措施下:
(1)合理选择超声波工作频率、脉宽及脉冲发射周期
据经验,超声测距的工作频率选择f=40kHz 较为合适:发射脉宽一般应大于填充波周期的10倍以上即:T>0.25s,考虑换能器通频带及抑制噪声的能力,选择发射脉宽1ms;脉冲发射周期的选择主要考虑微机处理数据的速度,速度赶快,脉冲发射周期可选短些。
(2) 在超声波接收回路中串入增益调节(AGC)及自动增益负反馈控制环节 因超声接收波的幅值随传播距离的增大呈指数规律衰减,所以采用(AGC)电路使放大倍数随测距距离的增大呈指数规律增加的电路,使接收器波形的幅值不随测量距离的变化而大幅度的变化,采用电流负反馈环节能使接收波形更加稳定。
(3)提高计时精度,减少时间量化误差
如采用芯片计时器,计时器的计数频率越高,则时间量化误差造成的测距误差就越小。例如:单片机内置计时器的计数频率只有晶振频率的十二分之一,当晶振频率为6MHz时,计数频率为0.5MHz此时在空气中的测距时间量化误差为0.68mm;当晶振频率为12MHz时,计数频率为1MHz,此时测距时间量化误差为0.34mm。若采用外部硬件计时电路,则计数频率可直接引用单片机的晶振频率,时间量化误差更小。
(4)补偿温度对传播声速的影响 超声波在介质中的传播速度与温度、压力等因数有关,其中温度的影响最大,因此需要对其进行补偿。有文献表明,按下式计算声速可以达到较高的精度:
在空气中,C?331.41?t273m/s;
在海水中,C=1450+4.21t-0.037t·t+1,14(S-35)+0.175P m/s
式中:t—摄氏温度;S—水盐度,按千分比计算;P—海水静压力,单位为大气压。声速可以用声速仪测量,以验证理论计算的准确性。
(5) 补偿系统电路的时间延迟
系统电路的时间延迟可通过实验测定,通过测试两个已知标准距离S1、S2所得到的时间t1、t2,可求出系统电路的延迟?,??(s1·t2-s2·t1)/(s2-s1)。
14
参考文献
[1] 朱月秀.单片机原理与应用(第2版) 北京:科学出版社2004.2 [2] 周良权,傅恩锡,李世馨.模拟电子技术基础 第二版 北京:高等教育出版社 2001.12 3.
[3] 陈莹.基于单片机的超声波测距系统.华中科技大学硕士学位论文 2004.4
[4] 邱平. 略论我国非金属超声波检测仪器的发展状况.工程质量1998.1 [5] 超声波探伤编写组编著.超声波探伤.北京:电力工业出版社, 1980 年 [6] 李鸣华,余水宝.单片机在超声波料位测量中的应用. 电子技术应用,1998年
[7] 李丽霞.单片机在超声波测距中的应用.电子技术,2002 年第 6 期 [8] 荀殿栋.数字电路设计实用手册.北京:电子工业出版社, 2003 年 [9] 戴曰章.基于AT89C51单片机的超声波测距系统.电气时代,2005年第7期
[10] 董敏学.汽车倒车碰撞防止系统设计.上海汽车,2001.11
[11] 董子和,李永辉.超声波测距系统的建立及其在汽车防撞系统的应用, 汽车电器1997年第1期
[12] 李茂山.超声波测距原理及实践技术.实用测试技术,1994年第1期 [13] 雷辉.基于AT89C2051的智能防撞报警器设计.电气时代,2005年第1期
[14] 黄建兵.超声波精确测距的研究.南京理工大学硕士学位论文 2004.2
15