CC2530的功耗参数

数据手册参数:

  • 主动模式RX(CPU空闲):24mA
  • 主动模式TX在1dBm输出功率(CPU空闲):29mA
  • 电源模式1(4us唤醒):0.2mA
  • 电源模式2(睡眠定时器运行):1uA
  • 电源模式3(外部中断):0.4uA

实际测量参数:

  • CC2530全速运行Z-Stack Mesh 1.0.0协调器协议栈:26mA

低功耗节点设计 - 图1

  • CC2530全速运行Z-Stack Mesh 1.0.0路由器协议栈:27mA

低功耗节点设计 - 图2

  • CC2530全速运行Z-Stack Mesh 1.0.0终端协议栈(1秒请求一次数据):8mA

低功耗节点设计 - 图3

  • CC2530开启低功耗运行Z-Stack Mesh 1.0.0终端协议栈(2秒请求一次数据):2秒休眠时间为1uA,2秒后唤醒发送一次数据的瞬时电流万用表无法捕捉,理论上为27mA以上。

低功耗节点设计 - 图4

如何进入低功耗模式

  1. 因为协调器设备和路由器设备需要常在线,是无法进入低功耗模式的,所以我们主要讨论如何让终端设备进入低功耗模式。

如何让协议栈进入低功耗模式:

  • 添加预编译选项:POWER_SAVING

    默认情况下,Z-stack里终端设备的电源管理功能是关闭的,添加预编译选项“POWER_SAVING”以开启此功能。

  • 在“f8wConfig.cfg”文件里设置:-DRFD_RCVC_ALWAYS_ON=FALSE

    这个宏定义表示是否要一直开启射频接收功能,终端协议栈默认选择是FALSE。
    设置完这两个选项后,终端设备就可以正常的进入低功耗模式了。

影响低功耗模式的几个参数

1)终端节点会周期性向父节点发送数据请求命令(data request)来询问父节点是否有数据要给自己,此时需要唤醒设备并发送数据。
可以根据自己的项目需求来设置“f8wConfig.cfg”文件里“DPOLL_RATE”改变终端节点询问父节点的间隔时间,单位:ms;时间设置的越长越省电;设置为0则不进行轮询。对于一个不需要接收消息的终端设备,在它加入网络后,可将此参数设置为0

2)终端节点在发出“data request”命令后,会收到父节点的数据指示命令(data indication),然后终端将会以指定速率轮询消息队列,见“Figure 2.11”。
可以通过设置“f8wConfig.cfg”文件里“DQUEUED_POLL_RATE”来设置间隔时间,单位:ms;

3)终端设备在收到数据确认命令(data confirmation)后,就会以指定速率轮询响应消息,这个时间间隔可由“f8wConfig.cfg”文件里“DRESPONSE_POLL_RATE”来设置间隔时间,单位:ms;见“Figure 2.11”。
低功耗节点设计 - 图5
4)协议栈中只要有事件发生,设备就会从休眠状态中唤醒并处理事件,处理完成后再进入休眠。例如一个低功耗节点利用事件机制1秒钟闪烁一次LED灯,则协议栈将会在事件触发的时候唤醒并处理LED事件,然后再进入休眠。所以在设计低功耗设备的时候要注意应用层事件的应用。

5)关闭协议栈本身自带的硬件轮询事件。查看“hal_drivers.c”文件中的“hal_ProcessEvent”函数可知要关闭协议栈内部的LED轮询事件和KEY轮询事件,在预编译添加:HAL_LED=FALSE 和 HAL_KEY=FALSE。

快速应用

步骤 执行项目
使能低功耗功能 添加预编译选项:POWER_SAVING
关闭射频接收常开功能 在“f8wConfig.cfg”文件里设置:
-DRFD_RCVC_ALWAYS_ON=FALSE
设置终端设备轮询速率 设置“f8wConfig.cfg”文件里“-DPOLL_RATE”
设置终端设备队列轮询速率 设置“f8wConfig.cfg”文件里“-DQUEUED_POLL_RATE”
设置终端设备响应轮询速率 设置“f8wConfig.cfg”文件里“-DRESPONSE_POLL_RATE”
关闭协议栈内部LED轮询和KEY轮询 在预编译添加:
HAL_LED=FALSE 和 HAL_KEY=FALSE

qrcode_for_gh_e95b474fcf08_344.jpg