[Tinyos-devel] Low power settings

Philip Levis pal at cs.stanford.edu
Tue May 27 21:54:17 PDT 2008


There's been a good deal of discussion on the tradeoffs in low power  
settings for the radio. On one hand, it's clear that some protocols  
and applications need to set LPL settings on a per-packet basis. On  
the other hand, as the check interval is shared across protocols, the  
common case is that one configures a single low-power setting for the  
node, so that you don't have to configure each subsystem and protocol  
individually.

This is a proposal for how to handle these two needs. It involves  
expanding the signature of AMSenderC, adding some additional logic to  
AMQueueImplP (probably forking it for a no low-power version), and  
adding a new component LowPowerSettingsC.

The component LplSettingsC provides the LowPowerListening interface.  
The goal is that the top-level application component, when it handles  
Boot and before it turns on the radio through SplitControl, calls this  
component to configure the LPL settings. This is essentially a check  
interval, which sets both sender transmit duration and receiver wakeup  
interval. LplSettingsC calls ActiveMessageC to set its rx check  
interval with this value.

AMQueueImplP handles SendNotifier.aboutToSend from ActiveMessageC,  
which it dispatches to the appropriate send client. AMSenderC also  
provides SendNotifier through a pass-through wiring. AMQueueImplP has  
a default event handler, which calls LplSettingsC. LplSettingsC, when  
handing SendNotifier.aboutToSend, calls LowPowerListening on  
ActiveMessageC to set the Lpl duration on the outgoing packet. If a  
particular AMSender needs to do something special, it can wire to  
aboutToSend and configure the LPL settings itself.

This design requires all ActiveMessageC components provide  
SendNotifier and LowPowerListening. Currently, the CC2420, CC1000,  
RF230, and XE1205 all provide the latter (LowPowerListening), but only  
the CC2420 provides SendNotifier.

Thoughts?

Phil



More information about the Tinyos-devel mailing list