前言
前面通过《蓝牙基础知识(一)》和《蓝牙基础知识(二)》两篇,我们了解了一些蓝牙的基本概念。之前说过蓝牙分为BR/EDR和BLE,接下来,我们先来看看BLE的内容。
BLE工作频段和信道
BLE工作在2400-2483.5 MHz频段,有40个信道,关系如下:
有3个用于广播(37 ~ 39),另外37个为通用信道(0 ~ 36)。
BLE设备状态
BLE设备在链路层定义了7种状态:
- 待机状态(Standby)
- 广播状态(Advertising)
- 扫描状态(Scanning)
- 初始化状态(Initiating)
- 连接状态(Connection)
- 同步状态(Synchronization)
- 同步广播状态(Isochronous Broadcasting)
设备状态图:
目前我们只关注前5种
- Standby : 开机上电就是这种状态。说简单点就是不工作。
- Advertising:就是在发送一些广播数据包,告诉其他设备一些信息,方便其他设备来查找自己或连接自己。当然,并不是所有广播设备都是可连接或可扫描的。
- Scanning:扫描正在进行广播的设备。
- Initiating:就是对其他设备发起连接。
- Connection:连接状态就没什么好多说的了。
从上图我们可以看到,一个设备进入Connection状态,之前的状态要么是Advertising, 要么是Initiating。从Initiating到Connection状态的设备就变成主设备,从Advertising到Connection状态的设备就变成从设备。毕竟是人家主动发起连接嘛!
GAP
GAP: GENERIC ACCESS PROFILE ,通用接入规范。
GAP是蓝牙中最基本的profile,所有蓝牙设备都必须实现。无论是经典蓝牙,还是BLE,都得实现。GAP连接了各个层,描述了设备发现、连接建立、安全、认证、关联模型和服务发现的行为和方法。
通过上图我们可以看到,GAP是其他Profile的基础。
在LE中,GAP定义了四种角色:Broadcaster, Observer, Peripheral, Central 。
- Broadcaster:仅有发射器,设备使用广播包进行数据广播。Broadcaster不支持连接。
- Observer:仅有接收器,Broadcaster的互补设备,接收Broadcaster的广播数据,Observer也不支持连接。
- Peripheral:支持单一连接。
- Central:支持多连接,是所有连接的发起者。
我们平常用得比较多的就是Peripheral和Central 。Peripheral一般就是非常小或者简单的低功耗设备,用来提供数据,比如智能手环。Central相对比较强大,用来连接其他Peripheral设备,比如手机等。