当前位置:首页 » 《休闲阅读》 » 正文

LE Audio 蓝牙协议规范(2)--物理信道及PDU_caicai6b6

14 人参与  2022年02月12日 13:53  分类 : 《休闲阅读》  评论

点击全文阅读


第二篇

文章目录

  • 前言
  • 1.Advertising
    • 广播信道通用格式
    • 广播信道所有PDU
    • 重点ADV_EXT_IND PDU详解
      • AuxPtr
      • syncInfo
      • ACAD
      • AdvData
  • 2.Periodic
  • 3.Isochronous
    • 等时信道数据格式
    • CIS
    • BIS
  • 4.Data
    • 数据信道格式
  • 总结


前言

上篇提到了LE的几种状态,是从宏观层面对ble 有个初步理解。这章主要看一下数据发送的载体 物理信道及其所用的数据包格式


如spec所规定,LE在2.4GHz频段定义了40个RF信道,这些信道又重新抽象到了四种LE 物理信道。分别是advertising, periodic, isochronous, and data。

1.Advertising

广播信道分为两类: primary 物理信道37,38,39, 其他的为secondary 物理信道。

广播信道通用格式

在这里插入图片描述

广播信道所有PDU

在这里插入图片描述
在这里插入图片描述
并不想大段截图Spec,这样不如自己去看spec,写起来也非常枯燥。
没有办法,为了内容的连贯性,有些必要的地方还是需要截图补充一下

重点ADV_EXT_IND PDU详解

尽管在advertising 信道有非常多的PDU,但是针对LE audio,有关PA 和 EA相关的PDU需要我们重点去理解。
在ADV PDUs中有一类特殊PDU,使用到 Common Extended Advertising Payload
Format,这部分增加到adv pdu中 playload中
在这里插入图片描述
在这里插入图片描述
Extended header Flags控制着后续七个栏位是否存在,针对每种PDU哪些栏位是否必须存在spec也做了规范。
例如:
在这里插入图片描述
在这里插入图片描述
阅读到此处,您可以先停下来,画一下完整的AUX_SYNC_IND PDU 格式 。
继续解读这些参数
AdvMode 表明connectable和scanable状态
extend header flags 整体表明后面七个栏位是否支持的情况
CTEinfo 跟方向定位有关,分为AOA和AOD两种模式
在这里插入图片描述

AdvDataInfo,ADI,包含两个参数SID和DID
SID一系列adv的编号,方便scanner区分
DID是每包数据的编号,防止重复,SID范围是大于DID

AuxPtr

在这里插入图片描述
非常重要的AuxPtr,这个栏位会引出Aux_Adv_Ind,在一个时钟偏移之后,Aux_Adv_Ind PDU会出现
Offset units设置两种aux offset 单位,30μs和300μs
这个偏移必须大于T_MAFS=300μs
延后误差保证在一个unit时间内,不能有提前误差,只有在小单位超过量程之后,才能改用大单位
总的偏移时间 = Aux offset * offset Units 单位
AUX PHY表明辅助广播包会在哪个PHY到达
CA=clock accuracy 时钟精度,有两个范围
如果这个Aux offset全部设置为零,表示后需要没有辅助广播包,也可以表明host数据被截断
channel index指LE 40个信道某一个,接下来辅助包会出现在哪个RF信道

syncInfo

在这里插入图片描述
另外一个非常重要的栏位 syncInfo,会引出周期广播队列AUX_SYNC_IND PDU
这个信息可以出现在ADV PDU也可以出现在LL_PERIODIC_SYNC_IND PDU
Sync Package offset跟上述aux offset 类似,表明后续AUX_SYNC_IND出现的时间,这个名称在core5.3 有bug,定义为offset base和syncPackageWindowOffset其实指的都是一个,后续可能会修复
offset unit 跟上面一样,分为两个单位30μs和300μs
interval单位是1.25ms,两个sync pdu之间的间隔,这个值必须大于6,interval 必须大于7.5ms,因为PA队列中,scanner会尝试监听连续的6个包,才能判断是否有sync 成功
chM是used和unused PHY channel
paEventCounter sync 包计数器,每间隔一个interval就+1,不论这个sync包是否有真正送出,大小在0000-ffff之间

ACAD

additional controller advertising data
额外的广播格式,不能被分割。
这个数据是被controller使用的,发送端或接收端controller,type和定义跟host定义的adv数据格式一致
在这里插入图片描述
BIGInfo在这个地方被controller所获取(Core Specification Supplement,PartA,Data Types Specification)
计算这个单元的长度是extend header 长度减去前面已知长度

AdvData

数据格式使用上图 的通用数据格式 AD Structure
没有被分割钱,最大1650字节,每包数据最大255字节,如果需要分割,第一包数据应该放在AUX_ADV_IND,
AUX_SYNC_IND or AUX_SCAN_RSP,剩下的放在AUX_CHAIN_IND PDU
如果分割之后,仍然无法全部发送,最后一包Aux offset要全部设置为0,表明数据被截断了,没有包再发送
这个位置存放的是host 送下来的ADV Data,与ACAD相对应

2.Periodic

周期广播队列使用的是广播信道,涉及到的PDU包括ADV_EXT_IND ,AUX_ADV_IND,AUX_SYNC_IND 。
会另起一篇 详细介绍一下PA ,EA

3.Isochronous

等时信道数据格式

在这里插入图片描述
分为connected (CIS)和 broadcast (BIS)两大类

CIS

在这里插入图片描述
在这里插入图片描述
LLID定义包类型,start 和 end 组合可以发送分割之后的包
Framed可以发送重新组合的之后包

BIS

在这里插入图片描述
在这里插入图片描述
LLID定义包类型,start 和 end 组合可以发送分割之后的包
Framed可以发送重新组合的之后包

4.Data

数据信道格式

在这里插入图片描述
在这里插入图片描述
具体又可以细分为下列三种类型
在这里插入图片描述
start 和 continuation 包配合可以发送分割之后的data
control PDU在playload 中还可以细分出通用格式
在这里插入图片描述
这个章节不是本文重点,点到为止

总结

重点详细介绍了 ADV信道及其对应的包,对包含Common Extended Advertising Payload
Format包各个栏位做了说明。记住重点一句话 :
Aurptr在第一广播信道发出,引出aux_adv_ind,后续接sync包或chain包 ;syncInfo 引出 AUX_SYNC_IND ;BIGInfo引出BIS


点击全文阅读


本文链接:http://zhangshiyu.com/post/34595.html

信道  广播  分割  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1