1导言
以往运用超声波丈量间隔往往选用单片机单机体系(由单片机软件操控发射、接纳及计数器的关停与发动),这种办法所带来的差错在厘米级。原因主要有:单片机计数器频率较低形成的差错;计数与发射信号由软件操控动作而发生的不同步;超声波传感器接纳到信号与单片机检测到信号之间不同步等。本文给出一种以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) 接纳整形电路形成的时延也是差错来历之一。
责任编辑:gt