APP下载

基于ZigBee的病房呼叫系统的设计

2019-12-13刘雪锋孙文汇

现代计算机 2019年31期
关键词:串口路由器病房

刘雪锋,孙文汇

(青岛工学院,青岛266300)

0 引言

近些年来各大医院病房时常处于人满为患的状态,随之而来的弊端是患者在病房时与医护人员的联系也变得不方便。随着医疗行业信息化改革步伐的不断加快,国内许多大中型医院都已经实现了病房的实时呼叫,然而现有系统依然存在设备维护麻烦的缺点。本文提出采用ZigBee技术设计的医疗病房呼叫系统的方案,以便于更好地适应现代化的脚步,改变现有的病床呼叫系统中存在的不足,并提高医院病床管理的效率。基于ZigBee的“病房呼叫系统”可实现对医院病房的智能化管理,它有着实现按等级呼叫、监听、显示、信息存储等功能,由此既方便了病患及其家属呼叫护士,也方便了护士对病患出现的状况做出正确的判断,为患者的抢救争取了时间。

1 系统设计方案

病房呼叫系统大体分为:硬件部分和软件部分。其中,硬件部分包括:主控芯片、电源、节点。本文的重点集中在组网通信方面。本文采用的主控芯片是TI的ZigBee主推CC2530芯片,使用Z-Stack协议栈,采用的开发环境是IAR Embedded Workbench,它可以直接使用TI公司所提供的Z-Stack协议栈进行开发,采用仿真器CC-Debugger进行仿真验证。

1.1 整体架构设计

整个病房呼叫系统由病房呼叫器节点、呼叫器节点路由器、ZigBee协调器和病房呼叫控制中心-上位机组成。病房呼叫系统整体架构图如图1所示。

(1)病房呼叫器节点

呼叫节点主要由电源模块、ZigBee无线模块、CC2530芯片和其他功能模块构成。它的功能主要是在病患按下呼叫按键后,采集并预处理患者的基本信息,并将信息和节点地址上传给节点路由器。

(2)呼叫器节点路由器

呼叫器节点路由器主要由电源模块、ZigBee无线模块、CC2530芯片和其他功能模块构成。节点路由器的主要的任务是负责网络的发起和维护,把病房呼叫器节点发来的数据上传给ZigBee网关并将ZigBee网关命令传递给呼叫节点。节点路由器也可以作为一个普通的节点使用[1]。

(3)ZigBee协调器

ZigBee协调器负责建立ZigBee局域网络,并且病房呼叫控制中心——上位机和呼叫节点路由器间传递病患发来的呼叫信息。与此同时,它也可以作为一个普通的病房呼叫器节点来使用。

(4)病房呼叫控制中心——上位机

病房呼叫控制中心就是个人电脑,它主要负责处理最终上传来数据,并在电脑屏幕上显示呼叫信息。

图1 病房呼叫系统整体架构图

1.2 病房呼叫器节点结构设计

ZigBee核心板包括CC2530芯片和收发天线,还包括几个滤波电容,几个保护电阻,一个32MHz石英晶振,在串口无线通信的时候,要用32MHz的石英晶振作为高频时钟来源。

图2 病房呼叫器节点结构图

1.3 病房呼叫器节点按键

病房呼叫器节点比较简单只有三个按键和三个10KΩ限流电阻,它们分别连接到CC2530主控芯片上的外部中断上。分别按下会发送不同的信息给上位机,发送的信息按紧急程度从高到低依次分别为“紧急抢救”、“换药”、“帮助”。

1.4 串口模块和电源模块

本文中采用了一颗RS232-USB接口转换器芯片PL2303,集成度较高,它可提供USB功能接口,可以很方便地连接RS-232进行全双工异步串行通信装置。

电源在实际病房里应用时使用7号3.7V锂电池,通过LDO稳压供电。ZigBee的最大优势之一就是省电,在低耗电待机模式下2节5号干电池可支持1个节点工作6-24个月,甚至更长,所以说在病房里不需要担心因节点电量耗尽而无法呼叫导致延误病人的治疗等情况。CC2530板提供了3.3V和5V两种电源。

2 组网与串口通信

2.1 组网

把ZigBee技术应用到病房呼叫系统中的优势在于它的网络范围广,网络容量大,在整个网络正常运行的时候,节点可以自由的加进和退出网络,并且整个网络的稳定不造成影响,只需要完成本节点信息的初始化,大大地节约了资源,提高了系统的使用效率。

(1)网络建立

ZigBee网络的发起和建立是由协调器完成的。ZigBee无线局域网中,节点(无线模块)按照在网络中的功能划分为协调器、路由器和终端。它们的硬件可以完全一样,之所以在网络中表现不同的功能,是因为下载了不同功能的代码。一个模块到底是协调器、路由器还是终端,前提是它必须在一个ZigBee无线局域网里,如果它还没有入网,那么它仅仅是一个下载了相应功能代码的模块而已。任何一个ZigBee模块要接入一个网络,一定要一个处于该网络的节点作为介绍人,并且这个介绍人不能是终端节点,要么是路由器,要么是协调器。在本设计中为了便于系统的实现、维护和观察,采用星状网络拓扑结构[2]。

(2)呼叫终端节点入网

图3为呼叫终端节点入网的流程图。下载了终端代码的节点模块,上电后第一件事是寻找网络请求加入,这个网络是不会平白无故产生的,创建网络这个工作由下载了协调器代码的模块来完成。

图3 呼叫终端节点入网流程图

(3)协调器组网

协调器上电后,首先检测周围有无建好的网络,如果没有,协调器就检查哪条信道的信号比较好,协调器会选择一个信号相对良好的信道发起网络建立的请求,网络建好后,协调器就会在网络里发出广播,等待其他节点加入此网络。协调器组网流程图如图4所示。

2.2 串口通信

硬件只能做到组网连接、传送消息等任务,完整的系统实现还得需要软件的配合,需要有能够发送病房呼叫信息的节点与协调器通信,协调器与上位机的通信,上位机的显示和控制整个网络,才能组成整个无线病房呼叫系统的实现。软硬件的组合需要通信协议来把它们串联起来。

病房呼叫系统串口通信主要的有三个部分:启动高频晶振、初始化、等待串口中断发送数据。

图4 协调器组网流程图

(1)高频晶振的启动

要使用串口要让CPU工作在32MHz高频时钟下,开启高频时钟函数代码如下:

void Cfg32M()

{

SLEEPCMD&=0xFB;//fB 0 00让2个时钟源都起振

while(0==(SLEEPSTA&0x40));//0100 0000 如 果32M晶振供电且稳定了,那么程序往下运行

CLKCONCMD&=0xF8;//1111 1000不分频输出

CLKCONCMD&=0xBF;//1011 1111让32M作为系统主时钟供给CPU

while(1==(CLKCONSTA&0x40));//如果 32M 确实供给CPU在工作,那么程序往下执行

SLEEPCMD|=0x40;//0000 0100

}

(2)初始化串口中断

要使用串口中断,初始化是必不可少的,串口的初始化代码如下:

void UartCfg()

{//串口0的备用位置1配置成波特率9600

PERCFG&=0xFE;//1111 1110选中串口0的备用位置1

P0SEL|=0x0C; //0000 1100 P0_2 p0_3为偏上外设功能

U0CSR|=0Xc0;

U0GCR=8;

U0BAUD=59;

EA=1;

URX0IE=1;

}

(3)发送数据

进入串口中断,按字节存入发送缓冲区,由发送缓冲发送数据,串口中断函数如下:

_interrupt void sdfs(void)

{

URX0IF=0;//串口0来数据的标志位,硬件会置1,软件要清0

ch=U0DBUF;//从接受寄存器里取字节存入变量ch

U0DBUF=ch;//

while(0==UTX0IF);

UTX0IF=0;

}

3 系统调试与验证

(1)ZigBee协调器调试

终端发送消息给协调器,协调器负责与上位机的通信,两者的程序不是一样的。两者需要分开调试,而本论文所研究的ZigBee通信协议主要是在HJApp.c中进行,具体过程为:

打开IAR软件,将协调器主程序添加入HJApp.c中,点击保存->点击编译->程序仿真->查看,然后选择工作方式为协调器模块CoordinatorEB-Pro,将仿真器连接节点模块与电脑USB接口,点击下载程序,点击全速运行,程序烧就写进ZigBee节点模块作为协调器了。

(2)病房呼叫器节点调试

节点程序的烧录与协调器的烧录只有一点不同,那就是在选择工作方式的时候选择EndDeviceEB-Pro选项,工作在终端模式下,编译、仿真及烧录和协调器都是一样的。下载完成后查看终端节点的工作是否正常,在协调器上电的情况下,给终端节点供电,看是否能加入到协调器的网络当中去,看终端节点上的指示灯状态,如果在闪烁,表示终端没有加入网络,当一直亮的时候表示已入网。

图5所示为呼叫器节点。主要由三个外接独立按键、CC2530最小系统板和嵌入了电源模块与串口模块的功能底板组成。外接独立按键由杜邦线接到CC2530芯片的P0.0、P1.2和P2.0。图6为系统上位机截图。

图5 终端连线图

图6 上位机截图

4 结语

本课题主要是在TI公司提供的Z-Stack协议的基础上,通过添加需要的功能模块,从而搭建出一个Zig-Bee病房呼叫系统网络。把CC2530射频芯片作为主控芯片,终端呼叫节点主要是按键与控制电路。选用了TI公司的Z-Stack协议栈作为硬件通信协议,在满足硬件需求的前提下进行协议的编写,使其节点完成与协调器的通信。系统可以将按键信息通过终端节点发送给协调器,协调器经过分类整合将数据反馈给上位机,上位机可通过判别信息提醒护士。

ZigBee技术的应用提高了病房呼叫的呼叫效率,节约了人力物力,降低了因呼叫不及时耽误患者最佳治疗时间的发生。而且系统开发价格不高,组装和维护也比较简单,而ZigBee协议是标准统一的,再加上整个网络有自动组网的能力,只要呼叫器上电,自动加入网络,有利于呼叫节点的扩展[3]。

猜你喜欢

串口路由器病房
买千兆路由器看接口参数
一种病房用24小时尿蛋白培养收集器的说明
路由器每天都要关
路由器每天都要关
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
病房
MCS—51单片机中的多串口通讯技术的应用
路由器成为木马攻击目标
拯救世界的孩子们