nRF51 SDK
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Architectural overview of BLE S110 Serialization. More...

Modules

 'HCI- Transport Layer - System integration'
 System integration overview of BLE S110 SoftDevice serialization.
 

Detailed Description

BLE S110 Serialization

The BLE S110 Serialization makes it possible to place a Bluetooth Application on an application chip and connect it to a connectivity chip running the BLE S110 SoftDevice.

Connectivity Chip: The nRF51822 chip running the BLE S110 SoftDevice.
Bluetooth Application Board: The nRF51822 chip running a serialized application, where the BLE S110 SoftDevice is replaced by the Commands Encoder and Events Decoder. The nRF51822 does not have the BLE S110 SoftDevice.

On the Bluetooth Application Board, the BLE S110 SoftDevice is replaced by a codec implementing the S110 SoftDevice API. All function calls to the codec will be serialized and transmitted to the BLE S110 Connectivity Chip using the Transport Layer and UART driver. This design makes it possible to substitute an existing layer, such as UART with SPI, without affecting the codec.

The BLE S110 Connectivity Chip will decode the serialized commands from the Bluetooth Application Board and execute the corresponding function in the S110 SoftDevice.
Any event from the S110 SoftDevice is encoded by the codec and transmitted to the Bluetooth Application Board using the the transport layer and UART.
On the Bluetooth Application Board the event is decoded and passed to the application.

BLE S110 Serialization simplifies the serialization of an existing Bluetooth application, since limited modifications are needed in the application itself. Serialization of an existing application requires Command Encoder, Event Decoder, HCI Transport and SLIP module which are used in the project instead of the S110 SoftDevice.

See Serialization 'Board Setup' on how to flash and wire a Bluetooth Application Board with a BLE S110 Connectivity chip.

architecture_overview_serialization.png
Architectural overview of Serialized Bluetooth Application.

HCI Transport Layer

The BLE S110 Serialization example transmits and receives commands, command responses, and events over UART.

In Bluetooth two UART transport layer protocols are commonly in use.

The Transport Layer for spec. 1.1, H4, is a very simple and lightweight transport layer, which works very well in noise-free environment and reliable UART.

The Transport Layer for specification 4.0 is more complex and overhead on the wire due to transmission of acknowledgement packets and re-transmissions. The use of acknowledgement packets make the transport layer more robust and reliable but it has associated costs in terms of larger code size, larger memory footprint. It also makes transmission duration longer because of retransmission.

A brief comparison between HCI Transport Layer for specification 1.1 and 4.0 can be seen in the table below.

HCI UART Transport Layer, v 1.1 (H4)HCI Transport Layer, v4.0
Simple Complex
Fast (No ACK packets) Slower (ACK packets)
Unreliable in noisy environments Very reliable (retransmission)
Smaller code/memory footprint Larger code/memory footprint

The BLE S110 Serialization examples provides the ability to use the reliable Three-wire Transport Layer, ver. 4.0.

The Three-wire Transport Layer offers reliable transport layer when developing a two chip solution where the nRF51822 is used as the connectivity chip. For the prototyping setup presented in 'Board Setup' , this solution ensures correct transmission and retransmission of packets even when long cables, high baud rates, and noisy environments are taken into consideration. This allows the developer to concentrate on developing the right application without concerns for the communication layer.

It guarantees reliable transfer of packets when connecting the nRF51822 chip to PC UART / USB-UART connectors, which can vary in reliability, especially at higher baud rates.

It is recommended during prototyping and/or early development of nRF51822 product, HCI Transport Layer V4.0 could be used. However after gaining confidence and ensuring robustness and reliability at application level for the final product, it is recommended to switch over to the HCI UART Transport Layer, H4.

The nRF51822 chip offers a reliable UART, even at high baud rates. Therefore acknowledgement of packets and retransmission can be disabled in order to reduce the memory/flash footprint and reduce power consumption. This can be achieved by removing the acknowledgement packets and retransmission from hci_transport.c .