IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 基于FPGA芯片的雷达超声波监测系统 -> 正文阅读

[嵌入式]基于FPGA芯片的雷达超声波监测系统

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

该系统可以在单一直线方向上进行监测测距,并将所得的测距离显示在数码管上,所测得的距离应在2cm到2m内误差较小,并且当超声波模块所测得的距离小于某一数值时使用FPGA控制蜂鸣器发出一定频率的声音,超声波模块所测得得距离越小使蜂鸣器所发出的声音越大,频率越高,以此来达到提醒距离的功能。该系统驱动超声波模块在一定时间内发送一道声波,声波碰到障碍物后反射回来,然后由另一个管脚来进行接收,当声波发射出去时,某一引脚持续高电平,直到接收到反射回来的声波时,将该引脚置为低电平,通过计算该引脚的高电平持续时间乘以声波在空气中的传播速度再除以二可得出声波到前方障碍物的距离。由于声波有来有去,若要保证所测得的距离具备有效性,因此必须在程序中设置有效距离,该步骤会在后面的程序设计思路中具体表现出来。同时在该系统中还使用到了无源蜂鸣器和七段数码管,而且在数码管模块中还用到了人眼的暂态效应来完成设计。


一、设计任务与要求:

已知此任务需要完成的功能:(1)使用FPGA控制超声波HC-SR04模块,使其正常工作。(2)使用四个七段数码管来显示测量距离。(3)使用蜂鸣器来警示距离过短。(4)当距离越短,蜂鸣器发出的声音越大,频率越高。(5)数码管显示的距离使用厘米为单位进行表示。(6)使用FPGA芯片来进行位运算得出距离结果并显示。

二、使用步骤

二、设计思路
由前面的叙述可知,本课程设计的系统分为三个模块,分别为:超声波传感器模块,数码管显示模块,蜂鸣器模块。然后通过顶层模块将这三个模块进行连接。在下面的内容中分别对三个主要模块进行叙述。

超声波模块:
超声波传感器主要是两个信号:trig信号引脚,该引脚用于触发模块开始工作,echo信号引脚,该引脚用于接收信号功能。超声波模块要进行工作,我们先对其trig端口给出至少10微秒的高电平信号,随后该模块自动发送八个40Khz的方波,自动检测是否有声波信号返回。若有信号返回,通过IO口输出高电平,高电平持续时间就是超声波从发射到返回的时间,因此我们可以由公式得出超声波模块所测距离distance公式为:

Distance = (电平持续时间)*(声波在空气中的传播速读)/2

在该模块的设计过程中,我的设计思路就是基于这个公式展开的,我的distance(所测距离)直接使用厘米为单位在数码管上进行显示。在这里插入图片描述

在此模块的设计中我使用了位拼接的操作来对echo引脚进行检测,这个操作是我在网络的相关技术文档上学到的,我认为这种设计思想非常的巧妙,这种设计方法大大降低了echo由于外来干扰信号而导致的错误测距结果,大大提高了超声波模块测距的准确性,减小了由于电路内部毛刺现象而产生的误差。在该模块中另一个操作就是分频操作,将系统时钟50Mhz分频为17Khz,我在这里使用的分频操作并不精确,但是这里的精度足够满足我们的要求了,这个分频操作的目的主要是来计算超声波模块所测得的距离数值。还有一个重要的操作就是计数累加操作,这个操作用来进行计时操作,结合上面的17Khz分频操作来进行在有效电平内进行计数累加,得出的结果即为超声波模块所得的距离,以及一些计数器的操作,很多关于计数器的操作目的也是为了达到分频的目的。

Trig信号引脚工作设计思路:

在这里插入图片描述

该设计中对同一个计数器进行了两次if判别操作,相当于对一个寄存器类型的变量进行了两次操作,节省了FPGA芯片内部的资源。第一次使用if语句进行判别该计时器的值是否达到了500,如果达到了500,则停止触发trig引脚高电平,相当于对trig引脚提供了10微秒左右的高电平,然后在计数器达到12500000之前一直保持低电平,即不再发射声波。计数器清零的时间间隔为0.25秒,即这道声波所测距离最大为42.5米左右,但这是不可能达到的,因为超声波模块很难接收到从几十米以外反射来的信号,事实上,该超声波模块非常廉价,甚至不能接收到三米外的信号,因此这导致该系统的测距有效量程非常短暂,且精度不是很高。
Echo信号引脚工作设计思路:

该部分的设计思想的精髓主要体现在对于位拼接操作上,这种操作极大的避免了外界信号对echo引脚信号的干扰,这种方法结合了位拼接操作,取非操作,与操作和if语句判别操作,这些结合在一起十分巧妙的避免了干扰信号,当该引脚的电平上出现毛刺现象,或者电平由于意外情况而突变时,可以有效的避免由于外界意外情况而导致的误差,这种操作是之前在技术文档上学习到的奇思妙想,这种设计方法很值得学习借鉴。
(续上图)

在该模块中我认为有必要详细的介绍一下为什么利用17Khz来进行超声波所测距离计算。在之前出现的公式中我们可以把公式简化为:

 		distance(cm) = 17000 * (高电平持续时间)

当高电平时间为1s时,distance为17000cm,当高电平时间为1/17000s时,distance为1cm。以此每经过1/17000s就让计数器加一,在有效电平持续时间段中,计数器每隔1/17000秒加一,到echo接收引脚变为低电平时,计数器的值就是distance的值,也就是超声波模块所检测到的值,该操作也是超声波模块的亮点之一。同时我们定义了一个16位的寄存器类型的变量,通过对这个变量分段赋值给蜂鸣器模块以及数码管模块来进行显示和提示操作,这个分段赋值操作全部都在顶层模块中进行。

总结

在这里插入图片描述

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:44:59  更:2022-03-15 22:45:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:43:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码