摘要:本文设计并实现了一个以MCS-51单片机为核心的超声波测距模块。该模块由超声波发射单元、超声波接收单元、温度测量单元、显示单元和ISP下载单元等组成,由单片机产生超声波的发射信号并对其传播时间进行测量,依据超声波在空气中的传播特性,换算出距离数据,从而实现测量距离的目的。设计中采用LM386作为超声波的发射驱动,采用集成芯片CX20106作为超声波接收单元,结构简洁,集成度高。通过实验表明,该模块性能可靠,能较准确地测出与障碍物之间的距离,达到了设计要求。
关键词:超声波测距;MCS-51单片机;LM386;CX20106
0 引言
在多数项目研发中,距离测量显得越来越重要,常用的测距方式主要有雷达测距、红外测距、激光测距和超声测距等4种。雷达测距对天气的依赖性较强,且成本较高;红外测距测量范围窄;激光测距精度高、抗干扰力强、但成本高,且光学系统需细心维护;超声波测距指向性强、传输距离远、受环境影响小、传播时间容易检测,而且超声波传感器结构简单、性能可靠、成本低、易于集成,因此本文采用超声波方式进行距离测量。
1 超声波测距原理
超声波发生器内部有两个压电晶片和一个共振板,当两极外加脉冲信号的频率等于压电晶片的固有振荡频率时,压电晶片将发生共振,并带动共振板振动,从而产生超声波;同理,当共振板接收到超声波时,将压迫压电晶片产生振动,将机械能转换为电信号。
测距原理如图1所示。
被测距离。式中:s为超声波传播距离;h为发射探头与接收探头之间的距离。
由于s远大于h,因此可近似认为d=s,则d=s=ct/2,t为发射超声波与接收超声波的时间间隔,c为超声波在空气中的传播速度。
在空气中,常温下超声波的传播速度是334m/s,但其传播速度c易受空气中温度的影响,声速与温度关系如表1所示,由此可修正超声波传播速度
可见,只要测得超声波发射和接收回波的时间差t以及环境温度T,就能得到较为精确的距离。
2 方案设计
2.1 电路设计
设计的超声测距模块由超声波发射单元、超声波接收单元、温度测量单元、液晶显示单元和ISP下载单元等部分构成,系统框图如图2所示。
2.1.1 单片机单元
单片机是整个系统的控制核心,本文选用AT89S51,测量时,由单片机输出40 kHz左右的脉冲信号,驱动超声波发射器发出超声波脉冲,同时启动单片机计时器,开始计时。超声波达到目标时回传,经空气传播被超声波接收器接收,此时计时停止,经计算可得超声波从发射到接收的时间间隔t,从而得到距离数据。
2.1.2 超声波发射单元
考虑到单片机端口驱动能力有限,本文采用LM386对输出信号进行功率放大,LM386多用于音频放大,也可用于超声波发射。如图3所示,LM386第1脚和第8脚之间串接的E1、R1,可使电路获得较大的增益,T0为单片机输入的脉冲信号,经功率放大后由第5脚输出,驱动探头发射超声波。
2.1.3 超声波接收单元
为了顺利接收回波信号,本文采用索尼公司生产的集成芯片CX20106,如图4所示,CX20106是一款红外线检波接收的专用芯片,由于红外遥控常用的载波频率38kHz与超声波频率40kHz比较接近,而且CX20106内部设置的滤波器中心频率f0可由其5脚外接电阻调节,范围为30~60 kHz,因此本文采用它来做接收电路。
回波信号先经过CX20106内部的前置放大器和限幅放大器,将信号调整到适当的幅值,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚,7脚与单片机INT0连接,当接收到与滤波器中心频率相符的回波信号时,输出端7脚即输出低电平,触发中断。
2.1.4 温度测量、液晶显示与ISP单元
温度测量单元选用1Wire总线器件DS18B20作为传感器,实现对温度数据的采集,液晶模块实现测量数据的显示,ISP单元实现程序代码的在系统下载,电路图从略。
2.2 软件设计
软件部分主要包括主程序和中断服务子程序,如图5所示。主程序主要完成系统初始化、温度读取和超声波发射;中断服务子程序主要完成计数值的读取、距离计算、输出显示等工作。
3 实验结果及分析
表2是利用本文的测距模块实际测量的结果。由表中数据可见,在30cm范围内误差较大,这是由于超声波信号的发射必须有一个上升时间,如果距离太近单片机难以及时处理回波信号,无法正确检测回波到达时间,因而测量误差明显增加;而距离在30em以上时,由于引入温度补偿单元,因而误差相对较小。
4 结束语
本文设计的超声波测距模块,采用了集成元件LM386、CX20106作为发射和接收的核心器件,并引入了DSl8B20作为温度补偿单元,因此结构简单、集成度较高、可靠性较强,通过实验验证,测量结果与实际距离相近,基本满足测量要求。