我正在開發一個涉及切換Telosb狀態的項目,我想知道如何將這些微粒「睡眠」(低功耗)以及如何喚醒這些微粒。Telosb低功耗模式:
1
A
回答
1
當任務隊列爲空時(基本上什麼都沒有做 - 沒有代碼執行),TinyOS調度程序會自動進入睡眠(低功耗)模式。例如,定時器中斷(定時器事件發生),無線電中斷(收到無線電數據包)或外部IO引腳中斷(用戶按下按鈕),中斷被喚醒。然而,微控制器具有不同的低功耗級別,這些級別在喚醒條件,可以繼續工作的外設,喚醒延遲和功耗方面有所不同。通常情況下,在較低的睡眠水平下,微件消耗較少的功率,但只能通過幾次中斷喚醒,大多數外設將停止運行。睡眠級別根據當mote即將睡眠時正在運行的外設進行調整。
睡眠水平可以被覆蓋。這是司機所做的,根據他們的狀態提供最低可接受的睡眠等級。例如,如果請求無線數據包接收,無線驅動程序可能會阻止進入最深度的睡眠級別,因爲在這種情況下數據包將丟失(即無線中斷通知數據包接收不會喚醒微塵)。要覆蓋睡眠的水平,你的模塊來實現接口PowerOverride
,以便它返回的時候lowestState
可接受的最低睡眠級別稱爲:
interface PowerOverride {
async command mcu_power_t lowestState();
}
PowerOverride
必須再連線到組件McuSleepC
:
component McuSleepC {
provides interface McuSleep;
provides interface PowerState;
uses interface PowerOverride;
}
mcu_power_t
是描述可能功率級別的芯片專用類型。在TelosB,這是基於MSP430單片機的情況下,這種類型是在TOS /芯片/ MSP430/msp430hardware.h定義:
enum {
MSP430_POWER_ACTIVE = 0,
MSP430_POWER_LPM0 = 1,
MSP430_POWER_LPM1 = 2,
MSP430_POWER_LPM2 = 3,
MSP430_POWER_LPM3 = 4,
MSP430_POWER_LPM4 = 5
};
總的結論是,如果你只開發應用程序,你永遠不會有擔心要睡覺或醒來。
相關問題
- 1. 藍牙低功耗外設模式
- 2. NodeMCU是否支持低功耗模式?
- 3. 降低功耗
- 4. 藍牙低功耗
- 5. 低功耗傳感器模塊
- 6. 當設備處於低功耗模式時,SystemClock.elapsedRealtime()漂移
- 7. 用於iOS11的JavaScript的低功耗模式檢測?
- 8. 使用gpsctl將U-blox MAX7芯片置於低功耗模式
- 9. 在STM32L0上進入低功耗模式以使用USART1
- 10. Android藍牙低功耗
- 11. 藍牙低功耗Android Studio
- 12. 藍牙低功耗通知
- 13. 藍牙低功耗Rssi Android
- 14. 藍牙低功耗背景
- 15. Android藍牙低功耗readRemoteRssi
- 16. 藍牙低功耗:發現模式和連接模式,獨立還是相關?
- 17. 摩托羅拉和低功耗藍牙低功耗客戶端設備
- 18. 有沒有辦法以編程方式檢測iOS 9低功耗模式?
- 19. 爲了優化我的代碼,測量微控制器的功耗(低功耗模式)
- 20. Windows 8藍牙低功耗API示例
- 21. IOS藍牙低功耗連接間隔
- 22. 藍牙低功耗應用程序
- 23. Qt - WINDOWS - 藍牙低功耗工作?
- 24. iOS藍牙低功耗問題
- 25. 藍牙低功耗startLeScan已棄用
- 26. RN4020 PICtail™藍牙低功耗編程
- 27. ios6上的藍牙低功耗; CBPeripheralManagerDelegate
- 28. 什麼是低功耗java卡
- 29. 支持藍牙低功耗(BTLE)設備
- 30. 藍牙低功耗 - 雙方獲得RSSI?