![]() |
Classes | |
class | ChannelAccess |
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 | Radio |
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 |
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:
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.
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).