MiXiM  2.3
phyLayer - physical layer modules
Collaboration diagram for phyLayer - physical layer modules:

Classes

class  ConnectionManagerAccess
 Basic class for all physical layers, please don't touch!! More...
class  BasePhyLayer
 The BasePhyLayer represents the physical layer of a nic. More...
class  ChannelInfo
 This class is used by the BasePhyLayer to keep track of the AirFrames on the channel. More...
class  MacToPhyControlInfo
 Stores information which is needed by the physical layer when sending a MacPkt. More...
class  MacToPhyInterface
 Defines the methods provided by the phy to the mac layer. More...
class  PhyToMacControlInfo
 Controlinfo for packets which are send from Physical layer to the MAC layer. More...
class  RadioStateAnalogueModel
 This special AnalogueModel provides filtering of a Signal according to the actual RadioStates the Radio were in during the Signal's time interval. More...
class  MiximRadio
 The class that represents the Radio as a state machine. More...
class  RSAMConstMappingIterator
 ConstMapingIterator implementation for a RSAM. More...
class  RSAMMapping
 This class represents the corresponding mapping to a RadioStateAnalogueModel (RSAM). More...
class  Signal
 The signal class stores the physical representation of the signal of an AirFrame. More...
class  MacToUWBIRPhyControlInfo
 This control info allows to store the IEEE802154A config parameters that were used to generate the accompanying signal. More...
class  PhyLayer
 Provides initialisation for several AnalogueModels and Deciders from modules directory. More...
class  PhyLayerBattery
 Extends PhyLayer by adding power consumption for tx, rx and idle. More...
class  PhyLayerUWBIR
 Physical layer that models an Ultra Wideband Impulse Radio wireless communication system. More...
class  RadioUWBIR
 This class extends the basic radio model. More...
class  SamplePhyLayer
 Simple PhyLayer sub class which is just responsible for creating and initialising its own AnalogueModels and Decider. More...

Modules

 analogueModels - AnalogueModel implementations
 decider - decider modules

Detailed Description

BasePhyLayer.png
BasePhyLayer class graph

The BasePhyLayer class itself serves more or less only as container and glue between several subclasses. They can be described well by their task during the receiving process of an AirFrame:

RecvDetails.png
Receiving process details

On reception of an new AirFrame BasePhyLayer registers it at first with its ChannelInfo member which keeps track of all currently active AirFrames on the channel.

Then the signal contained in the AirFrame is handed to every AnalogueModel member of this phy layer. They calculate and add the attenuation effect of the channel on the signal during its transmission. A special AnalogueModel which every phy layer has is the AnalogueModel of the Radio member. It simulates the effect of the state of the radio (SLEEP, RX, TX) on the signal by defining an attenuation of 0% for the time the Radio is receiving and 100% for the other times (which means the signal couldn't be received at all).

After that the AirFrame is handed the first time to the Decider which has to decide if the AirFrame can and should be received or not. It also has to decide if the Signal was received correctly or if there where errors. To do this it can tell the phy layer to hand the AirFrame to it at arbitrary other points in time during the transmission. The Decider also has to tell the phy layer when a received packet should be sent up to the upper layer.

At the end of the transmission BasePhyLayer tells ChannelInfo that the AirFrame has ended.

RadioStatemachine.png
Behaviour and cooperation of Radio, RadioStateAnalogueModel and ChannelInfo under control of BasePhyLayer

The statemachine-diagram above gives an overview on how Radio, RadioStateAnalogueModel (RSAM) and ChannelInfo work together under control of BasePhyLayer.

NOTE: (Global) events in the diagram are denoted in the form "module.event", thus they only affect the particular module and are easier to find. Inside a module, an event is denoted without this prefix "module.". The term "module" is used here not in the sense of an OMNeT-module. The events "BasePhyLayer.AirFrame started", "BasePhyLayer.AirFrame ended" and "BasePhyLayer.E1" come from outside.

On the functionality of the RadioStateAnalogueModel (RSAM): RSAM is a passive database/entity module controlled and updated by BasePhyLayer according to the state of the radio and the channel. RSAM filters incoming Signals by adding an attenuation-mapping corresponding to radio-states and therefore tracks information about the radio-state over time.

Since this stored information may not be needed for all time in the past, information that becomes obsolete can be discarded in RSAM by the CLEANUP-mechanism (blue transitions). Tracking of radio-states is switched on and off when the channel (see ChannelInfo states) becomes empty (tracking off, green transition) or becomes not empty (tracking on, red transition).