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. 状态机由状态寄存器和组合逻辑电路构成,能够根据控制信号按照预先设定的状态进行状态转移,是协调相关信号动作、完成特定操作的控制中心。交通信号灯可以用状态机的原理来实现,因为信号灯的变化状态是有限的,各个状态可以列举出来,状态间切换由计数器决定。
------------------------------------------------------------------
特别说明:以上均为个人原创,需要原代码的朋友可以联系我。
FPGA(8)--频率计检测控制系统相关推荐
- pcb成型板aoi检测_一种PCB板的AOI检测控制系统的制作方法
本实用新型属于SMT贴片加工工艺技术领域,具体涉及一种PCB板的AOI检测控制系统. 背景技术: 随着表面贴装元件的广泛应用,电子产品的体积变得越来越小,其焊接质量直接影响到产品的稳定性,目前电子元件 ...
- 远程水箱自动检测控制系统
通过远程水箱自动检测控制系统实现自来水水箱中的水位检测以及水泵的自动控制,而无需人员到现场检查.从而减少人工成本,提高工作效率.具体方案如下: 在水箱处,安装一个S130主机(A),并且通过水位探测器 ...
- 基于STM32单片机窗帘窗户晾衣架雨滴光照检测控制系统电子代
基于STM32单片机窗帘窗户晾衣架雨滴光照检测控制系统电子代 硬件构成: STM32单片机+最小系统+液晶LCD1602显示+蜂鸣器报警模块+设置按键+雨滴检测模块+光敏电阻模块5516+ULN200 ...
- 目标检测YOLO实战应用案例100讲-基于FPGA的目标检测硬件加速技术及其应用研究
目录 基于FPGA的目标检测加速器设计 目标检测算法与加速方法 2.1 YOLO v2算法
- FPGA实现边沿检测电路(上升沿、下降沿)
1.什么是边沿检测 边沿检测用于检测信号的上升沿或下降沿,通常用于使能信号的捕捉等场景. 2.采用1级触发器的边沿检测电路设计(以下降沿为例) 2.1.设计方法 设计波形图如下所示: 各信号说明如下: ...
- 基于labview的液位\温度\光强等等…检测\控制系统,实 现对液位\温度\光强的测量、显示、控制功能,当期超出范围时
基于labview的液位\温度\光强等等-检测\控制系统,实 现对液位\温度\光强的测量.显示.控制功能,当期超出范围时,进行报警提示,并进行控制.作者原创程序
- 【频率计】基于FPGA的频率计设计
利用Altera公司的FPGA器件为主控器:在软件上,采用VHDL硬件描述语言编程,再MAXPLUSII中开发,极大地减少了硬件资源的占用.该数字频率计的lHz-10MHz输入被测脉冲信号具有频率测量 ...
- FPGA—简易频率计(附代码)
目录 1. 内容概要 2. 理论学习 3. 实操 3.1 整体设计 3.2 频率计算模块 3.2.1 模块框图 3.2.2 波形图绘制 3.2.3 RTL代码 3.3 顶层模块 3.4 仿真验证 ...
- FPGA实现序列检测(训练testbench写法)
电路设计与状态机 FPGA的基础概念 Cyclone IV器件采用了M9K的嵌入式块RAM,即每个嵌入式存储器块的容量为9216bit.4个PLL,一个PLL可以最多支持5路输出. cyclone I ...
最新文章
- JavaScript——易班优课YOOC课群在线测试自动答题解决方案(一)答案获取
- UI5 Control lazy load mechanism
- 君正T20平台生成jffs2格式rootfs
- Windows CE创建桌面快捷方式
- Redis 数据类型与操作命令整理
- GitBash添加tree命令
- C#~异步编程再续~你必须要知道的ThreadPool里的throw
- docker(应用容器引擎)
- Android编译默认英语,Android 编译系统 (一)
- 软件著作权统计源程序量,统计php代码行数
- 让“施工进度计划”真正产生价值——不是为了做计划而计划
- 英语四级口语考试计算机考吗,四级考试是不是要考口语(英语四级口语考试有必要报名吗?)...
- Android5.1浏览器证书问题
- 嵌入式软件工程师面试题收录(4)
- 智慧医院3D导航导诊系统-基础功能详解
- DIY装机之显示器(苹果显示器参数)
- 【JAVA中String类的相关知识】
- mac idea 快捷键设置
- java编程捕鱼和分鱼_C_捕鱼和分鱼
- 查找oracle11g的端口,oracle11g rac 非缺省端口在Oracle用户下无法查看状态
热门文章
- Spring MVC定制用户登录注销实现示例
- Lucene概述第一部分:创建索引
- 如何理解程序保存数据就是输出,读取数据就是输入的含义
- mysql insert limit_Mysql Limit 调优
- triplet loss后面不收敛_你的神经网络真的收敛了么?
- linux类似360软件,linux下有什么类似鲁大师查看电脑配置的软
- openlayers地图旋转_地图切换动画#openlayers入门笔记#
- 计算机网络英文介绍,计算机网络英文自我介绍
- C语言 | 字符数组
- java转换汇编,请问如何把JAVA程序转为汇编?