基于单片机的超声波测距仪的设计Word格式文档下载.docx
《基于单片机的超声波测距仪的设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的超声波测距仪的设计Word格式文档下载.docx(38页珍藏版)》请在冰豆网上搜索。
5.后续研究工作
18
5.1超声波发射波形的改进
5.2样机的制作
5.3进一步研究系统的抗干扰性能
致谢
19
参考文献
附录
21
摘要
利用超声波测距原理,出于低成本、高精度的目的,提出了一种基于AT89S52的超声波倒车雷达系统的设计方案。
硬件部分采用AT89S52单片机作为控制器,主要有超声波发射电路、超声波接收电路、温度检测电路、LCD显示电路和报警电路。
在分析超声波测距原理的基础上,给出了实现超声波倒车雷达系统的硬件设计电路图和软件设计流程图。
该系统测量精度为1cm,测量范围为0.50-4.00m,完全能够满足汽车倒车系统的设计要求。
关键字
单片机超声波温度补偿测距LCD显示角度补偿
1.引言
1.1设计的应用前景
目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的成本很高,并且显示距离也比较困难,操作使用也不是很方便。
而本设计研究的测距仪成本低廉,性能优良,市场前景极为广阔。
在整个倒车过程中自动测量车尾到最近障碍物的距离,并用数字显示出来,在倒车到极限距离时会发出警告声,提醒驾驶员注意刹车。
本设计可望成为驾驶员特别是货车以及公共汽车驾驶员的好帮手,可有效的减少和避免那些视野不良的大型汽车,如集装箱车、载货车、公共汽车等倒车交通事故。
1.2单片机应用系统概述
单片机的出现及发展使计算机技术从通用型数值计算领域进入到智能化的控制领域。
从此,计算机技术在两个重要领域——通用计算机领域和嵌入式计算机领域都得到了极其重要的发展,并正在深深地改变着我们的社会。
单片机应用系统的设计包括单片机基本扩展、外围电路设计和程序设计、单片机应用系统开发环境、系统可靠性设计、电磁兼容性设计等内容。
通常开发一个单片机系统的步骤如下:
图1
技术路线
1.3超声波测距系统概述
随着社会的发展,人们对距离或长度测量的要求越来越高。
目前测量距离可以采用波在介质中的传播速度和时间关系进行测量。
常用的技术主要有激光测距、微波雷达测距和超声波测距三种。
激光和雷达测距仪造价偏高,不利于广泛的普及应用,在某些应用领域有其局限性。
超声波测距由于其能进行非接触测量和相对较高的精度,越来越被人们所重视。
展望未来,超声波测距仪作为一种新型的非常有用的工具在各方面都将有很大的发展空间,它将朝着更高定位、更高精度的方向发展,以满足日益发展的社会需求。
由于超声波具有指向性好、能量损耗低、传播距离较远、不易受外界环境影响和对被测目标无损害等特点,利用超声波测量距离就可以解决传统测量方法中遇到的问题。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此超声波测量距离技术在工业控制、勘探测量、机器人定位和安全防范等领域得到了广泛的应用。
超声波测距电路可以由传统的模拟或者数字电路构建,但是基于这些传统电路构建的系统往往可靠性差,调试困难,可扩展性差,所以基于单片机的超声波测距系统被广泛的应用。
通过简单的外围电路发生和接收超声波,单片机通过采样获取到超声波的传播时间,用软件来计算出距离,并且可以采集环境温度进行测距补偿,其测量电路小巧,精度高,反映速度快,可靠性好。
超声波测距适用于高精度的中长距离测量,超声波在标准空气中的传播速度为331.45m/s,由单片机计时,单片机使用12.0MHz晶振,所以此系统的测量精度在理论上可以达到毫米级。
本文设计的倒车雷达系统就是利用超声波的上述特性做到对倒车距离实时和高精度的检测,同时,此系统成本低、设计简单、精度和稳定性好,有望得到广泛的应用,从而减少交通事故的发生。
1.4本设计任务主要要求
(1)设计一个以单片机为核心的超声波测距仪,可以应用于汽车倒车、工业现场的位置监控;
(2)测量范围在0.50~4.00m,测量精度1cm;
(3)测量时与被测物无直接接触,能够清晰稳定地显示测量结果。
2.超声波测距原理
2.1超声波的基本理论
超声波技术是一门以物理、电子、机械、以及材料科学为基础的、各行各业都可使用的通用技术之一。
超声波技术是通过超声波的产生、传播以及接收的物理过程完成的。
该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。
因此,我国对超声波的研究特别活跃。
2.1.1超声波的三种形式
超声波在介质中可以产生三种形式的振荡波:
横波,质点振动方向垂直于传播方向的波;
纵波,质点振动方向与传播方向一致的波;
表面波,质点振动介于纵波和横波之间,沿表面传播的波。
横波只能在固体中传播,纵波能在固体液体中和气体中传播,表面波随深度的增加其衰减很快。
为了测量各种状态下的物理量多采用纵波形式的超声波。
2.1.2超声波的物理性质
(1)超声波的反射和折射
当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;
另一部分透射过界面,在相邻介质内部继续传播。
这样的两种情况称之为超声波的反射和折射。
(2)超声波的衰减
超声波在一种介质中传播,其声压和声强按指数函数规律衰减。
(3)超声波的干涉
如果在一种介质中传播几个声波,于是产生波的干涉现象。
由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。
2.1.3超声波对声场产生的作用
(1)机械作用
超声波传播过程中,会引起介质质点交替的压缩与伸张,构成了压力的变化,这种压力的变化将引起机械效应。
超声波引起质点的运动,虽然位移和速度不大,但是与超声波振动的频率的平方成正比的质点的加速度却很大,有时足以达到破坏介质的程度。
(2)空化作用
在流体动力学指出,存在于液体中的微气泡在声场的作用下振动,当声压达到一定的值时,气泡将迅速膨胀,然后突然闭合,在气泡闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程称为空化。
(3)热学作用
如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。
2.2超声波测距系统原理
2.2.1超声波传感器
总体上讲,超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、磁致伸缩型和电动型等;
机械方式有加尔统笛、液哨和气流旋笛等。
他们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。
目前较为常用的是压电式超声波发生器。
压电式超声波发生器实际上是利用压电晶体的谐振来工作的。
它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。
反之,如果两极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。
超声波传感器结构如下:
图2超声波传感器外部结构
图3超声波传感器内部结构
2.2.2超声波测距的方案
超声波测距方法主要有三种:
1)相位检测法:
精度高,但检测范围有限;
2)声波幅值检测法:
易受反射波的影响;
3)渡越时间法:
工作方式简单,直观,在硬件控制和软件设计上都容易实现,其原理为:
检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。
综合以上分析,本设计将采用渡越时间法。
图4
测距原理
由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
表1列出了几种温度下的声速:
表1
声速与温度的关系表
温度(摄氏度)
-30
-20
-10
10
20
30
100
声速(米/秒)
313
319
325
323
338
344
349
386
在使用时,如果温度变化不大,则可认为声速c是基本不变的,计算时取c为340m/s。
如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。
在本系统中利用AT89S52中的定时器测量超声波传播时间,利用DS18B20测量环境温度,从而提高测距精度。
空气中声速与温度的关系可表示为:
声速确定后,只要测得超声波往返的时间,即可求得距离:
l=1/2(331.4+0.6T)t。
(系统中应用该式进行温度补偿)
如果为了进一步提高测量精度,本设计中将根据需要利用软件方式增加角度补偿的设计:
。
(系统中应用该式进行角度补偿)
3.系统主要硬件电路设计
3.1超声波测距系统电路总体设计方案
本系统硬件部分由AT89S52控制器、超声波发射电路及接收电路、温度测量电路、声音报警电路和LCD显示电路组成。
汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89S52数据处理将距离也显示到LCD上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。
超声波测距器的系统框图如下图所示:
图5
系统设计总框图
由单片机AT89S52编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。
一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。
发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的处理,指定接收口即变为低电平,读取单片机中定时器的值。
单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。
由时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。
计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。
图6
时序图
3.2超声波发射和接收电路的设计
分立元件构成的发射和接收电路容易受到外界的干扰,体积和功耗也比较大。
而集成电路构成的发射和接收电路具有调试简单,可靠性好,抗干扰能力强,体积小,功耗低的优点,所以优先采用集成电路来设计收发电路。
3.2.1超声波发射电路
超声波发射电路包括超声波产生电路和超声波发射控制电路两部分,可采用软件发生法和硬件方法产生超声波。
在超声波的发射电路的设计中,我们采用电路结构简单的集成电路构成发射电路:
图7
由反相器构成的超声波发射电路
图7是由反相器74HC04构成的发射电路,用反相器74HC04构成的电路简单,调试容易,易通过软件控制。
单片机输出的方波经过反相器接到发射器T1的两极,用图中的推挽形式将方波信号加到发射器T1两端,可以提高发射器T1的发射强度。
图中把两个非门的输出接到一起的目的是为了提高其吸入电流,电路驱动能力提高。
74HC04是一个高速CMOS六反相器,具有对称的传输延迟和转换时间,而相对于LSTTL逻辑IC,它的功耗减少很多。
另外,上拉电阻R1、R2一方面可以提高反相器74HC04输出高电平的驱动能力,另一方面可以增加发射器T1的阻尼效果,缩短其自由振荡的时间。
3.2.2超声波接收电路
图8是由CX20106构成的接收电路,在实物的制作过程中,我们将用CX20106A这一型号代替。
CX20106A是索尼公司生产的彩电专用红外遥控接收器,是CX20106的改进型,也可用于超声波测试,有较强的抗干扰性和灵敏度。
CX20106A采用单列8脚直插式,超小型封装,+5V供电。
管脚1是超声波信号输入端,其输入阻抗约为40K;
管脚2的R1、C4决定接收器R的总增益,增大电阻R1或减小电容C4,将使放大倍数下降,负反馈量增大,电容C4的改变会影响到频率特性,实际使用中一般不改动;
管脚3与GND之间连接检波电容C2,考虑到检波输出的脉冲宽度变动大,推荐参数为3.3uF;
管脚5上的电阻R2用以设置带通滤波器的中心频率,阻值越大,中心频率越低,取R2=200K时,中心频率约为42KHZ;
管脚6与GND之间接入一个积分电容C3,电容值越大,探测距离越短;
管脚7是遥控命令输出端,它是集电极开路的输出方式,因此该引脚必须接上一个上拉电阻到电源端,没接收信号时,该端输出为高电平,有信号时则会下降;
管脚8接+5V电源。
图8
CX20106构成的接收电路
综合以上的分析,在由集成电路构成的接收和发射电路中,发射电路我们选用由反相器构成的电路,接收电路采用由红外接收检波芯片CX20106A构成,主要是考虑到系统的调试简单,成本低以及可靠性好。
3.3.1复位电路
单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如图9。
在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。
只要该脉冲足够宽就可以实现复位。
当人按下按钮SW1时,使电容C1通过R1迅速放电,待SW1弹起后,C1再次充电,实现手动复位。
图9
复位电路
3.3.2时钟电路
当使用单片机的内部时钟电路时,单片机的XTAL1和XTAL2用来接石英晶体和微调电容,如图10所示。
图10时钟电路
3.3.3按键电路
我们通过P1.0来启动测量,程序中通过查询P1.0的电平来检测是否按键被按下,在软件中通过软件延时来消除按键的机械抖动。
图11
按键电路
3.3.4蜂鸣器电路
本次设计通过一只蜂鸣器来提示用户按键按下了,现在单片机开始了测距。
蜂鸣器是一块压电晶片,在其两端加上3-5V的直流电压,就能产生3KHz的蜂鸣声,电路如图12。
通过单片机软件产生3KHz的信号从P3.7口送到三极管9013的基极,控制着电压加到蜂鸣器上,驱动蜂鸣器发出声音。
图12
蜂鸣器电路
3.3.5温度测量电路
由于超声波的传播速度c会受温度、湿度、压强等的影响,其中温度的影响尤为严重。
因此在测量精度要求高的场合,应通过温度补偿对超声波的传播速度进行校正,以减小误差。
图13
温度检测电路
本系统采用DALLAS公司的DS18B20数字式温度传感器进行温度测量,它所测量的温度值用9位二进制数直接表示,这些值通过DS18B20的数据总线直接输入CPU,无需A/D转换,而且读写指令、温度转换指令都是通过数据总线传入DS18B20,无需外部电源。
DS18B20数字温度传感器与AD590、LM35等温度传感器相比,具有相当的测温范围和精度,温度测量精确、不受外界干扰等优点。
3.3.6LCD显示电路
本设计采用LCD液晶显示屏来显示距离和温度,具有体积小、功耗低、界面美观大方等优点,这里使用YB1602液晶屏,它具有16个引脚,其正面左起为第一脚,如图14所示:
图14
LCD1602实物
第一脚VSS:
接地。
第二脚VDD:
+5V电源。
第三脚VEE:
对比度调整端。
使用时通过接一个10K的电阻来调节。
第四脚RS:
寄存器选择信号线,H为数据选择,L为指令选择。
第五脚RW:
读写信号线。
第六脚E:
使能端,当E由高电平跳变为低电平时执行命令。
第7-14脚:
8位数据线D0-D7。
第十五脚BLA:
背光电源正极输入端。
第十六脚BLK:
背光电源负极输入端。
图15
LCD显示电路
3.3.7电源电路
电源电路采用普通可调电源供电,该电源不含稳压器,所以在设计中需要用稳压器进行稳压。
我们选用LM7805来获得稳定的+5V直流电压。
输入电压(<
21V)经过7805的稳压输出+5V的电压,图中的D2为保护7805,防止电源极性接反损坏7805,滤波电容采用100uF电解和104瓷片电容并联使用,电磁兼容的实践证明,两个差100倍的电容并联使用效果很好。
本设计电源电路如下:
图16
电源电路
4.系统软件设计
4.1系统程序的结构
(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;
(2)基于YB1602的显示模块,分为初始化子程序、写入子程序以及显示子程序;
(3)温度补偿与距离计算模块,分为超声波发送控制程序、接收处理程序、温度补偿子程序等。
本次设计使用C语言编写程序,C语言相比汇编有许多的优势,编译器使用Keil
Version2进行程序编译,Keil功能强大使用方便。
在编译完成后,通过Proteus软件进行仿真,对设计进行验证和优化。
如图17所示描述了各个模块的关系:
图17
系统软件方框图
4.2系统主程序
本设计主程序的思想如下:
(1)温度为两位显示,距离为四位显示单位为mm;
(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms,故900ms满足该速度要求;
超声波每隔60ms发送一次。
(3)按键SW2为测量启动键;
(4)系统采用AT89S52的内时钟:
12MHz,每记一次数为1us;
图18
主程序流程图
4.340KHz超声波发送子程序
超声波每过60ms发送一次,通过定时器T0中断发送超声波,超声波发送后延时一段时间后返回,防止余波被接收头接收误判,流程图如下:
图19
超声波发送子程序流程图
4.4DS18B20温度采集程序
DS18B20的工作流程是,初始化
ROM操作指令
存储器操作指令
数据传输。
其工作时序包括:
初始化时序、写时序和读时序。
图20
温度采集程序流程图
4.5距离计算子程序
距离计算中,实行了温度补偿和角度补偿。
流程图如下:
图21
距离计算子程序流程图
4.6数据转换子程序
经过程序求出的数据原码无法直接用于显示,必须转换为LCD所接受的BCD码的形式。
图22
数据转换子程序流程图
4.7LCD显示子程序
LCD液晶显示程序分为液晶初始化、读忙、写指令和写数据操作,液晶显示器是一块慢器件,所以在执行每条指令之前必须确定模块忙标志为低电平(不忙),否侧此指令无效。
液晶显示子程序流程图如下:
图23
LCD显示子程序
在程序中,我们将测量的各种结果存放到一个数组num[]中,然后通过这个数组的数据到预先存放字符的数组中去按num[]中的数据的顺序去读取出预存在numcode[]中的字符然后送到LCD中显示。
4.8基于Proteus的软件仿真
Proteus是一款功能强大的软件,其ISIS用来做仿真十分方便,尤其是单片机系统的仿真,我们在本设计的开发初期,用Proteus来仿真我们的设计,以便验证我们的设计,对设计的正确性做出分析。
图24
Proteus仿真图
用Proteus绘制好电路图后导入程序文件(用Keil编译过后的HEX文件),然后就可以执行仿真,我们在仿真的时候P2.6检测到高电平即为返回信号获得,由于在软件中没有CX20106模型,所以P2.6悬空,则程序开始就认为返回信号获得了,所以显示了一个最小测量值113mm,而温度为28°
C,通过调节DS18B20模型的温度可以测试显示温度是否正确,从图中可以看出显示的温度就是DS18B20的预设温度值。
下面我们再来看看P2.5口是否有发射信号的产生。
由于是频率比较高的信号(40KHz),所以不能通过二极管来观察到,所以在仿真的时候P2.5一直显示的是低电平状态,这时必须用示波器来查看,如图:
图25
波形
从上图看出,P2.5口输出了信号,由于软件是间隔60ms发送一次40KHZ的信号,所以可以看到这样的尖脉冲信号产生。
软件仿真的成功说明我们的设计达到了初步的要求。
5.后续研究工作
由于时间不是很充裕,对系统的设计还存在一些不足,下一步还有以下工作要继续进行:
5.1超声波发射波形的改进
因为该设计加在发射器上的电压波形采用方波,方波含有丰富的高次谐波,不利于精确鉴相。
这将增加发射波与回波的谐波失真。
所以在接下来的工作中,可能会考虑用正弦波代替方波来优化该设计。
5.2样机的制作
由于时间关系,样机暂时无法做出,但我们已经和同学一起联系商家,购买了一定的材料。
5.3进一步研究系统的抗干扰性能
硬件抗干扰技术是系统设计时首选的抗干扰措施。
常见的硬件抗干扰措施有元件的合理布局、接地的抗干扰处理、隔离技术等。
在制作样机的过程中,将会采用多种抗干扰技术对系统进行优化,减小测量误差。
致谢
本次毕业设计得以顺利完成,首先要感谢刘纯利老师的指导和大力支持。
在这期间,我和刘老师保持着经常性的面对面或通过邮件形式的交流。
刘纯利老师渊博的专业知识、严谨的治学态度、精益求精的工作作风、平易近人的人格魅力对我影响深远。
在毕业设计中,刘纯利老师对设计的思路和结构进行了指导,同时也对相当一部分专业知识方面的帮助。
同时,也要感谢大学几年授我们以渔的老师们,是你们的谆谆教诲让我们获得了扎实的知识,在这里表示衷心的感谢!
参考文献
[1]谢维成,杨加国.单片机原理与应用及C51程序设计.北京:
清华大学出版社,2006
[2]蔡菲娜.单片微型计算机原理和应用.杭州:
杭州大学出版社,1995
[3]李建忠.单片机原理及应用.西安:
西安电子科技大学出版社,2002
[4]张齐等.单片机应用系统设计技术----基于C语言编程.北京:
电子工业出版社,2004
[5]吴延海.微型计算机接口技术.重庆:
重庆大学出版社,1997
[6]李丽霞.单片机在超声波测距中的应用[J].电子技术,2002
[7]姜道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000
[8]张鹏,张有志.一种新型超生测距系统[J].山东:
山东大学学报,2003,33
(1)
[9]李学海.PIC单片机实用教程-基础篇(第1版)[M].北京航天航空大学出版社.北京:
2002年2月
[10]贾伯年.传感器技术.南京:
东南大学出版社,2000
[11]陈大新,胡学同,周杏鹏.利用FPGA改进超声波测距模块设计[J].传感器技术,2005,24
(2):
57~59
[12]阎石.数字电子技术基础.北京:
高等教育出版社,1998
[13]楼然苗.
51系列单片机设计实例.北京:
北京航空航天大学出版社,1999
[14]谭浩强.C程序设计(第三版).北京:
清华大学出