Medium Access Technologies

One of two MACs can be chosen: Single channel (SC / CSMA) and time-slotted multiple channel frequency hopping (TSCH). TSCH utilize 16 channels in the 868 MHz band, 50 channels in the 915 MHz band and 20 channels in the 920 MHz band.

Regulatory limitations to the use of these modules and which MAC modes are used are shown in the table below.

Type

868 MHz band

915 MHz band

SC, Power=14 dBm

All 34 channels possible

Output power must be adjusted to below
-1 dBm for this to be FCC compliant
(§15.249)

SC, Power=27 dBm

Only channel 32 (869.525 MHz)

Output power must be adjusted to below
-1 dBm for this to be FCC compliant
(§15.249)

TSCH, Power=14 dBm

Hops on 14 of 16 channels
(Adaptive Frequency Agility
remove the 2 worst channels)
Hops in 50 channels to be compliant
to FCC §15.247

TSCH, Power=27 dBm

Not applicable

Hops in 50 channels to be compliant
to FCC §15.247

See chapter Single Channel or TSCH? for more details on single channel vs TSCH frequency hopping.

RIIM comes in two MAC flavours:

  • Single channel (CSMA)
    • Single configurable channel operation

    • Asynchronous: nodes can talk at any time

    • Listen-before-talk to minimise collisions

    • Border and mesh routers are always listening on radio

  • TSCH (Time slotted channel hopping, announced in release 1.2.0 of SDK)
    • Multi-channel operation

    • Synchronous: nodes are globally synchronized and can only talk during assigned slots

    • Increased QoS due to less chance of interference

    • Enables the possibility of battery-operated routers

Single Channel

RIIM implements single channel CSMA mode. In this mode, all communication happens on one channel. This channel is set in ICI using Network.setChannel() and must be the same for all nodes in the network. Unless in sleep or TX mode, the nodes are always listening for incoming packets. Before transmission, a check on whether other traffic on the same channel is ongoing. In that case, transmission is delayed to avoid collisions.

The «always listen» and single frequency nature of single channel makes data latency low and joining of nodes fast. Single channel provides the best data throughput.

Limitations

As it only runs in single channel, it’s prone to interference/jamming on that same channel and collisions from other parts of the same network. Sleeping nodes aren’t able to hear incoming data, and scheduling of wake-up must be done in the ICI application.

TSCH

RIIM implements TSCH as specified in the IEEE 802.15.4-2015 standard. In TSCH, the nodes form a globally synchronized network. The network broadcast beacons containing time synchronization information to let other nodes synchronize. Child nodes continuously correct their relative clock drift to their parent through timing information embedded in acknowledgement packets

The way nodes talk to each other can be seen in the figure below. The colours denote the radio channel used in a slot. The airtime is divided into a continuously repeated set of slots and a node is only allowed to communicate during its assigned slots.

Within a slot there is time to transmit data and receive an acknowledgement from the destination. Communication will happen on different channels for each repetition of the same slot, and therefore if a packet is lost due to RF interference, its retransmission may be more likely to succeed in the next slot repetition since it will be sent on a different channel.

TSCH is suited for low power networks in demanding environments; the nodes can sleep most of the time and only wake up during their assigned slots, and RF interference is mitigated through channel hopping.

TSCH Time Schedule

TSCH Time Schedule. The colours denote the radio channel used in a slot.

Joining and Beacons

The join procedure is a two-step process. First the joining node must synchronize to the network to obtain the time schedule and timeslot information etc. Without this information, the node can’t talk to the network at all. As mentioned earlier, this information is communicated through beacons. The beacons are broadcasted from all nodes on any channel at a user configurable rate. The joining node scan channels at random until it hears a beacon. This crucial first step in the join process, finding a beacon, is the major contributing factor affecting the network join time. How fast the joining node finds a beacon depends on the following:

Beacon Broadcast Rate

When beacons are transmitted frequently, the joining node is more likely to find one. The broadcast rate is user configurable through ICI and can be set by calling Network.setTschMaxBrodcastRate() . Frequent broadcasting will improve join time at the expense of generating more network traffic and increase power consumption. The beacon broadcast rate can be changed dynamically during operation. To enable smooth joining while keeping low power consumption over time, a small broadcast rate (for example one second) can be set at joining, while a longer beacon broadcast rate can be set when network is stable.

Number of Connected Nodes Within the Range of the Joining Node

Since nodes in the existing network are all transmitting beacons, the joining node is more likely to find a beacon if there are many connected nodes nearby.

The Number of Radio Channels

The beacons are spread on all radio channels, and therefore with many channels the joining node is less likely to find a beacon on the channel it’s scanning. The channel count depends on the configured frequency band (also configurable through ICI).See chapter Frequency and output power for details.

Active or Passive Mode

When using TSCH, the user can choose between 4 predefined network settings. These are

  • TSCH_LOW_POWER

  • TSCH_BALANCED

  • TSCH_LOW_LATENCY

  • TSCH_HIGH_THROUGHPUT_SENSOR_DATA

These all selects parameter values that balance performance vs power usage. TSCH_HIGH_THROUGHPUT_SENSOR_DATA uses TSCH active mode, while the other settings uses passive mode.

In the active mode the mesh nodes transmit packets at their designated time slot and so it must also listen in slots were it has neighbors of interest. This puts the node in RX mode most of the time and thus have higher current consumption but also higher throughput and potentially lower latency.

In passive mode it’s the opposite; the mesh nodes use own their time slot to listen for packets, and other nodes’ time slot to transmit packets.. This optimize the battery lifetime of the mesh routers, while sacrificing some latency and maximum network throughput. The passive mode is also referred to as sleepy mesh.

Listen Before Talk

Before a transmission, the nodes listen to make sure the channel is free to use. This is called Listen Before Talk (LBT). When a node find the channel busy, the transmission is postponed until the next available timeslot. LBT is to prevent collision with external sources, and not within the network itself. This is due to the nodes being tightly synchronized and so two nodes will listen in the exact same period (both thereby considering the channel as available) before transmitting.

Adaptive Frequency Agility

The 868 MHz band integrate a feature where active channels with external interference are replaced with other channels of higher quality. The channel quality statistics is continuously updated and when a channel is deemed bad, it’s swapped, and the updated channel list information is distributed to all nodes in the network which adjust their internal channel list accordingly. This feature is called Adaptive Frequency Agility (AFA) and is only activate when the network operates in the 868 MHz band.

Time Synchronous Events

When using TSCH all nodes in the network are time synchronized. This can be used to effectively control if nodes in the network shall do simultaneous events or if the application requires event to have fixed offset in time between nodes. The border router acts as the main time source, and all child nodes in the network is therefore synchronized to the border router. The child nodes will automatically compensate for any drift with respect to the border router. All nodes in the network are aware of a common absolute time, enabling events to happen at the same time, and are also synchronized to within a few milliseconds of each other, enabling near instant action across the network. The absolute time is distributed across the network, and is the same for all nodes. In addition, there are Epoch and Time-of-Day (ToD), that can be calibrated (offset) to the absolute time. See the SDK reference manual for details.

A separate API called the Clock API provides ways to utilize this in an ICI application, and is described n the RIIM SDK User Manual and the RIIM API Reference Manual. The API provides methods for manipulating time, using 24-hour clocks, epoch-based time and enabling timed actions via callbacks.

As the Clock API is dependent on TSCH, it isn’t available for use when network is configured as Single Channel.

Limitations

Due to the synchronized nature of TSCH and the fact that nodes are only allowed to transmit at certain points in time, the TSCH variant of RIIM has a lower throughput and higher latency than single channel. The network join time is slower because the joining node must catch a beacon containing network synchronization information before it can talk to anyone in the network, as opposed to single channel, where the joining node can initiate the join process. Beacons are scheduled in time slots as other packets and hence there will be a slight decrease in network traffic capacity for application data since they’re competing for the same slots.

Single Channel or TSCH?

Here are some things to consider when choosing between single channel and TSCH.

  • Regulatory requirement is a non-negotiable factor. For FCC certification TSCH and frequency hopping is a requirement, while high output power in Europe require single channel usage.

  • TSCH enables battery powered routers

  • TSCH gives higher reliability as devices transmit on different timeslot and the probability of collisions are reduced.

  • TSCH supports time synchronous events

  • Single channel CSMA enables higher throughput and lower latency.

  • Single channel CSMA enables sleepy nodes by disabling them for extended time