摘 要: 设计了一种基于FPGA的超声波测距模块。在时序和信号处理方面,采用Cyclone II系列EP2C5T144C8芯片,通过设计时序发生器、高速计数、回波识别和可变门槛控制等逻辑电路模块可快速有序地对信号进行处理。在声速方面,加入了温度补偿模块,避免使用固定的声速值所引入的偏差,从而提高系统精度。该系统具有可靠性高、集成度高和响应速度快等特点,实验表明,在距障碍物600 mm~3 600 mm时,相对误差在0.3%以内,测量精度得到很大提高。
关键词: 超声波测距;FPGA;温度补偿;DS18B20;回波识别
超声波测距是一种非接触式测量技术,具有定向性好以及对色彩、光照度、外界光线和电磁场不敏感的优点,当被测物处于黑暗、有灰尘或烟雾、强电磁干扰及有毒等恶劣的环境时,超声波有很强的适应性。因此超声波传感器广泛用于工业测量、安全预警、车辆避障、自动导航以及现场机器人等相关领域。
目前绝大多数超声波测距系统都是以单片机作为信号发生和控制器,其测量精度严重受限于单片机的晶振频率(1.2 MHz~24 MHz),往往难以令人满意。而且用单片机控制的测距系统需要辅助设计较多的由分立元件组成的外部模拟电路,故其抗干扰性能也相对较差。FPGA作为一种高密度可编程器件,其内部可以集成较大规模的逻辑单元,适用于时序、组合等各种逻辑电路应用场合,具有运行速度快(100 MHz以上)、内部资源丰富等特点[2],为开发高精确度的超声测距系统提供了新的设计方案。
为此,本文设计了一种基于FPGA的超声波测距系统,有效提升了系统整体性能。
1 超声波测距原理
目前,超声波传感器的种类有很多,一般采用压电式超声波传感器。超声波测距原理如图1所示。超声波信号由超声波发射探头发出的同时,计数器开始计数,超声波在传输过程中遇到障碍物会反射回来(称为回波),在超声波接收探头收到回波的同时,计数器停止计数。由速度和时间即可得到障碍物与测距装置之间的距离:
S≈L=V×t/2(1)
其中,S为障碍物与测距装置之间的距离,V为超声波的传播速度,t为计数器测得时间。
2 测距系统与硬件电路
本超声波测距系统整体结构如图2所示,包括发射模块、接收模块、显示模块、温度补偿模块和FPGA设计模块等。
CX20106A的2引脚与GND之间连接RC串联网络,改变它们的数值便能改变芯片内部前置放大器的增益和频率特性。增大电阻R或是减小电容C,都将使负反馈量增大,放大倍数下降;反之则放大倍数增大。这样便可以调节超声波接收探头R的接收灵敏度。但电容的改变会影响频率特性。
CX20106A的5引脚与电源端VCC接入一个电阻,用来设置其内部带通滤波器的中心频率f0。当R6阻值越大时,滤波器的中心频率越低。
CX20106A的7引脚的输出方式为集电极开路,因此该引脚必须接上一个上拉电阻到电源端,没有接收到超声波回波信号时,该端输出为高电平,当有回波信号进入时,该引脚则会跳变为低电平。
3 FPGA逻辑电路设计
在测距系统中,FPGA设计主要的功能模块有:时序发生电路模块、回波识别模块、检波模块、可变门槛控制模块、高速计数器模块、温度补偿计算模块、距离计算模块、显示控制模块和一些辅助模块。在此,FPGA主要完成了产生超声波驱动信号、检波、计时、温度补偿计算、距离计算和抗干扰等任务。
时序发生器是FPGA和整个系统按照设定的时序正常工作的基础。主要为FPGA、超声波驱动控制信号、接收使能信号和高速计数器等提供精确的时序与控制。在时序发生器的基础上,通过将全局时钟信号进行分频处理,得到符合驱动信号频率的方波脉冲。
检波器接收电压比较器的输出信号进行高速处理,并对回波到达时间精确锁定,同时高速计数器会停止计数。
高速计数器主要通过记录计数脉冲的个数来计算渡越时间。在驱动超声波信号发出时,高速计数器开始计数,信号经功率放大再由发射探头发出超声波,遇到障碍物后返回,回波经电压比较器和检波器后,由检波器向高速计数器发出信号,高速计数器停止计数。由于高速计数器的计数频率即为驱动超声波信号的频率,因此可以计算出渡越时间t=n/f,其中n为计数脉冲的个数,f为驱动超声波信号的频率。
门槛控制是指设定一个电压门槛,在回波幅值高于此门槛的时候才有效。可变门槛控制模块主要是为了接收回波并降低干扰。障碍物的远近不同,回波的强度亦有所不同,所以应当设置可变的门槛值。当障碍物较远时,采用低的门槛值;反之,采用较高的门槛值。绝大多数干扰信号的幅值较低,采用较高门槛就有较好的鲁棒性,能有效降低外界的干扰。由于被测距离多分布于中等范围,因此,在大部分时间内可以采用较高门槛值,有效避开干扰信号。
依据信号的强度来区分回波和干扰,而回波识别模块是依据信号的持续时间和周期个数区分回波和干扰。由于超声波发生器振子存在余振,余振波也会成为一种干扰,但余振和一般的干扰信号至多只有1~2个周期,而真实回波持续时间长一般会超过10个周期。所以设计回波模块时,如果周期超过一定数目,则认为是真实回波,否则忽略对该信号的接收。这样能进一步减小干扰。
4 实验结果分析及总结
为验证超声波测距模块的测量精度,在室内(温度为18.6℃)进行了实际测量实验,其中测量距离由钢质卷尺多次测量求平均值所得。数据如表1所示。
从表1可以看出,距障碍物过近或较远时,测量精度下降。因为太近时接收和发射等电路的时延影响相对变大,而且发射信号必须有一个上升时间,当障碍物距离太近时系统不能及时处理回波信号[6],所以测量误差明显增加。障碍物距离太远时,回波信号微弱,混有大量的噪声,对门槛判定造成很大的挑战。分析表1中数据可知,在障碍物距离测距装置600 mm~3 600 mm时,可以达到较高精度,相对误差范围保持在0.3%以内,稳定性也较高,可以满足绝大多数实验的需求。
表1中超声波所测数据均大于尺测距离,而不是在尺测距离上下波动,原因可能是某部分电路存在极小的延时,导致高速计数器计时时间比实际时间长。下一步可以考虑在分析大量测试数据后,在测试结果上再在加上一定的修正量,减小电路延时引入的偏差,进一步提高系统精度。
如需获得更高的精度,可以提高超声波频率,但这是以牺牲测量范围为代价的;同理,使用更低的超声波频率可使测距范围增大,但测量精度会下降。可依据实际情况来选择超声波频率。
总体来看,本文提出的基于FPGA的超声波测距系统很好地利用了超声波检测技术优点,充分发挥了FPGA的优势,采用多种措施来提高超声波测距精度,具有良好的抗干扰性和稳定性,且测量盲区小、精度高,满足了大多数实验对障碍物测量的需要。若要求测量不同方向的障碍物,只需设计为多传感系统即可,具有实际应用价值。
参考文献
[1] 吴超.基于FPGA的超声波测距系统[D].武汉:武汉理工大学,2009.
[2] 潘松,黄继业,陈龙.EDA技术与Verilog HDL[M].北京:清华大学出版社,2010.
[3] 英勇,王纪婵,赵海鸣,等.基于单片机的高精度超声波测距系统[J].仪表技术与传感器,2007(3):66-68.
[4] 王红云,姚志敏,王竹林,等.超声波测距系统设计[J].仪表技术,2010(11):47-49.
[5] 童亮.基于CAN总线的智能超声波测距系统[J].仪表技术与传感器,2007(12):34-36.
[6] 唐颖,张凡,郭勇.移动机器人的超声波测距传感器设计[J].传感技术学报,2010(11):1646-1649.
[7] KOVACHEV D M, GEORGIEVA N E. A mathematical modeling and FPGA-based digital receiver in a continuous wave Doppler radar[C]. 27th International Spring Seminar on Electronics Technology: Meeting of Challenges of Electronics Technology Progress, 2004(2):221-225.