我正在开发一个涉及切换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. NodeMCU是否支持低功耗模式?
- 2. 在STM32L0上进入低功耗模式以使用USART1
- 3. 用于iOS11的JavaScript的低功耗模式检测?
- 4. 蓝牙低功耗Rssi Android
- 5. 蓝牙低功耗背景
- 6. 有没有办法以编程方式检测iOS 9低功耗模式?
- 7. 蓝牙低功耗 - 双方获得RSSI?
- 8. Contiki OS CC2538:降低电流/功耗
- 9. Android和低功耗蓝牙(BLE)
- 10. 在Linux上的蓝牙低功耗API
- 11. Android Studio:蓝牙低功耗BLE广告
- 12. 蓝牙低功耗GATT安全级别
- 13. Qt - WINDOWS - 蓝牙低功耗工作?
- 14. RN4020 PICtail™蓝牙低功耗编程
- 15. 支持蓝牙低功耗(BTLE)设备
- 16. 蓝牙低功耗通知间隔
- 17. 蓝牙低功耗startLeScan已弃用
- 18. Xcode中的iPhone模拟器是否支持蓝牙低功耗?
- 19. 降低运行WinXP的低负载服务器的功耗?
- 20. 待机模式电流消耗不降低到预期值
- 21. TelosB工作onContiki
- 22. MongoDB内存消耗低
- 23. 什么是在Android上通过蓝牙打印的最低功耗方式?
- 24. Android蓝牙低功耗 - 读取服务说明
- 25. 使用蓝牙低功耗接收和收听更改
- 26. 蓝牙低功耗 - 输入/输出错误
- 27. 蓝牙低功耗 - 发送数据包非常慢
- 28. 来自蓝牙低功耗(BLE)标签的RSSI?
- 29. 阅读Android上的GATT属性问题蓝牙低功耗
- 30. 适用于Windows 7的蓝牙低功耗?