当前位置: 首页 > news >正文

蓝牙数据包解析

在蓝牙 BR(基本速率)数据包类型中,DH1、DH3、DH5 里的 1、3、5 主要代表数据包所占用的时隙数量 。蓝牙通信采用时分双工(TDD)模式,在一个时隙内,设备可以发送或接收数据。

  • DH1:使用 1 个时隙进行数据传输 。由于占用时隙少,其数据包长度相对较短,适用于传输少量数据的场景,例如一些对实时性要求不高且数据量小的简单状态信息传输,像早期蓝牙鼠标向电脑主机偶尔发送的点击状态信息更新等。
  • DH3:占用 3 个时隙 。相较于 DH1,它能携带更多的数据,因为有更多时隙用于传输,数据包长度增加,在需要传输稍多数据量,同时对速率要求保持在 1Mbps(因为它们都属于采用 GFSK 调制的 BR 模式,速率为 1Mbps)的场景中较为适用,比如蓝牙设备间传输一些简单配置文件等。
  • DH5:利用 5 个时隙来传输数据 。是这三种类型中可传输数据量最大的,因为其占用了较多的时隙资源,可用于传输相对较大数据量且速率要求为 1Mbps 的任务,如早期蓝牙设备进行小文件传输时,若使用 DH 系列数据包,DH5 可能是较为合适的选择 。

而 DH3、2DH3、3DH3 包存在多方面区别:

  • 调制方式
    • DH3:属于 BDR(基本数据速率)的包类型,采用 GFSK(高斯频移键控)调制方式,数据传输速率为 1Mbps 。
    • 2DH3:是 EDR(增强数据速率)的包类型,调制方式为 π/4 - DQPSK(π/4 差分正交相移键控) ,数据传输速率提升到 2Mbps 。
    • 3DH3:同样属于 EDR 包类型,调制方式为 8 - DPSK(八进制差分相移键控) ,数据传输速率进一步提高到 3Mbps 。
  • 传输速率与应用场景
    • DH3:适用于对数据传输速率要求不高,在 1Mbps 速率下需要传输一定量数据的场景,比如一些早期蓝牙设备进行普通数据交互,对数据传输速度没有急切需求的情况。
    • 2DH3:当设备需要比 1Mbps 更快的传输速率,且数据量有一定要求时会选用,例如一些对音频传输质量有一定要求的蓝牙音箱,以 2Mbps 速率传输音频数据可获得更好音质,在这个场景下 2DH3 包就能发挥作用。
    • 3DH3:在对数据传输速率要求极高,需要在短时间内传输大量数据的场景中使用,如特定的专业设备间短时间内需要高速交换大量数据,3Mbps 的传输速率可满足其需求 。

前面的 2、3 在 2DH3、3DH3 中的含义是指 EDR 模式下不同的调制类型 。其中 “2” 对应 π/4 - DQPSK 调制,使数据传输速率达到 2Mbps;“3” 对应 8 - DPSK 调制,能实现 3Mbps 的数据传输速率 。

在蓝牙 BR(基本速率)数据包类型中,DH 和 DM 里的 H 和 M 具有特定含义。H 代表 “High speed”,即不使用纠错码的高速率分组 ,这类数据包在传输时没有额外的纠错编码机制,因此能够以相对更高的速率传输数据,例如 DH1、DH3、DH5 数据包,它们的数据传输速率均为 1Mbps(在 BR 模式下,采用 GFSK 调制方式),但由于没有纠错码占用额外资源,使得数据传输效率在理论上有所提升 ,适用于对数据准确性要求相对不高,但更注重传输速度的场景,像一些简单的状态信息广播,偶尔出现少量错误数据不影响整体功能实现 。

而 M 代表 “Medium speed with 2/3 rate FEC”,即采用 2/3 比例前向纠错码(FEC,Forward Error Correction)的中等速率分组 。使用前向纠错码意味着数据包中包含了一定比例用于纠错的冗余信息,当接收端接收到数据后,可以利用这些冗余信息对可能出现错误的比特进行纠正 。例如 DM1、DM3、DM5 数据包,其传输速率同样为 1Mbps(BR 模式下的 GFSK 调制) 。

在蓝牙连接,配对过程中主要使用DM包进行通信,而传输音频等用DH包进行传输。

http://www.dtcms.com/a/308849.html

相关文章:

  • mapper.xml中的<include>是什么
  • 【React】状态管理
  • Spring 面试点(八股)
  • review| advance
  • wxPython 实践(五)高级控件
  • 企业对于DDOS攻击有哪几种安全防护对策?
  • 选择跨网文件交换系统的核心因素有哪些?
  • Kafka Streams性能优化实践指南:实时流处理与状态管理
  • 脚手架搭建React项目
  • LCGL基本使用
  • 智慧园区通行效率↑68%!陌讯多模态融合算法的实战解析
  • 【C++】1·入门基础
  • C语言基础第18天:动态内存分配
  • 什么是 MySQL 的索引?常见的索引类型有哪些?
  • 【动态规划】数位dp
  • 【AD】域管理员登录错误
  • Google政策大更新:影响金融,Ai应用,社交,新闻等所有类别App
  • 王道考研-数据结构-01
  • Qt_Gif_Creator 基于Qt的屏幕gif录制工具
  • 汽车线束行业AI智能化MES解决方案:推动智能制造与质量升级
  • cpu运行 kokoro tts 服务器语音转化首选
  • 为什么 Batch Normalization 放在全连接/卷积层的输出之后?
  • linux如何将两份hdmi edid合并
  • 硬件电路基础学习
  • Cesium 快速入门(五)坐标系
  • LangGraph底层原理与基础应用入门
  • vue3可编辑表格
  • linux自动构建工具make/makefile
  • 【计算机网络】5传输层
  • MySQL 中的 JOIN 操作有哪些类型?它们之间有什么区别?