路由器是一种已知静态节点,其坐标位置是固定的,可以提供坐标和RSSI值的信息包给终端设备。路由器软件处理流程如图9所示。
4.2 终端设备软件设计
终端设备的软件设计主要包括电源管理、体温采集、脉率采集、脉搏波采集以及定位实现。为了降低终端设备的功耗,采用休眠一唤醒的机制。每隔10 s自动采集一次生理参数和定位信息,采集成功后通过CC2530的控制引脚关闭生理参数采集模块。然后发送数据包给监护系统终端,并使设备进入休眠,等待下一次采集事件的唤醒。终端设备软件处理流程如图10所示。
4.2.1 体温采集程序
NTC热敏电阻的特性方程为:
式中,RT和R0分别表示NTC在热力学温度为T和T0时的电阻值,单位为Ω;T0和T分别为介质的起始热力学温度和变化热力学温度,单位为K;B称作B值,NTC热敏电阻特定的材料常数。
由于B值同样是随温度而变化的,因此这种方法只能以一定的精度描述额定温度或电阻值附近的有限范围。基于电阻/温度关系表,由图6体温采集电路可得输出电压值V和NTC阻值的关系为:
式中,Vrel为ADC基准电压,选择为CC2530的AVDD5引脚值;ADC的分辨率设置为12位。结合式(2),可得到各温度点对应的A/D转换后的数字量为:
程序中,首先根据式(3)和电阻/温度关系,制定ADC值一温度转换表,为接下来的数据处理提供参考依据。体温采集流程如图11所示。其中,采用折半查找法可以提高查表的效率,基于分段的线性捅值是用直线段来拟合温度曲线。在处理中,分段越细,拟合的曲线就越接近实际的温度曲线,精度也就越高。
4.2.2 脉率采集程序
采用CC2530的16位定时器1的通道2进行脉率的采集,设置为输入捕获模式,上升沿触发。同时,需要设置寄存器CLKCONCMD和T1CTL,使得定时器1的计数频率为最小的1 953.125 Hz,避免计数器溢出。每次脉率信号的上升沿到来时,都将触发一个捕获事件,16位计数器的内容将被捕获到相关的捕获寄存器T1CC2L和T1CC2H中。将两个连续的脉率信号对应的捕获寄存器值相减,获得脉率信号的时间间隔,再转换为脉率。为了减小外部干扰造成的误差,程序中连续采集3次脉率,然后剔除奇异值,最终计算出平均脉率值。
4.2.3 脉搏波采集程序
为了采集到连续的脉搏波形,使用ADC的序列转换模式以及最高的12位分辨率。采样周期由定时器1的通道0控制,根据所需的采样周期设置定时器1的定时时间,每隔这个时间,定时器1的通道0就会触发一次A/D采样。本文中设置定时时间为5 ms,即采样频率为200 Hz。为了提高CC2530的工作效率,A/D转换的结果采用DMA传输,每完成一个序列转换,ADC都将产生一个DMA触发。设置系统在两个相邻的采样间隔内处于休眠状态,等待定时器1触发一次序列A/D转换并进行相关操作,处理完后又再次进入休眠。
4.2.4 定位实现
设计中采用非基于距离的算法,利用固定点定位,终端设备首先发出请求坐标的广播信息,然后将收到最大LQI值的那个路由节点的位置坐标,作为终端设备的位置。经测试,使用该方法定位可靠,定位性能稳定,适合于室内定位。但是,也应该注意到,该定位法精度较低,如果想提高定位精度,必须提高路由节点的密度,这不利于控制监护系统的成本。
结语
本文设计了一种基于ZigBee PRO和CC2530的无线多生理参数实时监护系统。实验结果表明,该系统具有组网灵活、网路容量大、测量实时准确以及可扩展性强等优点。它可以作为一个解决方案应用于社区、养老院或福利院等的日常监护中。