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

ble连接参数分析

1. 基本概念

(1) Connection Interval(连接间隔)

  • 定义:主设备(Master)每隔多长时间尝试与从设备(Slave)通信一次,单位是 1.25ms(BLE时间单位)。

  • 范围:通常 7.5ms ~ 4s(6 ~ 3200 * 1.25ms)。

  • 影响

    • 较短的间隔 → 低延迟,但功耗高(频繁通信)。

    • 较长的间隔 → 高延迟,但功耗低(通信不频繁)。

(2) Transmit Window(传输窗口)

  • 定义:从设备(Slave)在连接事件(Connection Event)期间可以发送数据的时间窗口

  • 包含两个参数

    • Transmit Window Offset(窗口偏移):从连接事件开始到传输窗口打开的延迟时间。

    • Transmit Window Size(窗口大小):传输窗口的持续时间。


2. 参数之间的关系

(1) 时序关系

  • 连接事件(Connection Event) 开始时,主设备发送数据包。

  • Transmit Window Offset 决定从设备何时可以开始发送数据(相对于连接事件的起始时间)。

  • Transmit Window Size 决定从设备可以发送数据的最大时间长度

(2) 数学关系

  • 传输窗口的开始时间

    Window_Start = Connection_Event_Start + Transmit_Window_Offset
  • 传输窗口的结束时间

    Window_End = Window_Start + Transmit_Window_Size
  • 约束条件

    • Transmit_Window_Offset + Transmit_Window_Size ≤ Connection_Interval

    • 否则,传输窗口会超出连接间隔,导致通信失败。

(3) 典型场景

  • 如果 Transmit_Window_Size = 0

    • 从设备不能主动发送数据,只能由主设备轮询(Polling)。

  • 如果 Transmit_Window_Size > 0

    • 从设备可以在窗口期内发送数据(如通知、指示等)。


3. 对通信的影响

参数设置较大设置较小
Connection Interval低功耗,高延迟高功耗,低延迟
Transmit Window Offset从设备响应延迟增加从设备响应更快
Transmit Window Size允许更多数据交换,但可能增加冲突限制数据传输时间

4. 实际应用示例

假设:

  • Connection Interval = 20ms(16 * 1.25ms)

  • Transmit Window Offset = 5ms

  • Transmit Window Size = 10ms

时序分析

  1. 主设备在 T=0ms 发送数据包。

  2. 从设备在 T=5ms 开始可以发送数据(窗口打开)。

  3. 从设备必须在 T=15ms 前完成发送(窗口关闭)。

  4. 下一个连接事件在 T=20ms 开始。

如果从设备未在 10ms 窗口内完成通信,必须等待下一个连接事件。


5. 优化建议

  • 低功耗场景

    • 增大 Connection Interval(如 100ms+)。

    • 减小 Transmit Window Size(仅允许必要通信)。

  • 低延迟场景

    • 减小 Connection Interval(如 15ms)。

    • 适当增大 Transmit Window Size(确保数据能及时发送)。


总结

  • Transmit Window Offset 决定从设备何时能发送数据。

  • Transmit Window Size 决定从设备能发送数据的时间长度。

  • Connection Interval 决定通信频率,影响延迟和功耗。

  • 三者必须协调,否则可能导致通信失败(如 0x3E 超时错误)。

如果需要进一步优化BLE连接,可以调整这些参数以适应具体应用场景(如传感器数据上报、音频传输等)。

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

相关文章:

  • 【基于PaddlePaddle训练的车牌识别系统】
  • 代码随想录算法训练营完结篇
  • 【BUG】ValueError: Unable to find out axis 2.0 in start_ornt
  • TCP重传
  • TCP 拥塞控制算法 —— 慢启动(Slow Start)笔记
  • Python练习(4)Python参数传递的20道核心实战练习题(含答案与深度解析)(上)
  • Hadoop(二)
  • neovim的文件结构
  • 数据结构:栈(区间问题)
  • 2025秋招突围战:AI智能监考如何重构远程笔试公平防线?
  • API Gateway HTTP API 控制客户端访问 IP 源
  • 【用图片内容改名】水印相机拍的照片,将照片的名字批量改为水印内容,根据水印内容批量命名图片的操作步骤和注意事项
  • Java大厂面试实录:从Spring Boot到AI大模型的深度技术拷问
  • SM3算法工程中添加bouncycastle.bcprov.jdk15on库
  • 【数据结构】双链表--从原理到(用C语言)实现全解析
  • 【Linux 学习指南】网络编程基础:从 IP、端口到 Socket 与 TCP/UDP 协议详解
  • 第二十一 篇 PDF文档自动化:Python一键合并、分割、水印、提取与加密解密!你的PDF全能管家!
  • [AI-video] 字幕服务 | 视频素材服务 | 视频生成服务
  • MySQL索引及其底层原理(上)(10)
  • C++ 计数排序、归并排序、快速排序
  • SpringCloud之Config
  • Android动态获取当前应用占用的内存PSS,Java
  • 【25】MFC入门到精通——MFC静态文本框 中字符串 连续输出 不覆盖先前的文本 换行输出
  • RK3568项目(十)--linux驱动开发之基础外设与LVDS屏幕
  • spring-ai之工具调用(Tool Calling)
  • 【18】MFC入门到精通——MFC(VS2019)+ OpenCV 显示图片的3种方法
  • Linux Java环境配置
  • xss-labs 1-8关
  • 智芯Z20K11xM MCU开发之TDG触发Adc
  • 新疆兵团第六师新湖农场食记