课程设计 超声波测距文档格式.docx
《课程设计 超声波测距文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计 超声波测距文档格式.docx(34页珍藏版)》请在冰豆网上搜索。
换能器向介质发射超声波,声波遇到目标后必然有反射回波作用在换能器上。
若已知介质中声速为c,回波到达时刻与发射波时刻的时间差为t,就可以计算出发射点与反射点的距离s:
s=c.t/2
(1)
2.2超声波传感器的工作原理及结构图
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。
总体上讲,超声波发生器可以分为两大类:
即用电气方式和机械方式产生超声波。
前者包括压电型、磁致伸缩型和电动型等;
后者有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同,目前较为常用的是压电式超声波发生器,压电式超声波换能器是利用压电晶体谐振来工作的。
内部结构如图1所示,它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是超声波发生器;
如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。
超声波发射转换器与接受转换器其结构稍有不同[4]。
图1超声波传感器结构
以下为型号T/R40-10的超声波传感器的特性参数(T--发射,R--接收,40--中心频率单位kHZ,10--外壳直径单位mm)
3单元模块设计
3.1各单元模块功能介绍及电路设计
整体电路的控制核心为单片机AT89S52,超声波发射和接收电路都对相应信号进行整形及放大,以保证测量结果尽可能精确。
超声波模块传感器实现超声波的发射和接收。
整体电路如图6:
包括超声波发射电路,超声波接收电路,显示电路等模块组成[8]。
图2.1
工作原理
超声波测距器工作原理:
打开电源,整个电路通电,单片机执行程序,对系统环境初始化,设置定时器T0工作模式,启动T0,调用超声波发生子程序,等待反射超声波,计算距离,显示距离;
重复。
工作过程中,相关的子程序和中断程序被执行,相应硬件配合行动,显示测量结果。
3.2AT89S52型单片机介绍
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止[5]。
其引脚图如图3所示:
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用。
第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INTO(外中断0)
P3.3INT1(外中断1)
P3.4TO(定时/计数器0)
P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
图3.1
3.3各单元模块的联接
3.3.1系统设计
该系统是以STC89C52型单片机为主体而搭建的,连接了外部矩阵键盘,
1602型液晶,稳压电源系统。
1、单片机
单片机的型号是STC89C52,其主要外部I/O连接如下:
表3.1
P0.0-P0.7
1602显示端口
P2.0-P2.2
1602读\写控制
P3.0-P3.1
程序烧写
P3.4口
发波端
P3.2
接收端
图3.2
3.3.2、矩阵键盘
键盘为4×
4的矩阵键盘,每个按键功能和与单片机连接端口如下:
图3.3
3.3.3、液晶
图3.4
使用1602型液晶,在不同的状态下显示不同的内容:
初始化:
预设距离:
测量中:
测量失败:
图3.5
3.3.4、闪烁灯
图3.6
3.3.5、程序烧写模块
图3.7
3.3.6、蜂鸣器模块
图3.8
3.3.7、稳压电源
采用7805稳压芯片,增加了电源的稳定性,降低功耗
图3.9
3.3.8、测距模块
(1)工作原理图3.10
a.采用IO口TRIG触发测距,给至少10us的高电平信号;
b.模块自动发送8个40KHZ的方波,自动检测是否有信号返回;
c.有信号返回时,通过IO口ECHO输出一个高电平,高电平持续时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速)/2。
(2)引脚定义
VCC供5V电源,
TRIG触发控制,信号输入,
ECHO回响信号输出,
OUT开关量输出(当报警模块使用),
GND为地线。
(3)工作时序图
图3.11
以上时序图表明,只要提供一个10us以上脉冲触发信号,该模块内部将发出8个40KHZ周期电平并检测回波。
一旦检测到回波,信号则输出回响信号。
回响信号的脉冲宽度与所测量的距离成正比。
由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。
4软件设计
4.1软件设计分析
完成了系统的硬件设计之后,接下来的就是系统软件设计,此设计所需要完成的主要是针对系统功能的实现及数据的处理和应用。
由以上所述系统硬件设计和各个电路功能,系统软件需要实现以下功能:
1、信号控制。
在系统硬件中,已经完成了发射电路、回拨检测接收电路的设计。
在系统软件设计中只需完成发射脉冲信号及输出显示。
2、数据存储。
测距系统中需要得到发射信号与接收回波的时间差,需要读出计时器的计数值,然后存储在RAM中,而且每次发射周期的开始,需要对计数器清零,以备后续处理。
3、信号处理。
RAM中存储的计数值并不能作为距离值直接显示出来,有这个时间后,可以通过程序来计算出来。
4、距离显示。
经过软件处理得到的距离值需要十进制的数码管方式。
4.2软件设计思路
超声波软件测距软件设计主要由主程序,发射子程序,外部中断接收子程序及显示子程序[12]。
程序可以由汇编和C来编写,汇编语言虽然有很高的效率和精确度,但使用起来比较难以掌握,本文主要采用C语言程序来完成各个功能。
4.2.1主程序
主程序流程图如图14所示。
主程序首先对系统环境初始化,设置T0工作模式为16位的定时器模式,及计数初值,然后使超声波发射出一串40kHZ的方波。
由于采用12MHZ的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0的数(即超声波来回所用的时间)按公式计算可测得被测物体与测距仪之间的距离,测出距离后结果在液晶屏显示,然后再循环进行下一次距离的测量。
当所测距离超出设置的最大距离后报警器会报警。
图4.1
4.2.2超声波测距子程序
超声波发射子程序在P3.7口产生40kHZ方波脉冲宽度约12us,作为超声波发射器的输出信号。
一旦接收到超声波返回信号后(INT0引脚出现低电平),就立即进入中断程序。
进入中断程序后就立即关闭定时器,T0停止计时,并将接收到的标志位为1,,然后在主函数里调用计算距离公式,在显示出来。
流程图如图15:
图4.2
4.2.3超声波延时子程序
在传感器以脉冲发射方式工作下,电压很高的发射电脉冲在激励传感器的同时也进入接收部分,此时,在短时间内放大器的放大倍数会降低,甚至没有放大作用,这种现象成为阻塞。
不同的检测仪阻塞成都不一样。
根据阻塞区内的缺陷回波高度对缺陷进行定量会使结果偏低,甚至不能发现障碍物,这是需要注意的。
由于发射脉冲自身有一定的宽度,加上放大器有阻塞问题,在靠近发射脉冲一段时间范围内,所要求发现的缺陷往往不能被发现,这段时间成为盲区。
延时子程序的作用就是在超声波发射的同时延迟一些时间,在打开中断,为了就是防止在超声波发射时接收器就收到发射波,这样就会产生错误,产生比较严重的误差,所以要延迟一定的时间。
5系统调试
5.1硬件调试
超声波测距仪的硬件安装时应保持两换能器中心轴线平行两者之间的距离在3-5cm之内,其余元件没有特殊要求。
若能将超声波电路用金属壳屏蔽起来,可以提高抗干扰能力。
根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容的大小,以获得合适的接收灵敏度和抗干扰能力。
硬件调试中,首先是线路的检查。
焊接完实验后检查是否有错焊、漏焊、虚焊,电解电容是否接反,走线是否正确。
检查无误后,再次就是上电检查,在正式上电前,用万用表测量一下电源与地是否短路,短路的话,要耐心检查、排除故障。
然后进行显示电路,用同样的方法对显示部分进行调试后,给单片机与1602液晶之间进行调试。
最后是对发射和接收电路,用函数发生器吧40kHZ的方波直接加到发射电路的输入端后,用示波器检测超声波发射的换能器,检差是不是有方波信号,再用函数发生器对超声波接收的换能器直接加40kHZ的方波信号,用示波器对接收电路输出端进行检测。
通过这些过程,硬件部分的调试就基本完成了,剩下的就只有软件和硬件的联调了。
5.2硬软件联调
硬件测试好后,便可将程序编译下载到单片机试运行。
根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。
根据所设计的电路参数和程序,测距仪能测的范围为0.04~2.10m,测距仪最大误差不超过1cm。
系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。
图17为在keil_uVision3里编译的情况:
图5.1
5.3测试结果分析
5.3.1测试波形
图18、19中的波形为示波器抓拍的发射和接收电路中所得的波形图,上方的波形为发射电路中所得的波形图,下方的波形为接收电路中在cx20106的1引脚处测得波形。
图5.2
图5.3
由上图可见,接收回路中测得的超声波信号共有两个波束,第一个波束为余波信号,即超声波接收头在发射头发射信号(一组40KHz的脉冲)后,马上就接收到了超声波信号,并持续一段时间。
另一个波束为有效信号,即经过被测物表面反射的回波信号。
超声波测距时,需要测的是开始发射到接收到信号的时间差,由上图中就可看出,需要检测的有效信号为反射物反射的回波信号,故要尽量避免检测到余波信号,这也是超声波检测中存在最小测量盲区的主要原因。
5.3.2测试中仪器仪表
所用仪器仪表如
表5.1
表序号
名称
型号
品牌
数量
备注
1
直尺
/
精度:
0.1cm
2
万用表
3
数字示波器
GDS-2062
5.3.3数据分析
基于上面设计的硬件电路和软件,焊接好电路后,经过调试,对系统进行测试,测试的距离数据如表2。
测量单位:
cm。
表5.2单位:
cm
实际距离
5
10
20
21
25
30
35
40
50
60
测量距离
9
31
34
38
49
误差
70
89
94
105
115
120
140
180
195
200
71
90
91
109
118
183
194
4
5.4超声波测距误差分析
超声波测距在实际应用也有局限性,其中对超声波测距的精度要求挺高。
一是超声波在空气中衰减极大,因为测量距离的不同,造成回波信号的起伏,使回波到达时间的测量产生了较大的误差;
二是超声波脉冲回波在接收过程中展宽,影响了测距的分辨率,尤其是对近距离造成较大的影响,还有一些因素,诸如环境温度、风速等也会对测量造成一定地影响,这些因素都限制了超声波测距在一些对测距精度要求较高的场合的应用,如何解决这些问题,提高超声波测距的精度,具有较大的现实意义[13]。
本系统最大测距误差在3cm左右,测距的盲区为5cm。
5.4.1温度误差
由于超声波也是一种声波,其声速c与温度有关,不同温度下超声波在空气中传播的速度随温度变化的关系:
式中:
T为绝对温度(℃),
为331.4m/s。
表3列出了不同温度下的超声波声速。
在使用时,若果温度变化不大,则可以认为声速是基本不变的,如果测距精度要求很高,则应通过温度补偿的方法加以校正[14]。
表5.3
5.4.2串扰问题
设计中发射极和接收极距离较近,这样当发射极发射超声波后,有部分超声波经过障碍物反射就直接绕射到接收极上,这部分信号时无用的,会引起系统误差,而且这种误差是不可避免的。
设计中采用延时来解决这个问题,经过多次程序校正本设计的盲区为5cm[13]。
6结论
6.1总结与体会
在设计之前,参考了许多相关的资料。
在设计中又参考了网上的相关超声波测距仪资料,有了基本的思路。
但着手设计时,又出现了许多未预料到的问题,例如元件的选择:
在选择方案时最初选择了用分立元件搭建,但是在调试过程中遇到了问题,发射端和接收端都正常工作,但是在处理接收端信号时由于CX1206芯片太为敏感,一直不能给出中断低电平,后改方案为全部用分立元件搭建,其中涉及到前级放大,带通滤波,后级放大比较,调试也没能完成,因此暂时放弃了此方案。
选择了用超声波模块传感器,在调试过程中就显得容易了许多。
在显示问题上,由于要显示字母和数字,因此选择了用1602液晶显示屏。
为使单片机正常工作,电源选择了用7805稳压芯片,使用9V干电池供电,达到了便携的效果。
在一些设计原理上也遇到了许多问题。
如在中断程序和时钟编写上。
还有就是在PCB制图和焊接上出现一些错误,经同学以及老师的指证,发现导通的原因,并及时的改正。
总之,这次实验过程中我受益匪浅,培养了我的设计思维,增加了动手操作的能力。
更让我体会到实现电路功能喜悦。
6.2对设计的进一步完善提出意见或建议
本次设计还是有许多的不足之处,比如说本次设计的测距仪测距范围还不是特别大,只有0-5.4m,测量精度还不是很高,在两米以内为2厘米误差,而之后误差会随着测量距离的增加而增加,比如在五米时误差达到10厘米。
在设计上我们还可以做成更小更便携,比如在器件的选择可以改用贴片,处理器可以用430类似的低功耗单片机,达到节能的目的,还可以加上无线通信功能,只需给设备发条短信,就可以知道测量的数据。
只是由于时间以及个人的能力问题我们暂时还难以设计出这样的电路,者就有待于今后我们在学习中认真领悟、参透。
7致谢
在这里,我对我们的带课老师卜云老师表示衷心的感谢。
卜老师在这次课程设计过程中对我们的全方位的指导,是我们这次课程设计取得成功的根本保证。
卜老师对这次课程设计抱着认真负责的态度,他极力做好安排、指导、答