根据温度补偿的超声波测距设计.docx
- 文档编号:20120505
- 上传时间:2023-04-25
- 格式:DOCX
- 页数:38
- 大小:439.25KB
根据温度补偿的超声波测距设计.docx
《根据温度补偿的超声波测距设计.docx》由会员分享,可在线阅读,更多相关《根据温度补偿的超声波测距设计.docx(38页珍藏版)》请在冰豆网上搜索。
根据温度补偿的超声波测距设计
1绪论2
1.1设计目的2
1.2设计意义2
1.3系统功能3
2设计方案4
2.1方案设计4
2.2方案论证4
3硬件设计5
3.1设计方案5
3.2STC89C52外围电路设计6
3.2.1单片机6
3.2.2复位电路与震荡电路7
3.3LCD显示模块的设计8
3.3.1字符型液晶显示模块8
3.3.2字符型液晶显示模块引脚8
3.3.3字符型液晶显示模块内部结构9
3.4温度传感器DS18B20电路设计10
3.4.1温度传感器DS18B20简介10
3.4.2DS18B20的主要特性11
3.5数据采集模块12
3.6HC-SR04超声波测距模块13
3.7报警电路设计15
4软件设计17
4.1系统软件设计说明17
4.2主程序的设计17
4.3超声波发射子程序和超声波接收中断子程序设计18
4.4温度测量子程序设计18
5结果与结论21
5.1结果21
5.2结论21
致谢22
参考文献23
附录24
1绪论
1.1设计目的
随着国民经济的迅速发展,超声波在机械制造、石油化工、航空航天等领域发挥着越来越重要的作用。
超声波测距作为一种非接触式距离测量方法,具有不受外界光及电磁场等因素影响的优点,实现电路简单、成本低;同时,还具有易于定向发射、方向性好、对人体伤害小等特点。
上述优势使得与超声波测距领域相关的仪器设备在数据处理、检测性能和工程设计系统化等方面有了更大的发展空间。
利用超声波定位技术是蝙蝠等一些无目视能力的生物作为防御天敌及捕获猎物的生存手段,这些生物体可发射人们听不到的超声波(20KH以上的机械波),借助空气介质传播,根据猎物或障碍物反射回来的回波的时间间隔及强弱,判断
猎物的性质或障碍物的位置。
在影响超声波测距误差的因素中,温度的影响是比较大的,超声波的传播速度在不同的温度下是不同的,那就要得出其传播速度与环境温度t的关系式。
因此用常温下的超声波速度341m/s来计算不同温度环境下的超声波测距的距离是有很大误差的。
为了提高测距精度,我们必须对超声波的速度进行温度补偿,用温度传感器测环境温度的数值,从而得到改环境下的超声波速度
1.2设计意义
随着社会经济的快速发展,人们生活水平的不断提高,交通运输业的日益兴旺,汽车数量的越来越多。
交通拥挤的状况也日趋严重,撞车事件也经常的发生,造成了很严重的人员伤亡和财产损失,针对这一情况,设计一种响应快,可靠性高且较为经济的汽车防撞报警系统事在必行,最常见的一种测量距离的方法是超声波测距,应用于汽车的近距离防撞。
还有城市的快速发展,排水系统往往落后于城市建设,经常出现已经建设好建筑设施再重新开挖排水设施的情况,这样经常会造成城市污水的到处排放,影响城市卫生,针对这一情况,设计污水疏通移动机器人的自动控制系统是非常必要的,而这个自动控制系统核心就是超声波测距。
以上举得只是超声波应用领域中的一小部分的例子,当今生活中还有很多方
面需要用到超声波测距,来解决人们日常生活中遇到的问题,因此设计一款超声
波测距仪是非常重要的一件事。
1.3系统功能
超声波测距仪的设计要求如下:
1)测量范围小于等于5米
2)测量误差小于0.3cm
3)进行温度补偿
4)以LCD显示温度和距离
2设计方案
2.1方案设计
利用超声波检测距离,设计比较方便,计算处理也较简单,其测量精度也能
达到使用要求。
超声波发生器可以分为两大类:
一类是用机械方式产生超声波,一类是用电气方式产生超声波。
电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
目前在近距离测量方面常用的是压电式超声波换能器。
根据设计要求并综合各方面因素,本设计采用AT89C51单片机作为控制器,
用动态扫描法实现LCD数字显示,超声波驱动信号用单片机的定时器。
单片机发出40kHz的信号经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LCD显示。
2.2方案论证
方案一:
基于单片机的超声波测距方案,基于单片机的超声波测距是以单片
机编程产生40KHZ的频率,经过发射驱动放大,使发射端发射超声波,经被测物反射回来,通过反射电路,放大,整形,处理,测出距离。
方案二:
基于CPLD的超声波测距系统。
基于CPLD的超声波测距系统采用CPLD器件控制超声波的发射与接收,从而计算出测量的距离,其运用VHDL编写程序,
并且配合MAX-plusU进行软硬件的仿真与调试。
利用CPLD具有性能高、成本低的特点,但是单片机能够准确计时,测距精度高,而且单片机控制方便,计算简单,所以综合更方面因素本文采用STC89C5洋
片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。
3硬件设计
3.1设计方案
本文介绍了一种采用脉冲回波方式,基于STC89C5单片机的超声波测距系统。
该系统充分利用单片机的硬件和软件资源,自动实现超声波的发射与接收控制。
该系统充分考虑了环境温度对超声波传播速度的影响,通过单片机中计数器所计超声波往返所经历的时间,通过公式换算就可以计算出超声波发射器与被测物之间的距离。
其主要包括单片机控制模块,超声波发射模块,超声波接收模块,LCD1602显示模块,温度补偿模块,报警模块,和扫描驱动模块这几个部分。
其可以实现非接触测量物体的距离,并通过LCD1602液晶显示出来,当距离小于1M时实现报警。
图3.1超声波测距仪总设计框图
3.2STC89C52外围电路设计
321单片机
STC89C52是一种低功耗、高性能CMOS位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得
STC89C5为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM定时器/
计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
外形及引脚排列
如图3.2所示。
图3.2STC89C52的芯片引脚图
STC89C52共有40个引脚,大致可分为4类:
电源引脚、时实现单片机的自动工作,即实现自动化!
3.2.2复位电路与震荡电路
单片机STC89C52乍为主控芯片,控制整个电路的运行。
其需要一个复位电路,复位电路的功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。
复位电路的设计图如图3.3所示。
VCC
:
R1
10K
复位电路
图3.3复位电路图
STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和
XTAL2分别为该反向放大器的输入端和输出端。
这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接12M振荡器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
由于外接电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性因此电容选择30pF10pF。
振荡电路
图3.4振荡电路图
3.3LCD显示模块的设计
3.3.1字符型液晶显示模块
图3.5液晶面板
字符型液晶显示模块是一类专门用于显示字母,数字,符号等的点阵式液晶显示模块。
在显示器件上的电极图型设计,它是由若干个5*7或5*11等点阵符位组成。
每一个点阵字符位都可以显示一个字符。
点阵字符位之间有一空点距的间隔
起到了字符间距和行距的作用,模块见图3.5
3.3.2字符型液晶显示模块引脚
VSS为地电源,VDD接5V正电源,VL为液晶显示器对比度调整端,接正电源
时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,咼电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
DBO~DB为
8位双向数据线,BLK和BLA是背光灯电源。
模块引脚如表3.1。
表3.1字符型液晶显示模块引脚
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
DataI/O
3
VL
液晶显示偏压信号
11
D4
DataI/O
4
RS
数据/命令
12
D5
DataI/O
5
R/W
读/写
13
D6
DataI/O
6
E
使能信号
14
D7
DataI/O
7
D0
DataI/O
45
BLA
背光源正级
8
D1
DataI/O
16
BLK
背光源负级
3.3.3字符型液晶显示模块内部结构
液晶显示模块WM-C1602的内部结构如图3.6分为三部份:
一为LCD控制器,
为LCD驱动器,三为LCD显示装置。
与单片机接口见图3.6
I_CT>
功
图3.6LCD1602内部结构
图3.7液晶接口
3.4温度传感器DS18B20电路设计
3.4.1温度传感器DS18B20简介
DS18B2C是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式,温度测量范围为—55C〜+125C,可编程为9位〜12位A/D转换精度,测温分辨率可达0.0625C,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可
以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信(每个温度传感器的ROh里有不同的识别号码),占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系
统。
DS18B20内部结构如图3.8所示,主要由4部分组成:
64位ROM温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图3.9所示,DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入
端。
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址
序列码,每个DS18B20的64位序列号均不相同,ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
图3.8DS18B20内部结构图
图3.9DS18B20管脚图
3.4.2DS18B20的主要特性
(1)适应电压范围更宽,电压范围:
3.0〜5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B2C支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(5)温范围—55T〜+125C,在-10〜+85C时精度为土0.5C。
(6)可编程的分辨率为9〜12位,对应的可分辨温度分别为0.5C、0.25C、0.125C和0.0625C,可实现高精度测温。
(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(8)测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(9)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时温度寄存器的值将加1,计数器1的预置将重新被装入,重新开始对低温度系数晶振产生的脉冲信号进行计数。
如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3.10中的斜率
累加器用于补偿和修正测温过程中振荡器温度特性的非线性,以产生高分辨率的
温度测量。
其输出用于修正计数器的预置值,只要计数门仍未关闭就重复上述过程直至温度寄存器值达到被测温度值,这就是DS18B20勺测温原理。
斜率累加器
-"IT
-J[
低禹度釉嫌荡赛■计敵器】
h.i・I■d
需證度系数振话器A计减到0停止
图3.10DS18B20测温原理图
另外,由于DS18B20单总线通信功能是分时完成的,因此他有严格的时隙概念
因此读写时序很重要。
系统对DS18B20勺各种操作必须按协议进行。
操作协议为
初始化DS18B20发复位脉冲)发ROMfe能命令发存储器操作命令处理数据。
3.5数据采集模块
DS18B2C有4个主要的数据部件:
A:
64位激光ROM64位激光ROM从高位到低位依次为8位CRC48位序列号和8位家族代码(28H)组成。
B:
温度灵敏元件。
C:
非易失性温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
D:
配置寄存器。
配置寄存器为高速暂存存储器中的第五个字节。
其中R0R1:
温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0R1置为缺省值:
R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表3.2分辨率关系表
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
高速暂存存储器由9个字节组成,其分配如表3.2所示。
当温度转换命令发布
后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1
个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表3.3所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
表3.3DS18B20存储器
温度LSB
温度MSB
T
TL
保留
保留
计数寄存器
计数寄存器
8位CRC
H
3.6HC-SR04超声波测距模块
1.概述
HC-SR04超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA自带温度传感器对测距结果进行校正,同时具有GPIQ串口等多种通信方式,内带看门狗,工作稳定可靠。
主要技术参数如下表:
表3.4主要技术参数
电气参数
HC-SR04超声波测距模块
工作电压
DC2.4V~5.5V
静态电流
2mA
工作温度
-20~+70度
输出方式
电平或UART(跳线帽选择)
感应角度
小于15度
探测距离
2cm-450cm
探测精度
0.3cm+1%
UART模式下串口配置
波特率9600,起始位1位,停止位1位,
数据位8位,无奇偶校验,无流控制。
本模块实物图及尺寸如图3.10所示
图3.10HC-SR04正反面图
本模块的尺寸:
45mm*20mm*1.6mn板上有两个半径为1mmt勺机械孔
2.电平触发测距工作原理
在模块上电前,首先去掉模式选择跳线上的跳线帽,使模块处于电平触发模式电平触发测距的时序如图3.11所示:
10uS的TTL
磁营号
通环左出E个斗mo五ifr沖
模块内部丨丨IL
发出倍号
总出冋帕回购电平櫥出|
筒号与检晦廊咸bt例
图3.11HC-SR04测距时序图
图3.11表明:
只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。
即距离值为:
(高电平时间*340m/s)/2。
3.串口触发测距工作原理
在模块上电前,首先插上模式选择跳线上的跳线帽,使模块处于串口触发模式。
在此模式下只需要在Trig/TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ勺超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过
Echo/RX管脚输出。
输出的距离值共两个字节,第一个字节是距离的高8位(HDate),第二个字节为
距离的低8位(LData),单位为毫米。
即距离值为(HData*256+LData)mm
4.串口触发测温工作原理
在模块上电前,首先插上模式选择跳线上的跳线帽,使模块处于串口触发模式。
在此模式下只需要在Trig/TX管脚输入0X50(波特率9600),系统便启动温度传感器对当前温度进行测量,然后将温度值通过Echo/RX管脚输出。
测量完成温度后,本模块会返回一个字节的温度值(TData),实际的温度值为
TData-45。
例如通过TX发送完0X50后,在RX端收到0X45,则此时的温度值为[69
(0X45的10进制值)-45]=24度。
3.7报警电路设计
如果距离小于1M则单片机STC89C52则给P3.7口一个信号,使得报警电路工作,实现报警。
如图3.11所示。
Q69013
^eafer
VTC:
P3.7
1K
图3.11报警电路图
4软件设计
4.1系统软件设计说明
进行测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。
因此,软件设计在微机测量控制系统设计中占重要地位。
本软件设计主要是对距离进行测量、显示。
因此,整个软件可分为按照硬件电路对单片机位定义;发射子程序;接收子程序;显示子程序;延时
子程序等。
4.2主程序的设计
图4.1主程序流程图
主程序首先是对系统环境初始化,设置定时器TO工作模式为16位定时计数
器模式。
置位总中断允许位EA并给显示端口P1和P3清0。
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后,才打开外中断0接收返回的超声波信号。
由于采用的是12MHz的晶振,计数器每计一个数就是1卩s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式计L=(△T/2)*V算,即可得被测物体与测距仪之间的距离,设计时取20E时的声速为344
m/s则有:
L=(△T/2)*V=172T0/10000cm其中,T0为计数器T0的计算值。
测出距离后结果将以十进制BCD码方式送往LCD显示约0.5s,然后再发
超声波脉冲重复测量过程。
4.3超声波发射子程序和超声波接收中断子程序设计
超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INTO引脚出现低电平),立即进入中断程序。
进入中断后就立即关闭计时器TO停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器TO溢出中断将中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
图4.2外部中断流程图
4.4温度测量子程序设计
DS18B20对时序和电性参数要求很高,所以单片机在通过单总线接口访问
DS18B2O寸,其工作流程必需要遵守严格的操作时序,如果顺序中任意一步缺少
或顺序错乱,DS18B20将不会响应。
DS18B20的操作顺序是:
第一步:
对DS18B20初始化;第二步:
发送ROM命令;第三步:
发送功能命令。
超声波测距系统上电后,单片机开始初始化DS18B20,检测现场温度,软件控制DS18B20的具体流程如图4.3所示。
r-*SfrfLttWtDS48B»j
IftDSl8B20的序列鸟
N
^SMitROI!
前
3
lasagw画胡
显点温度
图4.3DS18B20总体操作流程
4.5报警子程序
如果距离小于下限或大于上限,则单片机STC89C52U给10口一个信号,使得
报警电路工作,实现报警
图4.4报警子程序
4.6距离计算子程序
本段程序中temp是从DS18BB0卖取的16位二进制温度数值,在对速度进行温度补偿的时候需要根据DS18B20协议转换成浮点数tp。
voidcalculate^)
{
floatv;//声速
floattp;//温度
time=TH0*256+TL0;
TH0=0;
TL0=0;
if(temp<0x8000)//温度为正直
tp=temp*0.0625;
else//温度为负值
tp=temp*(-0.0625);
c=331.4+0.61*tp;//温度补偿
distance=(time*c/(2*100))/100;
}
5结果与结论
5.1结果
设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离,以数字的形式显示测量距离。
经过实验表明,这套系统软硬件设计合理、抗干扰能力较好、实时性良好,实验结果比较符合预期要求。
5.2结论
采用高精度的温度传感器DS18B20可实现对超声波测距系统的温度测量和补偿,即根据经验公式,对波速进行校正。
通过引入DS18B20使超声波测距系统的测量精度有了很大的提高,使得应用领域也有所扩展,其不仅可用于倒车雷达、物位测量等一般场合,且在移动机器人领域将会有广泛的应用前景。
致谢
随着论文的完成,我的大学生活,也得以划下了完美的句点。
经过几个月的查找资料、整理材料、设计方案和写论文,今天终于可以顺利的完成论文的最后的谢辞了。
设计得以完成,要感谢的人实在太多了,在本次毕业设计的过程中非常感谢周荣生老师的细心指导。
导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,对我影响深远,不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。
本论文从选题到完成,每一步都是在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 根据 温度 补偿 超声波 测距 设计