Bluetooth low energy using, 4–5
overview of, 54
at Physical Layer, 29
3-Wire UART, HCI physical interface, 132–134
24-bit CRC, Bluetooth low energy. see CRC (cyclic redundancy check)
32-bit MIC, Bluetooth low energy. see MIC (message integrity check)
128-bit UUIDs (Bluetooth Base UUIDs), 190–191
10101010 packet sequence, transmitter tests, 63–64
11110000 packet sequence, transmitter tests, 63–64
Abstraction, service-oriented architecture, 23
Access address
Link Layer connections, 95
packet structure, 30–31, 80–81
test packet format, 63
Access permissions, attribute database, 194
Acknowledgement
of data packet, 101
optimizing for low power, 127
Action, requesting for command packets, 136
Active scanning
in device discovery procedure, 257, 283–285
Link Layer state machine, 72
overview of, 72
receiving broadcast data, 93
Active state mode, 3-Wire UART, 63–64, 133
Bluetooth low energy design, 8
data channels used with, 30
defined, 9
Link Layer connection process, 93–94, 97–98, 111–112
Link Layer robustness, 120–122
managed by master, 14
optimizations for low power, 127
ADV_DIRECT_IND advertising packets, 81–82, 266–267
ADV_IND advertising packets, 81–82, 267
ADV_NONCONN_IND advertising packets, 82, 266
ADV_SCAN_IND advertising packets, 82, 266
Advanced Encryption System. see AES (Advanced Encryption System)
Advertising
access address, packet structure, 80–81
data, 273
formatting data when broadcasting, 263
Host/Controller Interface, 148–150
initial discovery using devices for, 256–257
interval, 90
presence detection using, 41–42
Advertising channels
advertising packets as transmitted on, 76
in connection state, 74
finding devices with, 90
reducing number to reduce power consumption, 70
in scanning state, 72
used by devices in broadcast mode, 263
Advertising packets
broadcasting data with, 93, 148–150
GAP connection procedures, 268–269
HCI connections to white lists, 155
length field, 83
overview of, 76
peripheral connectability, 300–301
Advertising state
entering connection state from, 73
entering slave substate from, 74
nonconnectable advertising device in, 92
optimizing peripherals for low power, 304–306
overview of, 71
AES (Advanced Encryption System)
security features, 244
starting encryption for connections, 114
AFH. see adaptive frequency hopping
Alert Level characteristic, 288–290
Algorithms, scheduling, 75
Alternate MAC PHY (AMP), Bluetooth version 3.0, 3
AM (amplitude modulation) radio, 50–51
AMP (Alternate MAC PHY), Bluetooth version 3.0, 3
Amplitude modulation (AM) radio, 50–51
Amplitude-shift keying (ASK), digital modulation, 52
Appearance characteristic, GAP Service, 276–277, 284
Application data rate, radio systems, 51
Application Errors response, 231
Application layer architecture
defined, 36
services, 37
Architectural paradigms, concepts, 20–25
Architecture
Bluetooth low energy design as, 9
ASK (amplitude-shift keying), digital modulation, 52
Assembly, by multiplexing layers, 170
Asymmetric design concept, 14–15
ATM networks, as multiplexing layers, 170
Atomic operations and transactions, 197–198
Atomic services, 34
Attribute database
exposing services to peripherals, 301–302
Attribute handles
Find By Type Value Request/response, 222–223
Find Information Request/response, 221–222
Read By Type Request/response, 223
Read Request including, 224
Attribute Not Found error, 230
Attribute Not Long error, 230
Attribute Profile, 199
attribute client using, 192
Bluetooth low memory using only, 14
channel identifier for, 172
control points, 183
creation of, 179
Exchange MTU Request, 221
Find By Type Value Request, 222–223
Find Information Request, 221–222
Generic Attribute Profile vs., 231
Handle Value Indication, 228
Handle Value Notification, 227–228
Prepare Write Request and Execute Write Request, 226–227
Read Blob Request, 224
Read By Group Type Request, 225
Read By Type Request, 223
Read Multiple Request, 224
Read Request, 224
in service-oriented architecture, 25
Write Command, 225
Write Request, 225
Attribute Protocol Layer
security protection at, 16
Attribute types Find By Type Value Request/response, 222–223
Find Information Request/response, 221–222
fundamental, 192
Unsupported Group Type error, 231
Attribute value(s)
attribute permissions applying to, 194
Characteristic Descriptor, 192
Characteristic Type UUID, 192
Find By Type Value Request/response, 222–223
Handle Value Indication, 228
Handle Value Notification, 227–228
Invalid Attribute Value Length error, 230
overview of, 191
Prepare Write Request and Execute Write Request, 226–227
Read Blob Request, 224
Read By Type Request/response, 223
Read Multiple Request, 224
service UUIDs, 191
units, 191
atomic operations and transactions, 197–198
Attribute Protocol. see Attribute Protocol
grouping, 199
overview of, 179
peripheral design optimizing, 311–312
structure of, 189
Attributes, background to
data, data, everywhere. and, 180–181
protocol proliferation is wrong, 180
services and profiles, 185–189
Attributes, services
plug-and-play client applications, 207–208
reusing another service, 203–204
Authentication
attribute database permissions as, 194–195
authorization vs., 195
Bluetooth low energy and, 115
in bonding process, 259
central devices initiating bonding via, 292–293
data channel, 30
encrypted packet, 104
Insufficient Authentication error, 229
integrity via, 243
resolving signatures for, 225–226, 247
Authorization
Insufficient Authorization error, 229
Authorization permissions, attribute database, 195
Auto-connection establishment procedure, GAP, 267–268
Autonomy, service-oriented architecture, 24
Ax encryption blocks, encrypting payload data, 106
Bandwidth, classic Bluetooth and, 3
Basic Rate (BR), original Bluetooth, 3
Batteries
lowering cost with button-cell, 5–6
monitoring in connectionless model, 44
Behavior
application layer services and, 37
primary vs. secondary services and, 205–207
reusing another service and, 203–204
service characteristics and, 200–201
BER (bit error rate), receiver sensitivity, 58
B-frame format, 32
Binary FSK (frequency-shift keying), digital modulation, 52
Bit error rate (BER), receiver sensitivity, 58
Bit errors
CRC detecting odd numbers of, 84
protection against, 16
Bit order
packet structure and, 79
Bit rate, optimizing for low power, 125–126
Bits, defined, 51
Block counter, encrypting payload data, 106–107
Bluetooth classic, fixed and connection-oriented channels, 170–171
Bluetooth classic vs. low energy
compatibility with device types, 6
power consumption, 8
services and profiles, 185–189
Bluetooth low energy, overview
concepts. see concepts
device types, 6
Bluetooth Qualification Administrator (BQA), 317
Bondable mode, GAP, 270
Bondable procedure, GAP, 270
Bonding
central devices using, 292–293
controlling connectability of peripherals, 301
GAP defining device, 36
long-term relationships and, 259
modes and procedures for, 270
optimizing peripherals for low power, 304–306
BQA (Bluetooth Qualification Administrator), 317
BR (Basic Rate), original Bluetooth, 3
BR/EDR Not Supported flag, advertising data, 274
Broadcast Flag, HCI data packets, 138–139
Broadcaster role, GAP, 261
Broadcasting data
advertising state for, 71
Server Characteristic Configuration Descriptor for, 214–215
Broadcasting model
defined, 148
peripherals that only broadcast, 299–300
Brute-force checking, private addresses, 261
Buffer sizes, HCI controller setup, 142–143
Bulk data USB packets, HCI, 134
Button-cell batteries
lowering cost of Bluetooth low energy, 5–6
short duration bursts of, 13
single-mode devices designed for, 6
Bytes, packet structure, 79
Calibration, of controller in Direct Test Mode, 62
Categories, of qualification tests, 318–319
CCM (Counter with Cipher Block Chaining-Message Authentication Code Mode), 106
Cell phones
dual-mode controllers for, 6
marketing concept for, 19
Central devices
background of, 283
building generic clients, 287–288
connecting to devices, 285–286
controlling connectability of peripherals, 301
discoverability of peripherals, 283–285, 301
implementing profiles, 294–297
interacting with services, 288–292
understanding, 286
Central role, GAP, 262
Changed services, central devices, 293–294
Channel identifiers, L2CAP, 172–173
HCI advertising, 150
HCI connection management, 159–160
Link Layer, 85
Link Layer connection process, 97–98
Channel map, adaptive frequency hopping
Link Layer connections, 94, 97–98, 111–112
Link Layer robustness, 120–122
Channels
Bluetooth classic using narrow, 55
Bluetooth low energy using radio, 56
HCI interface, 135
L2CAP. see L2CAP (Logical Link Control and Adaptation Protocol)
Channels, Link Layer
adaptive frequency hopping, 88–89
determining advertising vs. data packets, 76
frequency hopping, 87
Characteristic Aggregation Format Descriptor, 217
Characteristic Descriptors, attribute value, 192
Characteristic Extended Properties Descriptor, 214
Characteristic Presentation Format Descriptor, 215–217, 287
Characteristic Type UUID, 192
Characteristic User Description descriptor, 214
Characteristic Value Reliable Writes procedure, 237
Characteristic(s)
central device discovery, 286
central device interaction with services, 288–289
discovering with Read By Type Request, 223
discovery and configuration of services, 258–259
discovery on initial connection, 258
exposing services to peripherals, 302–303
GATT client-initiated procedures for, 235–238
GATT discovery procedures for, 234–235
grouping, 199
optimizing peripheral attributes, 310–311
primary vs. secondary services, 205–207
profiles discovering and using, 296
reusing another service, 203–204
services as grouping of, 37, 199–200
value of, 213
Chips, defined, 51
Ciphertext, encryption text, 105
Classes, object-oriented programming, 199–200
Clear to send (CTS), 5-wire UART transport, 132
Client Characteristic Configuration Descriptor
notifications and indications, 292
overview of, 214
profiles, 296
Client Preferred Connection Parameters characteristic, 285–286
Client-initiated procedures, GATT
overview of, 235
reading characteristic values, 235–236
reading/writing characteristic descriptors, 238
writing characteristic values, 236–238
Clients, building generic, 287–288
Client-server architecture
attribute database and, 192–193
attribute permissions, 194–195
Attribute Protocol messages, 33
as paradigm for Bluetooth low energy, 20–21
profiles and services in, 186–189
state-based model for, 17
Clock accuracy, Link Layer connection process, 98
CMAC algorithm, signing of data, 252
CMOS (Complimentary Metal on Silicon), 124–125
Command Complete event, HCI
channel map update, 159
reading device address, 141–142
reading supported features, 143–144
reading supported states, 144–145
resetting controller to known state, 141
setting random address, 147
white lists, 147
Command flow control, HCI, 139–140
Command not understood reason code, command reject command, 174–175
Command reject command, LE signaling channel, 174–175
Command Status event
enabling command flow control, 139–140
encrypting data packets while connected, 161–162
HCI event packets, 138
HCI feature exchange, 160
Commands
connection, 137
controller state, 136
as exceptions to transaction rules, 197
requesting specific action, 136
Company identifier, version information, 118
Compliance folder, testing and qualification, 317–318
Complimentary Metal on Silicon (CMOS), 124–125
Component subsystem product type, 315–316
Composability, service-oriented architecture, 24
architectural paradigms, 20–25
client-server architecture, 17–18
one billion is a small number, 19
targeting new market segments, 11
Confidentiality
ensuring with encryption, 104
security concept of, 243
CONNECT_REQ, advertising packet, 82
Connectable advertising state, peripherals, 304–307
Connectable directed advertising, 149
Connectable modes, GAP
nonconnectable, 266
overview of, 266
undirected-connectable, 267
Connectable undirected advertising, 148
Connection events
determining instant by counting, 112
Link Layer connection process, 96–97
optimizing for low power by subrating, 128–130
optimizing for low power with
sleep clock accuracy in connection process, 98
Connection handle
controlling connections with, 137
HCI interface, 135
labeling HCI data packets with, 138–139
LE Connection Complete event, 155
Connection interval, optimizing peripherals, 308–309
Connection management. see HCI connection management
Connection parameter update request command, LE signaling channel, 175–177
Connection parameter updates, Link Layer, 109–111
Connection Signature Resolving Key. see CSRK (Connection Signature Resolving Key)
Connection state, Link Layer state machine, 73–74
Connectionless model
achieving with L2CAP layer for. see L2CAP (Logical Link Control and Adaptation Protocol)
new wireless model enabling, 43–44
Connection-oriented model
channel identifiers for, 172
connectionless model vs., 43–44
Internet built around, 45
Connections
controlling, 137
establishing initial device, 258
initiating from central devices, 285–286
peripheral devices, 301
reconnected, 260
Connections, creating at Link Layer
access address, 95
CRC initialization, 95
initiating state for, 72
sleep clock accuracy, 98
Connections, initiating in HCI
HCI initiating connections to devices, 156
Connections, managing Link Layer
adaptive frequency hopping, 111–112
connection parameter update, 109–111
feature exchange, 118
offline encryption, 130
overview of, 109
restarting encryption, 115–116
Connections, optimizing peripherals for low power
bonding, 306
connectable advertising, 306–307
directed advertising, 307
discoverable advertising, 305
stay connected or disconnect, 309–310
Consistency check, starting new project, 316–317
Continuation messages, LLID, 100–101
Control endpoint, USB interface in HCI, 134
Control points, Attribute Protocol
central devices interacting with services, 289–290
characteristics, 303
defined, 183
state machine, 183–185, 290–291
Controller
configuring state of, 136
device density design, 16
dual-mode, 6
HCI. see HCI (Host/Controller Interface)
Link Layer. see Link Layer
Physical Layer. see Physical Layer
Controller subsystem product type, 315–316
Correlation of access address, 80–81
Cost
designing Bluetooth low energy for low, 4–6
memory is expensive concept, 13–14
one billion is a small number concept, 19
Counter with Cipher Block Chaining-Message Authentication Code Mode (CCM), 106
CR2032 button-cell batteries, 11–12
3-Wire UARTs in HCI, 133
bit errors and, 16
Link Layer connection process, 95
Link Layer robustness with strong, 122–123
overview of, 84
Prepare/Execute Writes and, 198
Prepare Write Request and, 227
short range wireless standards, 8
too weak to be security measure, 243
Create New Project page, bluetooth.org, 315
CSRK (Connection Signature Resolving Key)
key distribution during pairing, 251
long-term relationships, 259
message authentication code, 226
overview of, 247
private addresses, 261
signing of data, 252
CTS (clear to send), 5-wire UART transport, 132
Current time, peripherals that only broadcast, 300
Data
text packets transmitting, 63–64
types in Bluetooth low energy devices, 180–181
Data access address, packet structure, 80–81
Data channels
adaptive frequency hopping, 88–89
frequency hopping over time, 87
Data flow control, HCI interface, 140
Data packets
length field, 83
overview of, 76
starting encryption when connected, 161–162
Data packets, sending
acknowledgement, 101
header, 99
logical link identifier, 100–101
more data, 101
sequence numbers, 101
Data rates
in classic Bluetooth vs. low energy, 3–4
optimizing for low power, 125–126
radio systems vs. application, 51
Data types, advertising, 273–276
DBm
measuring receiver sensitivity, 57–58
Debugging
version information for, 117
Declaration, characteristic, 211–213
Declaration of Compliance (DoC), 313, 320–321
Description field, Characteristic Presentation Format Descriptor, 216–217
Descriptors, characteristic
discovery, central device, 286
reading/writing, 238
Design
compliance folder containing information on, 318
service-oriented architecture goals, 21–25
Development tool product type, 315–316
Device address
HCI advertising parameters, 149–150
Device density, designing controller, 15–16
Device Name characteristic, GAP Service, 276, 284
Device Under Test. see DUT (Device Under Test)
Devices
asymmetric design concept, 14–15
Direct Test Mode requirements, 61–62
Generic Access Profile for, 36
given tolerance of, 57
initial connection to, 156, 258
initial discovery procedure, 256–257
new usage models for. see new usage models
profiles describing two or more, 37–38
types of, 6
types of data in Bluetooth low energy, 180–181
Digital radio, phase modulation in, 51
Digital television, 51
controller architecture, 29–30
Direct-connectable mode, GAP, 266–267
Direct-connection establishment procedure, GAP, 269
Directed advertising, optimizing peripherals, 307
Discoverability
advertising state used for, 71
Generic Access Profile defining device, 36
in service-oriented architecture, 24–25
Discoverable advertising events, 82, 93
Discoverable advertising state, peripherals, 304–306
Discovery procedures, GATT, 232–235
DoC (Declaration of Compliance), 313, 320–321
Documentation, authorization via, 242–243
Dual-mode devices, 6
transceiver tests, 62
Duty cycle, short packets optimizing, 125
Dynamic refreshing, memory, 13–14
EDR (Enhanced Data Rate), Bluetooth version 2.0, 3
Encapsulation of services, 34
Encryption
authentication via, 242
central device bonding using, 292–293
data channel, 30
ensuring confidentiality, 243
Insufficient Encryption error, 230
Insufficient Encryption Key Size error, 230
Link Layer restarting, 115–116
Long-Term Key, 246
lowering overhead with, 126
message integrity check, 107–109
offline, 130
security design and, 16
Short-Term Key, 246
Encryption Change event, HCI, 161, 163
Encryption engine, security, 244
Encryption Key Refresh Complete, HCI, 163–164
Energy
life of button-cell batteries, 12
memory is expensive concept, 13–14
Enhanced Data Rate (EDR), Bluetooth version 2.0, 3
Error Response, Attribute Protocol, 228–231
Errors
SDIO interface with low rates of, 135
Ethernet, technologies increasing speeds of, 4
Event masks, HCI controller setup, 142
Event packets, HCI interface, 137–138
Events, Direct Test Mode, 65–68
Everything has state concept, 16–17
Exchange MTU procedure, GATT, 232
Exchange MTU Request and Response, Attribute Protocol, 221
Execute Write Request, Attribute Protocol
characteristic descriptors procedure, 238
characteristic values procedure, 236
as exception to transaction rules, 198
overview of, 226
reliable writes procedure, 237
External state, 182
Features
consistency check for new product, 316–317
HCI connection management, 160
Link Layer control, 118
selecting for new product, 316
Filters
Bluetooth low energy vs. classic, 29
determining device discoverability, 257
Find By Type Value Request, Attribute Protocol, 222–223, 230, 233
Find Information Request, Attribute Protocol, 221–222, 230, 234–235
Find Requests, accessing attributes, 196
Finite state machines, Attribute Protocol, 184–185
Fixed channels, Bluetooth low energy supporting only, 171
Flags
discoverable modes and, 264–265
discoverable procedures and, 265–266
Flow control wires, 5-wire UART transport, 132
FM (frequency modulation) radio, analog, 51–52
Formal contracts, service-oriented architecture, 22
Format
Bluetooth low energy requiring one frame, 32–33
characteristic specification, 37–38
test packet, 63
Format field
Characteristic Aggregation Format Descriptor, 217
Characteristic Presentation Format Descriptor, 215–216
Frame rate, 51
Frequency
device tolerance and accuracy of, 57
optimizing drift with short packets, 124–125
peripherals that only broadcast, 300
radio signal at Physical Layer, 28–29
Frequency bands
agreements on allocation of, 51
Bluetooth low energy using radio channels, 55–56
overview of, 54
Frequency hopping
adaptive. see adaptive frequency hopping
Bluetooth classic using, 55
data channels at Link Layer, 30
defined, 9
Link Layer connection process, 97–98
overview of, 87
spread spectrum radio regulations vs., 29
Frequency modulation (FM) radio, analog, 51–52
FSK (frequency-shift keying)
Bluetooth low energy using GFSK, 54–55
in digital modulation, 52
MSK variant of, 53
attribute database including, 193
bonding and pairing process, 252
defined, 255
establishing initial connection, 258
exposing services to peripherals, 301–302
generating private addresses, 106
host architecture, 36
initial discovery procedure, 256–257
long-term relationships, 259
reconnections, 260
service characterization, 258–259
GAP (Generic Access Profile), modes and procedures
bonding, 270
broadcast mode and observation, 263
client-server architecture, 17–18
device interaction with Internet, 44–46
modular service architecture and, 19
GATT (Generic Attribute Profile)
characteristic discovery, 234–235
client-initiated procedures, 235–239
creation of, 179
defining flat structure of attributes, 199
discovery procedures, 232
ensuring future-proof design, 18
forms of grouping, 200
mapping ATT PDUs to, 239
Gaussian Frequency Shift Keying (GFSK), 28–29, 54–55
General-connection establishment procedure, GAP, 268–269
General-discoverable mode, 256–257, 265–266
Generic Access Profile. see GAP (Generic Access Profile)
Generic Attribute Profile. see GATT (Generic Attribute Profile)
building for central devices, 287–288
Characteristic Presentation Format Descriptor and, 215–217
defined, 215
enabling with GATT, 215
GFSK (Gaussian Frequency Shift Keying), 28–29, 54–55
Ground, 3-Wire UART transport, 132
Grouping
Read By Group Type Request, 225
services and characteristics, 199
services using service declaration, 208–209
Unsupported Group Type error, 231
Handle Value Indication, Attribute Protocol, 228, 239
Handle Value Notification, Attribute Protocol, 227–228, 238
Hardware interface, Direct Test Mode, 65–67
Hash values, Identity Resolving Key, 246–247
HCI (Host/Controller Interface)
defined, 131
Device Under Test requirements, 61
initiating connections, 153–157
overview of, 31
segmentation and reassembly, 170
connection update, 158
feature exchange, 160
initiating connections, 153–157
restarting encryption, 163–164
HCI controller setup
random numbers, 145
reading device address, 141–142
reading supported features, 143–144
reading supported states, 144–145
resetting to known state, 141
setting random address, 146–147
HCI Encrypt command, private addresses, 261
data flow control, 140
defined, 135
event packets, 137
HCI channels, 135
overview of, 131
UART, 132
USB, 134
Header
data packet, 99
framed packet, 133
L2CAP packet, 173
packet structure, 30–31, 81–83
Hop value, frequency hopping, 87
Host, enabling presence detection, 41–42
Host architecture
attributes. see attributes
Generic Access Profile. see GAP (Generic Access Profile)
Generic Attribute Profile. see GATT (Generic Attribute Profile)
L2CAP. see L2CAP (Logical Link Control and Adaptation Protocol)
Logical Link Control and Adaptation Protocol, 32–33
overview of, 32
security. see security
Security Manager, 33
Host subsystem product type, 315–316
Host/Controller Interface. see HCI (Host/Controller Interface)
ICS (Implementation Conformance Statements), 316–317
Identifiers, L2CAP channel, 171–172
Identity
central devices discovering other device, 284
Identity Resolving Key and, 246–247
Identity Resolving Key. see IRK (Identity Resolving Key)
IEEE 802.11, Bluetooth version 3.0, 3
IETF RFC 3610, encrypting payload data, 106
Immediate Alert Service, central devices, 290
Immutability, 200
Immutable encapsulation of services, 34
Imperial units, SI, 191
Implementation Conformance Statements (ICS), 316–317
Include attributes, services, 209–210
Include declaration, 233
Included services
discovering, 233
Read By Type Request searching for, 223
Indications
central devices interacting with services, 291–292
Client Characteristic Configuration Descriptor for, 214
Handle Value Indication, 228
optimizing peripheral attributes, 310–311
server-initiated GATT procedure for, 239
in service characterization, 259
Industrial, Scientific, and Medical (ISM) band. see 2.4GHz ISM band
Inheritance, enabling changes to interfaces, 200
Initial connection procedure, 258
Initial discovery procedure, GAP, 256–257
Initialization vector (IV), encryption, 114
Initiating connections
Initiating state, Link Layer state machine, 73
Instant parameter, connection updates, 110–111
Insufficient Authentication error, 229
Insufficient Authorization error, 229
Insufficient Encryption error, 230
Insufficient Encryption Key Size error, 230
Insufficient Resources error, 231
Integrity, security concept of, 243
Interfaces, object-oriented programming, 199
International System of Units (SI), 191
Internet
client-server architecture, 17–18
gateways. see gateways
Interoperability
Bluetooth classic/Bluetooth low energy, 6
connection-oriented problems, 43–44
profile/service architecture and, 185–189
Interpacket gap, optimizing for low power, 125
Invalid Attribute Value Length error, 230
Invalid CID in request reason code, 175
Invalid Handle error, attributes, 228–229
Invalid Offset error, 229
Invalid PDU error, 229
IP (Internet Protocol) license, 4–5
IPv6 (Internet Protocol), 46
key distribution during pairing, 251
long-term relationships, 259
saving during bonding for private addresses, 260–261
ISM (Industrial, Scientific, and Medical) band. see 2.4GHz ISM band
IV (initialization vector), encryption, 114
Just Works mode, TK value in, 245
Key distribution
pairing procedure, 251
security architecture, 15
Security Manager protocol for, 33
Keys
Connection Signature Resolving Key, 247
encrypting text with, 105
Identity Resolving Key, 246–247
Long-Term Key, 246
as shared secrets, 245
Short-Term Key, 246
L2CAP (Logical Link Control and Adaptation Protocol)
Bluetooth low energy using, 179–180
defined, 169
optimizing peripherals for low power, 307–309
solving connection-oriented problems, 43–44
LANs (local area networks), 2.4GHz ISM band rules, 54
Latency, resolving low, 129–130
Layers
defined, 9
low power as design goal for, 7–8
LE Add Device To White List command, HCI, 147–148, 154–156
LE Advertising Report event, HCI, 152
LE Clear White List Size command, HCI, 147–148
LE Connection Complete event, HCI, 155–157
LE Connection Update command, HCI, 158
LE Connection Update Complete event, HCI, 158
LE Create Connection Cancel command, HCI, 157
LE Create Connection command, HCI, 154–157
LE Long Term Key Request event, 162–163
LE Rand command, HCI, 147
LE Read Advertising Channel Tx Power command, HCI, 150
LE Read Buffer Size command, HCI, 142–143
LE Read Channel Map command, HCI, 159
LE Read Remote Used Features command, HCI, 160
LE Read Remote Used Features Complete event, HCI, 160
LE Read Remote Version Information command, HCI, 160–161
LE Read Supported Features command, HCI, 143–144
LE Read Supported States command, HCI, 144–145
LE Read White List Size command, HCI, 147–148
LE Remove Device From White List command, HCI, 147–148
LE Set Advertising Data command, HCI, 150
LE Set Advertising Enable command, HCI, 150
LE Set Advertising Parameters command, HCI, 148–150
LE Set Host Channel Classification command, HCI, 159
LE Set Random Address command, HCI, 147
LE Set Scan Enable command, HCI, 152
LE Set Scan Parameters command, HCI, 150
LE Set Scan Response Data command, HCI, 150
LE signaling channel, L2CAP
command reject command, 174–175
connection parameter update request
LE Start Encryption command, 161–162
Leakage current, button-cell batteries, 12
Length field
advertising data, 273
packet structure, 30–31, 82–83
Licensing
2.4GHz ISM band free of, 54
Bluetooth low energy IP, 5
Bluetooth low energy ISM band, 4–5
Limited-discoverable mode, devices
discoverable procedures, 265–266
initial discovery, 256
Link budget, calculating range, 58–60
Link establishment mode, 3-Wire UART, 133
advertising mode in, 41
asymmetric design at, 14
controller architecture, 30–31
function of, 69
HCI. see HCI (Host/Controller Interface)
low power as design goal for, 7
optimizing for low power. see optimization for low power
advertising, 71
multiple state machines, 74–75
scanning, 72
Link Power Management, 134
LL_CONNECTION_UPDATE_REQ, 109–111
LL_FEATURE_REQ, 118
LL_FEATURE_RSP, 118
LL_PAUSE_ENC_REQ, 115
LL_START_ENC_REQ, 114
LL_TERMINATE_IND, 119
LLID (logical link identifier), data packet header, 100–101
Load balancing, client-server architecture, 21
Local area networks (LANs), 2.4GHz ISM band rules, 54
Local name advertising data type, 275
Logical interface. see HCI logical interface
Logical Link Control and Adaptation Protocol. see L2CAP (Logical Link Control and Adaptation Protocol)
Logical Link Control protocol, 180
Logical link identifier (LLID), data packet
Long-term relationships, bonding, 259
Loose coupling, service-oriented architecture, 22–23
Low power
button-cell batteries for, 11–12
lowering cost of Bluetooth low energy with, 5–6
optimizing for. see optimization for low power
Low power state mode, 3-Wire UART, 133
Lower-host controller interface, 31
LT (Lower Tester)
transceiver tests, 62
transmitter tests, 64
LTK (Long-Term Key)
key distribution during pairing, 251
long-term relationships, 259
overview of, 246
private addresses, 261
starting encryption for connections, 112–114
Man-in-the-middle attacks, 245–246, 249–250
Manufacturer-specific advertising data type, 276
Mapping
ATT PDUs to GATT procedures, 239
data broadcasting helping with, 42–43
Market segments
one billion is a small number concept, 19
targeted by Bluetooth low energy, 11
Master connection substate, 73–74
Masters
asymmetric design concept of, 15
defined, 9
Link Layer connection process, 95–98
multiple state machine restrictions, 74–75
Maximum transmission unit (MTU), Attribute Protocol, 221
Mbps (million bits per second), Bluetooth low energy transmission, 54–55
Memory
Attribute Protocol requiring very little, 34
Prepare Queue Full error and, 229–230
single-chip solutions and, 39
Message authentication code, authentication signature, 226
Message integrity check. see MIC (message integrity check)
Metric units, SI, 191
AES calculating, 105
encrypted packets including, 107–109
encrypting payload data, 106–107
Prepare/Execute Writes and, 198, 227
Million bits per second (Mbps), Bluetooth low energy transmission, 54–55
Minimum-shift keying (MSK), 53, 55
Modems, technologies increasing speeds of, 4
Modes, GAP
bonding, 270
broadcast, 263
overview of, 262
Modular architecture concept, 18–19
Modular service architecture, 18–19
Modulation
Modulation index
radio signal, 29
MSK (minimum-shift keying), 53, 55
MTU (maximum transmission unit), Attribute Protocol, 221
Multiple state machines, 74–75
Multiplexing layer. see L2CAP (Logical Link Control and Adaptation Protocol)
Name, discovery of device, 257
NAT (network address translation), gateways, 45
NESN (next expected sequence number), 99, 101–104
Network address translation (NAT), gateways, 45
Next expected sequence number (NESN), 99, 101–104
Next expected sequence numbers, 101–104
NIST FIPS-197. see AES (Advanced Encryption System)
NIST Special Publication 800-38B, 247
Nokia, 5
Nonbondable mode, GAP, 270
Nonconnectable advertising events, 82, 93
Nonconnectable mode, GAP, 266
Nonconnectable undirected advertising, 149
Nondiscoverable mode, 264
Nonresolvable private addresses, 278
Notifications
Attribute Protocol, 219
central devices interacting with services, 291–292
Client Characteristic Configuration Descriptor for, 214
as exception to transaction rules, 197
Handle Value Notification, 227–228
optimizing peripheral attributes, 310–311
server-initiated GATT procedure for, 238
in service characterization, 259
Null modem, UART configuration, 132
Num HCI Command Packets parameter, command flow control, 139–140
Object-oriented programming, 199
Objects, in object-oriented programming, 199
Observer role, GAP, 262
Offline encryption, 130
Offset, Invalid Offset error, 229
One billion is a small number concept, 19
Online resources, starting new project, 313
OOK (on-off keying), digital modulation, 51–52
acknowledgement scheme, 127
low overhead, 126
peripheral design for attributes, 311–312
single-channel connection events, 127–128
subrating connection events, 128–130
Out Of Band algorithm, TK value in, 245
Overhead, optimizing for low power, 126
Packet Boundary Flag, HCI, 138–139
Packet counter, encrypting payload data, 106
Packet overhead, application data rate and, 51
Packet reporting event, Direct Test Mode, 67–68
Packet structure, Link Layer
CRC, 84
Packets
advertising and data, 76
as building block of Link Layer, 76
CRC protecting against bit errors, 16
initiating, 73
optimizing with short, 124–125
reducing memory requirements with small, 14
restricting devices to short, 13
testing. see Direct Test Mode
Pairing
authentication of link, 242, 250–251
and bonding, 252
central devices initiating bonding, 292–293
exchange of information, 248–250
key distribution, 251
overview of, 248
Security Manager protocol for, 33
Short-Term Key for encrypting during, 246
Pairing Failed message, 249, 251
Pairing Request message, 249–250, 270
Pairing Response message, 249–250
PAL (Protocol Adaptation Layer), Bluetooth low energy, 169–170
PANs (personal area networks), 2.4GHz ISM band rules, 54
Parameters
configuring advertising, 148–150
HCI connection management by updating, 158
HCI connections to white lists, 155
initiating connections from central devices, 285–286
Parity bit, UART, 132
Passive scanning
central devices discovering devices with, 283–285
Link Layer state machine, 72
overview of, 72
receiving broadcast data, 93
Passkey Entry mode, TK value, 245
Pathloss
calculating link budget to determine range, 58–60
central devices discovering devices, 284
Payload data
3-Wire UARTs in HCI, 133
AES encrypting, 105
L2CAP packet structure, 172–173
PDUs, Attribute Protocol
Invalid PDU error, 229
mapping ATT PDUs to GATT procedures, 239
Peak current, button-cell batteries and, 12
Peripheral design
background of, 299
being connectable, 301
optimizing attributes, 311–312
optimizing for low power, 303–310
security, 303
Peripheral Preferred Connection Parameters characteristic, GAP Service, 279
Peripheral Privacy Flag, GAP Service, 277–278
Peripheral role devices, GAP
discoverability modes, 264–265
Permissions
Attribute Protocol, 34
profile security, 296
security for peripherals, 303
Personal area networks (PANs), 2.4GHz ISM band rules, 54
Phase modulation, 51
Physical bit rate, 51
Physical interfaces. see HCI physical interfaces
asymmetric design at, 14
evolution of Bluetooth data rates, 3
low power design goal for, 7
Physical Layer, controller
background, 49
frequency band, 54
testing with Direct Test Mode, 29–30
tolerance, 57
Physical measurement, external state, 182
Piconet, 9
PIN (personal identification number), 104, 242, 244–245
Plan, test, 317
Plug-and-play client applications, 207–208
Power sensitivity, USB interface, 134
PRBS9 packet sequence, transmitter tests, 63–64
PRD (Qualification Program Reference Document), compliance, 320
Preamble, packet structure, 30–31, 79–80
Prepare Queue Full error, 229–230
Prepare Write Request, Attribute Protocol
overview of, 198
Prepare Queue Full error, 229–230
reliable writes procedure, 237
writing characteristic descriptors procedure, 238
writing characteristic values procedure, 236
Presence detection, new wireless model enabling, 41–42
Primary services
defined, 37
discovering with service UUID, 233
discovery, central device, 286
Find By Type Value Request, 223
grouping using service declaration, 208–209
plug-and-play client applications, 207–208
profile discovering for peer device, 295
Privacy
creating with resolvable private addresses, 36
Identity Resolving Key and, 246–247
Peripheral Privacy Flag, 277–278
primary goal of, 16
Private addresses
complications of advertising using, 260
defined, 260
GAP connection procedures, 268–269
for privacy, 16
reconnection addresses as nonresolvable, 278
Procedures, GAP
bonding, 270
defined, 263
observation, 263
types of, 263
Procedures, GATT
characteristic discovery, 234–235
Exchange MTU, 232
mapping ATT PDUs to, 239
Product information
compliance folder contents, 318
including in Declaration of Compliance, 320
Product types
combining components, 321
selecting features for new, 316
selecting for Bluetooth low energy projects, 315–316
Profile subsystem product type, 315–316
Profile Tuning Suite (PTS) testers, qualification testing, 318
Profiles
finding and using characteristics, 296
finding services, 295
generating test plan for, 317
modular service architecture for, 18–19
selecting for new product, 316
Profile/service architecture
in Bluetooth low energy, 186–189
Properties, characteristic, 211–214
Protocol Adaptation Layer (PAL), Bluetooth low energy, 169–170
Protocol messages, Attribute Protocol, 219–220
Protocol testers, qualification testing, 318
Protocols
Bluetooth using Attribute Protocol. see Attribute Protocol
memory burdened with multiple, 14
PTS (Profile Tuning Suite) testers, qualification testing, 318
QDID (Qualified Design Identifier)
combining components, 321
declaring compliance, 320
listing product, 321
Quadrature amplitude modulation, 51
Qualification program. see testing and qualification
Qualification Program Reference Document (PRD), compliance, 320
Race conditions, HCI, 157
Radio channels
starting receiver tests, 64
starting transmitter tests, 63–64
Radio signals
controllers transmitting and receiving, 27
enabling presence detection, 41–42
high bit rate for low power, 125
measuring path loss in, 58
short range issues, 8
widening of low energy, 29, 41
Radio-Frequency Identification (RFID) tags, 4
Random addresses
HCI advertising parameters, 149–150
Identity Resolving Key and, 246–247
private addresses as, 260
Random numbers
authentication during pairing, 250–251
HCI controller setup, 145
Long-Term Key using, 246
Short-Term Key generated
with, 246
Read BD_ADDR command, device address, 141–142
Read Blob Request, Attribute Protocol
Attribute Not Long error, 230
characteristic descriptors procedure, 238
multiple characteristic values procedure, 235–236
overview of, 224
Read Buffer Size command, HCI controller, 142–143
Read By Group Type Request, Attribute Protocol, 225, 230, 232–233
Read By Type Request, Attribute Protocol
Attribute Not Found error, 230
discovering all characteristics of service, 234
discovering included services, 233
multiple characteristic values procedure, 236
overview of, 223
Read Characteristic Value by UUID procedure, central devices, 284
Read Multiple Request, Attribute Protocol, 224, 236
Read Not Permitted error, 229
Read only memory (ROM), single-chip solutions, 39
Read Request, Attribute Protocol
accessing attributes, 196
characteristic descriptors procedure, 238
multiple characteristic values procedure, 235–236
overview of, 224
Read Supported Features command, HCI controller, 143–144
Readable, access permission, 194
Readable and Writable, access permission, 194
Readable characteristics, 288
Reason codes, command reject command, 174–175
Receive data (RXD), UART/3-Wire UART transport, 132
Received signal strength (RSSI), central devices, 284
Receiver test command, Direct Test Mode, 66, 68
Receivers
in advertising state, 71
asymmetric design of, 14
time is energy concept of, 12–13
using whitener with FSK, 77–79
Reconnected connections, 260
Reconnection Address, GAP Service, 278
References
reusing another service, 203–204
services referencing other services, 200–201
Relationships
accommodating between services, 35
central device discovery of, 286
central devices initiating bonding, 292–293
creating permanently with Generic Access Profile, 36
Remapping process, adaptive frequency hopping, 88–89
Replay attack protection
authentication via signatures, 242
encrypted packets, 105
Request Not Supported error, 229
Request to send (RTS), 5-wire UART transport, 132
Requests
Reset command, Direct Test Mode, 66, 68
Reset command, HCI controller, 141
Resolvable private addresses, 260–261, 268–269
Restarting encryption, HCI connections, 163–164
Reusability
behaviors limiting, 37
in service-oriented architecture, 23
RF testers, qualification testing, 318
RFID (Radio-Frequency Identification) tags, 4
Robustness, Link Layer, 120–123
Roles
ROM (read only memory), single-chip solutions, 39
RSSI (received signal strength), central devices, 284
RTS (request to send), 5-wire UART transport, 132
Rules
2.4 GHz ISM band, 54
access address, 81
RXD (receive data), UART/3-Wire UART transport, 132
Scale, client-server architecture, 21
Scan Parameters Service, peripheral optimization, 309–310
SCAN_REQ, advertising packet, 82
SCAN_REQ packets, HCI active scanning, 152
SCAN_RSP, advertising packet, 82
SCAN_RSP packets, HCI active scanning, 152
Scannable undirected advertising, 149
Scanners
enabling presence detection, 41–42
initial discovery process, 256–257
receiving advertising events via, 91
Scanning state, Link Layer state machine, 72
Scatternets, 75
Secondary services
defined, 37
grouping using service declaration, 208–209
Secure Simple Pairing feature, 248–250
asymmetric design of, 15
bonding, 252
client-server gateway model of, 18
confidentiality, 243
Connection Signature Resolving Key, 247
designing for success, 16
encryption engine, 244
Identity Resolving Key, 246–247
integrity, 243
Long-Term Key, 246
overview of, 241
peripheral devices, 303
Short-Term Key, 246
Security Manager
Bluetooth low energy using, 179–180
channel identifier for, 172
host architecture, 33
signing of data, 106
Segmentation, by multiplexing layers, 170
Selective-connection establishment procedure, GAP, 269
Sequence numbers (SNs), 101–104
Server Characteristic Configuration Descriptor, 214–215
Server-initiated procedures, GATT, 238–239
Service Changed characteristic, 294
Service data advertising data type, 276
Service solicitation advertising data type, 275
discovering primary service, 233
overview of, 191
service advertising data types and, 274–275
service declaration, 209
Service-oriented architecture
abstraction, 23
autonomy, 24
composability, 24
formal contract, 22
as paradigm for Bluetooth low energy, 21–22
reusability, 23
Services
advertising data types for, 274
application layer, 37
central device changing, 293–294
central device interaction with, 288–292
central device’s client remembering/caching between connections, 293–294
defining with profile roles, 294–295
discovery at initial connect, 258
filtering advertising data based on, 257
GATT characteristic discovery procedures for, 234–235
GATT discovery procedures for, 232–233
generating test plan for, 317
Generic Attribute Profile and, 34–36
modular architecture for, 18–19
optimizing peripheral
peripheral design for exposing, 301–302
plug-and-play client applications, 207–208
profiles discovering, 185–189, 295–296
security for peripherals, 303
selecting for new product, 316
Session based, connection-oriented model of Internet, 45
Session key diversifiers (SKD), 114
Shared secrets
in bonding process, 259
Connection Signature Resolving Key, 247
encrypting data packets while connected using, 161–162
Identity Resolving Key, 246–247
keys as, 245
Long-Term Key, 246
Security Manager for key distribution, 33
Short-Term Key, 246
Shift register, 77
Short packets, for low power, 124–125
Short range wireless standards, 8
Short-wave radio, 51
SI (International System of Units), 191
SIG (Special Interest Group), Bluetooth
testing and qualification requirements, 313–316
UnPlugFest testing events, 15
Signaling channel, channel identifier for, 172
Signaling MTU exceeded reason code, command reject command, 175
SignCounter
authentication signature, 226
Connection Signature Resolving Key, 247
Signed Write Command, Attribute Protocol, 225–226, 237–238
Signing of data
AES, 105
authentication via, 242
Connection Signature Resolving Key, 247
Silicon manufacturing processes, short packets optimizing, 124–125
Simultaneous LE And BR/EDR To Same Device Capable, 274
Single-channel connection events, 127–128
Single-chip solutions, stack split, 38–39
Single-mode devices, 6
SKD (session key diversifiers), 114
Slave connection interval range, 275
Slave connection substate, 73–74
Slave latency
connecting to devices, 285
connection events and, 96–97, 129–130
connection parameter update request and, 175–176
connection update request, 111
controlling in peripherals, 308–309
defined, 129
optimizing peripherals for low power, 308–309
Slaves
connection parameter update request and, 109–111
defined, 10
Link Layer connection process, 95–98
multiple state machine restrictions, 74–75
Sleep clock accuracy, Link Layer connection process, 98
Sleep message, 3-Wire UARTs in HCI, 133–134
SLIP, framing packets in 3-Wire UART, 133
SNs (sequence numbers), 101–104
Special Interest Group. see SIG (Special Interest Group), Bluetooth
Speeds, technology almost always increasing, 3–4
Spread spectrum radio regulations, 29
Stack splits architecture, 38–40
Standby state, Link Layer, 70–71
Start messages, LLID, 100
Starting encryption, HCI connection management, 161–163
Starting new project, qualification program, 313–316
State
configuring controller, 136
in connectionless model, 44
in connection-oriented systems, 43–44
HCI advertising filter policy, 150
HCI controller setup, 141, 144–145
kinds of, 182
Link Layer. see Link Layer state machine
optimizing peripherals for low power, 304–305
State machines
central devices interacting with services, 290–291
Link Layer. see Link Layer state machine
representing current internal state, 182
Statelessness
of Attribute Protocol, 34
in service-oriented architecture, 23–24
Stop bit, UART, 132
Subrated connection events, 128–130
Sub-version number, version information, 118
Symbols, 51
TCP connection, as session-based, 45
Temperature, button-cell batteries, 12
Temporary Key (TK), 245–246, 250
error response resulting in request, 231
Link Layer connections, 118–119
Test end command, Direct Test Mode, 66, 68
Test equipment product type, 315–316
Test Plan Generator (TPG) project, 313–315, 317
Test status event, Direct Test Mode, 67–68
Bluetooth process for, 314
combining components, 321
creating compliance folder, 317–318
declaring compliance, 320
generating test plan, 317
listing, 321
overview of, 313
qualification testing, 318–319
selecting features, 316
standardizing. see Direct Test Mode
Testing information, compliance folder contents, 318
Text strings, associating with characteristics, 214
Third-party attackers, compromising integrity, 243
Three-chip solutions, stack split, 40
Three-way handshake, encryption for connections, 113, 115
TK (Temporary Key), 245–246, 250
Toggle command, state machines, 184–185
Tolerance, 57
TPG (Test Plan Generator) project, 313–315, 317
Transactions, atomic operations and, 197–198
Transceiver testing, Direct Test Mode, 62–65
Transmit (TX) power level advertising data type, 275, 284
Transmit window, Link Layer connections, 95–96, 110–111
Transmitter test command, Direct Test Mode, 66, 68
Transmitters
in advertising state, 71
asymmetric design of, 14
time is energy concept of, 12–13
Two-chip solutions, stack split, 39–40
TX (transmit) power level advertising data type, 275, 284
TXD (transmit data), UART/3-Wire UART transport, 132
UART (Universal Asynchronous Receiver Transmitter), HCI
physical interface, 132
Undirected-connectable mode, GAP, 267
Unit UUIDs, 191
Units
Characteristic Presentation Format Descriptor, 216–217
generic client, 287
Unlikely Error response, 230
UnPlugFest testing events, 15
Unsupported Group Type error, 231
Updates
adaptive frequency hopping, 111–112
Upper-host controller interface, 31
URLs, client-server architecture, 20–21
Usage models. see new usage models
USB physical interface, HCI, 134
UT (Upper Tester)
transceiver tests, 62
UUIDs (Universally Unique Identifiers)
attribute types, 192
characteristics at application layer labeled with, 37–38
discovering all primary services, 233
Find Information Response and, 222
generic clients and, 287
identifying attribute type, 190
service declaration, 209
service UUIDs. see service UUIDs
unit UUIDs, 191
Validated testers, qualification testing, 318
Value handle, characteristic, 212
Values, characteristic
overview of, 213
Version exchange
HCI connection management, 160–161
Link Layer connections, 117–118
White lists
auto-connection establishment procedure, 267–268
connectability of peripherals, 301
HCI advertising filter policy, 150
HCI initiating connection to device(s) in, 154–156
HCI passive scanning filter policy, 152
Wibree technology, 5
Wi-Fi
adaptive frequency hopping remapping, 88–89
defined, 10
Link Layer channels and, 84–85
technologies increasing speeds of, 4
Window widening, 309
Wired infrastructure, problem of Internet design, 45
Wireless band, global operation design goals, 7–8
Woken message, 3-Wire UARTs in HCI, 134
Writable, access permission, 194
Writable characteristics, 288–289
Writable state, 17
Write Command, Attribute Protocol
accessing attributes, 196
writing without response procedure, 237–238
Write Request, Attribute Protocol
accessing attributes, 196
characteristic descriptors procedure, 238
characteristic values procedure, 236
overview of, 225
XML files