没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
26页
CC2531电源管理原理与方法.必须满足下面所有条件才能进入休眠模式 1. ZDO节点描述符指定“Rx is off when idle,在f8wConfig.cfg文件中将RFD_RCVC_ALWAYS_ON设为false实现 2. 所有zstack 任务”赞同“进入睡眠模式 3. zstack各个任务都没有预定的活动 4.MAC层没有预定的活动 cc2531和cc2530 zigbee协议栈工程中调用以下函数使设备进入低功耗状态。在这里(osal_pwrmgr_powerconserve()函数中),在尝试进入休眠模式时会做另外两个检查。首先,检查变量pwrmgr_device是否被设置为电池设备。这项设定在设备入网后执行—详情见例程的ZDApp.c源文件。其次,检查变量pwrmgr_task_state确认没有任务的节能状态是“put a hold”
资源推荐
资源详情
资源评论
应用笔记
CC2430DB 电源管理
CC2430DB 电源管理
- 1 -
目录
1.目的 .......................................................................................................................................... - 2 -
2.定义 .......................................................................................................................................... - 2 -
3.电源管理的具体概念 .............................................................................................................. - 2 -
4.Z-Stack 如何控制休眠模式 ..................................................................................................... - 2 -
5.休眠定时器 ............................................................................................................................... - 5 -
6.应用 .......................................................................................................................................... - 5 -
7.内存相关 ................................................................................................................................... - 6 -
8.CC2430 Rev D Workarounds .................................................................................................... - 8 -
9.CC2430 Rev D to Rev E Migration .......................................................................................... - 8 -
9.1 PxIFG Clearing .............................................................................................................. - 8 -
9.2 Entering Power Mode .................................................................................................... - 9 -
9.3 Wakeup from Power Mode ............................................................................................ - 9 -
9.4 Port 1 and Port 2 Interrupts ............................................................................................ - 9 -
9.5 Port 0 Interrupt ............................................................................................................. - 10 -
9.6 Critical Section in “OSAL_PwrMgr.c” ........................................................................ - 10 -
9.7 Unused I/O Pins ........................................................................................................... - 10 -
10.Hardware Considerations ...................................................................................................... - 11 -
注:本文英文原文版权为 TI 公司所有;本文是作者出于学习的目的翻译的,难
免有错误和纰漏,希望读者谅解;文中有的单词翻译成中文后感觉词不达意,因
此采用原文的英文格式;若有不详之处,请参考英文原文;和谐社会,引用请注
明出处。
CC2430DB 电源管理
- 2 -
1.目的
这篇文档描述了运行了基于 Texas Instruments公司 Z-stack
TM
ZigBee协议栈的应用程序的
CC2430DB 电源管理的概念。电源管理理念通常为电池供电设备所采纳,通过在非活动期
间使用多种休眠模式来延长电池的寿命。
2.定义
下面这些定义会在文档中用到:
MAC—媒体访问控制层,实现 IEEE 802.15.4 通信功能的软件
MCU—微控制单元,嵌入到 CC2430DB 板上 CC2430 片上系统(SOC)中的一个 8051
处理器
OSAL—操作系统抽象层,独立于 Z-Stack 的任务处理平台
Sleep—MCU 运行模式的一种,在该模式下,部分功能被禁止以减少功耗。CC2430 芯
片提供 3 种不同的休眠模式,其中的两种被 Z-Stack 采用。
End-Device—一种 ZigBee 网络设备,该设备在网络中没有路由功能,一般在空闲模式
下会关闭它的射频接收器。这要求它的父设备保存它的消息,直 到 它查询属于它的消息
为止。
3.电源管理的具体概念
电池供电的 End-Devices 采用电源管理来最小化两个短暂无线通信周期之间的功耗。通
常,在空闲时,一个 End-Device 会关闭大功耗的功能外设和进入休眠模式。Z-Stack 提供两
种休眠模式,分别为 LITE sleep 和 DEEP sleep。当系统需要在一个预定的延时后被唤醒执行
任务时,采用 LITE sleep 模式。当系统未来没有预定的任务需要执行时,采用 DEEP sleep
模式,系统进入 DEEP sleep 模式后,需要一个外部触发(例如按下按键)来唤醒设备。LITE
sleep 模式下工作电流通常降为几 mA,而 DEEP sleep 模式通常降为若干 uA。End-Devices
休眠的例子包括传感器周期被唤醒报告读取的数据和远程控制设备在用户按下按键时发送
一条消息。这些设备共有的特点是它们大部分时间都处于休眠模式以最小化功耗。
4.Z-Stack 如何控制休眠模式
电池供电的 End-Devices 采用电源管理来最小化两个短暂预定活动的周期(LITE sleep)
之间或者长时间的非活动期(DEEP sleep)内的功耗。在 OSAL 主控制循环中,每个任务完
成它预定的处理后对系统活动进行监控。如果没有任务有预定的事件发生,那么电源管理功
能被使能,系统决定是否休眠。设备必须满足下面所有的条件才能进入休眠模式:
· 休眠功能被 POWER_SAVING 编译选项使能
· ZDO 节点描述符指定“RX is off when idle” ,在 f8wConfig.cfg 文件中将
RFD_RCVC_ALWAYS_ON 设为 FALSE 来实现
· 所有的 Z-Stack 任务“赞同”允许节省能源
· Z-Stack 各个任务都没有预定的活动
· MAC 层没有预定的活动
Z-Stack 中的 End-Devices 工程默认配置为部具有电源管理的功能。为了使能该功能,在工
程建立时必须指定 POWER_SAVING 编译选项。如下所示,该选项被放置在 C/C++ Compiler
CC2430DB 电源管理
- 3 -
→Preprocessor 选项卡的 Defined symbols 框中。
为了将功耗降到最低水平,一个 End-Device 在进入休眠模式前需要关闭尽可能多的电
路。这些电路包括外设电路、无线收发器和 MCU 本身的一些重要组成部分。为了避免在休
眠时丢失消息,End-Device 的父设备需要保存这些消息直到 End-Device查询这些消息为止。
当 End-Device 的关联请求中的某些属性将 CAPINFO_RCVR_ON_IDLE 关闭时,父设备“知
道”End-Device 将要查询这些消息。在 Z-Stack 工程中,设备属性的默认设置在 ZDConfig.c 源
文件中的 ZDO_Config_Node_Descriptor 结构体中指定。End-Device 默认只指定
CAPINFO_DEVICETYPE_RFD,指示它是电池供电设备和空闲时关闭无线接收器。
CC2430DB 电源管理
- 4 -
是否启用节能模式是在 OSAL 主循环的末尾决定的。如果所有的 Z-Stack 任务都没有任何处
理要执行,变量 activity 的值变为 false。如下所示,POWER_SAVING 编译选项决定是否调
用 osal_pwrmgr_powerconserve()
函数来启动休眠。
在这里(osal_pwrmgr_powerconserve()函数中),在尝试进入休眠模式时会做另外两个检
查。首先,检查变量 pwrmgr_device 是否被设置为电池设备。这项设定在设备入网后执行—
详情见例程的 ZDApp.c 源文件。其次,检查变量 pwrmgr_task_state 确认没有任务的节能状
态是“put a hold”。该机制允许每个 Z-Stack 任务在临界区操作时禁止休眠。当这两个条件都
满足时,预期的休眠时间取决于 OSAL 定时器的下一次溢出时间。如果下一次溢出时间大
于 0 小于 MIN_SLEEP_TIME
,
选择 SLEEP_LITE 模式。在这种模式下,系统定时器被调整
为首先到期的定时器事件提供一个“唤醒”中断。MIN_SLEEP_TIME
定义在
hal_sleep.c 中,
为了防止很短时间的休眠。当没有预定的 Z-Stack 事件或者定时器时,选择 SLEEP_DEEP
模式,因此下一次溢出时间为 0,允许最大限度的节能:
剩余25页未读,继续阅读
资源评论
- canoi19992014-04-16解释的不是很清楚
z_l_l_m
- 粉丝: 39
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功