BLE之 扩展广播介绍

目录

空中接口数据包介绍

 广播物理信道PDU ​

广播PDU

广播包基本介绍    

​ 扩展广播包结构

Extended Header Length

AdvMode

Extended Header

 Extended Header Flags

AdvA和TargeA

 AdvDataInfo(ADI)    

AuxPtr       

SyncInfo     

TxPower

ACAD

AdvData


空中接口数据包介绍

LE 设备的数据包有两种基本格式:LE Uncoded PHYs、LE Coded PHY。

  • LE UNCODED PHYS数据包格式:(BLE 尚未编码的 PHYs)

注意:

  1. The preamble is 1 octet when transmitting or receiving on the LE 1M PHY and 2 octets when transmitting or receiving on the LE 2M PHY. 
  2. 除了 Extended Advertising PDUs(BLE 5 新增的规范),对于 Advertising Channel ,Access Address 是固定值 10001110100010011011111011010110b(0x8E89BED6)。当 BLE 设备接收到广播后验证 Access Address 正确,才认为它是个 Broadcast Packet 而不是噪音。
  • LE CODED PHY数据包格式:(BLE 已编码的 PHYs)

         其中 Preamble 不需要编码,Access Address、CI 和TERM1 属于 FEC block 1,PDU、CRC 和 TERM2 属于 FEC block 2。FEC block 1 采用 S=8 编码算法,FEC block 2 根据 CI 字段值采用 S=2 或 S=8 编码算法。

 广播物理信道PDU 

  • TxAdd:发送数据的设备位址类型,如果该位是 0 表示 Public Address,1 表示 Random Address。
  • RxAdd:接收数据的设备位址类型,如果该位是 0 表示 Public Address,1 表示 Random Address。 

广播PDU

广播类型:

  •  ADV_IND
  •  ADV_DIRECT_IND
  •  ADV_NONCONN_IND
  •  ADV_SCAN_IND
  •  ADV_EXT_IND
  •  AUX_ADV_IND
  •  AUX_SYNC_IND
  •  AUX_CHAIN_IND

广播包基本介绍    

        蓝牙5.0把广播信道抽象为两类,一种叫主广播信道(primary advertisement channels),工作在37,38,39三个信道中,蓝牙4.0的广播使用的都是主广播信道,另一种叫第二广播信道(Secondary Advertising Packets),工作在0–36信道中,这是蓝牙5.0新增的。
        如下图所示,对比4.0广播包新增了许多类型的广播包,其中ADV_EXT_IND以及所有channel处于Secondary Advertising的均为新增的广播包类型。

       蓝牙5.0中在主广播的数据类型增加了一个ADV_EXT_IND指令,当扫描设备收到ADV_EXT_IND指令且能识别其携带的数据时(需要扫描设备也是蓝牙5.0才能正确识别),根据包中携带的信息可以去第二广播信道监听其辅助包(auxiliary packet),典型的使用如下图所示。
图中的ADV_EXT_IND广播在主广播信道上,AUX_ADV_IND为其辅助包且广播在第二信道上,扫描设备可以在主广播上监听ADV_EXT_IND广播包,然后根据其携带的内容到第二广播包中监听到AUX_ADV_IND。 

 扩展广播包结构

        广播包的PDU包如下图所示,由两个字节的Header以及若干字节Payload组成。   在这里插入图片描述

        蓝牙5.0中新增的ADV_EXT_IND以及所有channel处于Secondary Advertising的广播包中的Payload采用相同的结构,称为Common Extended Advertising Payload Format,其Payload内容如下图所示,

Extended Header Length

        由6个bits组成,指示了Payload中的Extended Header的长度,长度范围是0–63。

AdvMode

        由2个bits组成,用来指示该广播包的模式,如下图所示,我们知道4.0的广播包是通过PDU中的PDU type来标识,扩展广播类型则使用Playload的AdvMode来指示其模式。

 

Extended Header

        其长度范围是0–63个字节,由Extended Header Length的大小指定其长度,是扩展广播包的核心组成部分,其结构如下图所示。

 Extended Header Flags

        我们讲到Extended Header是长度可变的,那么我们如何得知上表中的哪一个部分被使用到呢?Extended Header中通过首字节的8个bit来标识。当Extended Header Length不为0时,首先通过Extended Header Flags去判断哪个部分被用到。Extended Header Flags对应bit代表的部分如下图所示

AdvA和TargeA

         AdvA和TargeA拥有相同的结构,分别代表广播地址及目标地址,均由6个字节地址组成。其地址类型包含在PDU中的TxADD及RxADD中。

 AdvDataInfo(ADI)    

        ADI由两个部分组成,如下图所示:

        DID用来标识广播数据的ID,每次数据更新时DID也会随之更新为与上次不同的随机值。
        SID用来表示标识不同的广播事件,因为在扩展广播中,会有若干个广播事件,所以用SID来进行标识。

AuxPtr       

        前面我们讲到扫描设备通过广播包数据中携带的信息监听辅助包,扫描设备就是通过Auxptr所携带的内容来确定辅助包的位置及其所处的信道。如下图所示:

  • CA

        广播设备的时钟精度,具体含义如下图所示:

  • Offset Unit

        Offset Unit是AUX Offset的单位,单位如下图所示:

 

  •  AUX Offset   偏移大小。
  • Aux PHY

        用于标识辅助包所使用的PHY是1M,2M还是LE coded,如下图所示。

         通过对AuxPtr的分析,我们知道可以通过channel index确定辅助包的信道,PHY确定所处的PHY,最后通过偏移时间的计算(偏移时间 = AUX Offset * Offset Unit),近似确定辅助包的开始(辅助包的开始不能早于偏移时间的位置),如下图所示:

SyncInfo     

        用于指示AUX_SYNC_IND的内容,具体含义如下图所示:

TxPower

        代表发射功率。

ACAD

        额外广播数据,Playload的Extended Header Length减去Extended Header对应bit数据剩余的长度就是ACDC的长度。

AdvData

        广播数据,扩展广播包要广播的数据,大小为0-254字节,如果还想更长可以通过AuxPtr指向新的辅助包,另其不断拓展长度。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值