an introduction to bluetooth low energy
TRANSCRIPT
![Page 1: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/1.jpg)
An Introduction toBluetooth low energyRobin Heydon, Senior Director, TechnologyQualcomm Technologies International, Ltd.
![Page 2: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/2.jpg)
2
What is Bluetooth low energyWhat are the important features?
How does it work?What are the next steps?
What is it good for today?What else can you do with it?
Agenda
![Page 3: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/3.jpg)
3
It is a new technology
blank sheet of paper design
optimized for ultra low power
different to Bluetooth classic
What is low energy?
![Page 4: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/4.jpg)
4
Yesefficient discovery / connection proceduresvery short packetsasymmetric design for peripheralsclient server architecture
Noreuse existing BR radio architecturereuse existing HCI logical and physical transportsreuse existing L2CAP packets
New Technology?
![Page 5: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/5.jpg)
5
Design for successable to discover thousands of devices in local areaunlimited number of slaves connected to a masterunlimited number of mastersstate of the art encryptionsecurity including privacy / authentication /
authorizationclass leading robustness, data integrityfuture proof
Basic Concepts
![Page 6: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/6.jpg)
6
Everything has STATEdevices expose their statethese are servers
Clients can use the state exposed on serversread it – get current temperaturewrite it – increase set point temperature for room
Servers can tell clients when state updatesnotify it – temperature up to set point
Basic Concepts
![Page 7: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/7.jpg)
7
Stack Architecture
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 8: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/8.jpg)
8
Physical Layer
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 9: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/9.jpg)
9
Uses 2.4 GHz ISM BandIndustrial Scientific Medical bandLicense Free – with certain rules2400 MHz to 2483.5 MHz
Used by many other standardsIEEE 802.11, IEEE 802.15and many proprietary radios
Physical Layer
![Page 10: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/10.jpg)
10
40 Physical ChannelsRF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Freq
uenc
y24
02 M
Hz24
04 M
Hz24
06 M
Hz24
08 M
Hz24
10 M
Hz24
12MH
z24
14 M
Hz24
16 M
Hz24
18 M
Hz24
20 M
Hz24
22 M
Hz24
24 M
Hz24
26 M
Hz24
28 M
Hz24
30MH
z24
32MH
z24
34MH
z24
36 M
Hz24
38 M
Hz24
40MH
z24
42 M
Hz24
44 M
Hz24
46MH
z24
48 M
Hz24
50 M
Hz24
52 M
Hz24
54MH
z24
56 M
Hz24
58 M
Hz24
60 M
Hz24
62 M
Hz24
64 M
Hz24
66MH
z24
68 M
Hz24
70 M
Hz24
72 M
Hz24
74 M
Hz24
76 M
Hz24
78 M
Hz24
80 M
Hz
f = 2402 + 2·k MHz
![Page 11: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/11.jpg)
11
GFSK Modulationbit period product BT = 0.5modulation index = 0.5 ± 0.05
PHY Bandwidth = 1 million bits / seconds
Why GFSK?“pulse shaping”Gaussian filter smoothes transitions from zero to onereduces spectral width
Modulation
0 1
![Page 12: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/12.jpg)
12
2.4 GHz GFSKModulation Index = ~0.5
40 channels2 MHz channel spacing2402 MHz to 2480 MHz
Range50m to further than 150 m
PHY Summary
![Page 13: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/13.jpg)
13
Layer Layer
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 14: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/14.jpg)
14
Link Layer State Machinecan have multiple state machines active in device
Link Layer ChannelsAdvertising Channels & Data ChannelsAdvertising Packets & Data Packets
Link Layer Control Procedures
Link Layer (LL)
![Page 15: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/15.jpg)
15
Scanning
Standby
Connection
Advertising Initiating
Slave Master
Link Layer State Machine
![Page 16: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/16.jpg)
16
Advertising ChannelsAdvertising Channel PacketsUsed for Discoverability / ConnectabilityUsed for Broadcasting / Observing
Data ChannelsData Channel PacketsUsed to send application data in Connection
Two Types of Channels
![Page 17: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/17.jpg)
17
Link Layer ChannelsLL 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
Freq
uenc
y24
02 M
Hz24
04 M
Hz24
06 M
Hz24
08 M
Hz24
10 M
Hz24
12MH
z24
14 M
Hz24
16 M
Hz24
18 M
Hz24
20 M
Hz24
22 M
Hz24
24 M
Hz24
26 M
Hz24
28 M
Hz24
30MH
z24
32MH
z24
34MH
z24
36 M
Hz24
38 M
Hz24
40MH
z24
42 M
Hz24
44 M
Hz24
46MH
z24
48 M
Hz24
50 M
Hz24
52 M
Hz24
54MH
z24
56 M
Hz24
58 M
Hz24
60 M
Hz24
62 M
Hz24
64 M
Hz24
66MH
z24
68 M
Hz24
70 M
Hz24
72 M
Hz24
74 M
Hz24
76 M
Hz24
78 M
Hz24
80 M
Hz
3 Advertising Channels and 37 Data Channels
![Page 18: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/18.jpg)
18
Link Layer ChannelsLL 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
Freq
uenc
y24
02 M
Hz24
04 M
Hz24
06 M
Hz24
08 M
Hz24
10 M
Hz24
12MH
z24
14 M
Hz24
16 M
Hz24
18 M
Hz24
20 M
Hz24
22 M
Hz24
24 M
Hz24
26 M
Hz24
28 M
Hz24
30MH
z24
32MH
z24
34MH
z24
36 M
Hz24
38 M
Hz24
40MH
z24
42 M
Hz24
44 M
Hz24
46MH
z24
48 M
Hz24
50 M
Hz24
52 M
Hz24
54MH
z24
56 M
Hz24
58 M
Hz24
60 M
Hz24
62 M
Hz24
64 M
Hz24
66MH
z24
68 M
Hz24
70 M
Hz24
72 M
Hz24
74 M
Hz24
76 M
Hz24
78 M
Hz24
80 M
Hz
3 Advertising Channels
![Page 19: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/19.jpg)
19
Link Layer ChannelsLL 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
Freq
uenc
y24
02 M
Hz24
04 M
Hz24
06 M
Hz24
08 M
Hz24
10 M
Hz24
12MH
z24
14 M
Hz24
16 M
Hz24
18 M
Hz24
20 M
Hz24
22 M
Hz24
24 M
Hz24
26 M
Hz24
28 M
Hz24
30MH
z24
32MH
z24
34MH
z24
36 M
Hz24
38 M
Hz24
40MH
z24
42 M
Hz24
44 M
Hz24
46MH
z24
48 M
Hz24
50 M
Hz24
52 M
Hz24
54MH
z24
56 M
Hz24
58 M
Hz24
60 M
Hz24
62 M
Hz24
64 M
Hz24
66MH
z24
68 M
Hz24
70 M
Hz24
72 M
Hz24
74 M
Hz24
76 M
Hz24
78 M
Hz24
80 M
Hz
37 Data Channels
![Page 20: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/20.jpg)
20
Link Layer ChannelsLL 37 0 1 2 3 4 5 6 7 8 9 10 38 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39
Freq
uenc
y24
02 M
Hz24
04 M
Hz24
06 M
Hz24
08 M
Hz24
10 M
Hz24
12MH
z24
14 M
Hz24
16 M
Hz24
18 M
Hz24
20 M
Hz24
22 M
Hz24
24 M
Hz24
26 M
Hz24
28 M
Hz24
30MH
z24
32MH
z24
34MH
z24
36 M
Hz24
38 M
Hz24
40MH
z24
42 M
Hz24
44 M
Hz24
46MH
z24
48 M
Hz24
50 M
Hz24
52 M
Hz24
54MH
z24
56 M
Hz24
58 M
Hz24
60 M
Hz24
62 M
Hz24
64 M
Hz24
66MH
z24
68 M
Hz24
70 M
Hz24
72 M
Hz24
74 M
Hz24
76 M
Hz24
78 M
Hz24
80 M
Hz
9 LL Data Channels still available
Wi-Fi Ch. 1 Wi-Fi Ch. 6 Wi-Fi Ch. 11
![Page 21: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/21.jpg)
21
One Packet Format
Not Whitened Whitened
Protected by CRC
Prea
mbl
e
Access Address PDU CRC
![Page 22: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/22.jpg)
22
Passive Scanning
![Page 23: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/23.jpg)
23
Active Scanning
![Page 24: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/24.jpg)
24
Initiating Connections
![Page 25: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/25.jpg)
25
Directed Connections
![Page 26: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/26.jpg)
26
Topology
Master/Scanner
Slave
Slave
Slave
Slave
Advert-iser
Advert-iser
Scanner
Advert-iser
![Page 27: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/27.jpg)
27
Topology
Master/Initiator
Slave
Slave
Slave
Slave
Advert-iser
Advert-iser
Scanner
Advert-iser
![Page 28: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/28.jpg)
28
Topology
Slave
Master/Scanner
Slave
Slave
Slave
Slave
Advert-iser
Scanner
Advert-iser
![Page 29: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/29.jpg)
29
A single master can address ~231 slaves~ 2 billion addressable slaves per master
Max Connection Interval = 4.0 secondsCan address a slave every ~ 5 ms (assuming 250 ppm clocks)
~ 800 active slaves per master
Limits
![Page 30: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/30.jpg)
30
Used to send application datareliably, robustly
Includesultra low power connection modeadaptive frequency hoppingconnection supervision timeout
Connections
![Page 31: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/31.jpg)
31
Each connection event uses a different channelfn+1 = (fn + hop) mod 37
Connection Events
fn fn+1 fn+2 fn+3
![Page 32: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/32.jpg)
32
Master Latencyhow often the master will transmit to slave
Slave Latencyhow often the slave will listen to master
The two latencies don’t have to be the sameMaster Latency = Connection Interval (7.5 ms to 4.0 s)Slave Latency = Connection Interval * Slave Latency
Latency
![Page 33: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/33.jpg)
33
More Data bit automatically extends connection events
Connection Events
![Page 34: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/34.jpg)
34
Asymmetric Tx/Rx Packet Sequence328 + 150 + 80 + 150 = 708 μsTransmitting 27 octets of application data
~305 kbps
Maximum Data Rate
Tx Rx Tx Rx Tx Tx Rx TxRx
![Page 35: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/35.jpg)
35
Frequency Hopping algorithm is very simplefn+1 = (fn + hop) mod 37
If fn is a “used” channel, use as isIf fn is an “unused” channel, remap to set of good channels
Adaptive Frequency Hopping
Wi-Fi Ch. 1 Wi-Fi Ch. 6 Wi-Fi Ch. 11
![Page 36: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/36.jpg)
36
Link Layer Control Procedures
Name DescriptionConnection Update Procedure Update the connection intervalsChannel Map Update Procedure Update the adaptive frequency hopping mapEncryption Start Procedure Start encryption using a Long Term KeyEncryption Pause Procedure Pause encryption, to change Long Term KeyFeature Exchange Procedure Exchange the current supported feature setVersion Exchange Procedure Exchange the current version informationTermination Procedure Voluntary terminate the connection
![Page 37: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/37.jpg)
3737
Opcode Control PDU Name Description0x00 LL_CONNECTION_UPDATE_REQ Update Connection Intervals0X01 LL_CHANNEL_MAP_REQ Update Channel Maps0X02 LL_TERMINATE_IND Disconnect the connection0X03 LL_ENC_REQ Encryption Request0X04 LL_ENC_REQ Encryption Response0x05 LL_START_ENC_REQ 3-way Handshake for Starting Encryption0x06 LL_START_ENC_RSP 3-way Handshake for Starting Encryption0x07 LL_UNKNOWN_RSP Control PDU Unknown0x08 LL_FEATURE_REQ Master sends Features to Slave0x09 LL_FEATURE_RSP Slave sends Features to Master0x0A LL_PAUSE_ENC_REQ Pause Encryption to Refresh Keys0x0B LL_PAUSE_ENC_RSP Pause Encryption to Refresh Keys0x0C LL_VERSION_IND Version Exchange0x0D LL_REJECT_IND Reject Control PDU
![Page 38: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/38.jpg)
38
Prea
mbl
e
Acce
ssAd
dres
s
Data
Head
erPa
yload
Len
gth
L2CA
P Le
ngth
L2CA
P CI
D
MIC
CRC
Uses AES 128 encryption blockand CCM as defined by RFC 3610
Link Layer Encryption
Payload0-15 encrypted with Block A1
Payload16-27 encrypted with Block A2
MAC encrypted with Block A0
![Page 39: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/39.jpg)
39
Maximum 239 packets per LTK per directionEach packet can contain up to 27 octets dataMax 13.5 Terabytes of data per connection~12 years at maximum data rate
Then you have to change the encryption keyusing Restart Encryption Procedure
Limits
![Page 40: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/40.jpg)
40
Low Complexity1 packet format2 PDU types – depending on Advertising / Data Channel7 Advertising PDU Types7 Link Layer Control Procedures
Useful FeaturesAdaptive Frequency HoppingLow Power AcknowledgementVery Fast Connections
Link Layer Summary
![Page 41: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/41.jpg)
41
L2CAP
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 42: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/42.jpg)
42
Logical Link Control and Adaptation Protocol
protocol multiplexersegmentation and reassembly
Provides logical channelsmultiplexed over one or more logical links
L2CAP
![Page 43: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/43.jpg)
43
All application data is sent using L2CAP packetsLength is the length of the L2CAP Information PayloadCID is the destination logical channel
CIDs can be eitherfixed channelsconnection oriented channels
L2CAP Packets
Length CID Information Payload
![Page 44: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/44.jpg)
44
CIDs from 0x0001 to 0x003F are fixed channels0x0040 to 0xFFFF are dynamically allocated
Fixed L2CAP Channels
CID Description Notes0x0000 Null identifier Not used (ever)0x0001 L2CAP Signaling Channel Used over BR/EDR0x0002 Connectionless Channel Used over BR/EDR0x0003 AMP Manager Protocol Used over BR/EDR0x0004 Attribute Protocol Used over LE only0x0005 LE L2CAP Signaling Channel Used over LE only0x0006 Security Manager Protocol Used over LE only
![Page 45: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/45.jpg)
45
New feature in v4.1allows a connection oriented channelsproposed to be used for “Object Transfer”
Connection Oriented Channels
![Page 46: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/46.jpg)
46
Attribute Protocol
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 47: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/47.jpg)
47
Client Server Architectureservers have dataclients request data to/from servers
Protocol Methodsrequest, response, command,notification, indication, confirmation
Attribute Protocol (ATT)
![Page 48: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/48.jpg)
48
Servers have data, Clients want to use this data
Servers expose Data using Attributes
Client Server Architecture
ServerClient
DataRequests
ResponsesData
Data
![Page 49: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/49.jpg)
49
Attributes have valuesarray of octets0 to 512 octets in lengthcan be fixed or variable length
Servers Expose Data Using Attributes
Value0x54656d70657261747572652053656e736f720x040x0802
![Page 50: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/50.jpg)
50
Handle Type Value0x0009 «Device Name» 0x54656d70657261747572652053656e736f720x0022 «Battery State» 0x040x0098 «Temperature» 0x0802
Each attribute has a “handle”used to address an individual attribute by a client
Clients use handles to address attributesRead (0x0022) => 0x04 ; Read (0x0098) => 0x0802
Attributes are Addressable
![Page 51: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/51.jpg)
51
Attributes have a typetype is a «UUID», determines what the value means
Types are defined by “Characteristic Specifications”or Generic Access Profile or Generic Attribute Profile
Attributes are Typed
Handle Type Value0x0009 «Device Name» 0x54656d70657261747572652053656e736f720x0022 «Battery State» 0x040x0098 «Temperature» 0x0802
![Page 52: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/52.jpg)
52
«Device Name»defined by GAPformatted as UTF-8
0x54656d70657261747572652053656e736f72 = “Temperature Sensor”
Attributes are Typed
Handle Type Value0x0009 «Device Name» “Temperature Sensor”0x0022 «Battery State» 0x040x0098 «Temperature» 0x0802
![Page 53: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/53.jpg)
53
«Battery State»defined by “Battery State Characteristic” specificationenumerated value
0x04 = Discharging
Attributes are Typed
Handle Type Value0x0009 «Device Name» “Temperature Sensor”0x0022 «Battery State» Discharging0x0098 «Temperature» 0x0802
![Page 54: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/54.jpg)
54
«Temperature»defined by “Temperature Characteristic” specificationSigned 16 bit Integer in 0.01 ºC
0x0802 = 2050 * 0.01 ºC = 20.5 ºC
Attributes are Typed
Handle Type Value0x0009 «Device Name» “Temperature Sensor”0x0022 «Battery State» Discharging0x0098 «Temperature» 20.5 ºC
![Page 55: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/55.jpg)
55
Type is a «UUID»UUIDs are 128 bits in length
Bluetooth defines a Bluetooth Base UUIDallowing a 16 bit «UUID» to be defined
00000000-0000-1000-8000-00805F9B34FB
Same Bluetooth Base UUID as SDP
Attributes Type
![Page 56: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/56.jpg)
56
Type is a «UUID»UUIDs are 128 bits in length
Bluetooth defines a Bluetooth Base UUIDallowing a 16 bit «UUID» to be defined
0000xxxx-0000-1000-8000-00805F9B34FB
Attribute Type
![Page 57: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/57.jpg)
57
Type is a «UUID»UUIDs are 128 bits in length
Bluetooth defines a Bluetooth Base UUIDallowing a 16 bit «UUID» to be defined
00001234-0000-1000-8000-00805F9B34FB= 16 bit UUID 0x1234
Attribute Type
![Page 58: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/58.jpg)
58
Handle is a 16 bit value
0x0000 is reserved – shall never be used
0x0001 to 0xFFFF can be assigned to any attributes
Handles are “sequential”0x0005 is “before” 0x00060x0104 is “after” 0x00F8
Attribute Handle
![Page 59: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/59.jpg)
59
Type is a «UUID»UUIDs are 128 bits in length
Bluetooth defines a Bluetooth Base UUIDallowing a 16 bit «UUID» to be defined
0000xxxx-0000-1000-8000-00805F9B34FB
Attribute Type
![Page 60: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/60.jpg)
60
Attributes values may be:readable / not readablewriteable / not writeablereadable & writeable / not readable & not writeable
Attribute values may require:authentication to read / writeauthorization to read / writeencryption / pairing with sufficient strength to read /
write
Attribute Permissions
![Page 61: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/61.jpg)
61
Permissions not “discoverable” over Attribute Protocoldetermined by implication
If request to read an attribute value that cannot be readError Response «Read Not Permitted»
If request to write an attribute value that requires authentication
Error Response «Insufficient Authentication»Client must create authenticated connection and then retryThere is no “pending” state
Attribute Permissions
![Page 62: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/62.jpg)
62
Attribute Handles are public informationAttribute Types are public informationAttribute Values can be protected
It is up to the server to not reveal any values that it considers are protected to a client it does not “trust” enough
Server responds by saying what is wrong – not with value
Insufficient Authentication / Authorization / Key SizeRead / Write Not Permitted
Attribute Permissions
![Page 63: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/63.jpg)
63
Logical Attribute Representation
Attribute Handle
Attribute Type Attribute Value Attribute Permissions
2 octets 2 or 16 octets variable length (0 to 512 octets)implementation
specific
![Page 64: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/64.jpg)
64
Protocol Methods
Protocol PDU Type
Sent by Description
Request Client Client requests something from server – always causes a response
Response Server Server sends response to a request from a client
Command Client Client commands something to server – no response
Notification Server Server notifies client of new value – no confirmation
Indication Server Server indicates to client new value – always causes a confirmation
Confirmation Client Confirmation to an indication
![Page 65: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/65.jpg)
65
After transaction completeno state is stored in protocol
A transaction is:Request -> ResponseCommandNotificationIndication -> Confirmation
Protocol is Stateless
![Page 66: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/66.jpg)
66
Client can only send one request at a timerequest completes after response received in client
Server can only send one indication at a timeindication completes after confirmation received in
server
Commands and Notifications are no response / confirmation
can be sent at any timecould be dropped if buffer overflows – consider
unreliable
Sequential Protocol
![Page 67: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/67.jpg)
67
Each request / command is an atomic operationcannot be affected by another client at the same time
If link is disconnected halfway through a transactionvalue of attribute(s) undefined
there is no “rollback” or “transactional processing”
Atomic Operations
![Page 68: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/68.jpg)
68
Generic Attribute Profile defines a concept of GroupingGrouping is done by Attribute Type
«Grouping Type»«Another Grouping Type»
«Data»«Data»
«Another Grouping Type»«Data»«Data»
«Grouping Type»«Data»«Another Grouping Type»
«Data»«Data»
Attribute Grouping
![Page 69: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/69.jpg)
69
Generic Attribute Profile defines a concept of GroupingGrouping is done by Attribute Type
«Secondary Service»«Characteristic»
«Data»«Data»
«Characteristic»«Data»«Data»
«Primary Service»«Include»«Characteristic»
«Data»«Data»
Attribute Grouping
![Page 70: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/70.jpg)
7070
Name DescriptionError Response Something was wrong with a requestExchange MTU Request / Response Exchange new ATT_MTUFind Information Request / Response Find information about attributesFind By Type Value Request / Response Find specific attributesRead By Group Type Request / Resposne Find specific group attributes and rangesRead By Type Request / Response Read attribute values of a given typeRead Request / Response Read an attribute valueRead Blob Request / Response Read part of a long attribute valueRead Multiple Request / Response Read multiple attribute valuesWrite Command Write this – no responseWrite Request / Response Write an attribute valuePrepare Write Request / Response Prepare to write a value (long)Execute Write Request / Response Execute these prepared valuesHandle Value Notification Notify attribute value – no confirmationHandle Value Indication / Confirmation This attribute now has this value
![Page 71: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/71.jpg)
7171
Name DescriptionInvalid Handle for example handle = 0x0000Read Not Permitted not readable attribute : permissionsWrite Not Permitted not writeable attribute : permissionsInvalid PDU PDU was invalid – wrong size?Insufficient Authentication needs authentication : permissionsRequest Not Supported server doesn’t support requestInvalid Offset offset beyond end of attributeInsufficient Authorization need authorization : permissionsPrepare Queue Full server has run out of prepare queue spaceAttribute Not Found no attributes in attribute range foundAttribute Not Long should use Read requestsInsufficient Encryption Key Size needs encryption key size : permissionsInvalid Attribute Value Length value written was invalid sizeUnlikely Error something went wrong – oopsInsufficient Encryption needs encryption : permissionsApplication Error application didn’t like what you requested
![Page 72: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/72.jpg)
72
Exposes Data using Typed, Addressable AttributesHandleTypeValue
Methods for finding, reading, writing attributes by client
Methods for sending notifications / indications by server
Attribute Protocol Summary
![Page 73: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/73.jpg)
73
Generic Attribute Protocol (GATT)
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 74: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/74.jpg)
74
Defines concepts of:Service GroupCharacteristic GroupDeclarationsDescriptors
Does not define rules for their usethis is separate but essential to understand
Generic Attribute Protocol (GATT)
![Page 75: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/75.jpg)
75
Same client server architecture as Attribute Protocol
CLIENT SERVER ARCHITECTURE
ServerClient
DataRequests
ResponsesData
Data
![Page 76: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/76.jpg)
76
Same client server architecture as Attribute Protocolexcept that data is encapsulated in “Services”and data is exposed in “Characteristic”
Client Server Architecture
Server
Service
Client
Char.Requests
Responses
ServiceChar.
ServiceChar.
![Page 77: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/77.jpg)
77
It’s a value, with a known type, and a known formatdefined in a “Characteristic Specification”
Characteristic DeclarationCharacteristic ValueCharacteristic Descriptors
What is a Characteristic
Declaration
Value
Descriptor
Descriptor
![Page 78: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/78.jpg)
78
Characteristics are grouped by «Characteristic»Value attribute is always immediately after
«Characteristic»followed by descriptors
Descriptorsadditional informationany numberany ordercan be vendor specific
What is a Characteristic
«Characteristic»
Value
«Presentation Format»
«Client Configuration»
![Page 79: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/79.jpg)
79
A service is:defined in a “Service Specification”collection of characteristicsreferences to other services
Service DeclarationIncludesCharacteristics
What is a Service?
![Page 80: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/80.jpg)
80
Primary ServiceA primary service is a service that exposes primary usable functionality of this device. A primary service can be included by another service.
Secondary ServiceA secondary service is a service that is subservient to another secondary service or primary service. A secondary service is only relevant in the context of another service.
Two types of service:
![Page 81: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/81.jpg)
81
Handle Type Value Permissions
0x0001 «Primary Service» «GAP» R
0x0002 «Characteristic» {r, 0x0003, «Device Name»} R
0x0003 «Device Name» “Temperature Sensor” R
0x0004 «Characteristic» {r, 0x0006, «Appearance»} R
0x0006 «Appearance» «Thermometer» R
0x000F «Primary Service» «GATT» R
0x0010 «Characteristic» {r, 0x0012, «Attribute Opcodes Supported»}
R
0x0012 «Attribute Opcodes Supported» 0x00003FDF R
0x0020 «Primary Service» «Temperature» R
0x0021 «Characteristic» {r, 0x0022, «Temperature Celsius»} R
0x0022 «Temperature Celsius» 0x0802 R*
Attribute are Flat
![Page 82: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/82.jpg)
82
GATT Provides Structure
Primary Service «GAP»
Primary Service «GATT»
Primary Service «Temperature»
«Device Name» “Temperature Sensor”
«Appearance» «Thermometer»
«Attribute Opcodes Supported» 0x03FDF
«Temperature Celsius» 0x0802
![Page 83: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/83.jpg)
83
Handle Type Value Permissions
0x0001 «Primary Service» «GAP» R
0x0002 «Characteristic» {r, 0x0003, «Device Name»} R
0x0003 «Device Name» “Temperature Sensor” R
0x0004 «Characteristic» {r, 0x0006, «Appearance»} R
0x0006 «Appearance» «Thermometer» R
0x000F «Primary Service» «GATT» R
0x0010 «Characteristic» {r, 0x0012, «Attribute Opcodes Supported»}
R
0x0012 «Attribute Opcodes Supported»
0x00003FDF R
0x0020 «Primary Service» «Temperature» R
0x0021 «Characteristic» {r, 0x0022, «Temperature Celsius»} R
0x0022 «Temperature Celsius» 0x0802 R*
Grouping Gives Structure
![Page 84: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/84.jpg)
84
Handle Type Value Permissions
0x0001 «Primary Service» «GAP» R
0x0002 «Characteristic» {r, 0x0003, «Device Name»} R
0x0003 «Device Name» “Temperature Sensor” R
0x0004 «Characteristic» {r, 0x0006, «Appearance»} R
0x0006 «Appearance» «Thermometer» R
0x000F «Primary Service» «GATT» R
0x0010 «Characteristic» {r, 0x0012, «Attribute Opcodes Supported»}
R
0x0012 «Attribute Opcodes Supported»
0x00003FDF R
0x0020 «Primary Service» «Temperature» R
0x0021 «Characteristic» {r, 0x0022, «Temperature Celsius»} R
0x0022 «Temperature Celsius» 0x0802 R*
Grouping Gives Structure
![Page 85: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/85.jpg)
85
Handle Type Value Permissions
0x0001 «Primary Service» «GAP» R
0x0002 «Characteristic» {r, 0x0003, «Device Name»} R
0x0003 «Device Name» “Temperature Sensor” R
0x0004 «Characteristic» {r, 0x0006, «Appearance»} R
0x0006 «Appearance» «Thermometer» R
0x000F «Primary Service» «GATT» R
0x0010 «Characteristic» {r, 0x0012, «Attribute Opcodes Supported»}
R
0x0012 «Attribute Opcodes Supported»
0x00003FDF R
0x0020 «Primary Service» «Temperature» R
0x0021 «Characteristic» {r, 0x0022, «Temperature Celsius»} R
0x0022 «Temperature Celsius» 0x0802 R*
Grouping Gives Structure
![Page 86: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/86.jpg)
8686
Procedure Sub-ProceduresServer Configuration Exchange MTUPrimary Service Discovery Discovery All Primary Service
Discover Primary Service by Service UUIDRelationship Discovery Find Included ServicesCharacteristic Discovery Discover All Characteristics of a Service
Discover Characteristics by UUIDCharacteristic Descriptor Discovery Discover All Characteristic DescriptorsCharacteristic Value Read Read Characteristic Value
Read Using Characteristic UUIDRead Long Characteristic ValuesRead Multiple Characteristic Values
![Page 87: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/87.jpg)
8787
Procedure Sub-ProceduresCharacteristic Value Write Write Without Response
Write Without Response With AuthenticationWrite Characteristic ValueWrite Long Characteristic ValuesReliable Writes
Characteristic Value Notifications NotificationsCharacteristic Value Indications IndicationsCharacteristic Descriptors Read Characteristic Descriptors
Read Long Characteristic DescriptorsWrite Characteristic DescriptorsWrite Long Characteristic Desc
![Page 88: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/88.jpg)
88
GENERIC ACCESS PROFILE
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 89: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/89.jpg)
89
Profile RolesBroadcaster, ObserverPeripheral, Central
Defines standard ways for devices to connectDiscoverable, Connectable, Bonding
PrivacyResolvable Private Addresses
Generic Access Profile (GAP)
![Page 90: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/90.jpg)
90
Broadcaster Observer
Scanning
Standby
Connection
Advertising Initiating
Slave Master
Scanning
Standby
Connection
Advertising Initiating
Slave Master
Link Layer State Machinesfor Broadcaster and Observer
![Page 91: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/91.jpg)
91
Peripheral Central
Scanning
Standby
Connection
Advertising Initiating
Slave Master
Scanning
Standby
Connection
Advertising Initiating
Slave Master
Link Layer State Machinesfor Peripheral and Central
![Page 92: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/92.jpg)
92
• Can be sent when broadcaster / discoverable peripheral
• Many Advertising Data (AD) Types defined:• Flags• Service UUIDs• Local Name• TX Power Level• Slave Connection Interval Range• Signed Data• Service Solicitation• Service Data• Manufacturer Specific Data
Advertising Data
![Page 93: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/93.jpg)
9393
Tag Value Description0x01 Flags0x02 Non-complete list of 16-bit Service UUIDs0x03 Complete list of 16-bit Service UUIDs0x06 Non-complete list of 128-bit Service UUIDs0x07 Complete list of 128-bit Service UUIDs0x08 Non-complete shortened local name0x09 Complete local name0x0A Tx Power Level (-127 dBm to +127 dBm)0x12 Slave Connection Interval Range (min, max)0x14 Service Solicitation for 16 bit Service UUIDs0x15 Service Solicitation for 128 bit Service UUIDs0x16 Service Data (16 bit Service UUID, service data)0xFF Manufacturer Specific Data (Company Identifier Code, data)
![Page 94: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/94.jpg)
94
Non-Discoverable Limited Discoverable
General Discoverable
Limited Discovery No Yes No
General Discovery No Yes Yes
What can Discover What?
![Page 95: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/95.jpg)
95
Non-Connectable Modenot connectable – default mode
Directed Connectable Modeconnect to specific device – using ADV_DIRECT_IND
Undirected Connectable Modeconnect to any device – using ADV_IND
Connectable Modes - Peripheral
![Page 96: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/96.jpg)
96
Auto Connection Establishment Proceduresautomatically connect to a set of devices – uses white lists
General Connection Establishment Procedureconnect to any device – supports private connections
Selective Connection Establishment Procedureconnect to set of devices – separate configuration per device
Direct Connection Establishment Procedureconnect to “that” device – any private / unknown device
possible
Connection Establishment Procedures - Central
![Page 97: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/97.jpg)
97
Non-Connectable Directed Connectable
Undirected Connectable
Auto Connection No Yes if in list Yes if in list
General Connection No Yes if in list Yes if in list
Selective Connection No Yes if in list Yes if in list
Direct Connection No Yes Yes
WHAT CAN CONNECT TO WHAT?
![Page 98: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/98.jpg)
98
Security Manager defines how to “pair” devicesauthenticate and then encrypt a link
Bonding is the storing ofSecurity and Identity Information
Once bondeda device can reconnect using the stored informationGATT will store service change information for device
Bonding
![Page 99: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/99.jpg)
99
A type of Random Device Addresssub-categorized into either:
Non-Resolvable Private AddressResolvable Private Address
Private Addresses
AddressPublic
Device Address
RandomDevice Address
Static Address
Private Address
Non-ResolvablePrivate Address
ResolvablePrivate Address
![Page 100: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/100.jpg)
100
ADDRESS TYPES
company_assigned(24 bits)
company_id(24 bits) 0
TxAddRxAdd
random part of static address(46 bits) 1 1 1
PublicDevice Address
StaticDevice Address
random part of static address(46 bits) 0 0 1Non-Resolvable
Device Address
hash(24 bits)
prand(22 bits) 1 0 1Resolvable
Device Address
![Page 101: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/101.jpg)
101
hash = func (IRK, prand)
Resolvable Addresses
TxAddRxAdd
hash(24 bits)
prand(22 bits) 1 0 1Resolvable
Device Address
![Page 102: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/102.jpg)
102
GAP CHARACTERISTICS
Characteristic Description
«Device Name» the local name of the device
«Appearance» enumeration of what the device “looks like”
«Peripheral Privacy Flag» does this peripheral support privacy – is it enabled
«Reconnection Address» address to use when reconnecting to a private device
«Peripheral Preferred Connection Parameters»
what this peripheral would prefer the central connect with
![Page 103: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/103.jpg)
103
Applications
Controller
Host
Apps
Generic Access Profile
Generic Attribute Profile
Attribute Protocol Security Manager
Logical Link Control and Adaptation Protocol
Host Controller Interface
Physical Layer
Link Layer Direct Test Mode
Applications
![Page 104: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/104.jpg)
104
Client Server ArchitectureService – exposes behavior that have characteristicsProfile– define how to use services on a peer
Applications
Server
Service
Client
Char.Requests
Responses
ServiceChar.
ServiceChar.
Profile
Profile
Profile
![Page 105: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/105.jpg)
105
Use Standard Servicesdefined by Bluetooth SIGincludes lots of useful things
batteryheart ratetemperature
can even request new ones“New Work Proposal”
Great interoperabilityvast “app” ecosystem
Define Your Own Serviceusing 128-bit UUIDsyou can do what you want
motor controlscustom sensorscalibration
can even buy 16-bit UUIDsallow donation later
Closed ecosystemsfew supporting apps
Two Approaches
![Page 106: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/106.jpg)
106
Faster Data Rates2.5x to 4.5x faster
Low Power Optimizationsprivacy in Controller
Longer Range500m to 1km ranges
Audiohearing aids
Futures…
![Page 107: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/107.jpg)
107
New TechnologyBlank sheet of paperOptimized for ultra low power
Asymmetric ArchitectureBroadcaster / ObserverPeripheral / CentralClient / ServerService / Use Case
SUMMARY
![Page 108: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/108.jpg)
108
Leading Edge TechnologyAES-128 encryption, w/ CBC-MACSimple PairingObject Oriented ModelXML based Testing
Robust24-bit CRCs and 32-bit MICsFull AFH at Connection SetupPrepare / Execute Writes
SUMMARY
![Page 109: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/109.jpg)
109
It does everything you need30 – 50 meter rangehighly robustconsultant freevery fast connectionssigned transactionssimple star topologyvery low cost
SUMMARY
![Page 110: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/110.jpg)
110
Bluetooth low energy
the only open wireless standard
connecting everything else
sports sensors, fitness equipment, automotive keyless go, car climate control, cellular phones, games consoles, medical devices, proximity, smart energy, assisted living, phone accessories, wellness, animal tagging, intelligent transport, machine to machine, shoes, watches, bracelets, rings, toys, remote controls, location based services, broadcast services, find my car keys, children tracking, smart appliances, automatic maintenance of household goods, and your next great idea…
SUMMARY
![Page 111: An Introduction to Bluetooth low energy](https://reader034.vdocuments.mx/reader034/viewer/2022050612/6273f8d01c62a04781710478/html5/thumbnails/111.jpg)
111
THANK YOU!