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 PDU

  • MIC( 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数据报文格式解析相关推荐

  1. 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈

    前段时间因为有点事情,好久没有更新了,非常对不住,感谢大家还在关注,下面是正文:看过我前面文章的朋友应该都知道,测风塔上送数据主要包括以下几个环境气象变量:风机轮毂处的风速.风向数据.以及其他不同高处 ...

  2. BLE 数据包格式解析

  3. 蓝牙广播数据包_蓝牙BLE数据包格式汇总

    以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为:定向广播包和非定向广播包 ...

  4. TCP 的那些事 | TCP报文格式解析

    TCP(Transmission Control Protocol 传输控制协议)提供一种面向连接的.可靠的字节流服务.面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之 ...

  5. 序列化解决方案,就是采用二进制通信协议(数据报文格式)

    前言 所谓的序列化解决方案,就是对象和二进制互相转换的解决方案. 为什么要采用二进制呢?这里有几个点要理解清楚. 1.应用程序里的数据是对象 2.网络传输的过程中一直是二进制 不管有没有进行对象和二进 ...

  6. 蓝牙BLE数据包格式汇总

    蓝牙BLE数据包格式汇总 以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为 ...

  7. 4.1.2.HTTP报文格式解析

    不同的请求方式,他们的请求格式可能是不一样的,请求格式就是我们所说的的报文格式.但是,通常来说一个HTTP请求报文由请求行(request line).请求头(header).空行和请求数据4个部分组 ...

  8. 网络:传输层 TCP报文格式解析

    一.TCP报文格式 1.为了提供可靠的数据传输,TCP报文首部字段有较多的字段,TCP报文格式如下图: 图2 TCP报文格式 16位源和目标端口(16位):用于多路复用/多路分解来自或送至上层应用的数 ...

  9. CAN 与 CANFD数据报文格式解读

    ISO 11898-1:2015 协议详细定义了CAN网络报文的格式,包含了传统CAN与CANFD帧格式.CAN网络的帧类型共有4种,分别为数据帧.远程帧.错误帧.过载帧.本章将主要介绍CAN网络数据 ...

最新文章

  1. PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
  2. Java编程思想读书笔记--第21章并发
  3. python 返回字符串长度_Python在使用特殊字符时返回错误的字符串长度
  4. gettype拿不到值_拼多多场景实操——这样实操场景推广有效拿高投产【下篇】...
  5. Mac/Linux系统连接远端服务器以及相同IP地址的服务器账号密码重置,ssh失败问题
  6. 基于特征选择的局部敏感哈希位选择算法
  7. 搭建Silverlight2.0开发环境
  8. maven 打包失败 提示找不到jar的问题
  9. mysql怎么查主键是否重复数据库_数据库插入前判断主键重复与否的方法
  10. 一篇文章让你学透Linux系统中的more命令
  11. RPC和MQ对比及其适用/不适用场合
  12. asp判断是否移动端_ASP判断当前访问的是PC端还是移动设备端
  13. R语言中与矩阵相关的所有操作 (下)
  14. HaaS EDU K1设备资源总体介绍
  15. 【日常点滴015】python中学完pandas后的代码练习 附源数据文件
  16. 适合中小企业发展的内网即时通讯软件应该具备什么
  17. recordcount=-1的原因以及解决方法
  18. BurpSuite 安装配置(License Key)
  19. 使用css3实现一个超浪漫的新年倒计时
  20. W806+ST7735R+tftLCD程序开发

热门文章

  1. android通过usb读取U盘的方法
  2. docker镜像如何下载到本地
  3. 乐优商城(填坑)——后台登录
  4. vue 导出excel文件 利用 excelJs插件
  5. cad打开卡死_cad2010打开就卡死怎么回事_教你解决cad2010打开就卡死问题
  6. nexus安装成功后启动失败解决方案
  7. 升级电子狗显示无法连接到服务器,什么是云电子狗?电子狗云升级是什么
  8. VIP邮箱与普通邮箱有什么区别?哪家收费邮箱好?
  9. vsftp客户端_[转载]安装VSftp实现ftp服务
  10. UiPath流程设计器介绍