勇敢的芯伴你玩转Altera FPGA连载94:倒车雷达实例
0赞勇敢的芯伴你玩转Altera FPGA连载94:倒车雷达实例
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1i5LMUUD
倒车雷达应用背景
如图10.24所示,倒车雷达的主要作用是在倒车时,利用超声波原理,由车尾保险杠上的探头发送超声波撞击障碍物后反射,从而计算出车体与障碍物之间的实际距离,再提示给驾驶者,使停车和倒车更容易、更安全。倒车雷达的提示方式可分为液晶、语言和声音三种;接收方式有无线传输和有线传输等。
图10.24 倒车雷达场景
功能简介
该实例用到了CY4开发板上蜂鸣器和外接的超声波测距模块。该系统功能如图10.25所示,FPGA产生周期性的trig脉冲信号,使得超声波模块周期性发出测距脉冲,当这些脉冲发出后遇到障碍物返回,超声波模块将返回的脉冲处理整形后返回给FPGA,即echo信号。我们通过对echo信号的高脉冲保持时间就可以推算出超声波脉冲和障碍物之间的距离。对于不同的距离,我们随后就产生不同的蜂鸣器发声频率和保持时间。
图10.25 倒车雷达接口示意
在本章前面几节我们已经探讨过超声波模块的内部工作机理,这里重新给出距离S和时钟周期数n之间的公式。
S为距离,单位cm,n为以10us做单位的脉冲数,它们的公式为:
25°C时,声音在空气中传播的速度为346m/s。因此取距离s的单位是米(m),时间t的单位是秒(s),有 s = 346*t/2。
若取距离s的单位是毫米(mm),时间t的单位是10微秒(10us),有s*0.001 = 346*t*0.00001/2,即s = 1.73*t。
为了便于计算,取s = ((1.73*256)*t)/256 = (443*t)/256
我们的超声波测量到的距离和蜂鸣器发声频率、占空比关系如下表10.1所示。
表10.1 倒车雷达蜂鸣器发声与距离关系表
距离 |
蜂鸣器发声 |
s ≤ 40cm |
频率0.5Hz,占空比100% |
40cm < s ≤ 75cm |
频率0.5Hz,占空比80% |
75cm < s ≤ 125cm |
频率1Hz,占空比40% |
125cm < s ≤ 200cm |
频率2Hz,占空比20% |
本实例的系统功能框图如图10.26所示。在上一个实例的基础上,我们增加了蜂鸣器发声驱动控制驱动模块,该模块根据障碍物和超声波测距模块之间的实测距离,相应的驱动蜂鸣器发出不同频率的响声。
图10.26 倒车雷达实例功能框图
FPGA工程模块的层次划分如图10.27所示。
图10.27 倒车雷达实例模块层次
板级调试
连接好下载线,给CY4开发板供电。
打开Quartus II,进入Programmer下载界面,将本实例工程下的cy4.sof文件烧录到FPGA中在线运行。
此时我们在超声波测距模块前面摆放平整的障碍物,可以看到数码管上的数据会发生变化。这里显示的数据,是以mm为单位,实际换算好的距离信息。大家可以很直观的获得当前障碍物和超声波测距模块之间的距离。此外,在超声波测距模块和障碍物距离不同的情况下,蜂鸣器会发出不同声调的声音,从我们设计角度看,应该是符合表10.1的规律。