第二篇
上篇提到了LE的几种状态,是从宏观层面对ble 有个初步理解。这章主要看一下数据发送的载体 物理信道及其所用的数据包格式
如spec所规定,LE在2.4GHz频段定义了40个RF信道,这些信道又重新抽象到了四种LE 物理信道。分别是advertising, periodic, isochronous, and data。
广播信道分为两类: primary 物理信道37,38,39, 其他的为secondary 物理信道。
并不想大段截图Spec,这样不如自己去看spec,写起来也非常枯燥。
没有办法,为了内容的连贯性,有些必要的地方还是需要截图补充一下
尽管在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,这个栏位会引出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,会引出周期广播队列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之间
additional controller advertising data
额外的广播格式,不能被分割。
这个数据是被controller使用的,发送端或接收端controller,type和定义跟host定义的adv数据格式一致
BIGInfo在这个地方被controller所获取(Core Specification Supplement,PartA,Data Types Specification)
计算这个单元的长度是extend header 长度减去前面已知长度
数据格式使用上图 的通用数据格式 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相对应
周期广播队列使用的是广播信道,涉及到的PDU包括ADV_EXT_IND ,AUX_ADV_IND,AUX_SYNC_IND 。
会另起一篇 详细介绍一下PA ,EA
分为connected (CIS)和 broadcast (BIS)两大类
LLID定义包类型,start 和 end 组合可以发送分割之后的包
Framed可以发送重新组合的之后包
LLID定义包类型,start 和 end 组合可以发送分割之后的包
Framed可以发送重新组合的之后包
具体又可以细分为下列三种类型
start 和 continuation 包配合可以发送分割之后的data
control PDU在playload 中还可以细分出通用格式
这个章节不是本文重点,点到为止
重点详细介绍了 ADV信道及其对应的包,对包含Common Extended Advertising Payload
Format包各个栏位做了说明。记住重点一句话 :
Aurptr在第一广播信道发出,引出aux_adv_ind,后续接sync包或chain包 ;syncInfo 引出 AUX_SYNC_IND ;BIGInfo引出BIS
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121616.html
摘要:通过通信线路连入通信子网终端是用户访问网络的界面网络操作系统是相对于主机操作系统而言的。接收方使用同一扩频码进行扩解。 目录 一、计算机网络 1.计算机网络技术概述 2.计算机网络分类 3.无线网络分类 二、无线通信和网络仿真技术基础 1.基本概念 2.调制 (1)、概述 (2)、常用方式 ...
摘要:消息包含两个部分报头和协议数据单元,其中报头包括版本号和团体名。网络环境拓扑图系统设计图系统案例和效果基于网络管理系统的实现,完美解决了跨设备,跨物理位置的网络设备的监控和管理。 个推作为国内最专业的第三方消息推送技术解决方案的服务商接入SDK用户数高达90亿,日活跃用户达6.5亿。日分发消息23亿。在实际的运维环境中,需要时刻对网络设备进行监控和管理,并包含了各种网络设备,包括交换机...
摘要:一背景以前做牧场数据采集调研过无线通讯的相关技术,包括长距离无线通讯和短距离无线通讯,长距离可以看以前的两篇文章。后续还有几篇关于短距离无线通讯协议的,基本上都是纸上谈兵,凑篇数吧。 一、背景 以前做牧场数据采集调研过无线通讯的相关技术,包括长距离无线通讯和短距离无线通讯,长距离可以看以前的...
摘要:连接回调连接成功连接断开改变当前状态当服务发现之后回调这里四发现服务一个低功耗蓝牙设备是有很多种服务的,就比如该设备的电量信息,设备的当前状态比如血压计是正在测量还是在等待测量有的设备支持历史数据等等。 公司开发任务是,将医疗设备通过蓝牙集成到app中,在这开发中遇到了数不尽的坑.在此记录一下做一个记录,如果其他开发人员看见或许能提供一些帮助,如有不对,尽情指正,不胜感激! ...
阅读 2916·2023-04-25 19:08
阅读 1414·2021-11-16 11:45
阅读 1964·2021-10-13 09:40
阅读 4124·2021-09-30 09:47
阅读 2413·2019-08-30 15:44
阅读 2259·2019-08-30 13:03
阅读 1385·2019-08-30 12:56
阅读 1889·2019-08-26 14:04