




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近在搞一个实用性的zigbee网络,网络中使用到了终端节点进行传感器数据采集,因需要电池供电,因此,便用到了它的低功耗设置。在使用过程中碰到了种种疑惑和困难,从中总结出了一些经验,与大家分享,望对大家有所帮助,如有不对,请多指教。首先在使用低功耗时(对于终端节点而言end device),1. 先要将TOOLS文件夹中的f8wConfig.cfg中的-DRFD_RCVC_ALWAYS_ON = FALSE,(这里本来是TURE),如果这里不改,就无法让接收器进入睡眠2. 在预编译中加入POWER_SAVING,这里是为了让协议栈中的节电选项预编译通过。在完成这两项工作后,本以为已经可以了。上电试验,但是怎么才能看出来进入没进入节能模式呢?无从考证。所以我们就需要找到睡眠函数,看看它是怎样进入睡眠的,在里面加入个LED控制,进入睡觉状态前LED关闭,唤醒时LED亮起,这样我们便可以清楚的看到CPU到底有没有睡眠,睡眠了多久。查阅资料,得知,睡眠函数是这个叫做hal_sleep(next)的函数。Halsleep(next),根据下一个要做的任务(包括用户任务和MAC任务)在多久以后需要去做(next就是表示多久以后要做),如果这个时间不为零,就说明时间未到,CPU是空闲的,所以就去睡眠。具体代码分析:注意,这里获取任务到期时间是要获取两个的,因为MAC任务和用户设定的周期任务是分开的。并且比较哪个比较小,就按哪个时间,举个例子,比如你再过5分钟要接个电话,再过10分钟要吃饭,你取10分钟作为任务到期时间,那么也就是说你认为可以睡10分钟,但是在你睡的这10分钟里,电话漏掉了。就是这个意思。接下来halPwrMgtMode = (timeout = 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;实际上是综合一下MAC到期时间和用户任务到期时间,把其中小的值给timeout然后判断它是不是0.如果是说明有任务到期,不能进入深度睡眠,halPwrMgtMode=HAL_SLEEP_TIMER,如果timeout不等于0说明CPU空闲,可以深度睡眠。上面这几行程序,实际上是判断timeout是不是大于系统设定的最小睡眠时间,你想,如果马上就到期了,系统才睡一小会,没有意义,所以这里做一个这样的判断。举个例子,比如你下一分钟就要去上班了,再睡1分钟也没什么意义,不如直接现在就去上班。就是这个意思。继续往下这里其实就是进入睡眠了,在进入睡眠前,先把LED1关掉睡眠过程就不多说了,就是关掉RF收发器,关掉一些没用的东西。当运行到这里,会把POWERMODE设置成上面halPwrMgtMode = (timeout = 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;也就是halPwrMgtMode的值,从而睡眠。再到后面这里可以看到也就是睡眠结束,恢复工作。我们可以在这里再加上LED1 ON,使LED1点亮,标志着设备唤醒了。这样我们就可以知道设备何时睡眠的,何时唤醒了。然后烧录程序,继续试验。结果发现LED灯闪的还是挺快的。这也就是说明有任务在不断的执行,那么是哪些任务呢,上面已经讲过了,任务无非就是用户任务和MAC任务。这样我们先从用户任务入手,一般需要不断执行的,无非就是按键扫描、传感器扫描等,我们就去修改他们的任务到期时间。这里可以推荐大家一种方法,用户任务,需要不断执行的,肯定是要用到osal_start_timerEx函数的,那么我们就可以找这些地方,然后看看是不是要修改的地方,这样定位会比较快一些,直接在edit选项卡中选择search all选项,在搜索关键词里写上这个函数名,便可以迅速定位要修改的地方。在这里,我的任务只有两个需要不断执行的,一个是按键扫描,一个是传感器数据发送。因为子节点我可以不用按键,于是直接把按键初始化注释掉。至于传感器数据发送,暂时把时间间隔改成10秒。继续上电,结果闪动确实慢了,嗯!有效果,可是灯还是会按照一秒一次的频率闪动,因为用户任务已经修改好了,那么应该就是MAC任务在不断唤醒了。回想一下学过的概念,节点加入网络以后,是要不断轮询数据,难道是这个东西?于是就在各大网站开始搜索关键词,最终发现果然不假。Z-stack工程终端设备默认情况下为电源管理关闭,自动轮询消息这一功能是开启的。这里有三个轮询选项,每一个都由一个不同的时间延迟参数控制。当电源管理功能开启后(添加POWER_SAVING),任一个轮询选项的设置都会影响到睡眠模式。时间延迟的设置不能用于DEEP skeep中的轮询,因此限制了降低功耗。这三个轮询选项分别如下:f8wConfig.cfg里配置的:-DPOLL_RATE等这三个选项改为0即可实现关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年互联网理财行业当前发展趋势与投资机遇洞察报告
- 支部工作条例培训课件
- 支气管哮喘急性发作课件
- 擦玻璃安全知识培训课件
- 2025年河北省医疗三严三基理论考试试题及答案
- 2024年全国消防监督管理安全专业技术及理论知识竞赛试题库(附含答案)
- 法律合同法条解析题库(附答案)
- 撇写法课件教学课件
- 2024年职业技能“汽车装调工”专业知识考试题与答案
- 2025年煤炭生产经营单位(一通三防安全管理人员)模拟考试题(含答案)
- ECRS原则课件教学课件
- 2024年辽源市应急管理局招聘应急管理专员笔试真题及答案
- 2025年大庆市中考语文试题卷(含答案解析)
- 配电架空线路施工验收规范手册
- 口腔医疗废物处理规范
- 学校中层干部选拔任用及管理规程(2025年修订)
- N-苯基马来酰亚胺
- 自控仪表安装工程施工方案52919
- 激光职业病危害告知卡
- 易氧化有机碳的测定
- 压力性尿失禁专题宣讲PPT培训课件
评论
0/150
提交评论