IEEE 802.15.4 components. More...
IEEE 802.15.4 components.
The IEEE 802.15.4 standard describes radio communication for low-rate local wireless networks, operating in different frequency bands, modulations and MACs; all of these have been extended over time in revisions of the standard. It also describes topologies and roles of devices (eg. a PAN coordinator that is a FFD (Full Function Device) and RFDs (Reduced Function Devices) and clusters that use different PAN IDs to keep their traffic apart), without prescribing how they are formed or managed.
Common frequencies used are the 868 MHz band (one channel, in Europe), the 915 MHz band (10 channels, in America) and the 2.4GHz band (16 channels); several more are defined between 169MHz and 9GHz.
The standard describes several MACs that govern when to send and to listen, as well as operation modes building on them; the choice of these involves the trade-offs between power consumption, complexity and latency, as it governs how much time devices can spend with their radios powered down. Some operation modes support channel hopping to avoid frequencies used by others. Common variations are:
A comprehensive introduction to these is available in Towards the Internet of Relevant Things: The IEEE 802.15.4e Standard presented Anastasi et al. at the ACM Symposium on Applied Computing 2016.
Some MACs are established outside of the standard but either relevant for context or because they are used in RIOT:
"submac": A mode between "YOLO" and nonbeacon-enabled mode, in which a consistent set of components common to many specified MACs (CSMA-CA, retransmissions, acknowledgements) is implemented.
It is similar to nonbeacon mode, but lacks that mode's provisions for discovery (in which devices ask for beacons to be sent) and others.
Due to the variation both in the 802.15.4 internal layer and the protocols used on top of it, applications always need to pick their components; that selection is often guided by standards or organizations that pick an interoperable set of components (higher-level protocol, MAC, band and others), like Thread (6LoWPAN, nonbeacon-enabled, 2.4GHz), WirelessHART (HART, TSCH, 2.4GHz) or 6TiSCH (6LoWPAN, TSCH).
One way of using the 802.15.4 layer in RIOT is by 6LoWPAN, which provides IPv6 connectivity atop of it. In these setups, the GNRC network stack is used, and details like band or short addresses are configured manually at build time (CONFIG_IEEE802154_DEFAULT_PANID etc.) or at runtime (eg. through
ifconfig). Boards using a radio driver that is already ported to IEEE802.15.4 SubMAC layer are used in "submac" mode; all others use whatever their driver provides (varying from "YOLO" to some features of "submac").
|IEEE 802.15.4 frame headers and definitions|
|IEEE 802.15.4 header definitions and utility functions. |
|IEEE 802.15.4 security|
|IEEE 802.15.4 security header. |
|IEEE802.15.4 SubMAC layer|
|This module defines a common layer for handling the lower part of the IEEE 802.15.4 MAC layer. |