提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、广播信道
- 为什么要选择37,38,39做广播通道呢?
- 二、广播数据包格式
- 三、广播间隔
前言
蓝牙广播内容字段是包含在蓝牙广播数据包中的信息块,用于标识广播设备、提供有关设备的信息以及支持各种应用。
一、广播信道
BLE设备共40个信道,频段范围从2402MHz到2480MHz,其中37,38,39是广播信道,其余37个作为数据信道或辅助广播信道。
为什么要选择37,38,39做广播通道呢?
我们可以看看wifi传输信道情况,这样设计可能是为了最大程度避开wifi传输信道的干扰,影响广播扫描配对。配对成功后,蓝牙传输支持channel hop功能来做抗干扰。
二、广播数据包格式
蓝牙广播数据包的主要格式:一个广播包是由若干个广播单元AD Structure构成的。每个广播单元的组成是:第一个字节是长度值 length,表示接下来的 length个字节是数据部分;数据部分的第一个字节表示数据的类型AD Type,决定了AD Data的数据代表的是什么以及怎么解析,广播数据最长31字节。
广播内容和扫描回复内容的格式定义是通用的。都是长度+数据的方式,其中数据又分成类型+实际数据,如下图:
上图可能不够直观,这里再简单列个例子:
三、广播间隔
设备每次广播时,会在3个广播信道发送相同的报文。这些报文报文的动作被称为一个广播事件。除了定向广播外,其他广播事件均可以选择20ms-10.28s不等的间隔。通常,一个广播中的设备会每一秒广播一次。两个相邻的广播事件之间的时间被称为“广播间隔”。
广播间隔的取值范围是20ms ~ 10.24ms之间,单位为0.625;
advInterval链路层会再每个广播事件期间产生一个随机广播延迟时间(0ms and 10ms),这个延迟是会被加在广播中间中,这样来避免多个设备之间数据碰撞。
两个相邻的广播事件之间的时间间隔T_advEvent为:
T_AdvEvent = advInterval + advDelay