Overview

This section describes the functionality of the Bluetooth Low Energy protocol stack and provides a list of APIs to interface with the protocol stack. The stack project and its associated files serve to implement the Bluetooth low energy protocol stack task. This is the highest priority task in the system and it implements the Bluetooth Low Energy protocol stack as shown in Figure 37.

Most of the Bluetooth Low Energy protocol stack is object code in a single library file (TI does not provide the protocol stack source code as a matter of policy). A developer must understand the functionality of the various protocol stack layers and how they interact with the application and profiles. This section explains these layers.

Introduction

Attention

The CC23xx platform is still under development and some of the features mentioned on this page might not be available yet. Make sure to review the release notes of the SimpleLink Low Power F3 SDK for a complete overview of the features currently supported.

Bluetooth Core Specifications Version 5.3 allows for two systems of wireless technology: Basic Rate (BR: BR/EDR for Basic Rate/Enhanced Data Rate) and Bluetooth Low Energy. The Bluetooth Low Energy system was created to transmit small packets of data, while consuming significantly less power than BR/EDR devices.

The TI BLE Protocol stack supports the following Bluetooth Core Specifications Version 5.3 features:

  • Periodic Advertising

  • Randomized Advertising Channel Indexing

As well as legacy features from previous versions:

  • 2 Msym/s PHY for LE

  • LE Long Range

  • High Duty Cycle Non-Connectable Advertising

  • LE Advertising Extensions

  • LE Channel Selection Algorithm #2

  • LE Secure Connections

  • LE Data Packet Length Extension

  • LE Privacy

  • LE L2CAP Connection-Oriented Channel Support

  • LE Link Layer Topology

  • LE Ping

  • Peripheral Feature Exchange

  • Connection Parameter Request

Platform Devices Comparison

The Bluetooth LE features available to developers depends on the CC23xx platform device selected and its configuration. The tables below present a comparison of the devices and the features available for each of them.

Table 7. Comparison of the CC23xx platform devices

CC2340R2

CC2340R5

CC2340R5-Q1

NetWork Processor (NWP) support

Yes

Yes

Yes

RTOS

FreeRTOS

FreeRTOS

FreeRTOS

Bluetooth LE roles

Peripheral

Yes

Yes

Yes

Broadcaster

Yes

Yes

Yes

Central

No

Yes

Yes

Observer

No

Yes

Yes

Multi-role

No

Yes

Yes

Security

AES-128, RNG

AES-128, RNG

AES-128, RNG

Maximum Tx Power

+8 dBm

+8 dBm

+8 dBm

OAD

on-chip single image

No

No

No

on-chip dual image

No

Yes

Yes

off-chip

Yes

Yes

Yes

Simultaneous connections *

1 (Up to 2 connections for NWP configuration)

4 (Up to 5 connections for NWP configuration)

4 (Up to 5 connections for NWP configuration)

* The maximum number of Bluetooth LE connections also depends on the RAM size left by the application.

Table 8. Comparison of the Bluetooth LE features supported by the CC23xx platform devices

Core Specifications

Feature

CC2340R2

CC2340R5

CC2340R5-Q1

v4.2

All

Yes

Yes

Yes

v5.0

LE 2M PHY

Yes

Yes

Yes

LE Coded PHY

No

Yes

Yes

LE Advertising Extensions

No

Yes

Yes

High Duty Cycle Non-Connectable Advertising

Yes

Yes

Yes

LE Periodic Advertising

No

Yes

Yes

LE Channel Selection Algorithm #2

Yes

Yes

Yes

v5.1

Connection-less AoA/AoD

No

Yes - AoA Only

Yes - AoA Only

Connection-oriented AoA/AoD

No

Yes - AoA Only

Yes - AoA Only

Advertising Channel Index Changes

Yes

Yes

Yes

Bluetooth Low Energy Protocol Stack Basics

../_images/image4.jpeg

Figure 37. Bluetooth Low Energy Protocol Stack.

Figure 37. shows the Bluetooth Low Energy protocol stack architecture.

The Bluetooth Low Energy protocol stack (or protocol stack) consists of the controller and the host. This separation of controller and host derives from the implementation of classic Bluetooth BR/EDR devices, where the two sections are implemented separately. Any profiles and applications sit on top of the GAP and GATT layers of the protocol stack.

The physical layer (PHY) can be either 1-Mbps or 2-Mbps adaptive frequency-hopping GFSK (Gaussian frequency-shift keying) radio operating in the unlicensed 2.4-GHz ISM (industrial, scientific, and medical) band.

The Generic Access Profile (GAP) controls the RF state of the device, with the device in one of five states:

  • Standby

  • Advertising

  • Scanning

  • Initiating

  • Connected

Advertisers transmit data without connecting, while scanners scan for advertisers. An initiator is a device that responds to an advertiser with a request to connect. If the advertiser accepts the connection request, both the advertiser and initiator enter a connected state. When a device is connected, it connects as either Central or Peripheral. The device initiating the connection becomes the Central and the device accepting the request becomes the Peripheral.

See the BLE Stack API Reference for HCI layer API. The HCI layer provides communication between the host and controller through a standardized interface. This layer can be implemented either through a software API or by a hardware interface such as UART, SPI, or USB (See Production and Direct Test Mode (PTM, DTM) for example). The Bluetooth Core Specifications Version 5.3 describes Standard HCI commands and events. TI’s proprietary commands and events are specified in the TI Vendor Specific HCI Guide.

The Logical Link Control and Adaptation Layer Protocol (L2CAP) layer provides data encapsulation services to the upper layers, allowing for logical end-to-end communication of data.

The Security Manager layer defines the methods for pairing and key distribution, and provides functions for the other layers of the protocol stack to securely connect and exchange data with another device.

The Generic Access Profile (GAP) layer directly interfaces with the application and/or profiles, to handle device discovery and connection-related services for the device. GAP handles the initiation of security features.

The ATT layer allows a device to expose certain pieces of data or attributes, to another device. The Generic Attribute Profile (GATT) layer is a service framework that defines the sub-procedures for using ATT. Data communications that occur between two devices in a Bluetooth Low Energy connection are handled through GATT sub-procedures. The application and/or profiles will directly use GATT.