元器件交易网-中发网全新升级平台
关注我们:
首页 > 技术资料 > 正文

基于ZigBee的医院病人追踪定位系统的流程介绍

  1 引言

  随着科技的发展和人们对医疗健康的关注,无线医疗监护也越来越受到人们重视。基于 ZigBee的监护系统 [2]是一种移动式的无线传感器网络(WSN)。它采用低功耗、低成本、低复杂度和高抗干扰性的 ZigBee技术构建而成。在整个监护网络覆盖范围内实现了病人生理参数的实时监护、在线诊断、集中管理以及数据分析等功能。该监护网络具有很强的移动性,使得病人在监护网络内可以随意走动。但由于某些疾病具有突发性,在病发时需要得到医护人员的及时救治,所以在监护网络内建立无线追踪定位系统具有重要的意义。本文拟采用 ZigBee技术及无线定位引擎来解决无线监护系统中病人追踪定位的问题。本设计具有设备和施工简单,成本较低,实用性强等特点,并采用无线的方式,具有较好的扩展性,可应用于大中型医院的病人定位和监控管理,其潜在应用前景十分广阔。

  2 ZigBee技术简介

  ZigBee技术 [1]是一种新兴的近距离、低功耗、低成本、低数据率、低复杂度的双向无线通信技术,它是基于 IEEE802.15.4标准开发的无线协议。网络层以上协议由 ZigBee联盟制定,IEEE802.15.4负责物理层和链路层标准。

  本设计采用了 TI公司开发的 CC2431芯片来实现 ZigBee通信及追踪定位功能。CC2431射频部分与 TI(CHIPCON)早期产品 CC2420的功能基本相同,但增加了由 Motorola公司授权的基于 RSSI技术的定位引擎。其定位精度少于3m,定位时间小于 40μs,远远高于 GPS的定位精度,可以对监护系统内的病人实现较精准的定位。 2 无线定位算法

  根据定位机制不同,定位算法分 2类 [3]:第 1类是基于测距(range-based)的定位算法,通过测量节点间的距离或角度信息,使用三边测量、三角测量或最大似然估计定位法计算节点位置,其定位精度较高。常用的测距技术有RSSI、TOA、TDOA和AOA。第 2类是无需测距算法(range-free),利用节点间的邻近关系和连通性实现定位的算法,其定位精度较低,如 DV-hop算法、GPS-less LCO算法等。 RSSI (Received Signal Strength Indicator,接收信号强度指示)是指节点接收到的无线信号强度大小。在基于接收信号强度指示 RSSI的定位中,已知发射节点的发射信号强度,接收节点根据接收到信号的强度计算出信号的传播损耗,利用理论和经验模型将传输损耗转化为距离,再利用已有的算法计算出节点的位置。接收信号强度是发射功率和发射器与接收器间距离的函数。接收信号强度 RSSI理论值可由:

  其中,n代表信号传播常量,也叫传播指数;d代表距发射器间的距离;A代表距离 1m时的接收信号强度。信号的衰减与距离成对数衰减的关系。节点到信号源的距离越近,由RSSI值的偏差产生的绝对距离误差越小;而当距离大于某一值时,由 RSSI波动造成的绝对距离误差将会很大。一个未知节点可能收到 n个参考节点的信号,所以应当采用 RSSI值大的前几个参考节点进行定位计算,这样可以避免定位误差扩大。 3 病人追踪定位系统

  2.1 系统结构

  病人追踪定位系统由病人随身佩戴的盲节点(待测节点)、定位参考节点组成,监护网络通过 ZigBee网关将病人的定位信息发送到监护中心,系统结构如图 2所示:

  定位参考节点是多个位于已知位置的静态节点,可以将其位置通过发送数据包通知其他节点。病人携带的盲节点从参考节点处接收数据包信号,获得参考节点位置坐标及相应的RSSI值并将其送入定位引擎,然后可以读出由定位引擎计算得到的自身位置。由参考节点发送给盲节点的数据包至少包含参考节点的坐标参数水平位置 X和竖直位置Y,而 RSSI值可由接收节点计算获得。

  2.2 硬件设计

  CC2431[5,6]是 TI公司推出的带硬件定位引擎的片上系统(SoC)解决方案,集成了基于RSSI的定位引擎,能满足低功耗 ZigBee/IEEE802.15.4无线传感器网络的应用需要。针对协议栈、网络和应用软件执行时对 MCU处理能力的要求,CC2431包含一个增强型工业标准的 8位 8051微控制器内核,运行的时钟频率为32MHz。CC2431还包含一个 DMA控制器,它能够被用于减轻 8051微控制器内核对数据搬移的操作,因此提高了芯片整体的性能。 系统基本硬件连接电路[5,6]如图 2所示。连接 50Ω单极天线的部分由电感和电容构成,其中的电感L1、L2还为芯片内部的低噪声放大器和功放提供直流偏置。图 2中,XTAL1为一个等效串联电阻(ESR)<60Ω的 32MHz晶振,R1为其建立精确的偏置电路,C1、C2是去耦电容,用于电源滤波,向电压调节器提供稳定的核心电压。

 

  2.3 软件设计

  CC2431的硬件定位引擎与软件定位方法相比的优势是:速度快、精度高,不占用处理器时间。该定位引擎的主要特点如下:定位估计算法需3~8个参考节点;定位估计以 0.5m为单位;计算节点位置耗时少于40μs;定位范围为64m;定位偏差低于3m;定位引擎采用分布式计算方法,该方法使用已知参考节点的 RSSI信息定位。在节点上分布式定位计算可避免集中计算方法带来的大量网络传输与通信延迟问题。定位引擎操作流程[4]如图 3所示:

  在定位引擎运行之前必须使能定位引擎寄存器 LOCENG的第 4位LOCENG.EN,当要停止定位引擎运行时,往 LOCENG.EN写入 0关断引擎的时钟信号,从而减少 CC2431的功耗。对定位引擎的操作,主要就是对与定位引擎有关的寄存器的操作。 定位引擎运行时需要输入3~8个参考坐标。参考坐标是以 m为单位的,它表示各个参考节的位置,其数值位于0~63.75,最高精度为0.25m,以最低 2位为小数部分,剩余 6位为整数部分。参考坐标存放于RF寄存器REFCOORD中。在写入REFCOORD之前,寄存器LOCENG的第 1位 LOCENG.REFLD必须写入1,用于指示一组参考坐标将要被写入。一旦坐标写入过程开始(LOCENG.REFLD=1),8对坐标必须一次性写入。当定位引擎使用少于 8个参考坐标时,要将未用的参考坐标写入 0.0 定位引擎除了需要参考坐标外,还需要一组测量参数,由 2个射频参数和 8个 RSSI值组成。射频参数是数值 A和n,用于描述网络操作环境。所有的测量参数应写入 RF寄存器MEASPARM中。在写入 MEASPARM之前,寄存器 LOCENG的第 2位 LOCENG.PARLD必须写入1,表示一组测量参数将被写入。一旦参数写入开始(LOCENG.PARLD=1),所有 10个参数必须一次性全部写入。测量参数必须按照[A,n,rssi0,rssi1,…,rssi7]顺序写入 MEASPARM寄存器,任何未使用的位必须写0。10个参数全部写完之后,LOCENG.PARLD必须写入 0。 参数坐标和测量参数写入之后,通过将寄存器 LOCENG第 0位 LOCENG.RUN写入 1,启动定位估计计算。通常 LOCENG.RUN被置 1后的 1200个系统周期之后,LOCENG的第 3位LOCENGDONE被置 1。此时,估计坐标可从 LOCX和 LOCY寄存器读出。定位引擎不产生任何中断请求。在新的结果被计算出来或下一次重新启动之前,估计坐标值在 LOCX和 LOCY中保持有效。

  2.4 定位引擎的改进

  CC2431的定位引擎可以处理最高达 64m的X、Y值 [4],对医院监护系统的实际应用来说这个区域太小,因此扩展区域非常必要。这可以通过简单的软件预处理算法解决:将每个节点用 2个字节的X、Y代表。因为精度为0.25m,从而最大范围为 16384m (2 14=16384)。这个范围已经可以满足监护系统的需求。

  定位引擎得到的只是二维坐标,如何区分不同的水平面,就只能通过软件方法处理。例如,可以首先确定最近的参考节点并读出此节点的水平值。这个水平值被假定为盲节点所在的层,之后盲节点要保证只有同层节点被输入到定位引擎当中。水平层用一个字节 Z来表示,则可以区分 256个不同的层。在医院监护系统应用环境中,每个楼层的参考节点在广播数据包中加入所在的楼层数Z,用程序判断取 Z值较多的节点作为参考点,即可取得相对准确的三维坐标(平面坐标X Y楼层Z),完成对病人的准确定位。

  3 总结

  本设计实现了医院病人追踪定位系统的硬件节点,阐述了该硬件节点的特点及优势,并着重讨论了 CC2431的硬件定位引擎的原理及软件操作方法。利用该定位引擎解决了医疗监护网络中的病人的追踪定位问题。实验证明该定位系统能满足低功耗、传输距离、准确定位、抗干扰的要求。

  • 微笑
  • 流汗
  • 难过
  • 羡慕
  • 愤怒
  • 流泪