使用CPLD器件和晶体震荡器实现超声波测距系统的设计

时间:2025-04-29  作者:Diven  阅读:0

1引言

使用CPLD器件和晶体震荡器实现超声波测距系统的设计

以往利用超声波测量距离往往采用单片机单机系统(由单片机软件控制发射、接收及计数器的关停与启动),这种方法所带来的误差在厘米级。原因主要有:单片机计数器频率较低造成的误差;计数与发射信号由软件控制动作而产生的不同步;超声波传感器接收到信号与单片机检测到信号之间不同步等。本文给出以CPLD为控制核心的基于超声波测距原理的测量方法。经过制版测试,所得结果提高到毫米级,而且电路原理较为简单。

2 超声波测距的原理

超声波测距的原理一般采用回波测距法,即测量超声波发射到遇到障碍物返回的时间间隔t,然后根据(1)式计算距离值。

本文给出的系统以CPLD为核心来控制超声波的发射,在发射时刻的同时开始计时,超声波在空气中传播遇到障碍物时则返回。当CPLD检测到第一个反射波时立即停止计时,测得时间t。

3.系统结构及原理

总系统框图如图1所示。系统由CPLD控制电路模块、单片机控制模块(包括DS18B20温度传感器和显示部分)和超声波传感器模块(包括信号的发送,接收与整形)组成。CPLD控制电路模块通过控制超声波发射器发射超声波到固定端面,同时启动高精度计数器开始计数。超声波波前经反射后由接收端接收,当CPLD接收到第一个反射波信号即停止计数,并将计数器值送入单片机。单片机根据计数器值计算出时间间隔△T。再经过温度修正计算出超声波速度c,最后利用(1)式计算出发射器到反射点的距离,并显示结果。

3.1 CPLD模块设计

CPLD模块包括5个部分,分别为32位计数器,40KHZ标准方波发生器,32-8四选一数据选择器,计数器控制电路和一个简单的有限状态机。其内部框图如图1所示。工作原理:有限状态机输出清零信号CLR后,置START为高电平,D触发器在下一个时钟脉冲下降沿置Q端为高电平。使能信号ENA=1控制计数器开始计数,同时打开缓冲门让40KHZ方波信号驱动发射超声波。整形接收电路对接收器接收到的波前进行整形并输出一高电平到计数器控制电路,此低电平作为计数器控制电路的时钟信号。控制电路在时钟信号到达后STOP引脚输出一低电平使使能信号ENA=0,关闭计数器和方波驱动的发送。有限状态机等待单片机取走计数值后开始下一个循环计数工作。

3.1.1 32位标准频率计数器

此处采用100MHZ的晶体震荡器作为标准频率信号源。这一频率精度影响系统的测量精度。计数和发射动作同时进行。因为一个脉冲的周期为0.01uS,假定超声波的速度为0.34mm/uS,一个脉冲丢失造成的误差仅为0.0034mm。计数器模块结构简单,VHDL描述如下:

count: process(clr,clk)

begin:

if clr=’0’ then counter《=(others=》’0’)

elsif clk’event and clk=’1’ then

if ena=’1’ then counter《=counter+1;

end if;

end if;

end process;

3.1.2 有限状态机

状态机状态转换图如图2所示[4]。和单片机的握手信号直接取自40KHZ的方波驱动信号,以确保同步性。当系统复位或接收到单片机发出的读数据完成信号COMP有效时,状态机进入状态S1同时清零并置START为低电平。在下一时钟状态机进入状态S2,同时置START=1,启动D触发器开始发射方波信号并计数。

当反射波波前到达接收电路后计数器控制电路使STOP为低电平,此时状态机进入状态S3,并向单片机发出信号FINISH通知单片机读取计数器数据。有限状态机VHDL描述如下:

state:process(clk)

begin

if clk=’1’then

case state is

when s1=》clr=0;finish=0;start=0;

if reset=’1’ then state《=s1;

elsif reset=’0’ state《=s2;

end if;

when s2=》……

end if;

……

end case;

end if;

end process state;

3.1.3计数器控制电路

D触发器在START信号置1以后,在40KHZ时钟信号的上升沿使Q端输出高电平。同时此高电平被使能信号送入超声波发射器。此波前被固定端面反射后有半波损失,到达接收应产生180度相移。当计数器控制电路的时钟信号由低变为高电平时,在时钟信号的上升沿输出STOP=0,停止计数器计数。计数器控制电路VHDL描述如下:

Con_counter process(clk,clr,)

Beigin:

If clr=0 then stop=1

Elsif clk’event and clk=1 then

Stop=0 else

Stop=1;

End if;

End process;

3.1.4 32—8数据选择器

多路数据选择器的数据选择信号线由单片机的两个引脚控制。在单片机两个引脚上的不同逻辑组合输入下,CPLD模块将32位数据逐次送入单片机。32—8数据选择器的VHDL描述语言如下:

data《=counter(7 downto 0) when sel=”00” else

counter(15 downto 8) when sel=”01” else

counter(23 downto 16) when sel=”10” else

counter(31 downto 24) when sel=”11” else

counter(31 downto 24)

3.2单片机控制模块

单片机控制模块硬件包括距离显示、CPLD模块接口、和读取温度三部分。单片机显示电路较为简单,在此不做介绍。单片机和CPLD模块接口控制由软件实现。由CPLD状态机发送过来的FINISH信号设置为外部中断,单片机完成一次距离显示后即开中断接收下一组计数器数据。用于温度补偿的温度测量传感器采用DALLAS的一线式传感器DS18B20。具有接口简单(仅须一根数据线)测量范围广、精度高的(在-10℃—85℃内精度为±0.5℃)特点。在温度变化范围不大的场合单片机得到温度值后,可以通过查表实现声波在空气中传输速率的测量。

3.3超声波发射与接收

本系统采用的超声波传感器(换能器)是中心频率为40KHZ的专用型超声波探头T40和R40[5]。因为超声波接收器接收的反射波信号很微弱并含有干扰信号,所以必须进行放大调整。接收电路采用了两级放大电路和波形整形电路,最后输出到CPLD的计数控制电路的时钟端CLK。当CLK没有接收到信号变化时,引脚是低电平;接收到第一个信号是40KHZ方波脉冲信号的上升沿。为了消除干扰,采用了硬件滤波。如图3所示。超声波信号经电压提升、放大、整形、滤波后作为时钟信号送入CPLD的计数器控制模块。

4系统测试结果

本系统采用ALTERA公司的的CPLD EP2K30E芯片和常用的89C51单片机实现。采用自制的PCB板对系统的距离测量进行验证并和单片机单机测量系统测量数据进行比较。实验环境:室内,室温:27℃;相对湿度:45%。;距离单位:CM ;根据距离不同记录下了9次实验结果。每次实验测量数据20组(此处省略)取平均值,结果如下表:

数据结果表明,在每次实验的20组数据中本系统测量数据方差明显小于单片机单机测量方差;每次实验中本系统测量数据绝对误差较小,更接近于真值。

5 存在问题及分析

1) 由于空气湍流可能吹散回波,故超声波传感器不适合户外使用。

2) 40KHZ超声波波长在1CM左右,如果干扰造成接收电路误动作造成的误差至少是1CM。所以接收整形电路的稳定性、有效性极其关键。40KHZ超声波适用于测量较长距离。

3) 对于距离不发生突变的场合,单片机软件可以利用中值滤波技术减少误差。

4) 接收整形电路造成的时延也是误差来源。

猜您喜欢

超声波收发器是应用于距离测量、障碍物检测和液位监测等领域的设备。工作原理是利用超声波的发射和接收来实现目标物体的探测。不同类型的超声波收发器在性能和应用上存在一...
2019-01-05 00:00:00

防浪涌电阻作为保护电路免受瞬态电压冲击的重要元件,受到了关注。ROHM(罗姆)作为全球知名的半导体和电子元器件制造商,其防浪涌电阻因高可靠性和优良性能受到工程师...
2015-02-26 19:31:12

十字槽大扁头自攻螺钉是常见的紧固件,应用于木材、塑料和金属等材料的连接。其规格尺寸通常包括螺钉的直径、长度及螺纹类型。常见的直径有2.5mm、3.5mm、4.2...
2011-06-23 00:00:00

0402贴片电容是电子元件中重要一部分。应用于各种电子设备中。本文将介绍0402贴片电容的容值表,并分析其应用。希望对大家有所帮助。0402贴片电容的定义040...
2025-03-28 12:30:02


贴片电阻5103的阻值是51kΩ。5103是贴片电阻的一种表示方法,采用数字编码来表示阻值。其中前两位数字51代表有效数字,后两位数字03代表10的n次方(n为...
2024-11-29 10:26:22

贴片电阻体积小,检测好坏需要借助工具。常用的方法是使用万用表。选择档位: 将万用表拨到电阻档,根据贴片电阻标称阻值选择合适的量程。一般从小量程开始测试,如果读数...
2025-04-14 15:04:00

排阻是常见的电子元件,应用于各种电路中。了解排阻的引脚布局和功能对于电子工程师和爱好者来说非常重要。本文将详细介绍如何查看和理解排阻的引脚布局,帮助您更好地使用...
2025-04-14 06:00:08

贴片电阻1206,因其尺寸为1.2mm x 0.6mm而得名,是电子电路中常见的电子元件。它体积小巧,性能稳定,广泛应用于各种电子产品,从智能手机到家用电器,都...
2024-11-26 11:30:00