一、拓扑结构和设备状
星形拓扑结构
主设备管理着连接, 并且可以连接多个从机设备, cc254x的主设备可以最多连接3个从设备, 但一个从设备只能链接一个主设备
六种设备状态
待机状态(Standby): 设备没有传输和发送数据, 并且没有连接到任何设备。
广播状态(Advertiser): 周期性广播状态。
扫描状态(Scanner): 主动寻找正在广播的设备。
发起连接状态(Initiator): 主动发起连接。
主设备(Master): 作为主设备连接到其他设备。
从设备(Slave): 作为从设备连接到其他设备。
二、BLE 状态以及连接过程
三、BLE 广播事件
广播包的发送是单向的, 不需要任何连接。 设备发送广播包即进入广播状态。
广播包可以包含特定的数据定义, 最大 31 个字节。
广播包中可以声明是可被连接的设备, 或者是不可连接的设备。
在一个广播时间中, 广播包会分别在三个广播通道中被发送一次(37, 38, 39)。
四、BLE 广播间隔
广播间隔, 是两次广播事件之间的最小时间间隔, 一般取值范围在 20ms~10.24s 之间。 链路层会在每次广播时间期间产生一个随机广播延时时间( 0ms~10ms), 这个延时被加在广播时间中, 这样来避免多设备之间的数据碰撞。
五、BLE 扫描事件
每次扫描设备打开 Radio 接收器去监听广播设备, 这样称为一个扫描时间, 扫描时间交替发生在三个特定的广播通道中: 37、 38、 39 。
关于扫描的两个时间参数:
扫描时间: 即扫描设备的扫描频度。
扫描窗口: 每次扫描事件持续的时间
六、BLE 发起连接
除了扫描, 设备也可以主动发起连接, 发起状态的设备和扫描状态的设备区别在于:当它监听到一个可连接的广播, 发起设备就会发送一个连接请求, 而扫描设备会发送一个扫描请求。连接请求包括一套为从设备准备的连接参数, 安排连接期间发生的通道和时间。如果广播设备接收了连接, 两个设备会进入连接状态, 发起方会称为 Master(主机),而广播方会称为 Slave(从机)。
七、BLE 连接参数
通道映射, 指示连接使用的频道。
调频增量, 一个 5~16 之间的随机, 参与通道选择的算法。
连接间隔, 1.25ms 的倍数, 在7.5ms~4s 之间。
监督超时, 10ms 的倍数, 100ms~32s 之间, 必须大于(1+slaveLatency)*ConnInterval
从机潜伏, 0~499 之间, 不能超过(SupervisionTimeout/connInterval) -1
八、BLE 连接事件
所有的通信都发生在两个设备的连接事件期间, 连接事件周期的发生, 按照连接参数指定的间隔联系, 每个事件发生在某个数据通道(0~36), 调频增量参数决定了下次连接时间发生的通道, 在每个连接时间期间, Master 先发送, Slave 会在 150us 之后做出回应, 即使一个连接事件发生( 或两者), 双方都没有数据发送(例外情况是从设备潜伏使能), 这允许两个设备都承认对方仍然存在并保持活跃的连接。
九、终止连接
9.1、Master 和 Slave 都可以主动断开连接。
一边发起断开, 另一边必须在断开连接之前回应这个断开请求。
9.2、监视超时而断开连接。
监视超时参数都指定了两个数据包之间的最大时间跨度。监视超时时间必须大于有效连接间隔而小于 32s。Slave 和 master 双方都维持着自己的监视超时计时器, 在每次收到数据包时清零。如果连接超时, 设备会认为连接丢失, 并且退出连接状态, 返回广播、 扫描或者待机式。