PSoC
®
Creator™ Component Datasheet
Bluetooth Low Energy (BLE)
3.0
Features
Bluetooth v4.2 compliant protocol stack
Generic Access Profile (GAP) Features
□
□
□
□
□
Broadcaster, Observer, Peripheral and Central roles
Supports role reversal between Peripheral and Central
User-defined advertising data
Bonding support for up to four devices
Security modes 1 and 2
Generic Attribute Profile (GATT) Features
□
□
GATT Client and Server
16-, 32-, and 128-bit UUIDs
Special Interest Group (SIG) adopted GATT-based Profiles and Services, and quick
prototype of new profile design through intuitive GUI Custom Profile development;
Support of Bluetooth Developer Studio Profile format
Security Manager features
□
□
Pairing methods: Just works, Passkey Entry, Out of Band, Numeric Comparison
Authenticated man-in-the-middle (MITM) protection and data signing
Logical Link Adaption Protocol (L2CAP) Connection Oriented Channel
Link Layer (LL) Features
□
□
□
□
Master and Slave role
128-bit AES encryption
Low Duty Cycle Advertising
LE Ping
Cypress Semiconductor Corporation
• 198 Champion Court • San Jose, CA 95134-1709 • 408-943-2600
Document Number: 002-09833 Rev. **
Revised December 22, 2015
Bluetooth Low Energy (BLE)
PSoC
®
Creator™ Component Datasheet
General Description
The Bluetooth Low Energy (BLE) Component provides a comprehensive GUI-based
configuration window to facilitate designing applications requiring BLE connectivity. The
Component incorporates a Bluetooth Core Specification v4.2 compliant protocol stack and
provides APIs to enable user applications to access the underlying hardware via the stack.
When to use the BLE Component
BLE is used in very low power network and Internet of Things (IoT) solutions aimed for low-cost
battery operated devices that can quickly connect and form simple wireless links. Target
applications include HID, remote controls, sports and fitness monitors, portable medical devices
and smart phone accessories, among many others that are being added to a long list of BLE
supporting solutions.
SIG adopted Profiles and Services
The BLE Component supports numerous SIG-adopted GATT-based Profiles and Services. Each
of these can be configured for either a GATT Client or GATT Server. The Component generates
all the necessary code for a particular Profile/Service operation, as configured in the component
Configure dialog.
The component can also support several Profiles at a time by adding the required Services of a
Profile to a base Profile. For example, you can select HID as a base Profile. Then to add a Find
Me Profile, add the Immediate Alert Service to the HID Profile.
See
BLE Service-Specific APIs
for a list of supported Profiles and Services.
Comprehensive APIs
The BLE Component provides application-level APIs to design solutions without requiring
manual stack level configuration. The
BLE Component API documentation
is also provided in a
separate HTML-based file.
Custom Profiles
You can create custom Profiles that use existing Services, and you can create custom Services
with custom Characteristics and Descriptors. There are no restrictions for GAP roles for a
custom Profile.
Debug Support
For testing and debugging, the Component can be configured to HCI mode through a
Component embedded UART. For over-the-air verification, Cypress CySmart Central Emulation
Tool can be used for generic Bluetooth host stack emulation. To launch this tool, right click on
the Component to bring up the context menu, and choose to deploy the CySmart Central
Emulation Tool.
Page 2 of 540
Document Number: 002-09833 Rev. **
PSoC
®
Creator™ Component Datasheet
Bluetooth Low Energy (BLE)
BLE Component Architecture
The BLE Component consists of the BLE Stack, BLE Profile, BLE Component Hardware
Abstraction Layer (HAL), and the Link Layer. The following figure shows a high-level architecture
of the BLE Component, illustrating the relationship between each of the layers and the route in
which the application interacts with the Component. Note that the application is informed of the
BLE events through the use of callback functions. You may build your state machine using
these. Refer to the
Callback Functions
section for more details.
I/O interface to
external resources
Profile specific interface
(e.g., heart rate sensor)
Application
BLE Component
GUI
GATT DB
BLE API
GAP/GATT API
Stack
Host
GAP/GATT
Manager
Event Scheduler
Controller
SW Timer
HCI
ISR
HAL
ISR
HW
UART
BLESS
Document Number: 002-09833 Rev. **
Timer API
Profile API
Process Event call
Page 3 of 540
Bluetooth Low Energy (BLE)
PSoC
®
Creator™ Component Datasheet
The following sub-sections give an overview of each of these layers.
BLE Stack
The BLE stack implements the core BLE functionality as defined in the Bluetooth Core
Specification 4.2. The stack is included as a precompiled library and it is embedded inside the
BLE Component.
The BLE stack implements all the mandatory and optional features of Low Energy Single Mode
compliant to Bluetooth Core Specification 4.2. The following table shows which Bluetooth Core
Specification 4.2 features are supported by different devices.
Features
LE Secure connection
LL Privacy
LE Data Length Extension
-
-
Devices with Bluetooth 4.1
Devices with Bluetooth 4.2
The BLE Stack implements a layered architecture of the BLE protocol stack as shown in the
following figure.
BLE Stack
Generic Access Profile (GAP)
Generic Attribute Profile (GATT)
Attribute Protocol (ATT)
Security Manager (SM)
Host
Logical Link Control and Adaption Protocol (L2CAP)
Host Control Interface (HCI)
Link Layer (LL)
Physical Layer (PHY)
Controller
Generic Access Profile (GAP)
The Generic Access Profile defines the generic procedures related to discovery of Bluetooth
devices and link management aspects of connecting to Bluetooth devices. In addition, this profile
includes common format requirements for parameters accessible on the user interface level.
Page 4 of 540
Document Number: 002-09833 Rev. **
PSoC
®
Creator™ Component Datasheet
Bluetooth Low Energy (BLE)
The Generic Access Profile defines the following roles when operating over the LE physical
channel:
Broadcaster role:
A device operating in the Broadcaster role can send advertising
events. It is referred to as a Broadcaster. It has a transmitter and may have a receiver.
Observer role:
A device operating in the Observer role is a device that receives
advertising events. It is referred to as an Observer. It has a receiver and may have a
transmitter.
Peripheral role:
A device that accepts the establishment of an LE physical link using any
of the connection establishment procedures is termed to be in a "Peripheral role." A
device operating in the Peripheral role will be in the "Slave role" in the Link Layer
Connection State. A device operating in the Peripheral role is referred to as a Peripheral.
A Peripheral has both a transmitter and a receiver.
Central role:
A device that supports the Central role initiates the establishment of a
physical connection. A device operating in the "Central role" will be in the "Master role" in
the Link Layer Connection. A device operating in the Central role is referred to as a
Central. A Central has a transmitter and a receiver.
Generic Attribute Profile (GATT)
The Generic Attribute Profile defines a generic service framework using the ATT protocol layer.
This framework defines the procedures and formats of services and their Characteristics. It
defines the procedures for Service, Characteristic, and Descriptor discovery, reading, writing,
notifying, and indicating Characteristics, as well as configuring the broadcast of Characteristics.
GATT Roles
GATT Client: This is the device that wants data. It initiates commands and requests
towards the GATT Server. It can receive responses, indications, and notifications data
sent by the GATT Server.
GATT Server: This is the device that has the data and accepts incoming commands and
requests from the GATT Client and sends responses, indications, and notifications to a
GATT Client.
The BLE Stack can support both roles simultaneously.
Attribute Protocol (ATT)
The Attribute Protocol layer defines a Client/Server architecture above the BLE logical transport
channel. The attribute protocol allows a device referred to as the GATT Server to expose a set of
attributes and their associated values to a peer device referred to as the GATT Client. These
attributes exposed by the GATT Server can be discovered, read, and written by a GATT Client,
Document Number: 002-09833 Rev. **
Page 5 of 540