Tuesday, January 13, 2015

Nordic nRF51 IoT (Internet of Thing) SDK Introduction



Following contents quoted from Nordic released information
http://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF51-IoT-SDK

Overview
This SDK is a complete IPv6 capable Bluetooth® Smart software stack with examples for the nRF51 Series SoCs. It supports the Internet Protocol Support Profile (IPSP) and also supports 6LoWPAN over Bluetooth Smart.

Internet of Things, IPv6 and Bluetooth Smart
Up until now Bluetooth Smart enabled products have been able to connect to the Internet via gateway devices such as a smartphone or tablet, see fig 1. 
In this scenario the App in the gateway device carries out the necessary task of bridging Bluetooth
Smart to IP-based messages for internet communication to the cloud.
It is desirable to have ‘things’ that can communicate with other‘things’ using native IP directly.
In this scenario Bluetooth Smart devices can connect directly to the Internet via Bluetooth smart enabled headless routers, see fig 2.



       



KEY FEATURES 6LoWPAN and IPSP library:
6LoWPAN compression/decompression.
6LoWPAN Node role.
Packet flow control.
IPv6 prefix management.
Can use a third-party IPv6 stack
Nordic’s IPv6 stack:
Support for multiple IP addresses
ICMPv6 module
UDP socket APIs
Nordic’s CoAP library:
CoAP message types CON, NON, ACK, and RESET
Token matching on responses to a local client generated
request
Endpoint creation as resources
Automatic lookup of requested endpoint on remote request
Endpoint resource function callback
Endpoint permission setting

APPLICATIONS:

Internet of Things applications
IPv6 significantly expands the number of available IP addresses for use and makes available 2128 addresses. This means that ifnecessary every device can have its own unique IPv6 address.
Standards such as 6LoWPAN have made it possible to integrate sensors in a transport agnostic manner. 6LoWPAN enables sensors to talk to IP Protocols natively. Furthermore, new application layer protocols such as Constrained Application Protocol (CoAP), and Message Queue Telemetry Transport
(MQTT) etc., ensure optimal use of bandwidth and resources of constrained sensors.
Bluetooth Smart is an open standard that is specifically designed for the needs of battery powered sensors and wearables, and now powered with the 6LoWPAN IETF draft Bluetooth Smart is well
placed to address evolving needs of sensors connecting to the cloud without the need for intelligent gateways.

Heterogeneous IP networks and Bluetooth Smart
This SDK allows development of Bluetooth Smart applications that form a part of heterogeneous IP networks. These networks can be solely between ‘things’, between ‘things’ and the cloud,
and between ‘things’ via the cloud. Native IP with Bluetooth Smart means there can be seamless communication via headless routers that support a number of different transport and physical

layers such as Bluetooth Smart, 802.15.4, WiFI etc, see fig 3.



Integrating various wired and wireless technologies using Internet protocols and IPv6 is not just to enable sensors to talk a common language with the cloud, but also with sensors that may or may not be connected to the Internet of Things using the same physical transport as the other sensors. These heterogenous IP networks will likely be comprised of various technologies that employ IP for communication and could be Bluetooth Smart, 802.15.4, WiFi etc.


nRF51 IoT SDK IPv6 stack
Internet Protocol Support Profile (IPSP) and Bluetooth Smart 6LoWPAN standard ensures optimal IP stack performance over Bluetooth Smart as a physical layer. 6LoWPAN defines the creation an IPv6 address of a device from its Bluetooth Smart device address. It also compresses the IP header where possible
to ensure optimal use of RF bandwidth for power saving purposes. 6LoWPAN also defines roles called the 6LN (6LoWPAN node), 6LR (6LoWPAN Router) and 6LBR (6LoWPAN Border router). 
The nRF51 IoT SDK supports 6LN role only. The examples use a Raspberry Pi in the 6LBR role and this is fully covered in the supporting documentation. While the documentation describes Raspberry PI, any Linux based computing system could be setup for the purpose. IPSP defines establishing and managing the
L2CAP connection oriented channel.The various layers of IPv6 are mapped to enable an IPv6 enabled Bluetooth Smart node on the nRF51 Series SoC, see fig 4.

Layers marked in red are commonly referred to as an IP stack. Nordic provides an implementation of IP stack (without TCP). It is acknowledged that there may be reasons to use other embedded
IP stacks. Therefore, by design the nRF51 IoT SDK provides clear interfaces to port any third party IPv6 stack to an nRF51 Series device. As an example of such a third party port, Lightweight IP (lwIP)
is ported to nRF51 Series SoC with examples for UDP and TCP.

A CoAP library referred to as nCoAP is supplied with the SDK. This library provides implementation of Client and Server with the ability to play concurrent roles. The library is designed to be agnostic of IP stack used as transport and can be used with Nordic’s IPv6 stack, lwIP stack or any other stack implementation ported to the nRF51 Series SoC. An example implementation of MQTT over lwIP TCP
transport is included in the SDK. This implementation assumes lwIP TCP application interface and is not
transport agnostic. All examples in the SDK that require TCP as transport use the lwIP IPv6 stack.

nRF51 IoT SDK and SoftDevice
LE L2CAP connection oriented channels provide an optimal logical transport to transmit IPv6 packets which may not fit into the default application level MTU of 23 bytes. LE Credit Mode, the mode defined for connection oriented channels for Bluetooth Smart, provide in-built mechanism of segmentation and
reassembly of IPv6 packets and provide flow control mechanism.
LE Credit Mode was adopted as a part of Bluetooth 4.1 core specification. Implementation of this feature is provided by the SoftDevice that is distributed with the nRF51 IoT SDK. This SoftDevice can play GAP peripheral role only.

Above contents quoted from Nordic, we would suggest all readers to visit Nordic website for more detail information.









No comments:

Post a Comment