当前位置: 首页 > news >正文

BLE广播与扫描

        BLE广播可以分为:定向/非定向广播,可连接/不可连接广播,可扫描广播,高/低占空比广播,以及有限/普通可发现广播。

        扫描可以分为:主动 / 被动扫描,高 / 低占空比扫描以及多种发现模式

1. 定向/非定向广播,可连接/不可连接广播和可扫描广播

        上图是定义了定向/非定向广播,可连接/不可连接广播和可扫描广播这3个类型的相应组合。图中上下两组一一对应,广播事件对应广播报告事件,如:GAP_ADRPT_ADV_DIRECT_IND 对应 GAP_ADTYPE_ADV_HDC_DIRECT_IND 事件类型。

        这里第三个可扫描非定向指的是,向所有设备发出广播而非指定某一设备,且可以接收来自主机的扫描请求,进而发出扫描回复包给主机。

        此外高占空比广播低占空比广播分别指的是快速广播和慢速广播,高占空比广播目的是为了更快被主机发现进而与其建立连接通讯。相应的,如果主机想要快速扫到设备,也需要将扫描方式改为高占空比扫描

2. 有限/普通可发现广播

        上图第一组前两个参数TGAP_GEN_DISC_ADV_MIN 和 TGAP_LIM_ADV_TIMEOUT是设置通用/有限广播的广播保持时间。第二组则是设置有限和通用广播的广播间隔。

        当TGAP_GEN_DISC_ADV_MIN为0时,则关闭普通广播超时,从机则按照设置的广播间隔持续发出普通广播;

        当TGAP_LIM_ADV_TIMEOUT为设置有限广播的保持时间,之所以叫有限广播就是不能一直广播,只广播有限的时间。

       

1. 主动 / 被动扫描

        主动扫描:主机收到广播后可主动向从机发送扫描请求以获取更多广播数据(从机发的扫描回包);

        被动扫描:指被动监听广播数据无法发起扫描请求。

2. 高 / 低占空比扫描

        这里之前已经在广播部分说明,因此省略。。。

3. 扫描模式 (发现模式)

        发现模式主要是用来指定主机可发现哪些从机设备,主要分为以下几种:        

如上图,指定可发现普通广播设备、有限广播设备以及所有可发现设备。

白名单广播和定向广播区别

        白名单广播:从设备向所有设备进行广播,但只接收来自白名单中主机的扫描或连接请求。

        定向广播:从设备向指定主机设备地址进行广播,只有该主机设备能接收到其发出的广播。

       

广播过滤规则:

        白名单过滤是在HCI层以下,也就是 Link Layer 层进行过滤的。

        而广播过滤一般是在应用层进行过滤的。

http://www.dtcms.com/a/360292.html

相关文章:

  • 嵌入式C学习笔记之预编译
  • Redis面试重点-2
  • Coze源码分析-工作空间-项目开发-前端源码
  • 在Windows系统Docker中使用wsl2、容器、windows文件路径三种不同挂载方式的区别和性能差异
  • ceph对象存储-存储池-用户认证
  • @Value注解的底层原理(一)
  • Day18 (前端:JavaScript基础阶段)
  • 数据结构 04(线性:双向链表)
  • Ansible 临时命令与常用模块实操指南
  • Cartographer中的gflag与lua文件
  • 国庆福建霞浦游
  • 阿里云创建自己的博客,部署wordpress
  • Java学习笔记-IO流(更新中...)
  • 嵌入式C学习笔记之链表
  • kkfileview自建cdn引入
  • 解决git push时的错误提示:“error: src refspec master does not match any”
  • 极客学院-从零开始学架构
  • 轻量化注意力+脉冲机制,Transformer在低功耗AI中再度进化
  • CAN数据链路层、网络层(ISO11898、15765)
  • 深度学习周报(8.25~8.31)
  • Unity核心概念②:帧、生命周期函数
  • Unity学习----【数据持久化】二进制存储(三)--文件夹操作
  • JSP 原理深度解析
  • 血缘元数据采集开放标准:OpenLineage Integrations Compatibility Tests Structure
  • 一句话PHP木马——Web渗透测试中的隐形杀手
  • Java GC 销毁机制 与 Redis 过期策略深度对比
  • 微知-Mellanox OFED编译的一些细节?无法编译怎么办?如何添加自定义编译选项?
  • linux系统学习(14.日志管理)
  • Day 01(02): 精读HDFS概念
  • QML Chart组件之图例