CH584 CH585 CH592 LLCP_LE Power Control Request命令解析

LLCP_LE Power Control Request 详解

一、基本概念

LLCP_LE Power Control Request是蓝牙 5.2 引入的低功耗蓝牙 (LE) 链路层控制协议 (LLCP) 中的一个关键功能,用于在已连接的蓝牙设备间动态调整发射功率,实现节能优化和通信质量提升。
  • 全称:Link Layer Control Protocol for Low Energy Power Control Request
  • 功能:允许连接的一方请求另一方调整其发射功率水平,基于接收信号强度 (RSSI) 测量
  • 应用范围:仅适用于已建立的连接,不影响广播阶段

二、工作机制

1. 核心流程

plaintext
设备A(请求方) → LL_POWER_CONTROL_REQ → 设备B(响应方)
设备B → LL_POWER_CONTROL_RSP → 设备A
关键特点:
  • 主设备 (master) 和从设备 (slave) 均可发起请求
  • 接收方必须回复响应 (成功或失败)
  • 同一控制流程必须完成后才能再次发起

2. 功率调整逻辑

  • 触发条件:当设备监测到接收信号强度偏离最佳范围时 (过强或过弱)
  • 调整方向:
    • 信号过强:请求降低发射功率 (节省能源,避免接收器饱和)
    • 信号过弱:请求增加发射功率 (确保连接稳定)
  • 调整幅度:相邻功率等级差≤8dB (蓝牙规范强制要求)
  • 参考依据:基于最近连接事件的可靠 RSSI 测量值

    三、PDU 格式与参数

    LL_POWER_CONTROL_REQ PDU 结构

    字段长度 (位)描述
    Opcode 6 固定值 0x0D (表示功率控制请求)
    Reserved 2 保留位 (设为 0)
    Data 可变 具体功率控制参数
    Data 字段内容:
    • Requested Power Change (delta):请求的功率变化值 (dBm), 有符号整数
    • Current Power Level:请求方当前发射功率 (dBm), 有符号整数 
    • PHY Identifier:指定要调整的物理信道 (LE 1M/2M/Coded)

    LL_POWER_CONTROL_RSP PDU 结构

    字段长度 (位)描述
    Opcode 6 固定值 0x0E (表示功率控制响应)
    Status 2 00: 成功,01: 失败 (原因:功率超出范围), 10: 失败 (其他原因)
    Data 可变 响应参数
    Data 字段内容:
    • Actual Power Change:实际执行的功率变化值 (dBm)
    • Current Power Level:响应方当前发射功率 (dBm)
    • Limits:响应方功率限制 (如最小 / 最大功率值)
    如果出现下面这种情况,会导致数据通讯变慢
  • 2ad3ded0d0c4d7ee0dfe61f540302ebb

     主机想要更大的发射功率,但是从机相应已经室4dbm,不支持更大功率调节 的情况下,可以禁用功率协商

  • 4.6 FEATURE SUPPORT
    The set of features supported by a Link Layer is represented by a bit maskcalled FeatureSet. The value of FeatureSet shall not change while theController has a connection to another device. A peer device may cacheinformation about features that the device supports. The Link Layer may cacheinformation about features that a peer supports during a connection.Within FeatureSet, a bit set to 0 indicates that the Link Layer feature is notsupported in this Controller; a bit set to 1 indicates that the Link Layer feature issupported in this Controller.
  • image

     

    image

     

    image

     

    image

     

  • bStatus_t LL_SetHostFeatureCmd( uint8_t  Bit_Number, uint8_t Bit_Value )
    库初始化之后,连接之前都可以配置
posted @ 2025-12-05 16:46  debugdabiaoge  阅读(9)  评论(0)    收藏  举报