LE Audio 蓝牙协议规范(3)-EA,PA详解
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详解相关推荐
- Android低功耗蓝牙(BLE)使用详解
代码地址如下: http://www.demodashi.com/demo/13390.html 与普通蓝牙相比,低功耗蓝牙显著降低了能量消耗,允许Android应用程序与具有更严格电源要求的BLE设 ...
- 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解
转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解 ...
- 微信小程序连接蓝牙模块发送数据的详解以及封装版
连接蓝牙 前言 详解 小程序链接蓝牙流程图 需要的数据 api openBluetoothAdapter:打开蓝牙适配器 getBluetoothAdapterState:查看蓝牙适配器状态 star ...
- 蓝牙(Bluetooth)通信技术详解
蓝牙技术变迁历史 第一代蓝牙:关于短距离通讯早期的探索 1999 年:蓝牙 1.0 早期的蓝牙 1.0 A 和 1.0B 版存在多个问题,有多家厂商指出他们的产品互不兼容.同时,在两个设备" ...
- 【转】PCM Audio,PCM格式音频文件 详解
PCM文件:模拟音频信号经模数转换(A/D变换)直接形成的二进制序列,该文件没有附加的文件头和文件结束标志.Windows的Convert工具可以把PCM音频格式的文件转换成Microsoft的WAV ...
- 蓝牙4.0BLE中协议栈详解
蓝牙4.0BLE协议栈介绍 问题:什么是BLE协议栈?BLE协议栈与BLE协议的关系? 顾名思义,人类之间需要一种语言才能沟通,机器之间,电子之间也有一个标准,也就是作为通讯标准,也就是通讯协议. 协 ...
- android蓝牙通讯方法,Android蓝牙通信开发教程(详解版)
Android 系统提供蓝牙 API 包 android.bluetooth,允许手机设备通过蓝牙与其他设备进行无线连接. Android 的蓝牙 API 可提供以下功能: 需要说明的是,Androi ...
- 蓝牙技术|AirPods Pro 2 支持蓝牙 LE Audio 技术带来的 5 大好处
在 2020 年,蓝牙 5.2 引入支持新的 LE Audio 音频规范.至少有两名苹果员工被列为 LE Audio 开发的参与者,苹果很可能会采用该规范以用于未来的设备. 根据蓝牙 SIG 数据库中 ...
- 蓝牙传输 LE Audio技术
蓝牙 蓝牙(Bluetooth)技术,实际上是一种短距离无线电技术,利用"蓝牙"技术,能够有效地简化掌上电脑.笔记本电脑和移动电话手机等移动通信终端设备之间的通信,也能够成功地简化 ...
最新文章
- 【机器学习】异常检测算法(I)
- 目标检测 - 如何在图片中标记Annotations中的坐标信息?
- 第15章习题解答(一)——《x86汇编语言:从实模式到保护模式》读书笔记40
- Github标星24.9k!适合初学者的有趣、入门级的开源项目
- 二叉树,建树,前序,中序,后序,递归 非递归
- Git Permission to fazhiyun86/Test.git denied to MarRoar
- oracle pctlist,oracle pctfree和pctused详解
- Python搭建环境
- Domino(群组工作软件)
- 算法_快速排序算法C/C++
- 关于embedding的理解,2020-7-30
- spython_spython
- iOS13beta2版描述文件,修复了,修复了,修复了,可以用描述文件更新了
- matlab寻找峰值的函数,Matlab---寻找峰值函数
- 亚马逊云科技 Build On -轻松搭建咖啡点单系统
- 7年一回首,流年似水
- 苹果电容笔和apple pencil区别是什么?值得入手的电容笔品牌排行榜
- 共享花店App开发亮点解析
- CCD视觉应用上有哪些优势
- JS 高级(二)闭包、封装
热门文章
- 督促自己——某客编程题3道(Java)——字符串查找、数组、集合
- sp3 win xp 符号表_windows xp sp3下载|windows xp下载「xp系统」-太平洋下载中心
- 【网络通信 -- 直播】音视频常见封装格式 -- MEPG2 TS
- (免费分享)基于ssm在线点餐
- 木子办公助手v1.4.1
- jsf--小项目--爱群小店
- android动画ppt整理
- 十年前的java游戏_十年前那些你玩过的手机游戏,现在都去哪儿了?
- 模仿360水晶球的效果
- 【题目】定义学生类,显示五个学生的信息(学号、姓名、性别、年龄、成绩)。并输出他们中最低和最高的成绩,以及计算他们的平均分。