Ieee802154NarrowbandRadio

Package: inet.physicallayer.wireless.ieee802154.packetlevel

Ieee802154NarrowbandRadio

compound module

(no description)

antenna : like IAntenna

IsotropicAntenna: This antenna model describes the theoretical point source which radiates the same intensity of...

IAntenna: The antenna model describes the physical device (a part of the radio) which converts electric...

Source:
antenna: <default("IsotropicAntenna")> like IAntenna {
    parameters:
        @display("p=100,100");
} transmitter : like ITransmitter

ITransmitter: The transmitter model describes the physical process which converts packets into electric signals.

Source:
transmitter: <> like ITransmitter {
    parameters:
        @display("p=100,200");
} receiver : like IReceiver

IReceiver: The receiver model describes the physical process which converts electric signals into packets.

Source:
receiver: <> like IReceiver {
    parameters:
        @display("p=100,300");
} energyConsumer : like IEnergyConsumer

IEnergyConsumer: The energy consumer models describe the energy consumption process of devices over time.

Source:
energyConsumer: <default("")> like IEnergyConsumer if typename != "" {
    parameters:
        @display("p=100,400");
}

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Known subclasses

Name Type Description
Ieee802154NarrowbandDimensionalRadio compound module (no description)
Ieee802154NarrowbandScalarRadio compound module (no description)

Extends

Name Type Description
FlatRadioBase compound module

This module servces as a base module for flat radio models.

Parameters

Name Type Default value Description
radioMediumModule string "radioMedium"

module path of the medium module where this radio communicates

energySourceModule string ""

module path of the energy source module which provides energy to the radio

initialRadioMode string "off"
switchingTimes string "ms 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"

time parameters to switch between radio modes

sendRawBytes bool false

when true packets are serialized into a sequence of bytes before sending out

separateTransmissionParts bool false

when enabled the transmission of preamble, header and data part are simulated separately

separateReceptionParts bool false

when enabled the reception of preamble, header and data part are simulated separately

displayCommunicationRange bool false

if true communication range is displayed as a blue circle around the node

displayInterferenceRange bool false

if true interference range is displayed as a gray circle around the node

centerFrequency double 2450 MHz

center frequency of the band where the radio transmits and receives signals on the medium

bandwidth double 2.8 MHz

bandwidth of the band where the radio transmits and receives signals on the medium

signalAnalogRepresentation string "scalar"

Properties

Name Value Description
display i=block/wrxtx
class FlatRadioBase

Gates

Name Direction Size Description
upperLayerIn input
upperLayerOut output
radioIn input

Signals

Name Type Unit
receptionStateChanged long
radioModeChanged long
transmissionStarted
receptionEnded
transmittedSignalPartChanged long
receptionStarted
packetReceivedFromUpper cPacket
receivedSignalPartChanged long
packetSentToUpper cPacket
transmissionStateChanged long
listeningChanged
transmissionEnded

Statistics

Name Title Source Record Unit Interpolation Mode
receptionState Radio reception state receptionStateChanged count, vector sample-hold
bitErrorRate Bit error rate bitErrorRate(packetSentToUpper) histogram
radioMode Radio mode radioModeChanged count, vector sample-hold
packetErrorRate Packet error rate packetErrorRate(packetSentToUpper) histogram
symbolErrorRate Symbol error rate symbolErrorRate(packetSentToUpper) histogram
transmissionState Radio transmission state transmissionStateChanged count, vector sample-hold
minSnir Min SNIR minimumSnir(packetSentToUpper) histogram

Source code

module Ieee802154NarrowbandRadio extends FlatRadioBase
{
    parameters:
        string signalAnalogRepresentation @enum("scalar","dimensional") = default("scalar");
        transmitter.typename = default(signalAnalogRepresentation == "scalar" ? "Ieee802154NarrowbandScalarTransmitter" : signalAnalogRepresentation == "dimensional" ? "Ieee802154NarrowbandDimensionalTransmitter" : "");
        receiver.typename = default(signalAnalogRepresentation == "scalar" ? "Ieee802154NarrowbandScalarReceiver" : signalAnalogRepresentation == "dimensional" ? "Ieee802154NarrowbandDimensionalReceiver" : "");

        centerFrequency = default(2450 MHz);

        // B_20dB ATmega256RFR2 (page 564)
        bandwidth = default(2.8 MHz);

        // 802.15.4-2006 (page 28)
        *.bitrate = default(250 kbps);

        // PHY Header (without preamble), 802.15.4-2006 (page 43)
        // 1 octet SFD
        // 7 bit Frame length
        // 1 bit Reserved
        *.headerLength = (1*8 + 7 + 1) * 1 b;

        // Preamble
        // 4 octets Preamble
        // 1 symbol of 16us -> 4 bit
        transmitter.preambleDuration = (4*8/4) * 16 us;

        // RSSI sensitivity (ATmega256RFR2, page 566)
        receiver.energyDetection = default(-90dBm);

        // Receiver sensitivity (ATmega256RFR2, page 565)
        // TODO That is not quite true, because sensitivity
        //      is defined as the input signal power that yields
        //      a PER < 1% for a PSDU of 20 octets, but INET handles it
        //      as minimum reception power.
        receiver.sensitivity = default(-100dBm);

        // There is no fixed boundary, because of the
        // DSSS and the capture effect. Taking the sensitivity minus some
        // arbitrary value as an approximate guess.
        receiver.minInterferencePower = default(-120dBm);

        // Minimum SNIR
        // -8 dB results into 98% PER for a PSDU of 20 octets
        receiver.snirThreshold = default(-8 dB);

        // TX Output power (typ. 3.5 dBm, ATmega256RFR2, page 564)
        transmitter.power = default(2.24mW);

        @class(FlatRadioBase);
}

File: src/inet/physicallayer/wireless/ieee802154/packetlevel/Ieee802154NarrowbandRadio.ned