超声波测距作为一种非接触性的检测方法,因其结构简单紧凑、可靠性高、价格低廉、实时性强等优点,近年来已经得到了广泛应用,如液位测量,修路过程中路面平整检测,汽车倒车雷达,机器人辅助视觉识别系统等。但因超声波在空气中传播时受到诸如环境温度、湿度、风速等影响,传统的超声波测距系统精度普遍较低。文献[4]采用了在系统中增加硬件温度补偿模块仅在一定程度上可以避免因环境温度变化带来的测量误差。文献[5,6]中采用小波等处理算法,也并不能弥补系统本质上的缺陷。因此,研究了一种控制精度高,适用范围宽的高精度多路同步超声波测距系统。
1 超声波测距工作原理与结构
1.1 工作原理
谐振频率高于20 kHz的声波被称为超声波。超声波测距的基本工作原理是:发射探头发出超声波,在介质中传播遇到障碍物反射后再通过介质返回到接收探头,测出超声波从发射到接收所需的时间,然后根据介质中的声速,利用公式S=0.5ct就能算得从探头到障碍物的距离,式中:S为所测的距离,c为超声波在介质中的传播速度.£为超声波从发到收所经过的时间。
1.2 超声波测距系统的一般结构
一般情况下,超声波测距系统的基本结构如图1所示。
系统常采用频率为40 kHz的方波信号由单片机内部产生。为了避免温度对声波传播速度的影响,都采用温度补偿以适应在不同环境下正常工作的需求。时间的精确测量可由单片机内部单独的计数器完成,也可由外部的计时电路完成。
2 多路同步超声波测距系统
系统由单片机、FPGA模块、6对收发同体的超声波换能器、功率放大电路、回波高增益放大电路、带通滤波电路以及比较整形电路等组成。系统组成框图如图2。
本系统中。单片机系统与FPGA系统是测距仪的核心部件,用来协调各部分元件工作。单片机控制器单元主要是启动超声波发射与计时计数器开始计数的同步以及接收到回波后对其计时计数器的值进行处理等运算。FPGA单元主要用来产生超声波的发射脉冲频率125 kHz与计时计数器的频率(>170 kHz),通过微控制器MCU来启动超声波的发射,FPGA发射一定数量(这里选择8至10)的脉冲串之后,停止发射同时启动计时计数器计数,超声波途经障碍物返回。当超声波换能器接收到回波信号之后,将其信号送入FPGA内部,用来控制计时计数器的停止,将所得的计数值送入单片机。第一路到第五路超声波换能器用于测量距离,测量距离的五路超声波换能器按等间距分别安装在测距仪的固定板上,系统采用收发同体的探头,其波束角很小,有效的保证了各探头到被测物体的垂直测量距离。第六路超声波换能器安装在测距仪的左侧,在测距仪的右侧安装一块标准档板,较准确的测量当时环境下的声速,用于温度补偿。控制或显示模块用于调整平衡或输出显示测量距离的目的。
2.1 发射电路
发射电路如图3(a)所示。发射电路将接收到的方波脉冲信号送入乙类推挽放大电路,用其输出信号驱动CMOS管,接着将其脉冲信号加到高频脉冲变压器进行功率放大,使幅值增加到100多伏,最后将放大的脉冲方波信号加到超声波换能器上产生频率为125 kHz的超声波并将其发射出去。
2.2 接收电路
接收电路由OP37构成的两级运放电路,TL082构成的二阶带通滤波电路以及LM393构成的比较电路三部分组成。因本系统频率较高,回波信号非常弱,为毫伏级,因此设计成两级放大电路,第一级放大100倍,第二级放大50倍,共放大5 000倍左右。
另外考虑到本系统要适应各种复杂的工作环境,因此设计了由TL082构成的高精度带通滤波电路,以供回波信号放大后进行进一步滤波,将滤波后的信号输入到LM393构成的比较器反相输入端,与基准电压相比较,并且对其比较输出电压进行限幅,将其电压接至D触发器,比较器将经过放大后的交流信号整形出方波信号,将其接至FPGA,启动接收模块计数,达到脉冲串设定值时,关闭计时计数器停止计数。
2.3 FPGA内部各组成模块设计
FPGA主要实现125 kHz的超声波的发射与接收以及六路超声波从发射到接收之间时间的测量。其内部结构如图4所示。
FPGA主要由发射模块、顺序执行计数器、数据选择器、计时计数器与接收模块五部分组成。其中:发射模块完成脉冲串的发射与计数器的启动,主要由96分频器、发射脉冲串计数器和发射脉冲串的控制器三部分组成。顺序执行计数器模块主要由六与非门、计数器和非门组成。
所有的接收模块接收完数据后,通过与非门及非门输出高电平(FINISH端口),以触发单片机使单片机处于接收数据状态,单片机发出信号使顺序执行计数器开始计数,计数值每次加1,输出端口便是相应的计时计数器,单片机便从相应的计时计数器中读取计数值。数据选择器与顺序执行计数器完成计数值数据的读取。
计时计数器模块主要完成测量脉冲发出去到接收到的时间间隔和脉冲的计数,主要由启动与关闭计数器控制、12分频器、16位计时计数器、二选一数据选择器及8位数据锁存器组成(见图5)。接收模块主要接收回波信号和关闭计数器,当接收模块接收到信号以后,便启动计数,达到计数值,就输出高电平,用来关闭计时计数器停止计数。为防止信号串扰,在信号发射时,CUAN端输入高电平,对其信号进行屏蔽。
3 结果
经过实验室调试,本文给出的基于单片机与FPGA相结合的多路同步超声波测距系统与其它系统具有如下优势:
(1)抗环境影响因素能力强。在工作环境中,对声速影响的因素很多。如温度、风力,湿度等,系统利用安装标准校正板的方法能精确测量当时环境下的声速,可以避免因各种环境因素的变化而造成的误差。
(2)采用125 kHz的频率,同时采用多路超声波精确同步测距。保证了系统的测量精度。
(3)采用FPGA与AT89C51结合的方案,由FPGA来完成多路超声波传播时间的精确测量,AT89C51完成信号的启动以及数据的处理。与常规系统相比,虽然增加了FP-GA硬件,但是系统也舍弃了一些系统所采用的温度补偿模块,大大提高了系统的精度和系统的灵活性。