FPGA(8)--频率计检测控制系统

文章目录

    • 一、设计要求
      • 1.整体控制系统设计要求
      • 2.频率计检测设计要求
    • 二、设计思路
      • 1.确定VHDL描述与原理图相结合完成设计
      • 2.确定状态情况
      • 3.数码管显示功能
    • 三、设计内容
      • 1. 频率检测部分VHDL描述
      • 2. 七段数码管显示部分VHDL描述
      • 3. 系统主控制部分VHDL描述
      • 4.将三个部分的VHDL描述分别都封装成元件
      • 5.连接三个部分封装成的元件
    • 四、结果分析与验证
      • 1.状态机验证
      • 2.频率检测仿真波形图验证
      • 3.主控仿真波形图验证
      • 4. 引脚配置
    • 五、思考与总结

一、设计要求

1.整体控制系统设计要求


①频率计被输送到检测传动带入口,光电传感器(Sensor_1)检测到频率计后启动传送带。光电传感器采集的是光的反射信号,当检测到有被测物体时输出1,否则输出0;
②传送带将频率计传送到检测口,并触发位置开关(Sensor_2),此时,传动带停止,并启动频率测量仪的移动电机。注:位置开关初始状态为0,被触发后变为1;
③移动电机将频率测量仪接入到频率计信号输入端口,信号接通后给控制器反馈一个信号1,否则0;
④接通延迟3s后,频率测量仪给频率计输入一个1024Hz的标准频率,当频率计检测到的脉冲信号在1014~1034Hz时,表示该频率计是合格的,否则不合格。检测合格输出字符“A”,不合格输出“F”。
⑤检测完成后,移动电机反转回到初始位置,并触发位置开关(Sensor_3)后停止;
⑥再次启动传送带,将检测合格的频率计移动到包装工位,并统计和显示合格产品的数量;2s后传送带停,回到初始状态。

2.频率计检测设计要求

频率计是用来测量给定信号频率的仪器。其基本原理是在给定的标准时间内(通常是1s),通过计数器检测输入信号的脉冲个数。如图2所示,Clkin是待测信号,Clk是频率计工作时钟,Conl是频率计产生的测控信号,测控信号通常设置为2s的周期,占空比为50%。测量的原理:统计在Conl为高电平时Clkin有多少个周期的脉冲信号。

二、设计思路

1.确定VHDL描述与原理图相结合完成设计

根据该检测控制系统的设计要求可知,该系统可以由三个子部分组成,即频率检测部分、系统主控制部分和七段数码管显示部分。因此,可以分别将三个部分用VHDL描述,进而将三个部分分别封装成元件,以供最后原理图调用连接完成设计。

2.确定状态情况

根据整体控制系统设计要求可知,该系统的状态可以分为五个,即如下图所示的状态机图。

S0:初始状态(Sensor_1检测到产品进入而进入下一状态)
S1:产品进入传送带传输(Sensor_2检测到产品到达而进入下一状态)
S2:移动电机向下移动,频率测量仪接入产品(延迟3s进入下一状态)
S3:进行检测,移动电机向上移动(Sensor_3检测到电机到达而进入下一状态)
S4:再次启动传送带,更新数据(2s后回到初始状态)

3.数码管显示功能

考虑到该系统需要用七段数码管显示产品是否合格以及合格产品的数量,因此需要相应的数码管显示功能,而此前的实验中有实现此功能的模块,可以将其封装成这里可以调用的元件。

三、设计内容

1. 频率检测部分VHDL描述

1.1导入相关的包
在这里插入图片描述
1.2定义相关输入输出
在这里插入图片描述

①rst为频率检测功能的使能信号,其值由主控制部分传递过来
②conl为频率计产生的测控信号,一般设置为0.5Hz
③clkin为待测信号
④count为在conl为高电平时clkin的脉冲信号数量
⑤quality为检测结果,其值输出返回给主控制部分
1.3检测脉冲数量进程
在这里插入图片描述
①在conl为高电平时候,只要clkin到达一个上升沿时就计数一次
1.4检测结果返回进程
在这里插入图片描述
①只要在一个conl为高电平时clkin的脉冲信号数量为1014-1034就返回1。

2. 七段数码管显示部分VHDL描述

2.1导入相关的包(同上)
2.2将四位二进制数转换为七段数码管显示信号
在这里插入图片描述

①d由最高位到最低位分别对应一个七段数码管的a到g
②这里只设计了0-9的显示,超过9的情况只需要稍作改进即可

3. 系统主控制部分VHDL描述

3.1导入相关的包(同上)
3.2定义相关输入输出
在这里插入图片描述
①rst_c为清零复位信号,clk为工作信号
②count_in为频率检测部分传来的检测结果
③Sensor_1、Sensor_2、Sensor_3_down、Sensor_3_rise为模拟传感器信号
④count_out为统计的合格产品数量
⑤quality_out为表示产品是否合格
⑥testing为传递给频率检测部分的使能信号
⑦show_trf为传送带状态,show_down为电机是否下降,show_up为是否上升
3.3定义状态机情况以及中间信号
在这里插入图片描述
①该控制系统存在5个状态
②delay_3、delay_2分别为下面需要用的实现延迟功能的中间信号
③adder为统计合格产品数量的中间信号
3.4状态机情况
在这里插入图片描述
①初始为S0状态,当Sensor_1检测到产品进入传送带时候进入下一状态S0
②S1状态传送带动(show_trf输出高电平),当Sensor_2检测到产品到达时进入下一状态S2
③S2状态电机下移(),当Sensor_3_down检测到电机到达时延迟三秒后进入下一状态S3
④S3状态主控制部分给频率检测部分使能信号(testing输出高电平),并且电机上移(show_up输出高电平),当Sensor_3_rise检测到电机到达时进入下一状态S4
⑤S4状态传送带动(show_trf输出高电平)延迟两秒后回到初始状态
3.5统计合格产品与显示检测产品情况
在这里插入图片描述
①如果频率检测部分返回高电平则合格产品数量加一并且显示“A”,否则显示“F”

4.将三个部分的VHDL描述分别都封装成元件

5.连接三个部分封装成的元件

在这里插入图片描述
①quality与count_in连接

四、结果分析与验证

1.状态机验证

在这里插入图片描述在这里插入图片描述
由上面调出的状态机图与前面设计的状态机相同,并且转换情况符合。

2.频率检测仿真波形图验证

在这里插入图片描述

3.主控仿真波形图验证

3.1固定输入设计
在这里插入图片描述
①clk是频率为1Hz的方波信号
②clkin是频率为1024Hz的方波信号
③conl是频率为0.5Hz的方波信号
3.2检测一次的情况
在这里插入图片描述
如图对仿真波形图做了相关说明,从中可以验证得该系统的相关设计要求已经基本实现。
3.3在上一次的基础上再检测一次的情况
在这里插入图片描述
3.4清零复位
在这里插入图片描述

4. 引脚配置

基于实验板的硬件条件,合理规划硬件显示情况,对频率检测程序/主程序进行硬件验证。如下图为相关引脚配置。
在这里插入图片描述在这里插入图片描述
①clk、clkin、conl分别加以1Hz、1024Hz、0.5Hz
②count和quality通过七段式数码管输出
③rst_c、Sensor_1、Sensor_2、Sensor_3_down、Sensor_3_rise分别接入推拉式开关
④trf、down、up分别接以发光二极管指示灯输出

五、思考与总结

1.用原理图设计较VHDL更为直观明了,可以通过电路图清楚其逻辑关系和实现的功能关系。而用VHDL语言设计则较为简便,只需清楚各个接口之间的关系和调用的原则。因此选用VHDL描述结合原理图的方式来设计实现较为合理。
2. VHDL描述的模块化,将实现不同功能的VHDL描述分开在不同的进程里面,实现VHDL的“高内聚低耦合”。
3. 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。交通信号灯可以用状态机的原理来实现,因为信号灯的变化状态是有限的,各个状态可以列举出来,状态间切换由计数器决定。

------------------------------------------------------------------
特别说明:以上均为个人原创,需要原代码的朋友可以联系我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347934.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

lda进行图片分类_LDA主题模型

今天来啃硬骨头了,说说LDA主题模型。本文言简意赅,没有太多的数学公式。学习也不要太多的陷入算法的细枝末节之中,学习复杂的事物,需要从整体去把握。先列出本文的讲解顺序。什么是LDA模型2. 函数与 Beta函数3.共轭先验分布4.二项…

FPGA(1)--VHDL--6选1数据选择器

一、实验目的 掌握用VHDL语句进行组合电路设计的方法,并熟悉程序的编译、调试与波形图的仿真。 二、实验内容 分别用VHDL的CASE语句及IF语句两种方法,设计6选1数据选择器。通过编译、仿真验证功能正确性。 三、实验设计 设计的依据:教材…

android+4.4+jni闪退,native2.1 安卓退到后台时,概率闪退

赞同来自:同样的,在这个时候,还出了另一个错误,详情见下面的log,这个问题,出现的情况就和上面的不同,从5.0 - 9.0 ,level 22- level 28 ,都在出这个错误,真的搞不太清楚是为什么&…

java 模板方法设计模式_Java中的模板方法设计模式

java 模板方法设计模式模板方法是一种行为设计模式 ,用于创建方法存根并将某些实现步骤推迟到子类。 模板方法定义了执行算法的步骤,它可以提供默认实现,该实现对于所有或某些子类可能是通用的。 让我们通过一个例子来理解这种模式&#xff…

FPGA(2)--例化语句--1位全加器

文章目录一、实验目的二、实验内容三、实验设计四、实验结果及仿真一、实验目的 熟悉元件封装方法,掌握层次化电路设计方法;掌握VHDL例化语句的设计方法。 二、实验内容 1.用VHDL语言设计1位全加器,其中仅就半加器实体进行例化声明及端口映…

对mysql的总结与反思_一次DB故障引起的反思和MySQL Operator选型

前言在一次数据库故障后,我们发现业务库会根据业务的等级会划分多个 MySQL 实例,许多业务库会同时属于一个 MySQL 实例,当一个库引发问题后整个实例的状态是不可控的。从而导致这个实例上的所有业务不稳定甚至造成中断。故障反思微服务架构微…

android 三星 拍照,安卓里面拍照最好的三个品牌,OPPO华为三星怎么选

原标题:安卓里面拍照最好的三个品牌,OPPO华为三星怎么选几乎每一个节日都能被国内的商家抓住并且成功的策划为一次次的「购物节」,双十一、双十二等无一例外,3月7日这个从中国高校里衍生出来的「女生」节如今也成为了「女神节」。…

FPGA(3)--VHDL及原理图--4位全加器

文章目录一、实验目的二、实验内容三、实验设计五、实验思考与总结一、实验目的 掌握例化语句的使用方法,掌握使用程序文本和原理图结合方法设计电路,掌握利用包含算术操作符的重载函数的使用。 二、实验内容 首先用VHDL语言设计1位全加器&#xff0c…

Vertx编程风格:您的反应式Web Companion REST API解释了

Vertx提供了许多在轻量级环境中进行编程的选项,例如node.js。 但是,对于新用户来说,选择采用哪种方法来创建REST API几乎不会造成混淆。 在vertx中编程时可以采用不同的模型。 下面通过易于理解的图表对其进行说明。 PS – vertx编程的核心…

过去式加ed的发音_小学英语动词过去式归类总结

小学英语动词过去式归类总结  一、动词过去式的规则变化 1. 一般情况下,动词词尾加-ed 如:work ---worked, play---played, want----wanted, act----acted 2. 以不发音的 -e 结尾动词,动词词尾加 -d 把动词原形最后的e去掉&#xff0…

FPGA(4)--VHDL--4位D触发器

一、实验目的 掌握利用VHDL语言,进行基本时序元件的设计。 二、实验内容 利用VHDL语言设计含异步复位(RST)及使能端(EN)的4位D触发器,其中输入D及输出Q均为4位(STD_LOGIC_VECTOR)…

鸿蒙10 5G手机,继鸿蒙后麒麟V10问世 5G时代国产操作系统将起飞

(记者 陈洲)从工信部获悉,中国电子近日在广州发布了银河麒麟操作系统 V10。该系统打通了手机、平板、PC 等多个终端,可谓为5G时代量身定做。其独创的 kydroid 技术,可将安卓应用无缝迁移到国产平台上。银河麒麟V10是继华为鸿蒙OS后&#xff0…

模糊查询关键字不区分大小写_SQL简单查询

SQL书写规则:1)以英文分号结尾(;) eg. select 姓名,性别 from student;2)不区分关键字的大小写。就像Excel里面sum可以大写可以小写。同理,SQL中select不区分大小写。3)列名不能加单引号,列名中间不能有空格。4)所有符号都要是英文…

FPGA(5)--VHDL--10十进制计数器及7段显示译码器

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 一、实验目的 掌握一般性计数器的VHDL设计方法,熟悉程序文本和原理图…

鸿蒙系统笔记本产业链,华为P40或用鸿蒙 华为产业链概念股一览

众所周知,华为已经推出了全新的鸿蒙系统,这正式证明了华为越挫越勇的精神,余承东已经对外透露,要是在无法使用谷歌服务的情况下,明年推出的华为P40或用鸿蒙系统,值得关注的是,这是时候&#xff…

apache log4j_Apache log4j是领先的日志记录框架

apache log4j根据 零周转的调查中, Apache log4j是领先的Java日志记录框架。 这实际上是一个非常有趣的调查。 它显示SLF4J最常用作伐木外墙,占61%。 但是,它似乎最常与Apache Log4j一起使用,52%的调查参…

FPGA(6)--7段显示译码器的加法计数器

文章目录一、实验目的二、实验内容三、实验设计与结果四、实验思考与小结一、实验目的 在上次加法计数器仿真实验的基础上,掌握端口的引脚配置、实验箱的接线及程序的下载、调试等。 二、实验内容 1.在上次实验的基础上,编译、仿真可以进行0-99加法计…

FPGA(7)--有限状态机--交通灯

一、实验目的 掌握有限状态机的编程和使用方法。 二、实验内容 设计一个十字路口交通灯控制器,东西(b)、南北(a)方向有红灯、黄灯、绿灯,持续时间分别为45、5、40秒,仿真验证其功能。 三、实验设计与结果 1.整体设计思路:根…

Spring Cloud配置–外部化应用程序配置

本教程是关于Spring Cloud Config的,这里我们将研究如何在不同的应用程序中针对不同的环境(例如开发人员,本地,产品等)使用Spring Cloud Config来管理和存储分布式外部配置属性。开发一个简单的云应用程序以使用云配置…

输入法问题_「图」KB4515384再爆新问题:OOBE时中文输入法阻止创建本地账户

KB4515384可谓是近期BUG数量最多的累积更新了,继开始菜单出现严重错误、音频故障、网络适配器问题、PIN登陆系统无法使用之后,在支持文档中微软承认了在初次设置(OOBE)过程中,使用某些语言将会阻止用户创建本地账户。微软在支持文档中表示&am…