1 引 言
多功能监护仪是一种常用的临床医疗器械,他可以把病人的心电(ECG)、呼吸(RESP)、血氧饱和度(SPO2)、血压(BP)等参数显示出来,通过24小时对病人各种生理参数的监测及分析。
在某一生理机能参数超出规定数值时便发出警报,提醒医护人员及病人家属进行抢救的一种监护系统,是医护人员诊断、治疗及抢救的重要器械。
传统的监护仪一般通过串口与主监护室相连,布线不方便而且仅局限于手术过程和ICU病房的监护,限制了其使用价值,不能满足所有临床科室的使用。本文设计了一套无线通讯系统,通过星型网络和一个无线网关把一个房间内的监护仪的信号送入公司的局域网,使监护仪摆脱了电缆的限制,实现了医疗监护系统的网络化,同时通过内置的电池,可以放在任何临床病人需要的场合。
2 系统描述
本系统不需要改动原监护仪的任何软件,最大限度地保护原有的设计投入。本系统只是在监护仪与医院的局域网之间通过无线网络,建立起上行与下行的两个虚拟通道,实现数据的透明传输。该系统的无线频率选择在2.4 GHz的ISM频段,由1台主机与6台分机构成。由于原来设计的串口通讯速度一般为19 200 b/s,在6台分机同时需要传输数据的情况下,主机的速度会达到19 200*6 b/s,再加上协议的开销,因此对主机的处理能力和无线传输的速度提出了很高的要求,同时还要处理与局域网连接的TCP/IP协议,一般的8位单片机达不到设计要求。本设计采用了ST的STR912FW44作为主机的控制器,而从机由于只负责数据的收发,采用了相对简单的8位机ATmega 8作为控制器,无线芯片采用nRF的nRF24L01,2Mb/s无线数据链路,可以确保系统对速度的要求。另外,nRF24L01集成了自动发送和接收数据包、发送和应答信号、检测和重发丢失数据包、存储没有收到应答信号的数据包等功能,所以可以自动重发丢失的数据包,从而确保用户终端的可靠性。详细的系统框图如图1所示。
3 硬件设计
本系统中的主机,采用了ST公司的STR912FW44。STR912FW44是ST最新ARM9单片工业级微控制器STR91x系列之一,基于ARM966E-S内核,片内自带FLASH,USB,CAN,SPI,以太网等外设。具有紧密耦合的512 kB的FLASH存储器,以及96 kB的SRAM,由于本系统不涉及到复杂的应用程序,所以不需要外扩存储器。STR912FW44内部已经包括了以太网的MAC和MII接口,在他与已太网相连时,仅需要添加一个以太网的物理层芯片(PHY)RTL8201BL。
STR912FW44具有一个可以工作在主从模式下的SPI接口,通过该接口与nRF24L011进行数据交换,在本应用中,SPI工作于主模式下。射频部分采用nRF的nRF24L01芯片,nRF24L01具有高达2 Mb/s的传输速度,缩短了数据在空中的延迟时间,对于多从模式下的数据传输,可以减少数据碰撞的机会。详细的主机硬件框图如图2所示。
对于本设计的射频部分,希望传送尽可能远的距离,由于nRF24L01的输出功率只有几dBm,不符合要求,因此外加了SiGa的PA2423L做功率放大。采用-个射频模拟开关UPG2214来切换nRF24L01的工作状态,即发射状态或接收状态,使发射功率可以达到20 dBm,在空旷地,传输距离可以超过500 m。
对于从机,采用了相对简单的设计。控制器为ATMEL公司的AVR系列中的一款:ATmega8,射频部分与主机相同,同样通过SPI接口与ATmega8交换数据。一方面,ATmega8接收从UART传过来的数据,打包后通过射频部分发射出去,同时,通过SPI接口接收从nRF24L01传来的数据,去除协议部分,然后交给UART。
由于本系统中包括混合的电路系统,对PCB的设计提出了很高的要求,本设计使用普通的FR4板材,要注意以下几点:
(1)将PCB分成独立的模拟部分和数字部分。
(2)合适的零件布局,注意电源的滤波。
(3)布线的时候尽量减少环路的面积,以降低感应噪声。
(4)电源线与地线要尽量粗,除了可以减小压降外,更重要的是可以降低耦合噪声。
4 软件设计
本设计对数据传输的实时性具有很高的要求,必须仔细计算与调整协议的时间开销和数据包的大小。鉴于nRF24L01内部已经具有了简单的数据链路层和32 BFIFO,并且包括CRC校验和出错重传机制,故可以在此基础上设计数据链路层。
本系统设计为1台主机,6台从机,采用简单的轮询机制。首先主机根据不同的从机地址,向其中的一台从机发出数据请求,在一段确定的时间之内,如果没有得到回传的数据,就可以判断为超时。如果得到的数据有错误,nRF24L01会自动启动错误重传机制。由于经过了CRC校验,可以确认上层得到的数据就是正确的数据。在数据链路层,由于上行(数据由从机到主机)和下行(数据由主机到从机)的数据量不同,上行的数据量较大,是主要的数据通道,下行的数据量很小,只有一些控制信号,所以上行的数据包采用32 B/包,而下行的数据包采用8 B/包。按照从机的UART接收的数据速率为19 200 b/s,每秒的数据量约为19 200/8 B,即2 400 B/s。按照32 B/包计算,每秒需要传输2 400/32包,即75包。从机使用的控制器只负责存储与转发,ATmega8具有1 000 B的SRAM,可以开辟出320 B,即10个数据包的上行缓冲区,在每个轮询周期,每台从机传送320 B的数据。所以把轮询厨期设为10 ms,在每个轮询周期内,主机分别与6台从机交换一次数据,每秒可以有大于10个轮询周期,射频部分收发状态的切换时间,只有几个μs,可以忽略。扣除SPI通讯中协议的开销,每秒上行通道可以传送大于3 200 B的数据,这个速度超过从机从UART接收数据的速度,可以保证不丢数据。至于下行数据链路,由于数据量很小,可以忽略不计。
5 本设计的亮点
为什么不用蓝牙:蓝牙具有完善的协议层,可以保证不同手持设备之间数据的自由交换,但蓝牙为了确保互换性而形成的协议包结构相当复杂,这不仅导致了其硬件的复杂性,也大幅度增加了处理量和同步处理需求,导致电池消耗迅速增加。
为什么不用WiFi:不可否认WiFi具有更好的通用性、更快的数据速率,但同样对接口的硬件具有相当高的性能要求,无法与普通的单片机相连。如果采用更高性能的处理器,会增加硬件的复杂度和软件的成本,同时WiFi的高功耗也不适合使用电池供电的多功能监护仪。
为什么不使用ZigBee:ZigBee也是一种近距离低速率数据交换的可选设计,但ZigBee的传输速率只有250 k/s,不能满足本系统的需求。ZigBee协议复杂、开发难度大、周期长,这进一步限制了中小厂商的使用。
6 结 语
本嵌入式系统的设计应该以系统本身的需求为中心,而不能把一个系统的设计生搬硬套到另外,一个系统上。另外一个优秀的嵌入式系统还要兼顾硬件、软件、功耗、应用环境等各种因素。