IEEE802.15.4的休眠设备,在保证既要接收数据,又要低功耗,设计上非常巧妙。
主发消息的设备在有消息发给低功耗设备时,会把消息缓存在MAC层的cache中,低功耗设备唤醒后,会发出一条Data-Request的MAC命令,用于读取发端cache中的数据。发端在收到这条指令后,会与cache中的地址进行匹配。这个匹配是很快的,基本上是命令的地址段到达发端芯片就完成了,发端再回复Data-Request的ACK,ACK是不需要CSMA就能直接发送的,低功耗收端在发完Data-Request的最后一个字节后约768us就能收到ACK的最后一个字节。巧妙之处就在这里,当发端cache有数据发给收端,会在ACK中设置一个标志位。而收端在收到ACK会进行以下判断:无标志位就立即休眠,有标志位就延迟19ms再休眠。也就是说,IEEE802.15.4芯片在唤醒后,通常只工作1~2ms就能再次休眠。
|