2.4.1对于DSl8B20的软件设计
虽然数字传感器的硬件接法比较简单,但在测量温度时有严格的时序要求。一旦时序出现错误,那么温度的读取和显示就不能正确进行,在编写程序时这个问题需要着重考虑,例如我们采用中断时,就要考虑中断的执行对于单片机工作整个时序的影响。DSl8B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。寄存器R1、R0决定温度转换的精度位数:R1RO=“00”,9位精度,最大转换时间为93.75ms;RlR0=“01”,10位精度,最大转换时间为187.5ms;R1R0=“10”,11位精度,最大转换时间为375ms;R1R0=“1l”,12位精度,最大转换时间为750ms;未编程时默认为12位精度。我们采用器件默认的12位转化。
2.4.2 对于nRF401的编程
由于直接采用的点对点的收发,所以直接利用单片机将收发芯片设置为“收”或“发”模式。对于Standby与RX之间的切换,从待机模式到接收模式,当PWR_UP输入设成1时,经过近3ms时间后,DOUT脚输出数据才有效。从待机模式到发射模式,所需稳定的最大时间是也为3ms。Power Up与TX间的切换,从加电到发射模式过程中,为了避免开机时产生干扰和辐射,在上电过程中TXEN的输入脚必须保持为低,以便于频率合成器进入稳定工作状态。当由上电进入发射模式时,TXEN必须保持1ms以后才可以往DIN发送数据。在接收部分,同样利用单片机的P1口各管脚分别控制NRF401的DIN、DOUT、TXEN、PWRUP、CS这五个脚即可。
2.4.3 对于呼吸信号处理的编程
将接收到的呼吸信号接入接收部分单片机中,对温度值进行处理。我们知道,被传感器采集到的人体温度大约33℃,但如果利用温度的高低值来作为是否出现呼吸暂停的依据,这种方法会受周围温度的影响,若温度过高,该系统就会出现误判的情况。所以我们利用的是提取温度的变化量,尽管周围温度有影响,但由于人体呼吸而导致的呼吸变化总能准确地判断出来。经过调试,这种思想很好地解决了因周围温度变化所带来的干扰。
2.4.4 对于显示电路的程序
当温度在10s或lOs以上还没出现变化时,将计数器加一,如果存在呼吸暂停,但没有达到10s,则定时器清零,重新返回程序。
3 结束语
本文主要介绍了一个可以进行呼吸暂停无线监测的系统,提出了一种新型的提取呼吸信号的方法,此系统不仅可以实现呼吸暂停的远距离监测,在监测上还具有很高的稳定性和准确性。我们利用此呼吸暂停监测系统进行实际的检测,取被测个体12人,其有效率和准确率达到90%,只有在附近环境电磁场强烈干扰时时才会造成