You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BLE LL PDU头部解码疑问:PDU类型与长度解析逻辑困惑

BLE LL PDU头部解析误区修正

你搞错了PDU类型的提取逻辑

不是把整个字节的二进制从右往左读,而是取第一个字节的低4位(bit0~bit3)作为短PDU类型:

  • 拿你说的0x46举例,二进制是0100 0110,低4位是0110(十六进制0x6),对应LL_CONNECTION_UPDATE_IND类型——这是位域提取,不是字节倒序。

你的解码案例的正确拆解

你给出的LL数据:0f 09 09 fd fd 81 07 00 00 00 00

  1. 第一个字节0x0f:低4位是0xf(1111),这是BLE的长PDU类型标记——当短OpCode为0xf时,实际PDU类型是第二个字节的完整8位值。
  2. 第二个字节0x09:这才是真正的OpCode,对应LL_VERSION_IND(版本指示)PDU,是合法的标准类型。
  3. 负载长度:第三个字节0x09直接转十进制9,对应后面的9字节负载数据,完全匹配。

关键知识点梳理

BLE LL PDU头部分两种格式:

  • 短OpCode(常规PDU):1字节头部,低4位是OpCode,高4位是MD/SN/NESN/LLID等控制位。
  • 长OpCode(扩展PDU):2字节头部,第一个字节低4位固定为0xf,第二个字节是完整的8位OpCode。
  • 负载长度是无符号整数字段,直接按十六进制转十进制即可,不需要位域拆分。

内容的提问来源于stack exchange,提问作者Ludwig

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 11:41:05