一、Configurations(结构)
蓝牙4.0之前的设备不能与BLE交互
1、根据蓝牙协议支持划分
1)、BR/EDR(经典蓝牙)
随着蓝牙协议1.0而发展起来的无线标准
2)、BLE(低功耗蓝牙)
蓝牙协议4.0引进低功耗无线标准,并且有以下两种类型
a、Single-mode device(单模设备 BLE,Bluetooth Smart)
单模设备可以与单模设备和双模设备通信,但是不能与经典蓝牙通信
b、Dual-modece(双模设备 BR/EDR/LE,Bluetooth Smart Ready)
双模设备包含了经典蓝牙设备和BLE设备,所以他可以和任何一个蓝牙通信
2、基于蓝牙芯片数量划分
1)、Application
用户应用程序与蓝牙协议栈接口以覆盖特定用例。
2)、Host
Host是蓝牙协议栈的上层
3)、Controller
Controller是蓝牙协议栈的下层
除此之外,蓝牙协议提供了Host和Controller之间交互的借口HCI,这些不同的层可以实现在一个芯片里,也可以是现在多个芯片里。
a、SoC(system on chip)
一个芯片包含Application、host和controller
b、Dual IC over HCI
一个芯片跑Application和Host,另一个跑Controller。这样做的好处是,因为HCI是标准接口,所以不同厂商的Host和Controller可以任意搭配
c、Dual IC with connectivity device
一个芯片跑Application,另一个芯片跑Host和Controller,他们之间通过专有协议通信,通信协议有厂商定义
简单的传感器采用SoC配置,智能手机采用Dual IC over HCI方案,因为手机有强大的处理器跑协议栈,手表采用Dual IC connectivity device 方案
二、关键限制
1、Data Throughput(数据吞吐量)
蓝牙协议规定蓝牙的调制速率位1Mbps,这是理论上限,但实际比这个低很多
2、Operating Rang(操作范围)
低功耗蓝牙为了降低电量消耗一般传输距离是2-5米
三、网络拓扑
1、Broadcasting and Observing
你可以通过广播发送数据,监听者不需要建立连接就可以接受广播的数据
广播模式定义了两个角色:
Broacaster:周期发送面向无连接的广播数据包
Observer:反复扫描已接收无连接的数据包
标准的广播包是31字节,如果要广播的数据大于31个字节,BLE支持扫描响应(Scan Response),用于广播第二包数据 ,用广播模式通信没有安全保证
2、Connections
两个设备建立连接之后,可以相互交互数据
连接包括下面两个角色:
Central(master):持续扫描以寻找广播包,并在适当的时机建立连接,一旦建立连接,外围设备将遵循中心设备的时间,并周期交换数据
Peripheral(slave):发送广播包,并接受即将到来的连接,一旦建立连接,外围设备将遵循中心设备的时间,并周期交换数据
一个设备在同一时间既可以做中心设备,也可以做外部设备
一个中心设备可以连接多个外围设备
一个外围设备可以连接多个中心设备
四、Protocol versus Profile
Protocols:Protocol实现了不同的数据包格式、路由、复用、编码、解码,使数据高效的发送给对方
Profiles:profile 定义了如何使用Protocol来实现特定的目标
1、Generic Profiles(通用配置文件)
Generic Access Profile (GAP):定义角色、过程、广播数据、发现设备、建立连接、管理连接、协商安全等级。
Generic Attribute Profile(GATT):发现、读、写、推送数据元素
2、 Use-Case-Specific Profiles
Use-Case-Specific Profiles是基于 GATT-based profiles的扩展。
SIG-defined GATT-based profiles:蓝牙组织协会提供了一系列参考框架用于顶层控制和设备数据层次,
a、Find Me Profile:允许设备定位其他设备(手机防丢器)
b、Proximity Profile:检测附近设备的存在与否(如果不在身边就会叫)
c、HID over GATT Profile:传输HID数据
d、 Glucose Profile:安全传输葡萄糖水平数据
e、 Health Thermometer Profile:传输身体的温度
f、 Cycling Speed and Cadence Profile:传输自行车数据和节奏数据
Vendor-Specific Profiles:蓝牙协议允许厂商定义他们自己的profile,例如Apple 的iBeacon。