Tag Archives: ZigBee

Smart Home | ZigBee无线设备的低功耗通讯方案

在ZigBee网络中,COO、Router通常由外部电源供电,而ZED节点一般由电池供电。为了提高ZED节点的工作时间,我们需要进行低功耗设计。

低功耗可以从两个层面上考虑:1是硬件层面上的,2是软件层面上的。从硬件层面上说,可考虑的角度主要有:MCU及电路中的其他芯片是否支持睡眠、使用上下拉电阻节约功耗、电源芯片是否可管理、芯片及偏置电路的漏电流等。从软件层面上说,就是提高通信效率、设计睡眠与唤醒策略、加快处理速率减少工作时间等。

我从通信软件设计的角度,列举了几种可行的通讯方案,并最终选择了适合自己的方案。

几种可行的工作方式如下所示:

其中,横轴表示时间,蓝色填充部分表示当前是唤醒状态。首行是网关,其工作伊始就一直处于唤醒状态,其余行表示子节点,子节点大部分时间处于休眠状态。

上图中不同工作模式的工作特性如下:

工作模式

工作特性

响应上报

·主机发送指令,节点定时唤醒响应

快响应

·节点睡眠时间较短,若有命令则响应,无命令则立刻睡眠

主动上报

·主机不发送指令,节点主动将数据上报

变时间系数
主动上报

·主动上报,但休眠时间与电量相关

带应答的
主动上报

·主动上报,但是需要主机响应确认

懒模式

·t_cycle6大于t_cycle

不同模式的优缺点如下:

工作模式

优点

缺点

响应上报

·程序简单,定时逻辑由主机完成
·通信可靠,并且主机可以发送控制命令

·从机可以确认网络通信是否正常

·增加了数据量

·有时主机发送的指令会丢失

快响应

·数据更新速率高

·节点效率低,功耗大

主动上报

·网络资源占用少
·发送时间由节点自己控制

·得不到主机的反馈信息

变时间系数主动上报

·电量多时,时间间隔小,数据更新快
·电量少时,时间间隔大,节约功耗
·主机可以根据上报时间,间接获得节点当前电量

·上报速率、超时时间不可控

带应答的
主动上报

·保证数据可靠上发
·主机响应时可附带控制信息

·数据流量大,相比无应答方式
会增加功耗

懒模式

·功耗低

·一次可能会接收到多条指令
·数据更新速率较低

在我的实际设计中,不要求数据更新速率很高,且主机下发的数据很少,但我对工作时间却要求较高,需要能工作一年以上。经过一些实验和比较,最终我采用了响应上报模式,主机每个周期下发心跳帧,节点只有接收到心跳帧才试图向主机发送数据,这样保证了主机或网络故障时节点不会白白发送数据,造成电量流失。并且节点在电量较低时自动进入懒模式,牺牲数据更新率以延长工作时间。

当然,要验证该方案的可行性,我还需要很多的测试工作。