Compound Module Nic802154A

Package: org.mixim.modules.nic
File: modules/nic/Nic802154A.ned

(no description)

PhyLayerUWBIR AlohaMacLayer

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Used in compound modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

Host802154A (compound module)

This host NED module models a host using an IEEE 802.15.4A correlation receiver.

Parameters:

Name Type Default value Description
connectionManagerName string

name of the ConnectionManager module

sleepCurrent double .00303 mA

power consumption from boards (at 3.3V)

rxCurrent double 9.1 mA
syncCurrent double 30.3 mA
txCurrent double 0.303 mA
setupRxCurrent double 9.1 mA
setupTxCurrent double 0.303 mA
rxTxCurrent double 9.1 mA
txRxCurrent double 9.1 mA

Properties:

Name Value Description
display bgb=101,150,white,,;bgp=10,10

Gates:

Name Direction Size Description
radioIn input

radioIn gate for sendDirect

upperGateIn input

uppergateIn for incoming messages from network layer

upperControlIn input

uppergateCtrlIn for incoming control messages from network layer

upperGateOut output

uppergateOut to send data messages to network layer

upperControlOut output

uppergateCtrlOut to send control messages to network layer

Unassigned submodule parameters:

Name Type Default value Description
phy.coreDebug bool

debug switch for core framework

phy.recordStats bool false

enable/disable tracking of statistics (eg. cOutvectors)

phy.headerLength int 0

defines the length of the phy header (/preamble)

phy.usePropagationDelay bool

Should transmission delay be simulated?

phy.thermalNoise double

the strength of the thermal noise [dBm]

phy.useThermalNoise bool

should thermal noise be considered?

phy.analogueModels xml

Specification of the analogue models to use and their parameters

phy.decider xml

Specification of the decider to use and its parameters

phy.sensitivity double

The sensitivity of the physical layer [dBm]

phy.maxTXPower double

The maximum transimission power of the physical layer [mW]

phy.timeRXToTX double 0

switchTimes [s]:

phy.timeRXToSleep double 0
phy.timeTXToRX double 0
phy.timeTXToSleep double 0
phy.timeSleepToRX double 0
phy.timeSleepToTX double 0
phy.radioMinAtt double 1.0

radios gain factor (attenuation) while receiving

phy.radioMaxAtt double 0.0

radios gain factor (attenuation) while not receiving

phy.nbRadioChannels int 1

Number of available radio channels. Defaults to single channel radio.

phy.initialRadioChannel int 0

Initial radio channel.

mac.notAffectedByHostState bool false
mac.coreDebug bool

debug switch

mac.headerLength double

length of the MAC packet header (in bits)

mac.debug bool false

debug switch

mac.stats bool true
mac.trace bool false
mac.RSDecoder bool true
mac.packetsAlwaysValid bool false
mac.PRF int 4

Pulse repetition frequency, either 4 or 16 MHz currently

mac.minBE int 3

min backoff exponent

mac.maxBE int 8

max backoff exponent

Source code:

module Nic802154A like INic
{
    parameters:
        string connectionManagerName; 	//name of the ConnectionManager module
        // power consumption from boards (at 3.3V)
        double sleepCurrent @unit(mA) = .00303 mA; // 0.021 µA
        double rxCurrent @unit(mA) = 9.1 mA;
        double syncCurrent @unit(mA) = 30.3 mA;
        double txCurrent @unit(mA) = 0.303 mA;
        double setupRxCurrent @unit(mA) = 9.1 mA;
        double setupTxCurrent @unit(mA) = 0.303 mA;
        double rxTxCurrent @unit(mA) = 9.1 mA;
        double txRxCurrent @unit(mA) = 9.1 mA;


        @display("bgb=101,150,white,,;bgp=10,10");
    gates:
        input radioIn; // radioIn gate for sendDirect
        input upperGateIn; // uppergateIn for incoming messages from network layer
        input upperControlIn; // uppergateCtrlIn for incoming control messages from network layer
        output upperGateOut; // uppergateOut to send data messages to network layer
        output upperControlOut; // uppergateCtrlOut to send control messages to network layer

    submodules:
        phy: PhyLayerUWBIR {
            parameters:
                @display("p=60,120;b=80,30,rect,white,,");
                initialRadioState = 4; // initializes radio state to SYNC

        }
        mac: AlohaMacLayer {
            parameters:
                maxRetries = 3;
                @display("p=60,45;b=80,30,rect,white,,");
        }
    connections:
        phy.upperGateOut --> { @display("ls=black;m=m,25,50,25,0"); } --> mac.lowerGateIn;
        phy.upperGateIn <-- { @display("ls=black;m=m,15,50,15,0"); } <-- mac.lowerGateOut;
        phy.upperControlOut --> { @display("ls=red;m=m,75,50,75,0"); } --> mac.lowerControlIn;
        phy.upperControlIn <-- { @display("ls=red;m=m,85,0,85,0"); } <-- mac.lowerControlOut;

        radioIn --> phy.radioIn;

        upperGateIn --> mac.upperGateIn;
        upperControlIn --> mac.upperControlIn;
        upperGateOut <-- mac.upperGateOut;
        upperControlOut <-- mac.upperControlOut;

}