Skip to content

OSNP over IEEE 802.15.4

briksoftware edited this page May 11, 2014 · 18 revisions

Introduction

OSNP over IEEE 802.15.4 is designed for embedded and possibly battery powered devices. It provides a way to exchange OSNP Application Layer messages over an IEEE 802.15.4-2003 interface.

The protocol is designed to work with any IEEE 802.15.4-2003 (or above) transceiver, and maintains its frame structure, although it redefines some of its MAC Commands to better fit the needs of an OSNP network.

Security is defined according the IEEE 802.15.4-2003 standard, with additional commands meant to make session persistence resistant to sudden power losses or other events.

If you are not familiar with OSNP yet, please read the OSNP Application Layer specifications first. If you are not familiar with IEEE 802.15.4-2003 standard, I suggest you read that first, but most concepts will be repeated here.

Network structure

In a 802.15.4 network a device must assume the role of PAN (Personal Area Network) coordinator, which controls communication between all other devices and allocates short addresses. In an OSNP network, this role is performed by the Hub. The Hub always starts a non-beacon enabled PAN. This allows battery powered devices to save power by determining their own duty cycle independently.

Each PAN has its own 2-bytes identifier, which must be unique in the radio range of the hub and its associated devices.

Devices communicate with the hub by exchanging frames.

Encoding rules

Unlike most network protocols, the IEEE 802.15.4 header fields are encoded using little-endian.

Frame structure

The frame structure is according the IEEE 802.15.4-2003 standard. This was a practical choice, since many compatible transceiver supporting this frame format exist on the market. In the 2006 version of the standard the security header has been redefined. Since most 802.15.4-2003 transceiver offer hardware encryption/decryption support and many support only the older header format, we decided to use that.

The frame structure is as follow:

Octects: 2 1 0/2 0/2/8 0/2 0/2/8 variable 2
Frame control Sequence Number Destination PAN Destination Address Source PAN Source Address Payload

Clone this wiki locally