Stack Integration

The reference implementation of IEEE802.15.4e provided here is part of the OpenWSN stack implementation. Now, while the IEEE802154E.c file does not contain any hardware-dependent functions, it does depend on a couple of modules around it, which we list in this page.

Overview

The image on the right shows the stack organization of OpenWSN. While you can use the IEEE802.15.4e in a different stack/OS, this figure gives you a clear idea of what needs to go "around" IEEE802.15.4e, in terms of layers and modules.

The link layer consists of two sublayers:

In the source code, you will find a folder structure which mimics the layers at openwsn.

Dependencies

The reference code for the IEEE802.15.4e is at IEEE802154E.c. It calls functions from the different modules. These are implemented in OpenWSN. You're free to either reuse them, or implement them in your stack/OS. Most likely, you'll already have very similar functionality.

radio

The radio driver and IEEE802.15.4e work close together because they create the interface between the stack and the hardware. This module is detailed in TschRadio.

ieee154etimer

The timer and IEEE802.15.4e work close together since many of the function calls have to be tightly timed. This module is detailed in TschTimer.

IEEE802154

This module 's only functionality is to parse and add IEEE802.15.4 headers. It contains no state. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

openqueue

This module manages a pool of OpenQueueEntry_t buffers. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

idmanager

This module keeps track of the mote's addresses. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

openserial

This module is used to print messages through the serial port. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

schedule

This module stores the IEEE802.15.4e schedule. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

sixtop

This module manages the IEEE802.15.4e schedule and serves as a pass-through between IEEE802.15.4e and the upper layer. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

packetfunctions

This module is a container for miscellaneous useful functions. It does not contain any state. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at:

leds

This module drives the LEDs of the board. It implements the following functions IEEE802.15.4e calls:

For a detailed description of this module, look at: