【医院呼叫系统】基于FPGA的简易医院呼叫系统实现

article/2025/10/19 0:07:25

1.软件版本

quartusii12.1

2.系统设计概述

       设计一个FPGA对LED进行静态和动态显示的数字时钟控制NBW-8路主机可接8个分机的系统。根据系统设计要求,系统的组成如框图,包括主机FPGA对LED进行静态和动态显示的数字时钟控制程序,以及各个分机电路模板。

系统具有以下功能:

1.主机有LED显示:主机采用显示屏,可显示护理级别,系统状态。主机面板有16/8个双色LED指示灯,可显示每个分机的工作状态。

2.不间断呼叫:主机可显示多路分机的呼叫,并记忆保持。

3.二级护理:可在主机上设计护理级别,有高级和普通二种护理级别。

4.并机功能:主机有并功能,同一台主机可并多台主机,实现多极管理。

5.各分机与门灯连接。

系统包括LED显示屏电路模板,路选分机开关,路选分机指示灯等。接好线再检查确保无误后,打开主机电源,主机自动进入对分机的检查状态,主机从1号机开始检测:分机正常显示等闪亮一下,如某路分机有故障或该路未接分机,则相应的路选指示灯亮绿色保持,对全部的16/8路分机检测,检测完毕后,保持亮绿色的指示灯5秒再熄灭。检测完毕,主机自动回到待机状态。

主机采用FPGA对LED进行静态和动态显示的数字时钟控制程序,和所有分机相连接。分机只需一条两芯总线和主机上的端口相连,可按手持呼叫器上的CALL键或分机上的呼叫/解除键呼叫主机。门灯一般安装在该病房门外,以便于走廊中的护士观察;病床呼叫护士站时,该病房的门灯闪亮。病床解除呼叫或护士对讲时,该病房门外的等熄灭。

系统设计要求:设计一个FPGA对LED进行静态和动态显示的数字时钟控制NBW-8路主机可接8个分机的系统,具有以下功能:

1.主机有LED显示:主机采用显示屏,可显示护理级别,系统状态。主机面板有16/8个双色LED指示灯,可显示每个分机的工作状态。

2.不间断呼叫:主机可显示多路分机的呼叫,并记忆保持。

3.二级护理:可在主机上设计护理级别,有高级和普通二种护理级别。

4.并机功能:主机有并功能,同一台主机可并多台主机,实现多极管理。

5.各分机与门灯连接。

接好线再检查确保无误后,打开主机电源,主机自动进入对分机的检查状态,主机从1号机开始检测:分机正常显示等闪亮一下,如某路分机有故障或该路未接分机,则相应的路选指示灯亮绿色保持,对全部的16/8路分机检测,检测完毕后,保持亮绿色的指示灯5秒再熄灭。检测完毕,主机自动回到待机状态。

3.部分源码

4.1 分机模块设计

由于本课题并没有具体要求设计分机模块,所以在这里我们只设计其基本功能,即当分机出现错误的时候,分机像主机发出信号,告诉主机某个分机发生错误。其主要代码如下:

input clk;

input rst;

input in;

output out;

reg out;

always @(posedge clk or negedge rst)

begin

     if(!rst)

     out<=1'b0;

else out<=in;

end

当我们模拟分机发生错误的时候,只要在输入信号输入一个信号,那么分机就可以像主机发出出错的指令,告诉主机发生错误。改模块比较简单,这里不做具体的介绍了。

4.2 LDE指示灯设计

    本系统LED设计采用红绿双LED显示模式,当用户发出求救信号的时候,那么在显示端红色LED显示,说明某个分机发出求救信号,而当某个分机发生错误的时候,则绿色LED亮,告诉总机某个分机发生错误。

其中用户请求显示模块设计如下:

always @(posedge clk or negedge rst)

begin

     if(!rst)

     begin

     led_red<=1'b0;

     end

else begin

     if(require==1'b1)  //接收到一个请求信号

     led_red<=1'b0;   //红灯亮,说明有请求信号

     else

     led_red<=1'b1;   //红灯不亮,说明没有请求信号

     end

end

当求救信号require发出信号的时候,红色LED信号led_red变低电平,说明某个分机有求救信号。而没有require信号的时候,则led_red信号不显示。

显示分机状态的模块设计如下:

else if(en==1'b1)

     begin

          if(end_check==1'b0)

          begin  

               if(led_flag==1'b0)led_green<=1'b0;

          else

               led_green<=1'b0;

          end

     else begin

               if(led_flag==1'b0)led_green<=1'b1;

          else

               led_green<=1'b0;

          end

     end

else if(en==1'b0)

     begin

               if(end_check==1'b0)

          begin  

               if(led_flag==1'b0)led_green<=1'b1;

          else

               led_green<=1'b0;

          end

     else begin

               if(led_flag==1'b0)led_green<=1'b1;

          else

               led_green<=1'b0;

          end

     end

在这个程序段中有很多信号在之前没有具体讨论过,我们将在最后的核心控制模块中介绍,这里仅仅介绍led_green的情况,当主机扫描到某个分机的时候,如果分机正确,那么在扫描这个分机的时候,绿色LED则亮一下,说明这个分机是正确的,如果分机出现错误,那么这个绿色LED将一直亮下去,知道总机完成所有的分机扫描才熄灭。

4.3 总控制器设计

首先要接收八个分机的错误使能信号,具体设计如下,我们只要调用分机模块就可以了:

fenji fenji_u0(

              .clk  (clk),

              .rst  (rst),

              .in   (err[0]),

              .out  (err_signal[0])

              );

…………………………

fenji fenji_u7(

              .clk  (clk),

              .rst  (rst),

              .in   (err[7]),

              .out  (err_signal[7])

              );

通过以上的程序,我们可以得到来自分机的错误使能信号。

下面介绍总控制器是如何工作的,具体的代码如下:

case(cnt)

     4'b0001:begin 

            if(err_signal[0]==1'b1)

            begin flag[0]<=1'b0;flag[7:1]<=flag[7:1];end//have no problem

            else

            begin flag[0]<=1'b1;flag[7:1]<=flag[7:1];end//have some problem               

            end

……………………………

     4'b1000:begin 

            if(err_signal[7]==1'b1)

            begin flag[7]<=1'b0;end//have no problem

            else

            begin flag[7]<=1'b1;end//have some problem

            end

     default:flag<=flag;

endcase

即当总机接收到错误信号的时候,总机像显示模块发送错误控制信号flag.信号flag是一个8位的并行信号,其每一位信号对应控制着每一个显示模块信号。

剩下的就是系统显示模块,比较简单,这里就不做介绍了。

4.仿真结论

图2 系统仿真图1

从上面的图我们可以看到,我们模拟分机五发生错误,那么对应的FALG信号将将在主机扫描到第五个分机的时候,FLGA[4]的值变为1,说明分机五发生错误,在总机的显示段,绿色LED将一直显示下去,而其他的LED则仅仅在扫描对应分机的时候才亮。

图3系统仿真图2

这里再给出另一张系统仿真图,当多个分机发生错误的时候,我们发现对应的绿色LED也做出正确的判别,可见系统是正确的。

当分机系统发出错误使能信号的时候,当总机检测到错误信号的时候,如果分机发出了错误使能信号err_signal的时候,flag[0]信号则发出0,而其他位的信号保持不变:flag[7:1]<=flag[7:1]。如果没有检测到错误使能信号err_signal,则flag[0]信号则发出1,而其他位的信号保持不变:flag[7:1]<=flag[7:1]。扫描完第一个分机后再扫描后面的分机,具体工作原理相同。

当扫描完所有的分机以后,发出end_check信号,说明总机已经完成了所有的分机扫描工作。

以上就是基于FPGA的医疗呼叫系统的主要模块实现。A02-30


http://chatgpt.dhexx.cn/article/Xm3duZ2h.shtml

相关文章

基于FPGA的呼叫设备verilog开发

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 随着集成电路技术的发展&#xff0c;电子设计自动化&#xff08;EDA&#xff09;逐渐成为重要的设计手段&#xff0c;已经广泛应用于模拟与数字…

软件工程知识点总结

文章目录 一、软件工程概述1. 定义2. 软硬件失效3. 软件危机4. 软件工程三要素5. 软件工程目标6. 软件工程研究内容7. 软件工程知识体系 二、软件生命周期模型2.1 软件工程过程&#xff1a;PDCA循环2.2 软件生命周期 software life cycle2.3 过程模型&#xff08;软件生命周期模…

呼叫中心系统开发php,呼叫中心系统

系统概述 呼叫中心系统是惟新科技自主研发的大容量、高性能呼叫中心系统&#xff0c;为用户提供语音、短信等信息服务。系统主要包括基本电话业务功能、队列排队功能、IVR自动语音导航、ACD智能话务分配、录音和语音信箱等功能&#xff0c;可提供标准的CTI开发接口&#xff0c;…

eyebeam电话呼叫软件使用及配置方法

特别说明&#xff1a;eyeBeam只是一个电话** 拨号 呼叫软件&#xff0c;他本身是打不了电话的&#xff0c;只是一个工具&#xff0c;换句话说&#xff0c;他相当于一个手机&#xff0c;手机本身是拨打不了电话的&#xff0c;需要一张电话号码卡&#xff0c;本文eyeBeam电话系统…

mysql数据流图怎么做_数据库设计--数据流图(DFD)

1、数据流图的定义 数据流图(DFD)是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程&#xff0c; 因为它仅仅反映系统必须完毕的逻辑功能。所以它是一种功能模型。 在结构化开发方法中。数据流图是需求分析阶段产生的结果。 ----百度百科 2、数据流…

教务系统数据流图

已知某教务系统的描述是&#xff0c;用户输入用户ID号及口令信息后&#xff0c;系统进行身份验证&#xff1b;系 统根据合法用户的功能请求进行分类处理。具体功能如下&#xff1a; (1)查询成绩&#xff1a;查询成绩以及从名次表中得到名次信息。 (2)学籍管理&#xff1a;根据学…

数据流图画法及示例

画法&#xff1a; 第0层DFD称为系统基本模型&#xff0c;可以将整个软件系统表示为一个具有输入和输出的黑匣子。用一个圆圈表示。 上一层DFD中的每一个圆圈可以进一步扩展成一个独立的数据流图&#xff0c;以揭示系统中程序的细节部分。 循序渐进继续进行&#xff0c;直到最…

数据流图概述与应用

数据流图&#xff08;DFD&#xff09;概述 数据流图&#xff08;DFD&#xff0c;Data Flow Diagram&#xff09;是软件工程结构化分析模型中的一种功能模型&#xff0c;用来描述系统中的数据处理过程。数据流图服务于两个目的&#xff1a;一是指明数据在系统中移动时如何被变换…

数据流图DFD画法

数据流图&#xff08;DFD- Data Flow Diagram&#xff09;让系统分析者弄清楚“做什么”的问题&#xff0c;其重要性就不言而喻了。那么我们怎么画数据流图呢&#xff1f;数据流图与系统流程图又有什么区别呢&#xff1f; 步骤1 数据流图里包含的内容 数据流图描述的是系统的逻…

java 数据流向图_数据流图懂不懂?

最近备战软考,复习到数据流图,学习成果与大家分享。 数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。(百…

软件工程:数据流图和结构图怎么画?

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;(&#xff89;▽&#xff40;)&#xff89;♪-》点击这里->一个宝藏级人工智能教程网站。 文章目录 Step 1&#xff1a;根据软件的功能描述&a…

数据流图——从软考真题中学画数据流图DFD

文章目录 题目画顶层图画0层图解题技巧 题目 建议将题目复制到word后与此文分屏查看。后面需要多次查看题目。 某高校欲开发一个成绩管理系统&#xff0c;记录并管理所有选修课程的学生的平时成绩和考试成绩&#xff0c; 其主要功能描述如下&#xff1a; 1. 每门课程都有3到6…

使用PowerDesigner绘制数据流图

一.使用powerDesign绘制数据流图 1.打开pd,选择createModel&#xff0c;接着选择Information&#xff0c;我们会看到Data Flow Diagram&#xff0c;选择它。 2.进入之后&#xff0c;这是我们看到的画图工具 3.如果我们不小心关闭了&#xff0c;我们可以这样设置 选择上方的too…

数据流图(DFD)

数据流图(DFD) 数据流图&#xff0c;简称DFD&#xff0c;是结构化分析方法SA方法中用于表示系统逻辑模型的一种工具&#xff0c;它以图形的方式描绘数据在系统中流动和处理的过程&#xff0c;由于它只反映系统必须完成的逻辑功能&#xff0c;所以它是一种功能模型。 下图是…

如何画数据流图

快速阅读 如何画数据流图,以及如何在visio2013中画数据流图。数据流图中各个园元分别代表什么含义。 什么是数据流图 DFD=data flow diagram 在系统设计阶段。是对将来要构建的系统提取一个逻辑模型的过程 。关注点是过程内数据的处理 标识图元有四个 ,分别是实体,过程,数据…

数据流图、数据字典

文章目录 数据流图数据流图的基本图形元素数据流图的扩充符号数据流图的层次结构分层数据流图的画法分层数据流图的审查数据流图平衡原则父图与子图之间的平衡子图内平衡 数据字典数据字典的内容数据词典管理加工逻辑的描述 答题技巧题目示例题目解题 数据流图 数据流图也称为数…

数据流图题目解析(一)

以2016 年下半年 软件设计师 下午试卷 试题一&#xff08;15 分&#xff09; 为例来解析 某证券交易所为了方便提供证券交易服务&#xff0c;欲开发一证券交易平台&#xff0c;该平台的主要功能如下&#xff1a; &#xff08;1&#xff09;开户。根据客户服务助理提交的开户信…

viso画数据流图

打开viso&#xff0c; 选择基本形状&#xff0c; 选择基本形状&#xff0c; 选择矩形&#xff0c; 输入字符Obj_a, 选择矩形&#xff0c; 输入字符中间, 选择矩形&#xff0c; 输入字符Obj_b, 选择矩形&#xff0c; 输入字符Obj_c, 选择折线&#xff0c;链接关联的矩…

数据流图

数据流图&#xff08;DFD- Data Flow Diagram&#xff09;让系统分析者弄清楚“做什么”的问题&#xff0c;其重要性就不言而喻了。那么我们怎么画数据流图呢&#xff1f;数据流图与系统流程图又有什么区别呢&#xff1f; 步骤 1 数据流图里包含的内容数据流图描述的是系统的逻…

数据流图的画法及其三大原则

对于数据流图&#xff0c;我们不做过多具体的介绍&#xff0c;网上有非常多丰富的资源&#xff08;百科&#xff09;&#xff0c;一定了解的它的由来&#xff0c;这才是学习的关键。 以下我们看看数据流图基本图形符号、设计原则、应用和总结。 基本图形符号 设计原则 我们重点…