我正在开发一个涉及切换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?