0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA报警系统的制作

454398 来源:wv 2019-09-29 08:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:所需的设备/程序

能够处理的计算机

Quartus II网络版

Altera FPGA开发板DEs-115 Cyclone IV系列( )

红外光束中断传感器(该部分的第二张图片)

Arduino LilyPad蜂鸣器(该部分的第三张图片) )

用户手册(参考部分提供了链接)

面包板

电线

一个上拉电阻; 10K欧姆

耐心; Verilog代码并非总是容易做到的

步骤2:框图和模块故障

请参阅底部的PDF

警报系统由三个模块组成;主模块,显示模块和声音模块。系统可以处于三种状态:布防,撤防和触发。

主模块监视输入并更改状态变量的值。设防和撤防状态的输入是开关。触发状态的输入是断线传感器。如果光束入射到传感器,则输入为1。相反,如果光束中断并且没有光入射到传感器,则输入为0,触发状态变为1。

显示模块将从主模块获得布防和撤防状态的值。如果设防输入变为高电平(1),则设防状态将变为1,并且单词‘on’将显示在七段显示器(SSD)中,该显示器位于FPGA板上滑动开关上方。如果输入变为低电平(0),则撤防状态将更改为1,并且SSD会显示“关闭”字样。

声音模块还将获得撤防,撤防和撤防的值。从主模块触发状态。如果布防状态为1,触发状态为1,则警报声将响起。仅在撤防状态更改为1时,声音才会关闭。

步骤3:显示模块

如果警报为“ ON”或“ OFF”,则显示模块将使用SSD进行显示。这使用了布防和撤防状态变量的值。根据输入,模块将点亮显示器的某些部分。请参阅本节的第二张图片,以了解哪些片段将被点亮。请参阅本节的第一张图片,以查看分段点亮时SSD的外观。

在布防状态为打开(输入为1)时,将使用两个显示器,每个字母一个上的单词。第一次显示时,除数字6外的所有段均将点亮。第二个显示屏将点亮0、1、2、4和5段(也可以使用2、4和6段)。

在撤防状态为打开(输入为1)时,三个显示器将被使用;单词“ off”的每个字母一个。第一个显示屏将与系统打开时的第一个显示屏相同。第二个和第三个显示器的段0、4、5、6都将点亮。

SSD是低电平敏感的,这意味着当它们为0时它们会点亮。第二张图片中的标签表明您位置,其中应放置0以形成所需的形状。例如,要使字母“ n”,段0、1、2、4和5必须点亮,这意味着所有这些位置都为零。其他位置(在这种情况下为位置3和6)将为1。因此,为了使字母“ n”成为要馈送到引脚的7位二进制数是0001001。由于每个板都不同,因此您可能必须保留

此项目所需的引脚可以在Altera DE2-115用户手册的第36至38页上找到。请注意,SSD引脚每个显示器有7个引脚,例如HEX0 [0]至HEX0 [6]。 7位二进制数的每个位置都将获得这7个引脚之一。但是,尽管7位二进制数将从位置0到位置6,要获得正确的引脚顺序,它们必须递减计数。

HEX0 [6]的位置为0,HEX0 [5]的位置为1,依此类推。

代码如下:

模块 armedStatusDisplay(armedState,SSD,SSD1,SSD2);

输入武装状态; 《/p》

输出规则 [6:0] SSD,SSD1,SSD2;

始终 @(armedState)

开始

SSD2 = 7‘b0000001;

如果(armedState == 1)

开始

SSD = 7’b1111111;

SSD1 = 7‘b0001001;

否则

开始

SSD = 7’b0111000;

SSD1 = 7‘b0111000;

endmodule

步骤4:声音模块

声音模块使用LilyPad蜂鸣器。它接收来自主模块的输入,如果满足某些条件,它将发出警报。主模块可以识别警报是否已布防(布防状态= 1),以及在系统布防时(触发状态= 1)是否已经中断了撞击IR中断光束传感器的光。如果两者均为1,则警报将响起。

代码如下:

//警报模块中的代码来自

http://www.fpga4fun.com/MusicBox1.html并进行了修改

模块 AlarmSound(扬声器,clk,triggeredState);

输入 clk;

输入 triggerState;

输出扬声器;

参数 clkdivider = 25000000/440/2;

reg [23:0]音调;

总是 @(摆姿势 clk)

如果(触发状态== 1)

音频《=音频+1;

reg [14:0]计数器;

始终 @( posege clk)

如果(triggeredState == 1)

开始

if (counter == 0)

counter 《=(tone [23]?clkdivider-1:clkdivider/2-1);

其他

counter 《= counter-1;

结束

r 例如扬声器;

总是 @( posege clk)

如果(triggeredState == 1)

如果(counter == 0)

扬声器《=〜扬声器;

结束模块

步骤5:主模块

该模块将所有其他模块拼凑在一起,以获取完整的警报系统。它直接从红外中断光束传感器接收信息,以确定触发状态,并识别系统是否处于布防或撤防状态。该系统通过FPGA板底部的滑动开关进行布防。一针打开系统,一针关闭系统。开关的引脚位于用户手册第36页上。

此模块为其他两个模块提供输入。

代码如下:

//主模块

模块 finalproject(armedIn,beam,clk,disarmedIn,armedState,beamOut,disarmedState,扬声器,SSD, SSD1,SSD2,triggertedState);

输入 //SW0

输入光束;

输入 clk;

输入 disarmedIn; //SW1

输出 regarmedState = 0; //LEDR17

输出 beamOut; //LEDG0

输出 regdisarmedState = 1; //LEDR16

输出扬声器;

输出 [6:0] SSD,SSD1 ,SSD2;

输出 reg 触发状态= 0;

参数打开= 1;

参数关闭= 0;

分配 beamOut =梁; //如果光束断开则在ledg0上指示

//监视所有输入

始终 @(armedIn,disarmedIn,梁)

开始

如果(armedIn)

开始

武装状态《=开;

解除状态《=关;

结束

如果(已撤防)

开始

武装状态《=关闭;

disarmedState 《=开;

TriggeredState 《=关;

结束

如果((光束== 0)&&(armedState == 1)&&(disarmedState == 0))

TriggeredState 《= on;

end

ArmedStatusDisplay display1(armedState,SSD,SSD1,SSD2); //在SSD上显示警报的当前状态

alarmSound alarm1(扬声器,clk,triggeredState); //发出警报

endmodule

步骤6:演示

请观看随附的视频以观看我们的警报系统演示。

完整代码如下:

模块最终项目(armedIn,beam,clk,disarmedIn,armedState,beamOut,disarmedState,扬声器,SSD,SSD1,SSD2,triggerState);

输入 armarmIn ;

输入光束;

输入 clk;

输入 disarmedIn;

输出注册表武装状态= 0;

输出 beamOut;

输出注册表 disarmedState = 1;

输出扬声器;

输出 [6:0] SSD,SSD1,SSD2;

输出注册表,触发状态= 0;

参数开启= 1;

参数关闭= 0;

分配 beamOut =梁;//如果光束断开则在ledg0上显示

//始终注视所有输入

@(armedIn,disarmedIn,beam)

开始

如果(armedIn)

开始

武装状态《=开启;

撤防状态《=关闭;

结束

如果(

开始

武装状态《=关闭;

解除状态《=开启;

触发状态《= off;

结束

如果((beam == 0)&&(armedState == 1)&&(disarmedState == 0))

TriggeredState 《= on;

end

ArmedStatusDisplay display1(armedState,SSD,SSD1,SSD2) ;//在SSD上显示警报的当前状态

alarmSound alarm1(speaker,clk,triggedState);//发出警报

endmodule

///警报模块中的代码来自http://www.fpga4fun.com/MusicBox1.html和修改

模块 alarmSound(扬声器,clk,triggerState);

输入 clk;

输入 triggerState;

输出扬声器;

参数 clkdivider = 25000000/440/2;

reg [23:0]音调;

始终 @( posege clk)

如果(triggeredState == 1)

tone 《= tone + 1;

reg [14:0]计数器;

始终 @(姿势 clk)

如果(triggeredState == 1)

开始

如果(计数器== 0)

计数器《=(音调[23]?clkdivider-1:clkdivider/2-1);

其他

counter 《= counter-1;

结束

reg 扬声器;

始终 @(《如果(triggeredState == 1)

如果(counter == 0),则

扬声器《=〜扬声器;

终端模块

模块武装状态显示(armedState,SSD, SSD1,SSD2);

输入 armedState;

输出注册表 [6:0] SSD,SSD1,SSD2;

始终 @(armedState)

开始

SSD2 = 7’b0000001;

如果(armedState == 1)

开始

SSD = 7‘b1111111;

SSD1 = 7’b0001001;

结束

否则

开始

SSD = 7‘b0111000;

SSD1 = 7’b0111000;

结束

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1656

    文章

    22298

    浏览量

    630488
  • 报警系统
    +关注

    关注

    5

    文章

    656

    浏览量

    76888
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    校园一键报警

    报警
    jf_55301954
    发布于 :2025年11月06日 16:46:52

    防水淹厂房监测报警系统的设计原则

    成都国科自动化GKFC3100系列防水淹厂房监测报警系统,采用三种不同原理的液位信号器,每种液位信号器根据实际要求配置多个信号,反馈不同液位的信号,性能可靠,可有效防止报警信号误动作或不动作的情况
    的头像 发表于 09-17 16:02 349次阅读
    防水淹厂房监测<b class='flag-5'>报警</b><b class='flag-5'>系统</b>的设计原则

    西门子桌面级原型验证系统Veloce proFPGA介绍

    子,工程师可以从 proFPGA Uno 系统开始进行 IP 或子片上系统 (SoC) 的开发,然后将其重复用于完整的 SoC 和专用集成电路 (ASIC)原型设计。这只需要将 Uno 中的相同
    的头像 发表于 06-30 13:53 1619次阅读

    基于STM32的武警哨位联动报警系统设计,支持以太网和WIFI通信(硬件、源码、论文等)

    基于STM32的武警哨位联动报警系统设计,支持以太网和WIFI通信(硬件、源码、论文等),实例推荐下载!
    发表于 05-29 21:36

    基于FPGA的AM调制系统设计方案

    系统FPGA、串口屏、DAC模块和AD831组成。FPGA通过调用宏功能模块NCO,按照输入时钟50MHz,产生相应频率正弦信号输出,共产生两路,一路为调制信号,另一路为载波信号。根据AM调制
    的头像 发表于 05-23 09:45 1321次阅读
    基于<b class='flag-5'>FPGA</b>的AM调制<b class='flag-5'>系统</b>设计方案

    电厂厂房防水淹监测报警系统解决方案概述

    成都国科GKFC3100系列防水淹厂房联动报警系统,作为“远程监控,无人值班”电站安全生产的一项重要技术保护措施,在出现水淹厂房时能及时可靠报警,并且能直接发令使机组停机或关闭蝶阀(快速闸门),防止事故扩大。
    的头像 发表于 03-26 14:41 636次阅读
    电厂厂房防水淹监测<b class='flag-5'>报警</b><b class='flag-5'>系统</b>解决方案概述

    如何制作适用于Visionfive 2的Debian + UEFI固件系统

    制作适用于Visionfive 2的Debian + UEFI固件系统
    发表于 03-10 07:51

    CNC机床报警数据采集物联网系统方案

    成本、提高生产效率具有重要意义。 然而,传统的机床报警管理方式多依赖人工巡检与手动抄录,存在响应滞后、信息记录不完整、难以进行深度数据分析等问题。因此,构建一套智能化的 CNC 机床报警信号数据采集运维管理系统势在必行,
    的头像 发表于 03-05 15:28 626次阅读

    语音报警器应用智能家居的技巧

    在科技日新月异的时代,智能家居安全系统已成为许多家庭和企业不可或缺的一部分。其中,语音报警器作为智能安防的重要组成,旨在提升安全报警的即时性,通过智能化的功能设计,帮助用户最大化地发挥其效能,让安全
    的头像 发表于 03-04 17:36 716次阅读

    防水淹厂房监测报警系统

    一套完善的系统是十分必要的。二、系统介绍水淹厂房监测报警系统为了保证水电站生产、调度稳定运行,通过防水淹厂房视频监控系统和水淹厂房
    的头像 发表于 02-11 15:15 686次阅读
    防水淹厂房监测<b class='flag-5'>报警</b><b class='flag-5'>系统</b>

    基于FPGA的图像边缘检测设计

    今天给大侠带来基于 FPGA 的图像边缘检测设计,话不多说,上货。 设计流程如下:mif文件的制作→ 调用 ip 核生成rom以及仿真注意问题→ 灰度处理→ 均值滤波:重点是3*3 像素阵列的生成
    的头像 发表于 02-10 11:30 1105次阅读
    基于<b class='flag-5'>FPGA</b>的图像边缘检测设计

    水库水位实时监测报警系统:高精度监测,水位变化无所遁形

    水库水位实时监测报警系统是一套集传感器技术、数据采集与传输技术、软件分析技术于一体的智能化监测系统。它能够对水库水位进行实时、连续、高精度的监测,并在水位异常时及时发出报警信号,提醒相
    的头像 发表于 02-08 15:19 1220次阅读
    水库水位实时监测<b class='flag-5'>报警</b><b class='flag-5'>系统</b>:高精度监测,水位变化无所遁形

    离身报警器的设计

    随着全球旅游的火热,出去看一看大好河山的人越来越多。为了使旅行顺畅保证行囊的安全是十分不要的。虽然目前此类产品很多,大多数都是以蓝牙或WIFI与手机捆绑使用,使用起来比较麻烦,特别对于老年人来说有很大的挑战。所以利用一种简单的电子发射与接收器装置,制作小巧实用“离身报警
    发表于 02-07 14:01 0次下载

    隐形守护,智能感知——震动光纤报警系统

    在安防领域,客户需求的多样化推动了技术革新的步伐。维安达斯震动光纤报警系统,以其卓越的隐蔽性和环境适应性,满足了市场对高效、稳定报警系统的需求。
    的头像 发表于 01-24 15:47 777次阅读
    隐形守护,智能感知——震动光纤<b class='flag-5'>报警</b><b class='flag-5'>系统</b>

    基于Agilex 5 FPGA的模块系统介绍

    基于Agilex 5 FPGA的模块系统(SoM)是一种由英特尔的合作伙伴提供的生产就绪型解决方案,专门针对嵌入式应用。采用先进的Agilex 5 FPGA的SoM可以满足边缘应用日益增长的需求
    的头像 发表于 12-19 17:10 1210次阅读
    基于Agilex 5 <b class='flag-5'>FPGA</b>的模块<b class='flag-5'>系统</b>介绍