首页 > 其他分享 >BLE中LL层的空口包格式

BLE中LL层的空口包格式

时间:2023-06-14 15:44:20浏览次数:26  
标签:AA 协议 包含 LL 空口 信道 BLE PDU

空口包基本格式

Preamble-前导码

前导码用于射频收发同步。通过发送0101或1010这样类似于方波的信号,方便接收机对数据包接收进行同步。如上图,具体发0101还是1010则根据Access address的LSB来决定。另外要注意,1M PHY的Preamble为8bit,2M PHY的Preamble为16bit

Access Address-访问地址

Access Address (简称AA)是接入地址,注意不是MAC地址,该地址用于标识数据包身份。

根据物理信道的不同,取值分为两种情况:

  • 广播信道(即37、38、39信道)的AA,取值固定为0x8E89BED6。
  • 其他非广播信道的AA为一个32bit的随机值,由Initiator生成。

对于非广播信道的AA值,其随机性有一定要求,例如不能全为0或全为1,每8bit不能重复等,具体参考spec的说明

PDU-协议数据单元

通信协议要传递的数据。LL层的作用便是让这些数据能顺利的传输到对端设备,

PDU以外的字段都是为了通信本身而服务,他不包含用户要传递的信息。

PDU内部除了更核心的有效载荷外,还会包含上层GAP、L2CAP、ATT等其他协议的信息,就想洋葱一样层层包起来,而洋葱的最外层就是LL层的PDU。

例如上图是一个常见的LL层数据包的结构,在PDU内部包含了L2CAP协议的头,包含了ATT协议的头,再细化可能还包含了其他协议的控制数据。

根据内部包含不同协议层的控制信息,PDU类型多种多样。在后面的内容中会进一步做说明

CRC-循环冗余校验

即常见的校验手段,用于确认数据传输过程的完整性。

CTE-恒音扩展

CTE为5.1版本专门为AOA和AOD应用新增字段,该字段为一段长度不小于16us,不大于160us的连续“1”值。在通信时的特征为一个持续的单音信号(正弦波),目的是使得接收机方便测量信号的相位。具体说明请参考spec。

总结

蓝牙的LL层定义和作用和经典的OSI 7层模型中的数据链路层作用一致。起到将比特组合成字节在组合成帧的作用,并包含硬件地址寻址,差错校验等功能。

而更上层协议的实现,则通过PDU内部各种类型的数据来构建。

标签:AA,协议,包含,LL,空口,信道,BLE,PDU
From: https://www.cnblogs.com/simpleGao/p/17480437.html

相关文章

  • How many ways of selecting/referring to a column in data.table?
    Loaddemodatalibrary(data.table)flights=fread("https://raw.githubusercontent.com/Rdatatable/data.table/master/vignettes/flights14.csv")flightsSelectonesinglecolumnSupposeIwanttoselectthefirstcolumnyear.flights[,1]#retu......
  • ESXI自动化管理中关于Ansible工具警告提示处理方法
    近期对服务器软件硬件都进行了升级换代,更新的平台操作系统,紧接发现原来跳板机已无法直接使用,也得升级才能使用,于是把跳板机也进行系统升级,重新安装部署自动化运维管理工具,在安装使用ansible对接ESXI服务器管理的时候提示[WARNING]:Nopythoninterpretersfoundforhostx.x.x.x......
  • shell
    引入对于现代操作系统都是由内核和外壳组成的,内核负责调度、管理内存、操作硬件、对外暴露接口等,做的事情比较多,而外壳就负责与外界进行交互而Shell就是外壳打个比方内核就好像是阿里的数以万计的工程师负责写代码,做产品。而外壳就是马老板,对外吹牛逼,负责与外界沟通,具体的事......
  • 如何查看在当前的ingress-controller中,有哪些backend?每个backend的endpoints是什么?
    通过kubectlingress-nginx命令,可以查看在ingresscontroller中,有哪些backends,每个backends的后端的endpoints信息和对应其他的参数设置 比如: kubectlingress-nginxbackends-ningress-nginx  [root@nccztsjb-node-23data]#kubectlingress-nginxbackends-n......
  • 15-1 shell脚本编程进阶字符串切片和高级变量
    一、显示字符的长度[root@centos8~]#str=`echo{a..z}|tr-d''`[root@centos8~]#echostrstr[root@centos8~]#echo$strabcdefghijklmnopqrstuvwxyz[root@centos8~]#name=刘进喜[root@centos8~]#echo${#name}3[root@centos8~]#echo${#str}26二、切片roo......
  • 经典webshell流量特征
    开门见山,不说废话判断条件是否符合通信的特征请求加密的数据和响应包加密的类型一致是否一直向同一个url路径发送大量符合特征的请求,并且具有同样加密的响应包一、蚁剑特征为带有以下的特殊字段第一个:@ini_set("display_errors","0");第二个:eval在编码器和解码器都是d......
  • QA|Pycharm:allure : 无法将“allure”项识别为 cmdlet、函数、脚本文件或可运行程序的
    Pycharm中生成allure测试报告时报错如图: 单独执行allure--version也不行,cmd这样执行也报同样的错 网上查了说是环境变量问题,加一下cmd可以了,重启pycharm也可以了    参考文章:(118条消息)pycharmallure:无法将“allure”项识别为cmdlet、函数、脚本文件......
  • unbounded knapsack problem
    DescriptionUnboundedKnapsackProblemThereare$N$kindsofitemsandaknapsackwiththecapacityof$V$,eachitemhasunlimitedpiecesavailable.Thevolumeofthe$i$-thitemis$v_i$,andvalueis$w_i$.Pleasesolvewhichitemscanbeputintothe......
  • virtualBox 报VT-x is disabled in the BIOS for both all CPU modes (VERR_VMX_MSR_A
    背景:主机是ASUS主板操作系统是deepin20.0系统,需要安装win10,下载virtualbox和win10镜像iso,virtualbox设置完后,启动win10,virtualbox报错VT-xisdisabledintheBIOSforbothallCPUmodes(VERR_VMX_MSR_ALL_VMX_DI的错误.原因:主机没有开启cpu虚拟化技术支持解决:   ......
  • 5、题目:Training in Creative Problem Solving: Effects on Ideation and Problem Fin
    期刊信息(1)作者:GeorgeB.Graen,StephenG.Graen(2)期刊:OrganizationalBehaviorandHumanPerformance(3)DOI:10.1016/0030-5073(82)90233-1(4)ISSN:0030-5073   研究背景创造力训练作为工业培训的一个子集,普遍面临着工业培训研究的许多问题,也面临着一些独特的问题。......