BLE空口包结构

  • 4.0 - 5.1 Uncoded PHY 空口包格式
    • Preamble (前导)
    • Access Address (AA)
      • 广播包
      • 数据包
    • PDU
    • CRC
  • 5.1 Coded PHY 空口包格式
    • Constant Tone Extension
  • 参考地址

BLE空口包(packet,又称air interface packet)涉及BLE协议栈link layer,L2CAP,SMP和ATT等各层次

是BLE的统一数据传输格式

4.0 - 5.1 Uncoded PHY 空口包格式

转 :BLE(3)—— 空口数据包组成 :https://stephenzhou.blog.csdn.net/article/details/94676596

BLE 4.0 BLE4.1 中PDU 最大到39B;BLE 4.2 以上可以达到257B。但是默认了兼容BLE4.0/4.1还是采用了上面的39设计。

注意:PHY 的数据包最大长度直接由硬件决定,也是限制我们BLE 数据包大小的根本原因。换句话说,PHY的硬件寄存器/存储器/FIFO 等直接决定了我们蓝牙数据包最大长度。

BLE一次能传多少数据:https://leconiot.com/download/cc2640r2f/ble_stack_app/app_examples/exchange_mtu/exchange_mtu.html

扩展:为什么说有效长度是20(39B时)?
蓝牙中数据包传输的大小的定义 BLE PACKET FORMAT:https://blog.csdn.net/chengdong1314/article/details/62038429

Preamble (前导)

前导码,主要用于接收机的频偏同步和定时同步,还能用于自动增益控制。

分类:前导根据不同的 PHY 分为两类

1M Preamble

BLE 4.2

1M 的 Preamble 是 8 bits 的,

当 AA 的 LSB 是 1 的时候 Preamble 是:10101010 ,16进制0xAA
当 AA 的 LSB 是 0 的时候 Preamble 是:01010101 ,16进制0x55

对于广播通道的数据,前导码为:0xAA,对于数据通道,前导码为0xAA 或者0x55,当接入地址的最低位是1时,前导码是0x55,否则为0xAA.

2M Preamble

BLE 5.0

2M 的 Preamble 是 16 bits 的

当 AA 的 LSB 是 1 的时候 Preamble 是:10101010 10101010
当 AA 的 LSB 是 0 的时候 Preamble 是:01010101 01010101

Access Address (AA)

Access Address 成为接入地址(与设备的 48 bits 地址不一样)。用来标示接收者ID或者空中包身份

根据 Access Address 的不同,又区分两种 Packet 类型:广播包和数据包:

广播包

广播包 AA 固定为0x8E89BED6,广播包只能在广播信道(channel)上传输,即只能在37/38/39信道上传输。广播包发送给附近所有的observer(扫描者)。

注:从蓝牙5.0开始广播包可以在其它信道上传输

数据包

数据包 AA 为一个32bit的随机值,由Initiator生成。

数据包,其实是数据信道上的空中包的简称,数据包只在数据信道上传输,即除37/38/39之外的其余37信道。

每建立一次连接,重新生成一次Access address。数据包是给连接通信使用的,即用于master和slave之间通信的。

AA 又称同步字段,在 Connection 建立的时候,双方进行数据传送,如果未发现 AA 或者错误,则称为 Sync Error。

PDU

PDU(protocol data unit,协议数据单元,BLE 数据传送的基本单元)前两个字节固定为LL header(1个字节长)和 payload length(1个字节长,又称data length),即可以展开为:

协议数据单元,又分为广播通道PDU和数据通道PDU

CRC

检验数据完整性,一般情况下,协议栈会自动处理这个字段

5.1 Coded PHY 空口包格式

BLE 5.0 以后,便支持了 Long Range,支持 Long Range 的方式呢,主要是引入了 Coded PHY。Coded PHY 分为两种:

500kbps

125kbps

所谓 Coded PHY呢,就是将数据传送的时候,不光是 raw data,而是加上了一个 FEC 向前纠错编码,使得在降低传送速率的前提下,对数据进行编码(FEC),达到数据低错的目的。

说白了,就是以牺牲速度(低速)来换数据准确传送(通过 FEC 数据编码)。

Constant Tone Extension

CTE,BLE 5.1 新增

参考地址

抄的大佬,做的学习笔记。

转 :BLE(3)—— 空口数据包组成 :https://stephenzhou.blog.csdn.net/article/details/94676596

转:详解BLE空口包格式—兼BLE Link layer协议解析 https://www.cnblogs.com/iini/p/8977806.html

蜗窝科技:http://www.wowotech.net/sort/bluetooth

BLE:https://blog.csdn.net/zhoutaopower/category_9083143.html

蓝牙相关学习:4.1.BLE空口包结构相关推荐

  1. 蓝牙相关学习:4.2.BLE空口包结构 - PDU

    PDU PDU 基本数据结构 LL Header 广播包(广播报文) Advertising Header PDU Type Advertising PDU Scanning PDU Initiali ...

  2. 蓝牙相关学习:3.BLE协议物理层

    物理层 频段 调制 信道 跳频 参考地址 Physical Layer 简称 PHY(物理层) 由于BLE属于无线通信,则其通信介质是一定频率范围下的频带资源(Frequency Band) 频段 B ...

  3. (六)深入理解蓝牙BLE之“空口包格式”

    本来想着写点什么,不过下面的文章写的已经很好了.... 详解BLE空口包格式-兼BLE Link layer协议解析 - iini - 博客园 详解BLE连接建立过程 - iini - 博客园 BLE ...

  4. 如何抓包分析BLE 空口报文(GAP + GATT + LESC procedure)?

    文章目录 一.如何抓取BLE 空口报文? 二.BLE 通信报文是如何交互的? 2.1 GAP Discovery and Connection establishment procedures 2.2 ...

  5. LoRaWAN1.0.x规范详解之空口帧结构

    文章目录 1 前言 2 LoRaWAN空口帧结构 2.1 入网(JOIN) 2.1.1 入网请求(Join Request) 2.1.2 入网接受(Join Accept) 2.1.3 Join小结 ...

  6. 抓取WiFi空口包的方式总结

    依赖特定设备抓包 某些路由器,支持把无线网卡设置成monitor模式.因此,可通过此类设备,抓取WiFi空口包.步骤如下: 打开WiFi配置文件(/etc/config/wireless),增加如下字 ...

  7. Bluetooth 蓝牙介绍(三):低功耗蓝牙BLE空口协议Ⅰ

    文章目录 帧空间 时序要求 链路层设备过滤 NON-CONNECTED STATES Standby state Advertising state Advertising events Extend ...

  8. 5G/4G:空口帧结构之帧、子帧、时隙、符号、RB。

    5G引入了参数集的概念,针对不同环境选择不同的参数集大大增加了通信的灵活性. 子载波:不同参数集下,子载波间隔的变化,在上一篇中做了比较详细的介绍. 帧结构: 帧(Frame)的时间仍然是10ms,分 ...

  9. linux开启监听模式抓空口包,运维实战家之设备报文捕获技巧

    SPAN是本地端口镜像用于在单台设备进行一对一端口镜像或多对一端口镜像,将一个或多个端口的流量复制到另外一个端口上,并且还可以在此基础上添加ACL匹配数据流达到更精细化的基于流的端口镜像,此外还可以通 ...

最新文章

  1. JQuery用户名无刷新验证
  2. Linux内核开发工作方向
  3. 对于频繁的写数据处理方式
  4. CI集成 ckeditor 配置
  5. hive的inputStream
  6. 一些有趣的 CSS 魔法和布局(下)(结尾有岗位内推哦~)
  7. Vertex Tools顶点编辑v2.0.4最新版 SketchUp插件免费下载!
  8. Js日期格式化 年月日时分秒
  9. 软考高级系统架构设计师你想知道的全在这
  10. android硬盘格式化时间,安卓手机格式化恢复
  11. 前端开发入门 --摘自慕克网大漠穷秋
  12. php gb18030 utf-8,Unicode UTF-8与GB18030编码解析(golang)
  13. win10 卸载linux子系统
  14. 风控人都在夸交通出行数据好用,那就来看看如何挖掘与应用此类数据
  15. Java正则表达式校验密码规则
  16. 12月编程语言排行榜,java跌至低点,低代码发展迅猛
  17. 搜索引擎免费登录入口
  18. H5实现无插件视频监控按需直播
  19. Unity学习——音效系统+音频过滤器+音频混响区+音频管理器
  20. Day64 Web开发6 旅游线路查询

热门文章

  1. Python基础知识-pycharm版-09
  2. 超参数的调优(lightgbm)
  3. 撕开帝国裂缝的互联网+饮料公司——元气森林是如何做的?
  4. 电子科技大学 图论期末复习 公式索引
  5. 晨哥真有料丨心理学“踢猫效应”,拒绝传递负能量
  6. python练习——恺撒密码 I
  7. 01005封装的优缺点
  8. pyQt5-label常用方法
  9. 第3次作业-卷积神经网络
  10. 点燃我,温暖你(打火机与公主裙)真零基础爱心教程!