无线节点的空中唤醒技术解析

无线 络应用中,通常要求节点尽可能休眠,最大限度降低功耗,但又希望节点能尽可能及时地收发无线数据,这似乎是个不可调和的矛盾。

但是有个神奇的功能,空中唤醒。节点即使处于休眠,当需要节点工作时可以直接通过无线手段唤醒该节点。很多人第一次听到,都觉得不可思议。希望看完今天这篇文章,你能搞明白这件事。

一、介绍

本尊贵为IoT小能手,物联 世界的什么东西没见过。(啊!吹个牛逼而已,用得着飞砖头过来吗!过分)

这个牛逼功能的英文名是WOR(Wake On Radio)。

它在很多上游芯片方案中已经有应用,TI系列的无线芯片中很多都带有这个功能,比如CC1310,以及我正在玩的LoRa芯片SX1276。
它在很多 络协议中也已经有应用,B-MAC,X-MAC,甚至大家常见的ZigBee协议中也有一个很少人知道的概念“休眠路由”。
它在很多物联 操作系统中也有应用,比如TinyOS,以及在我心中排名第一的Contiki,称之为“radio duty cycling mechanism”。

二、基础原理

原理简单说,就是在有效数据前头加一段较长的前导码,无线节点进行周期性地唤醒,监听下 络。一旦捕捉到前导码就进入正常的接收流程,若没有就立即休眠,等待下一次唤醒。

为了让数据传输时,无线节点不会错过有效数据,机制上要保证前导码的持续时间要略长于节点的休眠时间。

三、深入学习

好了,有了如上的初步解释,大家应该差不多明白了。接下去的内容会轻微烧脑,希望我的讲解没把大家绕晕。

围绕这个基础原理,有一些人做了优化演绎,大致有这些情况。

1.前导码变种

相同的做法也出现在TinyOS中。

2.快速休眠

多数据包的前导码方式额外带来了第二种优化方法,可以让节点更加的省电。通常空中唤醒最大难点是会被噪音误唤醒,因为监测前导码是采用信道监听,判断信道的RSSI是否大于某个阈值。一旦有噪音,则这次唤醒就白白耗了一个周期的电。

但是噪音有一个特点是,无规则,持续性。由于多个数据包做的前导码中带有固定间隔的休息时间,因此这个休息时间可以用来将前导码和噪音有效区别开。如果不小心被噪音唤醒,节点在接下来没检测到静默周期,则可确认是噪音,那么就立即睡眠以省电。如图:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年1月16日
下一篇 2017年1月17日

相关推荐