BLE数据报文格式解析
1、数据链路层报文结构
报文的基础是数据链路层的报文,其它报文都是从此展开的,BLE数据链路层数据格式如下:
后期补充:在最新的core spec 5.2中,有1M PHY和2M的PHY,对应前导符变为1-2个字节。前导符用于频率同步、时序评估和自动增益控制训练。前导符第一bit应该与接入地址的LSB相同。
2、 广播通道与数据通道 PDU 区别:
(1) 广播通道的 PDU 格式:
后期补充: :PDU数据长度为1-255字节
字段解析:
报文类型(低 4 个 bit):
ADV_IND(0000) ——通用广播
ADV_DIRECT_IND(0001) ——定向连接广播
ADV_NONCONN_IND(0010) ——不可连接广播
ADV_SCAN_IND(0110) ——可扫描广播
SCAN_REQ( 0011) ——主动扫描请求
SCAN_RSP( 0100) ——主动扫描应答
CONNECT_REQ( 0101) ——连接请求发送地址( TXADD)和接收地址( RXADD): 当此位为“1”时表示 Random Add
(随机地址),当此位为“0”时表示 Public Add(公共地址)。 这个地址指的是数
据净荷中最初的几个地址字节。净荷长度: 这个长度是指在 PDU 中的数据除去报头和长度之外的有效净荷数
据长度
( 2) 数据通道的 PDU 格式:
字段释义:
LLID:表示此包数据是 LL Date PDU 还是 LL Control PDU
00b: Reserved
01b: LL Date PDU: Continuation fragment of L2CAP message, or an Empty PDU.
10b: LL Date PDU: Start of an L2CAP message or a complete L2CAP message with
no fragmentation.
11b: LL Control PDUMIC( Message Integrity Check):信息完整性检测。涉及到加密操作,上图中是用虚线表示的,并不是一定要有此项。
MD:这个标志位是用来通知对方设备自己还有其他数据准备发送。 0 表示没有更多数据发送, 1 表示有更多数据准备发送。这样,只要还有数据需要发送,连接事件会自动扩展。一旦不再有数据发送,连接事件立即关闭。
Note: 如何区分是确定包、新包还是重发包?
SN:只有一个 bit 位,所以值是在 0 和 1 之间进行切换。如果序列号与之前的一
样,则为重传报文,如果序列号和之间的不同,则为新报文。
NESN:预期序列号,它是接收方希望接到的下一包的序列号,也就是数据包的
确认标志。 当设备接收到序列(SN)为 0 的报文后,在发送给对方的数据包中,
应将 NESN 设为 1,这样对方接收到这个包后,会发送一个新的数据包过来,否
则就会重发上一次序列号为 0 的包。这个标志可以用来判断数据包是否被正确接
收还是需要重传。
3、 BLE 报文格式
4、 AD Structure 解析
(1) AD type
(2) AD data 简述
Flags:
SERVICE:
Local Name:
TX Power Level:
BLE数据报文格式解析相关推荐
- 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈
前段时间因为有点事情,好久没有更新了,非常对不住,感谢大家还在关注,下面是正文:看过我前面文章的朋友应该都知道,测风塔上送数据主要包括以下几个环境气象变量:风机轮毂处的风速.风向数据.以及其他不同高处 ...
- BLE 数据包格式解析
- 蓝牙广播数据包_蓝牙BLE数据包格式汇总
以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为:定向广播包和非定向广播包 ...
- TCP 的那些事 | TCP报文格式解析
TCP(Transmission Control Protocol 传输控制协议)提供一种面向连接的.可靠的字节流服务.面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之 ...
- 序列化解决方案,就是采用二进制通信协议(数据报文格式)
前言 所谓的序列化解决方案,就是对象和二进制互相转换的解决方案. 为什么要采用二进制呢?这里有几个点要理解清楚. 1.应用程序里的数据是对象 2.网络传输的过程中一直是二进制 不管有没有进行对象和二进 ...
- 蓝牙BLE数据包格式汇总
蓝牙BLE数据包格式汇总 以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为 ...
- 4.1.2.HTTP报文格式解析
不同的请求方式,他们的请求格式可能是不一样的,请求格式就是我们所说的的报文格式.但是,通常来说一个HTTP请求报文由请求行(request line).请求头(header).空行和请求数据4个部分组 ...
- 网络:传输层 TCP报文格式解析
一.TCP报文格式 1.为了提供可靠的数据传输,TCP报文首部字段有较多的字段,TCP报文格式如下图: 图2 TCP报文格式 16位源和目标端口(16位):用于多路复用/多路分解来自或送至上层应用的数 ...
- CAN 与 CANFD数据报文格式解读
ISO 11898-1:2015 协议详细定义了CAN网络报文的格式,包含了传统CAN与CANFD帧格式.CAN网络的帧类型共有4种,分别为数据帧.远程帧.错误帧.过载帧.本章将主要介绍CAN网络数据 ...
最新文章
- PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
- Java编程思想读书笔记--第21章并发
- python 返回字符串长度_Python在使用特殊字符时返回错误的字符串长度
- gettype拿不到值_拼多多场景实操——这样实操场景推广有效拿高投产【下篇】...
- Mac/Linux系统连接远端服务器以及相同IP地址的服务器账号密码重置,ssh失败问题
- 基于特征选择的局部敏感哈希位选择算法
- 搭建Silverlight2.0开发环境
- maven 打包失败 提示找不到jar的问题
- mysql怎么查主键是否重复数据库_数据库插入前判断主键重复与否的方法
- 一篇文章让你学透Linux系统中的more命令
- RPC和MQ对比及其适用/不适用场合
- asp判断是否移动端_ASP判断当前访问的是PC端还是移动设备端
- R语言中与矩阵相关的所有操作 (下)
- HaaS EDU K1设备资源总体介绍
- 【日常点滴015】python中学完pandas后的代码练习 附源数据文件
- 适合中小企业发展的内网即时通讯软件应该具备什么
- recordcount=-1的原因以及解决方法
- BurpSuite 安装配置(License Key)
- 使用css3实现一个超浪漫的新年倒计时
- W806+ST7735R+tftLCD程序开发