超声波测距的基本原理
超声波发生器在某一时刻发出超声波信号,遇到被测物体后反射回来,被超声波接收器接收到。只要计算出超声波信号从发射到接收到回波信号的时间,知道在介质中的传播速度,就可以计算出距被测物体的距离:
d=s/2=(vt)/2 (1)
其中d为被测物到测距仪之间的距离,s为超声波往返通过的路程,v为超声波在介质中的传播速度,t为超声波从发射到接收所用的时间。为了提高精度,需要考虑不同温度下超声波在空气中传播速度随温度变化的关系:
v=331.4+0.61T (2)
式中,T为实际温度(℃),v的单位为m/s。
压电式超声波传感器的原理
目前,超声波传感器大致可以分为两类:一类是用电气方式产生的超声波,一类是用机械方式产生的超声波。电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。在工程中,目前较为常用的是压电式超声波传感器。
压电式超声波传感器实际上是利用压电晶体的谐振来工作的。压电式超声波发生器的内部有两个压电晶片和一个共振板。当它的两极外加脉冲信号,且其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时即为超声波接收器。
反射式超声波测距仪的硬件电路设计
本系统硬件电路由单片机最小系统、温度补偿电路、超声波发射电路、超声波接收电路、显示电路构成,如图1所示。
本超声波测距仪的具体工作过程如下,在单片机产生复位信号后,由MC9S12DG128B产生一个控制信号,控制外围电路产生40kHz的超声波,经整形放大后加到超声波换能器发射出频率为40kHz的超声波。同时,计数MC9S12DG128B内部的定时器,测量超声波信号从发出到接收所花的时间,并把经超声波换能器R接收到的超声波信号放大、滤波、整形,并作为接收信号来启动定时器的输入捕捉功能,完成一次超声波测距的时间操作。同时,由温度传感器DS18B20测得当前的环境温度,读入单片机,然后经其处理,在液晶显示屏上显示相应的测量值以及当前温度。
微控制器MC9S12DG128B
MC9S12DG128B是飞思卡尔公司推出的S12控制器中的一款16位微控制器。其集成度高,片内资源丰富,接口模块包括SPI、SCI、I2C、A/D、PWM等,在FLASH存储控制及加密方面有较强的功能。
MC9S12DG128B微控制器采用增强型16位S12 CPU,片内总线时钟频率最高可达25MHz;片内资源包括8kB RAM、128kB FLASH、2kB EEPROM、SCI、SPI及PWM串行接口模块;PWM模块可设置成4路8位或2路16位,可宽范围选择时钟频率;它还提供2个8路10位精度A/D转换器、控制器局域网CAN和增强型捕捉定时器,并支持背景调试模式(BDM)。
超声波的发射电路
超声波发射电路一般由超声波反射器T、40kHz的超音频振荡器、驱动(或激励)电路等组成,本设计利用门电路产生40kHz的超声波,组成的超声波发射电路见图2。
图中,与非门74LS00和LM386组成超声波发射电路,用74LS00构成多谐振荡器,通过调节20k的电位器,可产生超声波发射的40kHz信号,其中U3A为驱动器,电路振荡频率f≈1/2.2RC,单片机的控制信号由U2A输入。为增大超声波的发射频率,本设计利用了单运放LM386,发射距离可达4m。
超声波的接收电路
超声波接收电路如图3所示。接收头采用与发射头配对的超声波接收器R,将超声波调制脉冲变为交变电压信号。为了进行信号的整形,在设计中的CMOS电平的6非门芯片CD4069,可以减少电路的复杂程度,提高电路的带负载能力。整形后的信号由C1耦合给带有锁定环的音频译码集成块LM567的输入端3脚,当输入信号的幅度落在其中心频率上时,LM567的逻辑输出端8脚由高电平跃变为低电平。
DS18B20温度补偿电路
根据上文中式(2)可知,温度对声速的影响较大,若不进行补偿,将会带来测量误差,为了提高系统的测量精度,设计了温度补偿电路。系统采用数字温度传感器DS18B20来采集温度,DS18B20是美国DALLAS公司生产的1-wire总线串行数字温度传感器,它具有微型化、低功耗、抗干扰能力强、易于与微处理器接口等优点,适合于各种温度测控系统。它的测量温度范围为-55℃~+125℃,精度可达0.0675℃,最大转换时间为200ms。
数字式温度传感器和模拟温度传感器最大的区别是:将温度信号直接转化成数字信号,然后通过串行通信的方式输出。因此掌握DS18B20的通信协议是使用该器件的关键。该协议定义了几种信号类型:复位脉冲、应答脉冲时隙;写“0”、读“1”时隙,读“0”、读“1”时隙。初始化后,传感器输出两个字节的温度,进行数据处理后得到实际温度的值,利用式(2)可计算补偿声速。
液晶显示电路
字符点阵系列模块是一类专门用于显示字母、数字、符号等的点阵型显示模块。分4位和8位数据传输方式。它提供5×7点阵+光标和5×10点阵+光标的显示模式。提供显示数据缓冲区DDRAM、字符发生器CGROM和字符发生器CGRAM,可以使用CGRAM来存储自己定义的最多8个5×8点阵的图形字符的字模数据。它提供了丰富的指令设置:清显示,光标回原点,显示开/关,光标开/关,显示字符闪烁,光标移位,显示移位等。提供内部上电自动复位电路,当外加电源电压超过+4.5V时,自动对模块进行初始化操作,将模块设置为默认的显示工作状态。OCM2X16显示两行字符,每行可以显示16个字符。本设计采用OCM2X16,显示两行字符,一行显示当前的环境温度,一行显示所测距离。
系统软件设计
系统软件包括主程序、温度采集子程序、定时器计时子程序、计算子程序、液晶显示子程序等。主程序包括初始化和各个子程序的调用,最后把测量结果用液晶显示屏显示出来(见图4)。
结论
本系统采用飞思卡尔单片机MC9S12DG128B做主控制器,可靠性好,抗干扰和电磁兼容性强,内部资源较丰富,软件的工作量大大降低,而且支持背景调试(BDM)方式,编程更加方便,灵活。
在本设计中,通过外部硬件电路来产生40kHz的超声波信号,因而相对于由单片机产生的40kHz超声波信号而言,更加接近超声波传感器的共振频率,因而使超声波传感器的输出最大,可以有效地提高测量距离,测量距离在0.3m~4m内。
本设计采用数字式温度传感器实现对单片机超声波测距系统的温度测量和补偿,对声速进行补偿,对引起测量误差的因素进行修正处理,提高了系统的测量精度及灵敏度,使探测精度不超过1cm,从而达到了很好的效果。