您好, 访客   登录/注册

温度对超声测距的影响及补偿方法

来源:用户上传      作者:

  摘 要: 超声波指向性强,在介质中传播的距离较远,因而超声波经常用于距离的测量,被广泛应用于建筑施工、车距测量、管道测量等场合。根据超声测距的原理,探讨温度对测量精度的影响。说明了温度补偿的必要性,并给出采用热敏电阻与DS18B20的补偿方法。
  关键词:热敏电阻 DS18B20 温度补偿 超声测距
  中图分类号:TB551 文献标识码:A 文章编号:1003-9082(2015)08-0308-01
  引言
  超声波是一种频率超过20kHz的机械波。它沿直线传播,方向性好,传播距离较远。由于超声波具有以上特点,可被应用于测量物体的距离,被广泛应用于建筑施工、车距测量、管道测量等场合。利用超声波进行距离的测量是一种有效的非接触式测距方法。超声测距的基本原理是,超声传感器发射超声波,在空气中传播至被测物,经反射后由超声传感器接收反射回来的超声波,测量出发射波与回波之间的时间间隔ΔT,并根据公式,
  (V为超声波传播速度),计算得出距离S。
  在空气中,常温下超声波的传播速度是334m/s,但其传播速度受空气中温度、湿度等因素的影响,其中受温度影响较大,必须要对温度进行测量和补偿,以避免温度对测量精度的影响。在对测量结果要求不高,或温度变化不大的一般场合,可以认为超声波在空气中的速度近似不变。但超声波在空气中的传播速度与温度、压力等因数有关,其中温度的影响最大。超声波在空气中的传播速度V,随温度变化的关系式如下,
  (T为摄氏温度);
  当温度为20℃时,V约为334m/s,当温度为30℃时,V约为349m/s,在温度相差10℃时声速变化了6m。假设测量0.5m外的物体,此时超声波将传播1m。如不考虑温度对传播速度的影响,两次测量结果相差3cm。可见,温度对波速的影响在精确度要求比较高的测量场合是必须被考虑的。这时就要对温度进行补偿,一般可通过测温元件或一线式数字温度传感器来进行补偿,以提高测量精度。
  一、采用热敏电阻补偿
  1.热敏电阻测温原理
  热敏电阻是一种半导体测温元件,具有灵敏度高、体积小、寿命长的优点。热敏电阻可分为正温度系数和负温度系数两种类型。前者电阻值与温度变化成正比关系,即当温度升高时电阻值随之增大。后者电阻值与温度变化成反比关系,即当温度升高时电阻值随之减小。只要测出热敏电阻的阻值,就可以算出对应的温度值。在温度补偿中一般都采用正温度系数热敏电阻。
  2.硬件设计及软件设计
  温度的变化,可导致热敏电阻阻值的不同,进而影响其上的电压值。但此变化量为模拟量,为了与单片机进行通信,必须将模拟量转化为数字量。这里采用LM331进行A/D转换。LM331是一个简单的、廉价的电压/频率变换电路,非常适合用作A/D转换,有极高的转换精度和稳定性。其内部电路主要由输入比较器、单稳态定时器、精密电流源电路、电流开关、输出晶体管等组成。输出驱动管采用集电极开路形式,因而可以通过选择逻辑电流和外接电阻,灵活改变输出脉冲的逻辑电平。
  单片机的定时器/计数器T0工作在方式1,作为定时器,记录单片机CPU的时钟脉冲。单片机的定时器/计数器T1也工作在方式1,作为脉冲计数器,记录LM331输入的脉冲数。在相应的引脚发生从1到0的跳变时计数器加1,这样在T0定时为1 S时,T1所累记的脉冲个数就是待测信号的频率。频率信号变化跟硬件使用元器件无关,只与温度有关。根据热敏电阻的特性,可求出特定温度下的频率值。将对应的频率值存入单片机的ROM中,当频率信号进入单片机后,就可以求出该时刻的温度值。以便单片机在计算距离时进行补偿。
  二、采用DS18B20 补偿
  1. DS18B20 测温原理
  Dallas半导体公司生产的一线式数字温度传感器DS18S20使用一总线接口实现和微控制器的通信,使得微控制器有更好的功能扩展。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。下面对其测温原理进行简单介绍。
  低温度系数振荡器输出的时钟脉冲信号通过由高温度系数振荡器产生的门开通周期而被计数,通过该计数值来测量温度。计数器被预置为与-55℃对应的一个基数值,如果计数器在高温度系数振荡器输出的门开通周期结束前计数到零,表示测量的温度高于-55℃,被预置在-55℃的温度寄存器的值就增加一个增量,同时为了补偿温度振荡器的抛物线特性,计数器被斜率累加器所决定的值进行预置,时钟再次使计数器计数直至零,如果门开通时间仍未结束,那么重复此过程。直到高温度系数振荡器的门开通周期结束为止,这时温度寄存器中的值就是被测的温度值。
  2.硬件及软件设计
  DS18B20有两种工作方式:寄生电源方式和外接电源方式。采用寄生电源供电方式时,无需本地电源,接口电路会更简单,但温度误差较大。而采用外接电源供电方式时,DS18B20工作电源由VDD引脚接入,不存在电流不足的问题,并且能增强DS18B20的抗干扰能力,保证转换精度。故采用外接电源方式。DS18B20采用单总线方式和单片机相连,即DS18B20的GND引脚接地,VDD引脚接电源,DQ引脚通过一只240Ω的电阻接至51单片机的P1.0引脚,同时将P1.0引脚采用一只4.7kΩ的电阻上拉至VCC。虽然DS18B20与单片机的接口极其简单,仅需将DS18B20的信号线与单片机的一位双向端口相连,但由于DS18B20与单片机间采用串行数据传送。因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。为保证数据可靠传送,任一时刻单总线上只能有一个控制信号或数据,在进行数据传输通信时,要符合单总线协议。
  在超声测距中,只需一个DS18B20就可测得当时环境温度。因此测温主程序中不需匹配ROM命令,直接写入跳过ROM(CCH)命令即可,测温过程如下: 第一步使DS18B20复位;第二步写入跳过ROM命令(CCH);第三步写入温度转换命令(44H);DS18B20进行温度转换,此过程需要一段时间,故应延时等待;第四步使DS18B20复位;第五步写入跳过ROM命令跳过ROM(CCH);第六步写入读寄存器命令(BEH);读取寄存器中低位及高位的数据。这样DS18B20测到的温度就被单片机读出来,计算距离时可作为参考。
  三、结论
  采用热敏电阻作为测温元件,必须增加相应的温度变换电路,还需要进行A/D转换。但由于热敏电阻的电阻大,外围元件对测量的结果影响很小。采用数字温度传感器DS18B20进行温度补偿时,硬件电路简单。但对DS18B20的操作必须严格的遵守读写时序,最好采用汇编语言实现,增加了程序编制的复杂程度。
转载注明来源:https://www.xzbu.com/4/view-11718113.htm