基于无损探伤仪的高精度超声波测距系统的设计与实现
2014-11-17王钢等
王钢等
摘 要:本设计是基于STC89C52 RC单片机为控制核心的无损探伤仪的高精度超声波测距系统。本设计的特色在于增加了温度补偿模块,对超声波的传播速度进行校正,进而提高了该测距系统的坏境适应能力与精确度;显示模块为TFT触屏显示;同时,为了提高系统的智能性在本设计中加入了实时语音播报模块。该系统在工业控制、机器人定位、车体无损探伤、汽车防撞雷达、水利监测等领域具有广泛的应用,特别是在实时性要求比较高的领域具有更大的优势和更广阔的应用前景。
关键词:STC89C52 RC;超声波;测距;温度补偿;实时语音
引言
超声波定位技术是蝙蝠等一些无目视能力的生物作为防御天敌及捕获猎物的生存手段, 这些生物体可发射超声波然后借助空气介质传播, 根据猎物或障碍物反射回来的回波的时间间隔及强弱, 判断猎物的质或障碍物的位置。人们根据仿生学原理, 开发了超声波测距和无损探伤等一系列实用技术。
1 超声波测距及系统工作原理
1.1 超声波测距原理
超声波具有直线传播特性,频率越高,反射能力越强。利用超声波的这种特性,采用时间差值检测法(常称渡越时间检测法)进行距离的测量。其测距原理是超声波发射器向某一方向发射超声波,在发射的同时开始计时。超声波在空气中传播,碰到障碍物反射回来,超声波接收器接收到反射波就立即停止计时,根据计时器记录的时间,就可以计算出发射点距障碍物的距离。系统根据时间延迟计算出距离,计算公式为:
1.2 系统工作原理
该系统的核心部件为超声波传感器和STC89C52RC 单片机。STC89C52RC 用定时器1(T1)定时70ms,每隔70ms P2.6 端口发出一个40kHz 的方波信号驱动超声波发射器发射出一串超声波脉冲,同时启动单片机计时器0(T0)计时测量超声波传播的时间。当脉冲到达被测目标时,利用定时器1中断口监测超声波接收电路输出的返回信号。当接收到信号时,定时器1中断发出指令让计数器0(T0)停止计数,这样就能够得到发射到接收的时间差t。同时温度补偿电路也将由温度传感器DS18B20采集到的现场环境温度送到单片机,提供计算距离时对超声波传播速度的修正。最终单片机利用公式(1)、(2)计算出被测距离,在TFT触屏上显示出结果,并由语音芯片WT588D读出实时温度和距离。
2 系统硬件设计
主控制器主要由单片机STC89C52RC、振荡器和复位电路三部分组成,它是单片机工作的必要组成部分,又称为单片机最小系统。它是测距系统的控制中枢,也是整个系统的核心部分。在测距系统中发挥四个作用:(1)实现实时显示和语音播报;(2)控制超声波的发射;(3)处理超声波接收电路和温度补偿电路接收的信号;(4)时间转化成距离的数据处理。
2.1 超声波模块HC-SR04
采用超声波模块HC-SR04,该模块的工作原理如下:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号。(2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速)/2。
2.2 温度采集DS18B20模块
温度对于超声波测距系统的影响是不可忽略的。为了得到较为精确的测量结果, 必须对波速进行温度补偿。从(2)式中可看出, 要获得准确的波速值, 必须首先获取现场温度T 的大小。文章采用DS18B20 检测现场温度, 用以实现实际波速的校准。
2.3 TFT触屏显示模块
TFT属于有源矩阵液晶显示器。TFT屏幕,也是中高端彩屏手机中普遍采用的屏幕,分65536 色及26万色,1600万色三种,其显示效果非常出色。
3)控制IC为ILI9325。
2.4 WT588D语音模块
本设计中采用WT588D-16p(16引脚)芯片作为语音模块的主芯片并采用其三线串口模式进行连接与控制。三线串口控制模式由三条通信线组成,分别是片选CS,数据DATA,时钟CLK,时序根据标准SPI通信方式。通过三线串口可以实现语音芯片命令控制、语音播放。时序仿照标准SPI 通信方式,发数据时先发低位,再发高位。发码完成后DATA、CLK、CS 均要保持高电平。在发送数据时, 无需先发送命令码再发送指令。D0~D7表示一个地址或者命令数据,数据中的00H~DBH为地址指令,E0H~E7H为音量调节命令, F2H为循环播放命令,FEH为停止播放命令,F5H为进入三线串口控制I/O口扩展输出命令,F6H为退出三线串口控制I/O口扩展输出命令。
2.5 蜂鸣器模块
本次设计通过一只蜂鸣器来提示用户测距是否在测量范围,当不在测量范围时蜂鸣器会报警。蜂鸣器是一块压电晶片,在其两端加上3~5V的直流电压,就能产生3KHz的蜂鸣声。
3 系统软件设计
系统程序结构:
(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;(2)TFT显示模块,分为初始化、写入以及检测、显示部分;(3)温度补偿与距离计算模块,分为超声波发送控制、接收处理程序、温度补偿程序等;(4)报警模块,当T0技术溢出或测量距离不在2-400cm的范围时,则蜂鸣提示;(5)WT588D语音模块,汇报实时温度和所测距离;(6)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil Version2进行程序编译,Keil功能强大使用方便;(7)主程序,分为系统初始化以及各个子程序的调度管理等部分。
本超声波测距系统设计程序的思想如下:
(1)对系统进行温度补偿,以便达到更精确的测量;(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms,故900ms满足该速度要求;(3)超声波每隔70ms发送一次,以防止发射信号对回响信号的影响;(4)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为2cm;(5)没有使用看门狗功能;(6)本设计中需注意当距离过远或者没有返回信号时候,定时器T0的溢出,报警提示;(7)温度为四位显示,单位为℃,距离为四位显示,单位为cm;(8)TFT触屏启动及返回触键;(9)系统采用STC89C52的内时钟:24MHz。
4 实验数据
一般情况下,应测量几次数据取其平均值,目的是为减少由于测量过程中的系统抖动引起的误差。表2 的数据都是在测距系统固定的情况下测量的。由于本设计没有考虑其他环境因素(如:气压、湿度…)的影响,只考虑了温度补偿的影响,所以在测量的时候给测量结果带来了一定的误差。由表2 可见测量精度达到设计要求。
5 结束语
为了验证系统的测量精度,进行了实地测量。利用本系统对2~400cm范围进行了多次测试,经补偿后在1-150cm内最大误差不超过3mm,在150-400cm内误差在3-6mm内,线性度、稳定性和重复性都比较好。系统具有结构简单、体积小、实时TFT显示和报警、带温度补偿、实时语音播报、抗干扰性能好等优点。系统的误差主要来自于环境因素、角度补偿和时间误差,此外电子元器件自身的时延、干扰等也造成一定影响。可以根据具体场合,选择合适功率的探头,在程序中为变量选择合适的数据类型以及调整程序中脉冲的频率、宽度和个数等提高精度,扩大系统的应用范围。
参考文献
[1]杜功焕,朱哲民,龚秀芬.声学基础[M].南京:南京大学出版社,2001.
[2]求实科技.单片机典型外围器件及应用实例[M].北京:人民邮电出版社,2001.
[3]居荣,郭怡倩.DS18B20在温控系统中的应用[J].农机化研究,2005,20(1):224-226.
摘 要:本设计是基于STC89C52 RC单片机为控制核心的无损探伤仪的高精度超声波测距系统。本设计的特色在于增加了温度补偿模块,对超声波的传播速度进行校正,进而提高了该测距系统的坏境适应能力与精确度;显示模块为TFT触屏显示;同时,为了提高系统的智能性在本设计中加入了实时语音播报模块。该系统在工业控制、机器人定位、车体无损探伤、汽车防撞雷达、水利监测等领域具有广泛的应用,特别是在实时性要求比较高的领域具有更大的优势和更广阔的应用前景。
关键词:STC89C52 RC;超声波;测距;温度补偿;实时语音
引言
超声波定位技术是蝙蝠等一些无目视能力的生物作为防御天敌及捕获猎物的生存手段, 这些生物体可发射超声波然后借助空气介质传播, 根据猎物或障碍物反射回来的回波的时间间隔及强弱, 判断猎物的质或障碍物的位置。人们根据仿生学原理, 开发了超声波测距和无损探伤等一系列实用技术。
1 超声波测距及系统工作原理
1.1 超声波测距原理
超声波具有直线传播特性,频率越高,反射能力越强。利用超声波的这种特性,采用时间差值检测法(常称渡越时间检测法)进行距离的测量。其测距原理是超声波发射器向某一方向发射超声波,在发射的同时开始计时。超声波在空气中传播,碰到障碍物反射回来,超声波接收器接收到反射波就立即停止计时,根据计时器记录的时间,就可以计算出发射点距障碍物的距离。系统根据时间延迟计算出距离,计算公式为:
1.2 系统工作原理
该系统的核心部件为超声波传感器和STC89C52RC 单片机。STC89C52RC 用定时器1(T1)定时70ms,每隔70ms P2.6 端口发出一个40kHz 的方波信号驱动超声波发射器发射出一串超声波脉冲,同时启动单片机计时器0(T0)计时测量超声波传播的时间。当脉冲到达被测目标时,利用定时器1中断口监测超声波接收电路输出的返回信号。当接收到信号时,定时器1中断发出指令让计数器0(T0)停止计数,这样就能够得到发射到接收的时间差t。同时温度补偿电路也将由温度传感器DS18B20采集到的现场环境温度送到单片机,提供计算距离时对超声波传播速度的修正。最终单片机利用公式(1)、(2)计算出被测距离,在TFT触屏上显示出结果,并由语音芯片WT588D读出实时温度和距离。
2 系统硬件设计
主控制器主要由单片机STC89C52RC、振荡器和复位电路三部分组成,它是单片机工作的必要组成部分,又称为单片机最小系统。它是测距系统的控制中枢,也是整个系统的核心部分。在测距系统中发挥四个作用:(1)实现实时显示和语音播报;(2)控制超声波的发射;(3)处理超声波接收电路和温度补偿电路接收的信号;(4)时间转化成距离的数据处理。
2.1 超声波模块HC-SR04
采用超声波模块HC-SR04,该模块的工作原理如下:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号。(2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速)/2。
2.2 温度采集DS18B20模块
温度对于超声波测距系统的影响是不可忽略的。为了得到较为精确的测量结果, 必须对波速进行温度补偿。从(2)式中可看出, 要获得准确的波速值, 必须首先获取现场温度T 的大小。文章采用DS18B20 检测现场温度, 用以实现实际波速的校准。
2.3 TFT触屏显示模块
TFT属于有源矩阵液晶显示器。TFT屏幕,也是中高端彩屏手机中普遍采用的屏幕,分65536 色及26万色,1600万色三种,其显示效果非常出色。
3)控制IC为ILI9325。
2.4 WT588D语音模块
本设计中采用WT588D-16p(16引脚)芯片作为语音模块的主芯片并采用其三线串口模式进行连接与控制。三线串口控制模式由三条通信线组成,分别是片选CS,数据DATA,时钟CLK,时序根据标准SPI通信方式。通过三线串口可以实现语音芯片命令控制、语音播放。时序仿照标准SPI 通信方式,发数据时先发低位,再发高位。发码完成后DATA、CLK、CS 均要保持高电平。在发送数据时, 无需先发送命令码再发送指令。D0~D7表示一个地址或者命令数据,数据中的00H~DBH为地址指令,E0H~E7H为音量调节命令, F2H为循环播放命令,FEH为停止播放命令,F5H为进入三线串口控制I/O口扩展输出命令,F6H为退出三线串口控制I/O口扩展输出命令。
2.5 蜂鸣器模块
本次设计通过一只蜂鸣器来提示用户测距是否在测量范围,当不在测量范围时蜂鸣器会报警。蜂鸣器是一块压电晶片,在其两端加上3~5V的直流电压,就能产生3KHz的蜂鸣声。
3 系统软件设计
系统程序结构:
(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;(2)TFT显示模块,分为初始化、写入以及检测、显示部分;(3)温度补偿与距离计算模块,分为超声波发送控制、接收处理程序、温度补偿程序等;(4)报警模块,当T0技术溢出或测量距离不在2-400cm的范围时,则蜂鸣提示;(5)WT588D语音模块,汇报实时温度和所测距离;(6)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil Version2进行程序编译,Keil功能强大使用方便;(7)主程序,分为系统初始化以及各个子程序的调度管理等部分。
本超声波测距系统设计程序的思想如下:
(1)对系统进行温度补偿,以便达到更精确的测量;(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms,故900ms满足该速度要求;(3)超声波每隔70ms发送一次,以防止发射信号对回响信号的影响;(4)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为2cm;(5)没有使用看门狗功能;(6)本设计中需注意当距离过远或者没有返回信号时候,定时器T0的溢出,报警提示;(7)温度为四位显示,单位为℃,距离为四位显示,单位为cm;(8)TFT触屏启动及返回触键;(9)系统采用STC89C52的内时钟:24MHz。
4 实验数据
一般情况下,应测量几次数据取其平均值,目的是为减少由于测量过程中的系统抖动引起的误差。表2 的数据都是在测距系统固定的情况下测量的。由于本设计没有考虑其他环境因素(如:气压、湿度…)的影响,只考虑了温度补偿的影响,所以在测量的时候给测量结果带来了一定的误差。由表2 可见测量精度达到设计要求。
5 结束语
为了验证系统的测量精度,进行了实地测量。利用本系统对2~400cm范围进行了多次测试,经补偿后在1-150cm内最大误差不超过3mm,在150-400cm内误差在3-6mm内,线性度、稳定性和重复性都比较好。系统具有结构简单、体积小、实时TFT显示和报警、带温度补偿、实时语音播报、抗干扰性能好等优点。系统的误差主要来自于环境因素、角度补偿和时间误差,此外电子元器件自身的时延、干扰等也造成一定影响。可以根据具体场合,选择合适功率的探头,在程序中为变量选择合适的数据类型以及调整程序中脉冲的频率、宽度和个数等提高精度,扩大系统的应用范围。
参考文献
[1]杜功焕,朱哲民,龚秀芬.声学基础[M].南京:南京大学出版社,2001.
[2]求实科技.单片机典型外围器件及应用实例[M].北京:人民邮电出版社,2001.
[3]居荣,郭怡倩.DS18B20在温控系统中的应用[J].农机化研究,2005,20(1):224-226.
摘 要:本设计是基于STC89C52 RC单片机为控制核心的无损探伤仪的高精度超声波测距系统。本设计的特色在于增加了温度补偿模块,对超声波的传播速度进行校正,进而提高了该测距系统的坏境适应能力与精确度;显示模块为TFT触屏显示;同时,为了提高系统的智能性在本设计中加入了实时语音播报模块。该系统在工业控制、机器人定位、车体无损探伤、汽车防撞雷达、水利监测等领域具有广泛的应用,特别是在实时性要求比较高的领域具有更大的优势和更广阔的应用前景。
关键词:STC89C52 RC;超声波;测距;温度补偿;实时语音
引言
超声波定位技术是蝙蝠等一些无目视能力的生物作为防御天敌及捕获猎物的生存手段, 这些生物体可发射超声波然后借助空气介质传播, 根据猎物或障碍物反射回来的回波的时间间隔及强弱, 判断猎物的质或障碍物的位置。人们根据仿生学原理, 开发了超声波测距和无损探伤等一系列实用技术。
1 超声波测距及系统工作原理
1.1 超声波测距原理
超声波具有直线传播特性,频率越高,反射能力越强。利用超声波的这种特性,采用时间差值检测法(常称渡越时间检测法)进行距离的测量。其测距原理是超声波发射器向某一方向发射超声波,在发射的同时开始计时。超声波在空气中传播,碰到障碍物反射回来,超声波接收器接收到反射波就立即停止计时,根据计时器记录的时间,就可以计算出发射点距障碍物的距离。系统根据时间延迟计算出距离,计算公式为:
1.2 系统工作原理
该系统的核心部件为超声波传感器和STC89C52RC 单片机。STC89C52RC 用定时器1(T1)定时70ms,每隔70ms P2.6 端口发出一个40kHz 的方波信号驱动超声波发射器发射出一串超声波脉冲,同时启动单片机计时器0(T0)计时测量超声波传播的时间。当脉冲到达被测目标时,利用定时器1中断口监测超声波接收电路输出的返回信号。当接收到信号时,定时器1中断发出指令让计数器0(T0)停止计数,这样就能够得到发射到接收的时间差t。同时温度补偿电路也将由温度传感器DS18B20采集到的现场环境温度送到单片机,提供计算距离时对超声波传播速度的修正。最终单片机利用公式(1)、(2)计算出被测距离,在TFT触屏上显示出结果,并由语音芯片WT588D读出实时温度和距离。
2 系统硬件设计
主控制器主要由单片机STC89C52RC、振荡器和复位电路三部分组成,它是单片机工作的必要组成部分,又称为单片机最小系统。它是测距系统的控制中枢,也是整个系统的核心部分。在测距系统中发挥四个作用:(1)实现实时显示和语音播报;(2)控制超声波的发射;(3)处理超声波接收电路和温度补偿电路接收的信号;(4)时间转化成距离的数据处理。
2.1 超声波模块HC-SR04
采用超声波模块HC-SR04,该模块的工作原理如下:
(1)采用IO口TRIG触发测距,给至少10us的高电平信号。(2)模块自动发送8个40kHz的方波,自动检测是否有信号返回。(3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速)/2。
2.2 温度采集DS18B20模块
温度对于超声波测距系统的影响是不可忽略的。为了得到较为精确的测量结果, 必须对波速进行温度补偿。从(2)式中可看出, 要获得准确的波速值, 必须首先获取现场温度T 的大小。文章采用DS18B20 检测现场温度, 用以实现实际波速的校准。
2.3 TFT触屏显示模块
TFT属于有源矩阵液晶显示器。TFT屏幕,也是中高端彩屏手机中普遍采用的屏幕,分65536 色及26万色,1600万色三种,其显示效果非常出色。
3)控制IC为ILI9325。
2.4 WT588D语音模块
本设计中采用WT588D-16p(16引脚)芯片作为语音模块的主芯片并采用其三线串口模式进行连接与控制。三线串口控制模式由三条通信线组成,分别是片选CS,数据DATA,时钟CLK,时序根据标准SPI通信方式。通过三线串口可以实现语音芯片命令控制、语音播放。时序仿照标准SPI 通信方式,发数据时先发低位,再发高位。发码完成后DATA、CLK、CS 均要保持高电平。在发送数据时, 无需先发送命令码再发送指令。D0~D7表示一个地址或者命令数据,数据中的00H~DBH为地址指令,E0H~E7H为音量调节命令, F2H为循环播放命令,FEH为停止播放命令,F5H为进入三线串口控制I/O口扩展输出命令,F6H为退出三线串口控制I/O口扩展输出命令。
2.5 蜂鸣器模块
本次设计通过一只蜂鸣器来提示用户测距是否在测量范围,当不在测量范围时蜂鸣器会报警。蜂鸣器是一块压电晶片,在其两端加上3~5V的直流电压,就能产生3KHz的蜂鸣声。
3 系统软件设计
系统程序结构:
(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以及读取子程序等部分;(2)TFT显示模块,分为初始化、写入以及检测、显示部分;(3)温度补偿与距离计算模块,分为超声波发送控制、接收处理程序、温度补偿程序等;(4)报警模块,当T0技术溢出或测量距离不在2-400cm的范围时,则蜂鸣提示;(5)WT588D语音模块,汇报实时温度和所测距离;(6)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil Version2进行程序编译,Keil功能强大使用方便;(7)主程序,分为系统初始化以及各个子程序的调度管理等部分。
本超声波测距系统设计程序的思想如下:
(1)对系统进行温度补偿,以便达到更精确的测量;(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms,故900ms满足该速度要求;(3)超声波每隔70ms发送一次,以防止发射信号对回响信号的影响;(4)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为2cm;(5)没有使用看门狗功能;(6)本设计中需注意当距离过远或者没有返回信号时候,定时器T0的溢出,报警提示;(7)温度为四位显示,单位为℃,距离为四位显示,单位为cm;(8)TFT触屏启动及返回触键;(9)系统采用STC89C52的内时钟:24MHz。
4 实验数据
一般情况下,应测量几次数据取其平均值,目的是为减少由于测量过程中的系统抖动引起的误差。表2 的数据都是在测距系统固定的情况下测量的。由于本设计没有考虑其他环境因素(如:气压、湿度…)的影响,只考虑了温度补偿的影响,所以在测量的时候给测量结果带来了一定的误差。由表2 可见测量精度达到设计要求。
5 结束语
为了验证系统的测量精度,进行了实地测量。利用本系统对2~400cm范围进行了多次测试,经补偿后在1-150cm内最大误差不超过3mm,在150-400cm内误差在3-6mm内,线性度、稳定性和重复性都比较好。系统具有结构简单、体积小、实时TFT显示和报警、带温度补偿、实时语音播报、抗干扰性能好等优点。系统的误差主要来自于环境因素、角度补偿和时间误差,此外电子元器件自身的时延、干扰等也造成一定影响。可以根据具体场合,选择合适功率的探头,在程序中为变量选择合适的数据类型以及调整程序中脉冲的频率、宽度和个数等提高精度,扩大系统的应用范围。
参考文献
[1]杜功焕,朱哲民,龚秀芬.声学基础[M].南京:南京大学出版社,2001.
[2]求实科技.单片机典型外围器件及应用实例[M].北京:人民邮电出版社,2001.
[3]居荣,郭怡倩.DS18B20在温控系统中的应用[J].农机化研究,2005,20(1):224-226.