31-08-2016, 11:57 AM
1451715718-70005191B1.pdf (Size: 922.91 KB / Downloads: 5)
This chapter introduces the Microchip RN4020 Bluetooth Low Energy module which
also includes some fundamentals concepts of Bluetooth Low Energy (BLE).
The RN4020 Bluetooth® Low Energy Module is a single mode Bluetooth Smart module
that complies with Bluetooth Core Specification v4.1.
Through its high-speed UART interface, this module can be configured to act as either
a central or peripheral role when establishing a connection. This module supports 13
public profiles and 17 public services, which are adopted by the Bluetooth Special
Interest Group (SIG).
For all supported profiles and services, the RN4020 module can be configured to act
as server and client roles at the same time. Furthermore, the RN4020 module supports
the private Microchip Low-energy Data Profile (MLDP), which provides an
asynchronous serial data connection between two RN4020 devices.
Finally, the Microchip RN4020 module also supports a user-defined private profile/service,
which can precisely fit a user's particular application. All configurations will be
saved in on-board non-volatile memory (NVM), so users need to set up the module only
once.
The Microchip RN4020 module is easy to use and provides users with a fast-to-market,
flexible, and powerful solution for BTLE technology.
1.1 BLUETOOTH LOW ENERGY FUNDAMENTALS
All BTLE device roles are built on top of the Generic Accessory Profile (GAP), which
defines the devices to be either Central, Peripheral, Observer or a Broadcaster. When
two BTLE devices need to establish a connection, one is in a central role and the other
in a peripheral role. Only central role devices can initiate a connection to peripheral role
devices. Likewise, peripheral devices are not allowed to initiate connections. The
peripheral advertises its connection status, while the central device starts the connection
process. Once connected, either end of the connection can initiate the bond. Once
bonded, all security-related keys will be saved and the security process will be waived
when reconnecting. The bonded peripheral device can only perform direct advertise;
therefore, it is no longer able to connect to devices other than its bonded peer.
Similar to Bluetooth Classic, BTLE uses the concept of profiles to ensure interoperability
between different devices. However, unlike Bluetooth Classic, BTLE profiles are a
collection of services. All BTLE services are built on top of the Generic Attribute Profile
(GATT), where GATT defines the accessibility of attributes, which are called characteristics.
Therefore, the main functionality of BTLE profiles is built around these characteristics.
Devices that maintain the value of characteristics in a service are the “server”
of the service. Conversely, devices that acquire data from their peer are considered the
“client”.
Each service and its characteristics are identified by their Universally Unique Identifier
(UUID). The UUID can either be short form (16-bit) or long form (128-bit). All Bluetooth
SIG adopted services and characteristics have a short UUID, whereas a user-defined
private UUID must be in long form. For information on the Bluetooth SIG adopted
services and characteristics, visit the Bluetooth Developer Portal at:
RN4020 Bluetooth Low Energy Module User’s Guide
DS70005191B-page 14 2014 Microchip Technology Inc.
https://developer.bluetoothgatt/profiles...sHome.aspx.
The accessibility of each characteristic is defined by the 8-bit characteristic property in
bitmap format, as shown in Table 1-1.
TABLE 1-1: CHARACTERISTIC PROPERTIES
Property Bitmap Description
Extended Property(1) 0‘b10000000 Additional property available.
Authenticated Write(1) 0‘b01000000 Write characteristic with authentication from client to server.
Indicate 0‘b00100000 Indicate value of characteristic with acknowledgment from server to client.
Notify 0‘b00010000 Notify value of characteristic without acknowledgment from server to client.
Write 0‘b00001000 Write value of characteristic with acknowledgment from client to server.
Write Without Response 0‘b00000100 Write value of characteristic without acknowledgment from client to server.
Read 0‘b00000010 Read value of characteristic. Value is sent from server to client.
Broadcast(1) 0‘b00000001 Broadcast value of characteristic.