BLE4.0核心规格(四)之BLE 广播状态的四种事件类型

Advertising State:

在广播状态下, 链路层在广播事件中发送广播 PDU 。 广播事件
共有 4 种:

  • 非定向可连接事件(ADV_IND)
  • 定向可连接事件(ADV_DIRECT_IND)
  • 非定向扫描事件(ADV_SCAN_IND)
  • 非定向不可连接事件(ADV_NONCONN_IND)

1. 广播通道的选择:
在广播事件中, 每一个广播事件都会在 3 个广播信道中进行数据传输, 而且每一个事件都是以最小的信道编号开始传输。也就是说当广播事件来了,这个 PDU 是依次从广播通道 37、 38、 39 中进行传输。

2. 广播间隔:
对于说有非直连广播事件,两个广播事件之间的间隔即T_advEvent计算如下
T_advEvent = advInterval + advDelay

Advlnterval即广播间隔,广播间隔必须是0.625ms的整数倍,且范围应该是20ms到10.24s之间。如果广播事件既不是非定向扫描事件(ADV_SCAN_IND),也不是非定向不可连接事件(ADV_NONCONN_IND),那么广播间隔不能小于100ms。如果广播事件是非定向可连接,则广播间隔必须大于或等于20ms。也就是说Connectable
Directed 必须大于100ms;

advDelay 广播延时,为0到10msz之间的随机数。
在这里插入图片描述

3. 广播事件

  • 3.1 非定向可连接事件(ADV_IND)

非定向可连接事件是我们最常用到了,它允许Scaner回复扫描请求或Iintiator回复连接请求。Scaner可以回复一个扫描请求(SCAN_REQ PDU) ,要求广播者提供更多的信息。Iintiator可以发送一个连接请求CONNECT_REQ PDU,去要求链路进入连接态。

两个ADV_IND PDUs 之间的间隔必须小于等于10ms.当进入广播间隔后广播状态会关闭。每个广播事件都包含三个不同广播通道的数据包

 *** 不存在扫描请求时,时序图如下。***

在这里插入图片描述

 ***2. 收到扫描请求时,时序图如下***

如果广播者收到带有设备地址的SCAN_REQ PDU,并通过了广播过滤策略,则广播者一定(shell 强制)在同一广播通道回复SCAN_RSP PDU ,当SCAN_RSP PDU被发送出去后,广播者会发送下一广播通道的ADV_IND PDU或关闭广播。如果没有通过广播过滤策略,广播者会发送下一广播通道的ADV_IND PDU 或关闭广播。

在这里插入图片描述在这里插入图片描述

 ***3. 收到连接请求时,时序图如下***

如果广播者收到带有设备地址的CONNECT_REQ PDU ,并通过了广播过滤策略,广播者会退出广播态,以Slave Role的角色进入连接态。如果没有通过广播过滤策略,广播者会发送下一广播通道的ADV_IND PDU 或关闭广播。时序图如下

在这里插入图片描述

  • 3.2 定向可连接事件(ADV_DIRECT_IND)

当ADV_DIRECT_IND PDU被发送出去后,广播者会监听CONNECT_REQ PDUs
连接请求包,其他扫描请求包会被忽略。ADV_DIRECT_IND PDU 包含了发起者的设备地址和广播者的设备地址。CONNECT_REQ PDU 也包含了两个地址发送者的地址和广播者的设备地址。只有接收到对应的CONNECT_REQ PDU,广播者才会进入连接态,或者广播者会发送下一广播通道的ADV_DIRECT_IND PDU或关闭广播。 在同一个广播通道广播的ADV_DIRECT_IND PDU 之间的间隔不能大于3.75ms 。进入广播态不能超过1.28s.

在这里插入图片描述

  • 3.3 非定向扫描事件(ADV_SCAN_IND)

这个广播其实是一个非定向可发现的广播,它和通用广播的时间
控制是一样的,应答也是 SCAN_REQ PDU 和 SCAN_RSP PDU,这个广
播和通用广播的区别是,它不能建立连接, 只能处于广播态或者就绪态。这是一种适用于广播数据的广播形式,动态数据可以包含于广播数据中, 而静态数据可以包含于扫描响应数据之中。 当广播者接收到一个来自扫描者的SCAN_REQ PDU 包,包里含有广播者的设备地址,并通过了广播过滤策略时,广播者回复SCAN_RSP PDU 。如果没有通过广播过滤策略,广播者会发送下一广播通道的ADV_IND PDU 或关闭广播。

在这里插入图片描述
在这里插入图片描述

3.4 非定向不可连接事件(ADV_NONCONN_IND)

这个事件只广播,不能监听来自扫描者和发起者的信息,不能进入连接态

在这里插入图片描述4.四种状态是否可连接可扫描

在这里插入图片描述由此可以看出

  • ADV_IND 可以对扫描请求就行回复,也可以被连接。
  • ADV_DIRECT_IND 不会对扫描请求进行回复,可以被正确地址的发起者连接。
  • ADV_NONCONN_IND不会对扫描请求进行回复,不能被连接。
  • ADV_SCAN_IND 可以对扫描请求进行回复,当不能被连接。
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值