LE Audio 蓝牙协议规范

LE Audio 蓝牙协议规范(1)-LE 状态
LE Audio 蓝牙协议规范(2)-物理信道及PDU
LE Audio 蓝牙协议规范(3)-EA,PA详解


文章目录

  • LE Audio 蓝牙协议规范
  • 前言
  • 弄清楚三个问题
  • EA
  • PA
    • host adv 数据发送
    • PA 理解
    • periodic advertising train
  • 总结

前言

文章写到第三篇,都是一些基础内容梳理,不断向LE Audio Spec靠近,只为对LE 感兴趣的同学,能够整体了解LE Aduio规范,如果有LE 基础,可以跳过此篇。也欢迎各位蓝牙大佬拍砖,指正,感谢!


弄清楚三个问题

  • EA是什么?
  • PA是什么?
  • EA和PA与LE Audio什么关系

EA

BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 6, Part B 有详细介绍
EA :Extended advertising event

从BT 5.0 开始,引入了LE Advertising Extendsion,用于发送超长广播包,在第二广播物理信道。
在第二章已经详细解释过了ADV_EXT_IND PDU。

需要特别强调一下,不是如下feature,这个是host 端 EATT feature

EA是有一系列 PDU 组成,这些广播包PDU 包括:
必须包含:ADV_EXT_IND,AUX_ADV_IND
可选:AUX_CHAIN_IND
无一例外,这些PDU都包含common extend header
弄清楚下面一张图,就可以大概了解什么是EA

EA 开始于 ADV_EXT_IND,结束于 AUX_ADV_IND或AUX_CHAIN_IND
T_advEvent = advInterval + advDelay
一个event 周期有两个公式决定,advInterval必须是slot (0.625ms)整数倍,advDelay 0-10ms
T_MAFS EXT和AUX之间最小的时间间隔是300μs
这张图简单解析一下:

  • 这是两个ADV_EXT_IND#1和#2指向同一个AUX_ADV,不包含CHAIN 包,所以EA event都是以AUX_ADV_IND作为结束标志
  • 这两个EA event开始时间节点不同,但是结束时间节点相同,中间有一部分重合

另一种情况,也做个解读

  • 这种情况包含CHAIN包,每个EA event以ADV_EXT_IND(#1,#2,#3)开始,#2#3指向同一个AUX_ADV_IND和同一组AUX_CHAIN_IND
  • 第一组EA evnet中AUX_CHAIN_IND可以穿插在第二组EA event 中,导致有部分时间重合

PA

BLUETOOTH CORE SPECIFICATION Version 5.2 | Vol 6, Part B
PA: Periodic advertising events
BT 5.1 引入相关feature

host adv 数据发送

Host 发送的广播包数据存放在AdvData内,最大不超过1650 字节,在LL 层这些数据会被分割,按照最小数量包分割,意味着前几包数据按照广播包最大playload 发送,AdvData 数据范围是0-254字节,大约6.4包数据,可以将host 数据发送完成
当分割后的数据,第一包数据放在AUX_ADV_IND或者SYNC包中,剩下的放在CHIAN包中
如果数据发送不完,最后一包CHAIN,需要再AuxPtr 内offset全部设置为零,意思是后续没有更多的CHIAN包,scanner拿到这个广播包之后,就会意识到host端数据被截断,没有发送完成

怎么理解这句话“Any auxiliary PDU shall be an AUX_CHAIN_IND PDU”
CHAIN PDU用于发送额外的AdvData,AUX_ADV_IND,AUX_SYNC_IND,AUX_SCAN_RSP都属于特殊的CHAIN PDU,因为都可能包含AdvData,都是Ext PDU由Auxptr引出,aux_adv包含snycInfo引出sync 包,原理上跟Auxptr一个意思,暂且这么理解

PA 理解

PA是用于在固定的interval中,周期性的发送数据

上图理解:

  • PA event 是从第一个SYNC 包开始的,由最后一个CHAIN包结束
  • CHAIN是可选,如果host adv data 比较少,可以不用CHAIN包
  • 两个SYNC包之间的间隔是PA interval
  • 两个PA Event之间不能有重复

periodic advertising train

在固定间隔时间内发送的sync 包,有相同的ADI,AA,CRCInit,PYH
一旦PA被设置,controller必须保证advertising data最小包含31个字节内容
一个periodic train,可能包含多个PA event,并且并不重合

总结

EA 是PA的前置步骤,在包含AuxPtr引出 AUX_ADV_IND AUX_ADV_IND 包含SyncInfo,引出PA sync 包 sync 包中携带的BIGInfo为后续转跳到BIS 做准备。 本系列内容LE audio 主要以BMS 和BMR为例,做重点理解,所以对广播包篇章有所偏重。 作为BMS设备,需要设置好PA,携带相关BIGInfo 数据,通过PA 发送给周围设备 作为BMR设备,需要同步到PA,获取相关的BIGInfo设备,最终拿到BIS携带数据及参数 本章节仅简单描述了一下PA和EA流程,为深入了解BIS做准备

LE Audio 蓝牙协议规范(3)-EA,PA详解相关推荐

  1. Android低功耗蓝牙(BLE)使用详解

    代码地址如下: http://www.demodashi.com/demo/13390.html 与普通蓝牙相比,低功耗蓝牙显著降低了能量消耗,允许Android应用程序与具有更严格电源要求的BLE设 ...

  2. 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解

    转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解 ...

  3. 微信小程序连接蓝牙模块发送数据的详解以及封装版

    连接蓝牙 前言 详解 小程序链接蓝牙流程图 需要的数据 api openBluetoothAdapter:打开蓝牙适配器 getBluetoothAdapterState:查看蓝牙适配器状态 star ...

  4. 蓝牙(Bluetooth)通信技术详解

    蓝牙技术变迁历史 第一代蓝牙:关于短距离通讯早期的探索 1999 年:蓝牙 1.0 早期的蓝牙 1.0 A 和 1.0B 版存在多个问题,有多家厂商指出他们的产品互不兼容.同时,在两个设备" ...

  5. 【转】PCM Audio,PCM格式音频文件 详解

    PCM文件:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志.Windows的Convert工具可以把PCM音频格式的文件转换成Microsoft的WAV ...

  6. 蓝牙4.0BLE中协议栈详解

    蓝牙4.0BLE协议栈介绍 问题:什么是BLE协议栈?BLE协议栈与BLE协议的关系? 顾名思义,人类之间需要一种语言才能沟通,机器之间,电子之间也有一个标准,也就是作为通讯标准,也就是通讯协议. 协 ...

  7. android蓝牙通讯方法,Android蓝牙通信开发教程(详解版)

    Android 系统提供蓝牙 API 包 android.bluetooth,允许手机设备通过蓝牙与其他设备进行无线连接. Android 的蓝牙 API 可提供以下功能: 需要说明的是,Androi ...

  8. 蓝牙技术|AirPods Pro 2 支持蓝牙 LE Audio 技术带来的 5 大好处

    在 2020 年,蓝牙 5.2 引入支持新的 LE Audio 音频规范.至少有两名苹果员工被列为 LE Audio 开发的参与者,苹果很可能会采用该规范以用于未来的设备. 根据蓝牙 SIG 数据库中 ...

  9. 蓝牙传输 LE Audio技术

    蓝牙 蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,利用"蓝牙"技术,能够有效地简化掌上电脑.笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化 ...

最新文章

  1. 【机器学习】异常检测算法(I)
  2. 目标检测 - 如何在图片中标记Annotations中的坐标信息?
  3. 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40
  4. Github标星24.9k!适合初学者的有趣、入门级的开源项目
  5. 二叉树,建树,前序,中序,后序,递归 非递归
  6. Git Permission to fazhiyun86/Test.git denied to MarRoar
  7. oracle pctlist,oracle pctfree和pctused详解
  8. Python搭建环境
  9. Domino(群组工作软件)
  10. 算法_快速排序算法C/C++
  11. 关于embedding的理解,2020-7-30
  12. spython_spython
  13. iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了
  14. matlab寻找峰值的函数,Matlab---寻找峰值函数
  15. 亚马逊云科技 Build On -轻松搭建咖啡点单系统
  16. 7年一回首,流年似水
  17. 苹果电容笔和apple pencil区别是什么?值得入手的电容笔品牌排行榜
  18. 共享花店App开发亮点解析
  19. CCD视觉应用上有哪些优势
  20. JS 高级(二)闭包、封装

热门文章

  1. 督促自己——某客编程题3道(Java)——字符串查找、数组、集合
  2. sp3 win xp 符号表_windows xp sp3下载|windows xp下载「xp系统」-太平洋下载中心
  3. 【网络通信 -- 直播】音视频常见封装格式 -- MEPG2 TS
  4. (免费分享)基于ssm在线点餐
  5. 木子办公助手v1.4.1
  6. jsf--小项目--爱群小店
  7. android动画ppt整理
  8. 十年前的java游戏_十年前那些你玩过的手机游戏,现在都去哪儿了?
  9. 模仿360水晶球的效果
  10. 【题目】定义学生类,显示五个学生的信息(学号、姓名、性别、年龄、成绩)。并输出他们中最低和最高的成绩,以及计算他们的平均分。