BLE也就是低功耗蓝牙Bluetooth Low Energy,也叫Bluetooth Smart,从蓝牙4.0规格引进,在蓝牙4.1规格上进行了加强,使用在了安卓5.0上。在蓝牙5.1规格的时候,BLE的传输速度和能力都得到进一步的增强,但是原理没有变化。
在无线领域中,有WiFi,GSM,Zigbee等技术,但是BLE因为有低功耗的好处,广泛使用在了IoT和可携带设备上。这里要注意的是,经典蓝牙和BLE是两种不同的技术,虽然他们使用了同一套源代码。
蓝牙架构
左边是经典蓝牙的体系架构,右边是BLE的体系架构,中间是经典蓝牙和BLE的混合的体系结构。他们之间的共同点是都使用了L2CAP层。
在蓝牙技术中,有Application,Host和Controller三个角色。这三个角色可以位于不同的设备,也可以位于同一个设备上。
如果说BLE的缺点,目前是指BLE的吞吐量和连接范围,通常是125kbit/s和30米,笔者认为这样的数值显然不足以支持大容量的设备,但是对于小型设备是足够使用了。
使用BLE的时候,使用如下的网络拓扑图
在这个拓扑图中,有2种类型的角色,一个是发送者,一个是接收者。我们可以看到在图中有一个发送者,有若干个接收者。发送者负责发送广播,接收者或者接收广播。
如果需要双向传输,则需要连接connection,使用如下的拓扑结构
遵循以下规则:
- 一个设备可以是发送者,同时也可以是接收者。
- 一个发送者可以连接多个接收者
- 一个接收者也可以连接多个发送者
如果进一步了解蓝牙技术,需要知道协议Protocol和规格Profile的内容。
简单来讲,协议就是横向的规则,规定在同一个层之间的以什么样的方式进行交流
规格是竖向的规则,表示一个功能在各个层之间如何实现。
在蓝牙中主要使用了GAP和GATT两种非常基础的规格。
GAP是Generic Access Profile,负责规定如何连接BLE。
GATT是Generic Attribute Profile,负责如何交换信息。