This class regroups static methods needed to generate a pulse-level representation of an IEEE 802.15.4A UWB PHY frame using the mandatory mode (high PRF). More...
#include <IEEE802154A.h>

Classes | |
| struct | config |
| currently unused More... | |
Public Types | |
| enum | UWBPRF { PRF_OFF, NOMINAL_4_M, NOMINAL_16_M, NOMINAL_64_M } |
| enum | Ranging { NON_RANGING, ALL_RANGING, PHY_HEADER_ONLY } |
| enum | UWBPreambleSymbolRepetitions { PSR_SHORT = 16, PSR_DEFAULT = 64, PSR_MEDIUM = 1024, PSR_LONG = 4096 } |
| enum | DataRate { DATA_RATE_0, DATA_RATE_1, DATA_RATE_2, DATA_RATE_3, DATA_RATE_4 } |
|
typedef std::pair< Signal *, vector< bool > * > | signalAndData |
Static Public Member Functions | |
| static void | setConfig (config newCfg) |
| static config | getConfig () |
| static void | setPSDULength (int _psduLength) |
| static signalAndData | generateIEEE802154AUWBSignal (simtime_t signalStart, bool allZeros=false) |
| static simtime_t | getMaxFrameDuration () |
| static simtime_t | getPhyMaxFrameDuration () |
| static simtime_t | getThdr () |
| static int | getHoppingPos (int sym) |
Static Public Attributes | |
| static const int | mandatory_bitrate = 850000 |
| bit rate (850 kbps) | |
| static const_simtime_t | mandatory_symbol = 0.00000102364 |
| mandatory data symbol length (1025 ns) | |
| static const_simtime_t | mandatory_timeShift = 0.00000051282 |
| 0.5 * mandatory_symbol (0.5 ms) | |
| static const_simtime_t | mandatory_pulse = 0.000000002003203125 |
| mandatory pulse duration ( = 1 / bandwidth = 2 ns) | |
| static const_simtime_t | mandatory_burst = 0.00000003205 |
| burst duration | |
| static const int | mandatory_pulses_per_burst = 16 |
| number of consecutive pulses forming a burst | |
| static const double | mandatory_centerFreq = 4498 |
| Center frequency of band 3 in UWB lower band (500 MHz wide channel). | |
| static const_simtime_t | mandatory_preambleLength = 0.0000715 |
| default sync preamble length | |
| static const double | maxPulse = 1 |
| Total triangular pulse peak energy in mW (0 dBm / 50 MHz over 500 MHz). | |
| static const short | C31 [8][31] |
| static const short | Ci = 5 |
| static const short | shortSFD [8] = { 0, 1, 0, -1, 1, 0, 0, -1 } |
| static const_simtime_t | MaxFrameDuration |
| static const int | maxS = 20000 |
| static short | s_array [maxS] |
| static int | last_s = 15 |
| static double | signalStart = 0 |
| static const int | NSync = 64 |
| Number of Repetitions of the sync symbol in the SYNC preamble. | |
| static const short | CLength = 31 |
| Length of the preamble code. | |
| static const short | spreadingdL = 16 |
| sync preamble spreading factor L | |
| static const_simtime_t | Tpsym = 0.001 * 0.001 * 0.001 * 993.6 |
| duration of a synchronization preamble symbol | |
| static const short | RSSymbolLength = 6 |
| bit length of a Reed-Solomon symbol | |
| static const short | RSMaxSymbolErrors = 4 |
| Maximum number of erroneous symbols that the Reed-Solomon code RS_6(63,55) can correct in ieee802.15.4a. | |
| static const int | MaxPSDULength = 128 |
| Maximum size of message that is accepted by the Phy layer (in bytes). | |
| static const_simtime_t | tFirstSyncPulseMax = IEEE802154A::mandatory_pulse/2 |
| Position of the first pulse max in the frame. | |
| static const int | Nhdr = 16 |
| static int | psduLength = 0 |
| static config | cfg = IEEE802154A::cfg_mandatory_16M |
| static const config | cfg_mandatory_16M |
| static const config | cfg_mandatory_4M |
Static Protected Member Functions | |
| static void | generateSyncPreamble (Mapping *mapping, Argument *arg) |
| static void | generateSFD (Mapping *mapping, Argument *arg) |
| static void | generatePhyHeader (Mapping *mapping, Argument *arg) |
| static void | generateBurst (Mapping *mapping, Argument *arg, simtime_t burstStart, short polarity) |
| static void | generatePulse (Mapping *mapping, Argument *arg, short polarity, double peak=IEEE802154A::maxPulse, simtime_t chip=IEEE802154A::mandatory_pulse) |
| static void | setBitRate (Signal *s) |
| static int | s (int n) |
This class regroups static methods needed to generate a pulse-level representation of an IEEE 802.15.4A UWB PHY frame using the mandatory mode (high PRF).
The main function of interest is static signalAndData generateIEEE802154AUWBSignal(simtime_t signalStart, bool allZeros=false).
Definition at line 44 of file IEEE802154A.h.
const short IEEE802154A::C31 [static] |
{
{ 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, 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, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
{ -1, 0, +1, -1, 0, 0, +1, +1, +1, -1, +1, 0, 0, 0, -1, +1, 0, +1, +1,
+1, 0, -1, 0, +1, 0, 0, 0, 0, -1, 0, 0 },
{ +1, +1, 0, 0, +1, 0, 0, -1, -1, -1, +1, -1, 0, +1, +1, -1, 0, 0, 0,
+1, 0, +1, 0, -1, +1, 0, +1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 },
}
Definition at line 65 of file IEEE802154A.h.
const IEEE802154A::config IEEE802154A::cfg_mandatory_16M [static] |
{
3,
NOMINAL_16_M,
NON_RANGING,
PSR_DEFAULT,
31,
16,
16,
850000,
16,
993.6E-9,
1023.64E-9,
512.82E-9,
2.003E-9,
32.05E-9,
71.5E-6,
4498
}
Definition at line 202 of file IEEE802154A.h.
const IEEE802154A::config IEEE802154A::cfg_mandatory_4M [static] |
{
3,
NOMINAL_4_M,
NON_RANGING,
PSR_DEFAULT,
31,
64,
4,
850000,
4,
3974.36E-9,
1023.64E-9,
512.82E-9,
2.003E-9,
8.01E-9,
286.2E-6,
4498
}
Definition at line 202 of file IEEE802154A.h.
short IEEE802154A::s_array [static] |
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0 }
Definition at line 76 of file IEEE802154A.h.
1.7.1