1.移动节点流程
如图10-5所示,移动节点流程如下。
1)节点初始化,包括MSP430的各端口、寄存器、时钟、CC1100工作状态以及各个变量。
2)判断节点周期定时器t1是否到期,如果到期则进行第3)步。
3)节点周期定时器重新赋值,t1=3000ms。
4)判断标志位flag是否等于0。如果不等于0,表示节点在上一轮数据收发中收到了区域定位节点的ACK信号,处于15000~20000ms的休眠中;如果等于0,表示节点在上一轮休眠中没有收到ACK信号或收到ACK信号并且已完成休眠,这样可以进行第5)步。
5)在1000ms内随机选择一个时间点t2,并休眠。
6)时间t2到期,最大退避次数设为6。
7)判断信道忙闲。如果信道忙,则退避数减1,并在11~20ms内选择一个时间t3,并休眠,t3到期后重复步骤7);如果信道闲,则节点从休眠模式中激活,并发送数据包,且设置最大的ACK接收时间t4为11ms。
8)判断是否收到ACK。如果在t4到期内都没有收到ACK信号,表明没有来自控制中心的控制命令,则节点休眠,等待下一次周期定时器到期,即进入步骤2);如果在t4到期前收到了ACK信号,就提取其中的控制信息并执行。则在15000~20000ms内随机选择一个时间点t5作为休眠时间,并把标志位flag置1,这样即使周期定时器到期,也不会发送定位分组。
9)t5到期,把标志位flag复位。并重复以上步骤。
2.Sink节点流程 (www.xing528.com)
Sink节点流程较为简单,具体如下。
图10-5 移动节点流程图
1)节点初始化。
2)侦听信道,判断有无信号需要接收。
3)当侦听到空间有信号时,接收并判断包类型号,如为移动节点发来的数据报,则调用UARTrtsctsC模块,并回复嵌有控制命令的ACK包。
3.无线通信模块在TinyOS系统下的实现
在节点流程模块在TinyOS平台下实现时生成的组件连接图中,ACMAC为主程序,它通过调用CC1100RadioC来收发数据包;通过调用RadomLfsrC来产生随机退避数;通过调用Msp430TimerC来提供ms级时钟;通过调用UartC来进行串口通信;通过调用KeyLampC来完成电量指示和报警按键驱动。如图10-6所示。
图10-6 无线通信模块在TinyOS平台下的实现
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。