博客
关于我
一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
阅读量:253 次
发布时间:2019-02-28

本文共 1088 字,大约阅读时间需要 3 分钟。

MTU交换在蓝牙低能耗(BLE)协议中扮演着重要角色,用于建立数据传输的最大传输单元(MTU)。MTU是指在一个PDU(协议数据单元)中能够一次性传输的最大数据量。MTU交换的核心目的是确保主从双方在数据传输过程中不会因数据过大而导致传输失败。这种机制通过协商双方能够处理的最大数据包大小,确保通信效率。

在BLE协议中,MTU交换通常会在连接建立后进行。例如,传统的BLE MTU值较小(如23字节),这与其他网络如以太网(1500字节)、IEEE 802.3/802.2(1492字节)等形成鲜明对比。这些差异解释了为什么不同网络适用于不同的应用场景:如WIFI适合视频传输,传统蓝牙(BT)适合音频传输,而低功耗蓝牙(如BTLE或BLE)则主要用于控制数据传输。

MTU交换在BLE协议中主要通过ATT命令来实现。具体来说,MTU交换包括两个命令:MTU请求(MTU Request,0x02)和MTU响应(MTU Response,0x03)。以下是MTU请求和响应的详细结构:

MTU请求(MTU Request)

  • 存取地址:固定为4个字节,由连接请求数据包指定。
  • 头信息:包括序列号、下一个预期序列号、LLID(L2CAP消息或无片段L2CAP消息标识)、数据包长度等。
  • L2CAP长度:指定L2CAP包的长度,通常为3字节。
  • L2CAP通道ID:用于指定使用的L2CAP通道,通常为0x0004。
  • ATT命令:包含请求类型(如Exchange MTU Request)和相关参数。
  • MTU值:由发送方指定的接收方MTU值,例如客户端MTU为185。
  • CRC:用于数据包错误检测。
  • MTU响应(MTU Response)

  • 存取地址:与MTU请求相同。
  • 头信息:包括序列号、下一个预期序列号、LLID、数据包长度等。
  • L2CAP长度:与MTU请求相同。
  • L2CAP通道ID:与MTU请求相同。
  • ATT命令:包含响应类型(如Exchange MTU Response)和相关参数。
  • MTU值:由接收方指定的发送方MTU值,例如服务器MTU为23。
  • CRC:用于数据包错误检测。
  • MTU交换的成功不仅依赖于协议规范,还依赖于正确的硬件和软件配置。对于捕获BLE数据包的准备工作,通常需要硬件支持(如Hollong BLE侦听仪)和软件工具(如Hollong BLE协议监控分析仪)。这些工具能够帮助用户解析复杂的数据包结构,深入理解BLE通信过程。

    通过MTU交换机制,BLE协议能够在不同设备之间建立高效的通信桥梁。这一机制的理解对于优化蓝牙低能耗应用的性能至关重要。

    转载地址:http://enkp.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 如何在 Docker 容器中使用 GPU
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV中更稳更快的找圆方法--EdgeDrawing使用演示(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV传统方法实现密集圆形分割与计数(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | OpenCV实现扫描文本矫正应用与实现详解(附源码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用OpenCV和Streamlit搭建虚拟化妆应用程序(附源码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用OpenCV确定对象的方向(附源码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用YoloV8实例分割识别猪的姿态(含数据集)
    查看>>
    OpenCV与AI深度学习 | 实战 | 使用姿态估计算法构建简单的健身训练辅助应用程序
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于OpenCV和K-Means聚类实现颜色分割(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YoloV5和Mask RCNN实现汽车表面划痕检测(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YOLOv9+SAM实现动态目标检测和分割(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 基于YOLOv9和OpenCV实现车辆跟踪计数(步骤 + 源码)
    查看>>
    OpenCV与AI深度学习 | 实战 | 文本图片去水印--同时保持文本原始色彩(附源码)
    查看>>
    OpenCV与AI深度学习 | 实战—使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战篇——基于YOLOv8和OpenCV实现车速检测(详细步骤 + 代码)
    查看>>
    OpenCV与AI深度学习 | 实战|OpenCV实时弯道检测(详细步骤+源码)
    查看>>
    OpenCV与AI深度学习 | 实践教程|旋转目标检测模型-TensorRT 部署(C++)
    查看>>
    OpenCV与AI深度学习 | 工业缺陷检测中数据标注需要注意的几个事项
    查看>>
    OpenCV与AI深度学习 | 干货 | 深度学习模型训练和部署的基本步骤
    查看>>