[Tinyos-host-mote-wg] Re: [Tinyos-2.0wg] Bridge, agenda for TinyOS 2.x 10/5

Kevin Klues klueska at cs.wustl.edu
Wed Oct 5 09:10:58 PDT 2005


The reason I guess that I brought all this up is because I imagined the 
power management component for external devices all having the same 
interface, with an implementation specific to that particular device.  
This interface would be similar to the RefVolt interface for the 
MSP430.  Any number of components could connect to it, but once all 
components had released it, it would be able to go to sleep.  In the 
case of the radio, there are a large number of factors that come into 
play when deciding when exactly you want to put the radio hardware into 
some low power mode i.e. sleep/idle mode.  Instead of thinking about 
telling the radio when exactly to go to sleep and when to wake up, the 
idea would be to have some integrated component determining when the 
radio should be on or off and simply telling the radios power management 
component what to do. 

In the casse of B-MAC, the integrated component I refer to that 
determines when the radio should sleep or not would be the LPL portion 
of B-MAC, while the power management interface that this connects to 
could be implemented inside the CSMA component.   All code determining
when the radio should be on or off would be determined by the LPL 
component (i.e. set through the LowPowerListening interface) and this 
information would simply be passed on to the CSMA component through the 
PowerMangamnet interface.  With this information, the CSMA compoennt 
could then decide whther to turn off the radio at the exact moment that 
the LPL releases it, or if it happens to be using the radio for some 
operation, putting the radio into sleep mode once it has completed.  
When the LPL component wants the radio to turn back on, it simply 
notifies the CSMA component through the PowerManagemnt interface, and 
the radio is immediately turned on.

I guess the idea behind this is to keep all code that actually deals 
with power managment of the radio (i.e. determing the sleep schedule in 
LPL in the case of B-MAC) separate from the code that simply turns the 
radio on and off. 

Having this separation is motivated by the fact that sleep schedulers 
exist in theory that are not tied to any particular CSMA/TDMA scheme for 
determing when data should be sent over the radio. They only know about 
their sleep schedules and when they think the radio should be turned off 
and turned on.  the CSMA/TDMA implementation might decide to leave the 
radio on if they are in the middle of using it to send some data or 
doing CCA, but they will then put the radio to sleep depending on what 
the sleep scheduler has told it.   It would be nice to have some 
architecture in place to be able to implement these types of sleep 
scheduling policies so that their performance can be evaluated.  For 
these types of sleep schedulers, the CSMA scheme that B-MAC uses would 
be perfectly reasonalbe to use and therefore gives some merit to 
actually performing this split now while implementations of the radio 
stack are still not completely stable.

Kevin

Joe Polastre wrote:

>Hi Kevin,
>
>  Some comments based on my philosophy which you can choose to
>agree/disagree with:
>
>  
>
>>Another issue is how to separate components within each of the
>>strategies so that implementations of a B-MAC like protocol, for
>>example, could use the same CSMA strategy as B-MAC but implement some
>>variation of Low Power Listening without having to reimplement both pieces.
>>    
>>
>
>Although this would be great in an ideal world, I just don't see the
>point.  If you don't want the LPL part of B-MAC, then you don't enable
>it.  But trying to tease B-MAC apart into separate pieces so that
>someone can use the CSMA strategy (and even harder yet, in a
>platform/radio independent manner) just doesn't seem to be a huge
>overall win.
>
>In general, is innovation occurring at the link layer?  For the most
>part, no.  I think that if someone (ie, you) is willing to put in the
>effort to do this for all the standard radios, then it may be worth
>consideration.
>
>  
>
>>If this CSMA component were to be radio indepenedent, however, a radio
>>HIL would have to be developed that allowed the CSMA component to
>>control some of the radios settings, such as txPower, switching between
>>the tx state, rx state, and idle state, etc..  Maybe by thinking about
>>all of these issues we will actually be able to come up with a RadioHIL
>>(at least for a subset of the radio's control features... obviously not
>>yet accounting for the differences between packet and byte radios in
>>terms of sending data).
>>    
>>
>
>You need to clear up your terminology.  Up to this point, radios in
>TinyOS have included their MAC protocol within the radio code.  What I
>recommend is a different structuring of the radio stacks, one where
>the packet send and receive mechanisms are the radio "driver" and then
>the MAC protocol is built on top of that.  S-MAC employed this method
>a few years ago, and I think it is the right way to go.  Then you
>build your MAC protocols above the radio packet driver.
>
>This gets to my next point: what is the HIL of the radio and can one
>even exist?  In other words, is the HIL the interface to the radio
>driver or to the MAC?  I argue that an HIL for either cannot possibly
>exist.
>
>Providing platform/radio independent access at the physical layer to
>link layers is extremely tricky to do in a power efficient manner.
>
>  
>
>>Back to the of idea of creating the CSMA component for use by the radio
>>power management strategies......
>> From what I've seen from the current implementations of the CC1000 and
>>CC2420 radios for tinyOS-2.0, having such a separation could be realised
>>quite easily.  As of right now, the radios are broken into a B-Mac
>>component and a send/receive component.  If these could be further
>>separated in a clean manner, then it would be a start at realizing the
>>organization of the comonents described above.
>>    
>>
>
>Not necessarily true.  Jason and I have implemented other mechanisms
>for performing the LPL channel that does not perform the full CSMA
>that occurs when trying to transmit a packet.  This change is to
>optimize the start time of the radio and return to sleep after using
>minimal power.  Because the LPL sample needs to minimize its power
>consumption, the CCA can't be broken away from it in a general
>component.
>
>Anyway, none of this really has anything to do with non-MCU power management
>
>-Joe
>
>  
>

_______________________________________________
Tinyos-2.0wg mailing list
Tinyos-2.0wg at Mail.Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-2.0wg


More information about the Tinyos-host-mote-wg mailing list