ble原理(3) 广播类型
发布日期:2021-06-29 05:35:28 浏览次数:2 分类:技术文章

本文共 2322 字,大约阅读时间需要 7 分钟。

1.广播部分

1:广播可设置以下几种类型:

  1. Connectable Undirected Event Type(可连接无定向广播)

  2. Connectable Directed Event Type(可连接定向广播)

  3. Scannable Undirected Event Type(可扫描无定向广播)

  4. Non-connectable Undirected Event Type(不可连接无定向广播)

2. Connectable Undirected Event Type

可连接非定向广播包为(ADV_IND PDU)。在可连接的无定向广播类型下,一个“扫描者”或“发起者”可以用扫描请求或连接请求来回应这个广播包。“扫描者”可发送一个扫描请求(SCAN_REQ PDU)来获取广播的额外信息(SCAN_RSP);“发起者”可发送一个连接请求(CONNECT_REQ PDU)来要求Link Layer(链接层)进入链接状态。

Link Layer(链接层)需在同一个广播信道上监听来自“扫描者”或“发起者”的请求。

如果“广播者”收到一个扫描请求包(SCAN_REQ PDU),该请求包含有它的设备地址,并且该“扫描者”为广播过滤策略所允许,那么“广播者”就会在同一信道上回应一个数据包(SCAN_RSP PDU)。当(SCAN_RSP PDU)发送完成后,或由于广播过滤策略阻止了该请求包,“广播者”就会移到下一个广播信道来发送另一个广播包(ADV_IND PUD),或关闭广播事件。

如果“广播者”收到一个连接请求包(CONNECT_REQ PDU), 该请求包含有它的设备地址,并且该“发起者”为广播策略所允许,Link Layer(链接层)就会退出广播状态并转移到连接状态,并且角色转化为“从设备”。如果广播过滤策略阻止了该连接请求包,“广播者”就会移到下一个广播信道来发送另一个广播包(ADV_IND PUD),或关闭广播事件。

在一个广播事件中的两个相邻广播包(ADV_IND PDU)的时间间距小于等于10ms,广播状态将在advertising interval内完成状态的关闭。

一个没有扫描请求和连接请求的广播事件(使用所有广播信道37、38、39)如下图所示:

3.Connectable Directed Event Type

可连接的定向广播包为(ADV_DIRECT_IND PDU)。该类型允许一个“发起者”以连接请求包来回应(CONNECT_REQ PDU)该广播包,“发起者”发送一个连接请求包要求LinkLayer(链接层)进入连接状态。

可连接的定向广播包(ADV_DIRECT_IND PDU)同时包含“发起者”设备地址和“广播者”设备地址。只有符合该地址的“发起者”才可向“广播者”发起一个连接请求(CONNECT_REQ PDU),也就是说当“发起者”收到该广播包时,它会检测是否和自己的地址一致,如果不一致就丢弃该包不做任何回应,如果是自己的地址,它会将它提交到Host层,由Host层来决定是否发起一个连接请求。

当“广播者”发送一个广播包(ADV_DIRECT_IND PDU)后,它将在同一信道上监听连接请求包(CONNECT_REQPDU)。任何扫描包将被忽略,也就是说不接受扫描请求。

如果“广播者”收到一个包含它设备地址的连接请求包,并且该“发起者”就是广播包的指定目标,那么Link Layer(链接层)将退出广播状态并转移到连接状态,并且角色将由“广播者”转化为“从设备”。否则,“广播者”将切换到下一个广播信道发送下一个广播包,或者关闭这个广播事件。

在同一个广播信道上的两个相邻广播包的时间间隔小于等于3.75ms,可见该类型的广播速度比可连接非定向广播包(<=30ms)要快很多。

当进入广播状态后,Link Layer(链接层)会在1.28s内退出广播状态。

一个没有连接请求(CONNECT_REQ PDU),含有5个广播包(ADV_DIRECT_IND PDU)的两个广播事件序列图4.Scannable Undirected Event Type

可扫描非定向广播包(ADV_SCAN_IND PDU),允许一个“扫描者”回应一个扫描请求包(SAN_REQ PDU)来向“广播者”获取附加信息(SCAN_RSP)。

Link Layer(链接层)将在同一个信道上监控来自扫描者的请求。

如果“广播者”收到一个包含它的地址的扫描请求包(SCAN_REQ PDU),并且该“扫描者”的地址符合过滤策略(说白了就是该设备合法,不被“广播者”的地址过滤策略过滤),那么“广播者”将在同一广播信道上回应一个数据包(SCAN_RSP PDU)。当SCAN_RSP PDU数据包发送完成后或SCAN_REQ被过滤策略阻止,那么“广播者”将切换到下一个广播信道发送下一个广播包或关闭该广播事件。
在一个广播事件中的两个相邻广播包(ADV_IND PDU)的时间间距小于等于10ms,广播状态将在advertising interval内完成状态的关闭。

没有扫描请5. Non-connectable Undirected Event Type

不可连接非定向广播包(ADV_NONCONNN_IND PDU),该广播类型不接受任何请求包(包含:扫描请求和连接请求),“扫描者”可接收来自“广播者”的广播包。

在一个广播事件中的两个相邻广播包(ADV_IND PDU)的时间间距小于等于10ms,广播状态将在advertising interval内完成状态的关闭。

2 广播格式类型

转载地址:https://blog.csdn.net/zhi_Alanwu/article/details/104836694 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c语言库函数
下一篇:ble原理(2)蓝牙5.0文档概述

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月08日 17时46分59秒