




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、最近在搞一個(gè)實(shí)用性的zigbee網(wǎng)絡(luò),網(wǎng)絡(luò)中使用到了終端節(jié)點(diǎn)進(jìn)行傳感器數(shù)據(jù)采集,因需要電池供電,因此,便用到了它的低功耗設(shè)置。在使用過(guò)程中碰到了種種疑惑和困難,從中總結(jié)出了一些經(jīng)驗(yàn),與大家分享,望對(duì)大家有所幫助,如有不對(duì),請(qǐng)多指教。首先在使用低功耗時(shí)(對(duì)于終端節(jié)點(diǎn)而言end device),1. 先要將TOOLS文件夾中的f8wConfig.cfg中的-DRFD_RCVC_ALWAYS_ON = FALSE,(這里本來(lái)是TURE),如果這里不改,就無(wú)法讓接收器進(jìn)入睡眠2. 在預(yù)編譯中加入POWER_SAVING,這里是為了讓協(xié)議棧中的節(jié)電選項(xiàng)預(yù)編譯通過(guò)。在完成這兩項(xiàng)工作后,本以為已經(jīng)可以了。上
2、電試驗(yàn),但是怎么才能看出來(lái)進(jìn)入沒(méi)進(jìn)入節(jié)能模式呢?無(wú)從考證。所以我們就需要找到睡眠函數(shù),看看它是怎樣進(jìn)入睡眠的,在里面加入個(gè)LED控制,進(jìn)入睡覺(jué)狀態(tài)前LED關(guān)閉,喚醒時(shí)LED亮起,這樣我們便可以清楚的看到CPU到底有沒(méi)有睡眠,睡眠了多久。查閱資料,得知,睡眠函數(shù)是這個(gè)叫做hal_sleep(next)的函數(shù)。Halsleep(next),根據(jù)下一個(gè)要做的任務(wù)(包括用戶任務(wù)和MAC任務(wù))在多久以后需要去做(next就是表示多久以后要做),如果這個(gè)時(shí)間不為零,就說(shuō)明時(shí)間未到,CPU是空閑的,所以就去睡眠。具體代碼分析:注意,這里獲取任務(wù)到期時(shí)間是要獲取兩個(gè)的,因?yàn)镸AC任務(wù)和用戶設(shè)定的周期任務(wù)是分開(kāi)
3、的。并且比較哪個(gè)比較小,就按哪個(gè)時(shí)間,舉個(gè)例子,比如你再過(guò)5分鐘要接個(gè)電話,再過(guò)10分鐘要吃飯,你取10分鐘作為任務(wù)到期時(shí)間,那么也就是說(shuō)你認(rèn)為可以睡10分鐘,但是在你睡的這10分鐘里,電話漏掉了。就是這個(gè)意思。接下來(lái)halPwrMgtMode = (timeout = 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;實(shí)際上是綜合一下MAC到期時(shí)間和用戶任務(wù)到期時(shí)間,把其中小的值給timeout然后判斷它是不是0.如果是說(shuō)明有任務(wù)到期,不能進(jìn)入深度睡眠,halPwrMgtMode=HAL_SLEEP_TIMER,如果timeout不等于0說(shuō)明CPU空閑,可以深度睡眠
4、。上面這幾行程序,實(shí)際上是判斷timeout是不是大于系統(tǒng)設(shè)定的最小睡眠時(shí)間,你想,如果馬上就到期了,系統(tǒng)才睡一小會(huì),沒(méi)有意義,所以這里做一個(gè)這樣的判斷。舉個(gè)例子,比如你下一分鐘就要去上班了,再睡1分鐘也沒(méi)什么意義,不如直接現(xiàn)在就去上班。就是這個(gè)意思。繼續(xù)往下這里其實(shí)就是進(jìn)入睡眠了,在進(jìn)入睡眠前,先把LED1關(guān)掉睡眠過(guò)程就不多說(shuō)了,就是關(guān)掉RF收發(fā)器,關(guān)掉一些沒(méi)用的東西。當(dāng)運(yùn)行到這里,會(huì)把POWERMODE設(shè)置成上面halPwrMgtMode = (timeout = 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;也就是halPwrMgtMode的值,從而睡眠。再
5、到后面這里可以看到也就是睡眠結(jié)束,恢復(fù)工作。我們可以在這里再加上LED1 ON,使LED1點(diǎn)亮,標(biāo)志著設(shè)備喚醒了。這樣我們就可以知道設(shè)備何時(shí)睡眠的,何時(shí)喚醒了。然后燒錄程序,繼續(xù)試驗(yàn)。結(jié)果發(fā)現(xiàn)LED燈閃的還是挺快的。這也就是說(shuō)明有任務(wù)在不斷的執(zhí)行,那么是哪些任務(wù)呢,上面已經(jīng)講過(guò)了,任務(wù)無(wú)非就是用戶任務(wù)和MAC任務(wù)。這樣我們先從用戶任務(wù)入手,一般需要不斷執(zhí)行的,無(wú)非就是按鍵掃描、傳感器掃描等,我們就去修改他們的任務(wù)到期時(shí)間。這里可以推薦大家一種方法,用戶任務(wù),需要不斷執(zhí)行的,肯定是要用到osal_start_timerEx函數(shù)的,那么我們就可以找這些地方,然后看看是不是要修改的地方,這樣定位會(huì)比
6、較快一些,直接在edit選項(xiàng)卡中選擇search all選項(xiàng),在搜索關(guān)鍵詞里寫上這個(gè)函數(shù)名,便可以迅速定位要修改的地方。在這里,我的任務(wù)只有兩個(gè)需要不斷執(zhí)行的,一個(gè)是按鍵掃描,一個(gè)是傳感器數(shù)據(jù)發(fā)送。因?yàn)樽庸?jié)點(diǎn)我可以不用按鍵,于是直接把按鍵初始化注釋掉。至于傳感器數(shù)據(jù)發(fā)送,暫時(shí)把時(shí)間間隔改成10秒。繼續(xù)上電,結(jié)果閃動(dòng)確實(shí)慢了,嗯!有效果,可是燈還是會(huì)按照一秒一次的頻率閃動(dòng),因?yàn)橛脩羧蝿?wù)已經(jīng)修改好了,那么應(yīng)該就是MAC任務(wù)在不斷喚醒了?;叵胍幌聦W(xué)過(guò)的概念,節(jié)點(diǎn)加入網(wǎng)絡(luò)以后,是要不斷輪詢數(shù)據(jù),難道是這個(gè)東西?于是就在各大網(wǎng)站開(kāi)始搜索關(guān)鍵詞,最終發(fā)現(xiàn)果然不假。Z-stack工程終端設(shè)備默認(rèn)情況下為電源管理關(guān)閉,自動(dòng)輪詢消息這一功能是開(kāi)啟的。這里有三個(gè)輪詢選項(xiàng),每一個(gè)都由一個(gè)不同的時(shí)間延遲參數(shù)控制。當(dāng)電源管理功能開(kāi)啟后(添加POWER_SAVING),任一個(gè)輪詢選項(xiàng)的設(shè)置都會(huì)影響到睡眠模式。時(shí)間延遲的設(shè)置不能用于DEEP skeep中的輪詢,因此限制了降低功耗。這三個(gè)輪詢選項(xiàng)分別如下:f8wConfig.cfg里配置的:-DPOLL_RATE等這三個(gè)選項(xiàng)改為0即可實(shí)現(xiàn)關(guān)閉輪巡。當(dāng)然這樣子節(jié)點(diǎn)也就接
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作辦醫(yī)院合同范本
- 雙方貨物交易合同范本
- 個(gè)人碎石運(yùn)輸合同范本
- 刷墻臨時(shí)協(xié)議合同范本
- 雙城租房合同范本
- 醫(yī)藥銷售協(xié)議合同范本
- 合作合同范本合集15篇
- 中藥采購(gòu)種植合同范本
- 合同范本定制手機(jī)買賣
- 各種房屋糾紛合同范本
- 新教材人教版高中化學(xué)選擇性必修3全冊(cè)各章節(jié)知識(shí)點(diǎn)考點(diǎn)重點(diǎn)難點(diǎn)歸納總結(jié)
- 中電朝陽(yáng)250兆瓦智慧風(fēng)儲(chǔ)一體化風(fēng)電項(xiàng)目環(huán)評(píng)報(bào)告書
- 生產(chǎn)組織供應(yīng)能力說(shuō)明
- 碳酸丙烯酯法脫碳工藝工程設(shè)計(jì)
- 藥劑學(xué)-名詞解釋
- 口語(yǔ)課件Unit 1 Ways of Traveling Possibility and Impossibility
- 城市支路施工組織設(shè)計(jì)
- 耐堿玻纖網(wǎng)格布檢測(cè)報(bào)告
- 20米往返跑教案 (2)
- 甲醛安全周知卡
- 《書法練習(xí)指導(dǎo)》教案江蘇鳳凰少年兒童出版社四年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論