本文采用单片机实现无线数据传输通信和实时报警功能,设计一套低成本通用型的病房呼叫系统。整个系统采用无线通信的方式,降低了复杂的布线、安装检修和拆卸的难度,并可监控多个病房且便于扩充升级。
1 系统方案设计
本设计采用从机和主机相分离的模式。从机安装于各个病房,主机安装于医务室或值班室。多个从机处于等待外部呼叫信号的状态,主机则时刻处于等待接收从机呼叫信息的状态,并且从机与主机之间采用无线数据传输通信。当病人按动安装在床头的从机按键时,安装在护士站的主机收到信号后发出提示音,同时发光二极管亮,数码管显示呼叫病人的床位号和呼叫次数,医生或护士根据显示床位号进行治疗与服务。
该病房呼叫系统的硬件设计主要包括主机硬件设计和从机硬件设计两部分。主机硬件设计包含了射频芯片外围电路、显示部分、警报部分及AT89C51芯片的简单外围电路的设计。从机硬件设计则包含射频芯片外围电路、外部输入电路及AT89C51芯片的简单外围电路的设计。
1.1 主机硬件电路设计
本系统以AT89C51为控制器,采用射频芯片nRF401设计接收/发射电路,实现与从机的数据传输[1]。当nRF401芯片接收并处理完接收数据后或控制器向nRF401芯片传输发送信息时,nRF401芯片与控制器之间的通信采用的是异步串行通信的方式。在这种通信方式下,单片机的RXD端和TXD端分别与nRF401芯片的DOUT端和DIN端连接,用作两者之间的数据串行传输通道。而P1.1口与nRF401芯片的TXEN口连接,用来选择nRF401芯片的工作状态(发射状态或接收状态)。P1.2口与nRF401芯片的PWR-UP口连接,用来控制nRF401芯片的节电状态。P1.3口与nRF401芯片的CS口连接,用来选择nRF401芯片的发射频率(该芯片有两种发射频率)。此外,nRF401芯片的ANT1和ANT2两个端口与发射天线连接。nRF401外围电路如图1所示,为了便于使用较低成本的PCB天线,本设计中的天线接口设计为差分天线[2]。本系统主机硬件电路设计如图2所示。
本系统主机硬件电路设计图
1.2 从机硬件电路设计
本设计中的一套病房呼叫系统拥有一个主机和多个从机,以此实现多个病房对安装在医务人员值班室中的主机的实时呼叫。从机控制器的外围电路设计、射频芯片nRF401与控制器的连接方式及其外围电路的设计都与主机一致,不同是少了显示和警报硬件电路而多了一个外部请求信息的接收电路。从机中的外部请求信息接收电路设计只是依靠一个P0.0端口等待接收外部的高电平,一旦SB2按下,发光二极管点亮,P0.0口接收到外部高电平,就迅速地进行信息的发送,并且直到接收到主机反馈回来的发送成功信息后才自动结束本次呼叫,继续进入等待外部请求信号的状态。
2 系统软件设计
在软件设计的过程中必须考虑到系统通信的抗干扰性能和正常通信识别的具体实现方法,以及解决信息碰撞的具体软件实现方法。
2.1 主机程序设计
主机程序设计主要包括初始化程序、发送数据程序、接收数据程序、延时程序、LED显示程序及蜂鸣器报警程序等。这些程序并没有以子程序的方式来实现,这是因为每一个功能的实现并不完全独立,而是相互交织在一起,这就使得采用调用子程序的方式去实现变得相当困难。本设计中采用单片机汇编语言编写系统功能模块程序。主机的主程序流程如图3所示。
主程序流程图
2.2 从机程序设计
从机的程序设计主要包括初始化程序、外部呼叫信号等待程序、数据接收程序、数据发送程序、延时程序等主要程序。这里需要说明的是在设计外部呼叫信号等待程序时,在接收到外部呼叫信息后,需要经过一段延时(约30 ms)后再进行采样看是否是瞬时干扰信号。
3 系统通信协议设计
3.1 系统无线通信协议设计
由于本设计的无线网络系统中存在一个中心(主机)和多个用户端(从机),因此本系统呈现为点对多点的通信方式,协议为点到多点的通信协议。在整个病房呼叫系统所设计的通信系统中,无论是在发射请求信息还是在发射应答信息时,发射的数据量始终保持固定的字节数且信息结构简单,数据量较小;而且为了降低发射信息出现碰撞的概率,在该系统中从机的数量有一定限制,因此在本设计中采用了比较简单的纯ALOHA法来解决信息碰撞的问题[3]。
3.2 通信协议数据帧设计
本系统采用固定字节长度的数据帧,并使得请求信息数据帧和应答信息数据帧格式相互对应,从机请求信息数据传输采用引导字头、接收地址、发送地址和校验字的数据帧格式,而主机应答信息数据传输采用引导字头、接收地址、确认指令和校验字的数据帧格式。
(1)引导字头:对主机而言,为了随时接收从机发送的请求信息,其射频芯片nRF401总是处于接收状态。本设计的传输协议中,数据帧的引导字采用OxFF后跟OxAA作为通信同步码,接收协议只能够接收以OxFF后跟OxAA开始的数据包。要注意的是,上面已经说明的引导字头前还要再加一个随机字节,因为起始传输时第一个字节往往是接收不到的,它的作用是使接收机进入状态抑制噪声,在本设计中该随机字节采用Ox00。
(2)接收地址:接收地址既包括从机发送请求信息中的接收地址,也包括主机发送应答信息中的接收地址。在医院的病房楼中,很可能存在多套同规格的射频无线病房呼叫系统同时工作。这样就必须给每一个主机编上代码,才能使主机确认接收的信息是否是发送给自己的,这个主机编号同时也就作为了从机发送请求信息时的接收地址。而每个主机下的从机也会有一个对应的编号,这个编号在本设计中就采用病房号,也就是主机发送应答信息时的接收地址。
(3)发送地址:发送地址既存在于从机发送的请求信息中也存在于主机回复的应答信息中。从机请求信息中的发送地址是提供给主机用于显示的病房号,也是在主机发送应答信息时的接收地址。通过应答信息中的接收地址,从机可以判断出该接收到的信息是否是发给自己的。如果不是,从机将重新发送一遍请求信息,否则将继续接收确认信息。同理,主机也可以根据请求信息中的发送地址确认发送信息的是否是自己辖区内的从机,如果不是将不予以接收显示。
(4)确认指令:确认指令用于主机通告从机信息发送是否正确。在本设计中,采用OxFF作为信息发送正确的指令,而采用OxEE作为信息发送错误的指令。事实上,在本设计的软件设计中,为了确保信息的准确发送,只要确认信息不是OxFF,则从机就会自动地重新发送信息。
(5)校验字:校验方法包括奇偶校验、CRC校验等,但是本设计中采用一种相加校验的方法。这种方法的具体实现是:发送机把除了引导字以外的数字帧信息相加作为校验字发送给接收机,接收机在接收信息时也把除了引导字和校验字以外的数字帧信息相加并把相加结果与校验字比较看是否相等,若相等则说明发送成功,否则说明发送失败。
4 系统混合信号PCB板设计
系统印制电路板(PCB)设计对于获得优良的RF性能是至关重要的,本系统PCB使用双面板,分为元件面和底面,具体设计时充分注意了以下两点:
(1)保证系统充分接地。在底面设计一个连续的接地面,元件面的接地面保证元件充分接地,大量的通孔链
接元件面的接地面和底面的接地面。
(2)零件的布局要尽量合理,模拟电源和数字电源要分离以避免互相干扰。射频电路的电源使用高性能的射频电容去耦,去耦电容尽可能靠近nRF401的VDD端。一般还在较大容量的表面贴装电容旁并联一个小数值的电容。nRF401的电源必需经过很好的滤波,并且与数字电路供电分离。