BLE 广播包结构

BLE(Bluetooth Low Energy,低功耗蓝牙)广播包(Advertising Packet)是 BLE 设备在广播信道上发送的数据包,用于向周围设备宣告自身存在、提供服务信息或建立连接。其结构遵循 Bluetooth Core Specification(通常参考 5.x 及以上版本)。


一、BLE 广播包整体结构

BLE 广播包由PDU(Protocol Data Unit)构成,而 PDU 分为两类:

  1. Advertising PDU:用于广播通信。
  2. Data PDU:用于已建立连接后的数据传输(不在本文讨论范围)。

我们关注的是Advertising PDU,其格式如下:

| Preamble (1 octet) | | Access Address (4 octets) | | PDU (可变长度,最多39字节) | | CRC (3 octets) |

注意:Preamble、Access Address 和 CRC 是物理层(PHY)字段,实际广播内容主要在PDU字段中。


二、Advertising PDU 结构

Advertising PDU 由Header(2 字节) + Payload(0~37 字节)组成:

| Header (16 bits) | Payload (0~37 bytes) |

1. Header(2 字节)

Bit 位字段名说明
0~3PDU Type广播包类型(如 ADV_IND、ADV_NONCONN_IND 等)
4RFU保留位(应为 0)
5TxAdd发送方地址类型:0=公共地址,1=随机地址
6 - RxAdd接收方地址类型(仅在定向广播中有效)
7~15 - LengthPayload 长度(单位:字节,最大 37)
常见 PDU Type:
  • 0000:ADV_IND(可连接的无定向广播)
  • 0001:ADV_DIRECT_IND(可连接的定向广播)
  • 0010:ADV_NONCONN_IND(不可连接的无定向广播)
  • 0011:SCAN_REQ(扫描请求,由扫描设备发出)
  • 0100:SCAN_RSP(扫描响应,由广播设备回应)
  • 0101:CONNECT_IND(连接请求)
  • 0110:ADV_SCAN_IND(可扫描的无定向广播)

注意:有些 Type 是由 Central(中心设备)发送的(如 SCAN_REQ),不是广播包,但属于 Advertising Channel PDU。


2. Payload(0~37 字节)

Payload 内容根据 PDU Type 不同而不同:

(1)通用广播类型(如 ADV_IND、ADV_NONCONN_IND、ADV_SCAN_IND)的 Payload:
| AdvA (6 bytes) | AdvData (0~31 bytes) |
  • AdvA:广播设备的蓝牙地址(Public 或 Random,由 TxAdd 指示)
  • AdvData:广播有效载荷,采用AD Structure(Advertising Data Structure)格式
(2)定向广播(ADV_DIRECT_IND)的 Payload:
| AdvA (6 bytes) | TargetA (6 bytes) |
  • TargetA:目标设备的蓝牙地址(由 RxAdd 指示地址类型)
(3)SCAN_RSP(扫描响应)的 Payload:
| AdvA (6 bytes) | ScanRspData (0~31 bytes) |
  • 与 ADV_IND 类似,但用于响应扫描请求

三、广播有效载荷(AdvData / ScanRspData)— AD Structure

广播数据(最多 31 字节)由一个或多个AD Structure组成,每个结构格式如下:

| Length (1 byte) | AD Type (1 byte) | AD Data (Length - 1 bytes) |
  • Length:包括 AD Type + AD Data 的总字节数(最小为 1,即只有 Type)
  • AD Type:定义数据类型(如设备名、服务 UUID、发射功率等)
  • AD Data:具体数据内容

常见 AD Type(来自 Bluetooth SIG Assigned Numbers):

AD Type (Hex)名称说明
0x01Flags标志位(如 LE Limited Discoverable Mode)
0x02, 0x0316-bit Service UUIDs完整/不完整的服务 UUID 列表
0x06, 0x07128-bit Service UUIDs128 位服务 UUID
0x09Complete Local Name完整设备名称
0x08Shortened Local Name缩短的设备名称
0x0ATX Power Level发射功率(dBm)
0x16Service Data - 16-bit UUID附带服务数据
0x21Service Data - 128-bit UUID128 位服务数据
0xFFManufacturer Specific Data厂商自定义数据

示例:设备广播名称 “MyBLE”
AD Structure =06 09 4D 79 42 4C 45

  • Length = 6(1 字节 Type + 5 字节 Name)
  • Type = 0x09(Complete Local Name)
  • Data = ASCII("MyBLE")

四、广播包长度限制

  • 单个广播包(AdvData)最多31 字节
  • 若需更多数据,可配合Scan Response(另外 31 字节)
  • BLE 5.0 引入Extended Advertising,支持更长广播数据(通过 AUX 广播包),但传统广播仍限于 31+31 字节

五、总结图示(传统广播)

[ADV_IND PDU] ├── Header (2B): Type=ADV_IND, TxAdd=1, Length=37 └── Payload (37B) ├── AdvA (6B): 随机地址 └── AdvData (31B): 多个 AD Structure ├── Flags (3 bytes) ├── Complete Local Name (6 bytes) └── Manufacturer Data (22 bytes)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1199107.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek-R1-Distill-Qwen-1.5B vs Llama3-8B:小参数高推理性能对比

DeepSeek-R1-Distill-Qwen-1.5B vs Llama3-8B:小参数高推理性能对比 1. 引言:轻量级模型的推理能力新标杆 你有没有遇到过这种情况:想部署一个能写代码、解数学题、还能逻辑推理的AI模型,但发现动辄7B、13B甚至更大的模型对显存…

亲子互动新玩法:部署Qwen生成专属宠物形象详细步骤

亲子互动新玩法:部署Qwen生成专属宠物形象详细步骤 你有没有试过陪孩子一起“养”一只只存在于想象中的小动物?不是电子宠物,也不是动画角色,而是一张张由你们共同描述、亲手生成、可以打印出来贴在房间墙上的真实感插画——毛茸…

一键启动Qwen3-VL-8B:开箱即用的视觉语言AI镜像

一键启动Qwen3-VL-8B:开箱即用的视觉语言AI镜像 你是否还在为部署多模态大模型头疼?显存不够、依赖复杂、配置繁琐,动辄几十GB的参数让边缘设备望而却步。今天,我们带来一个真正“开箱即用”的解决方案——Qwen3-VL-8B-Instruct-…

Qwen3-Embedding-0.6B降本增效:按小时计费GPU部署案例

Qwen3-Embedding-0.6B降本增效:按小时计费GPU部署案例 1. Qwen3-Embedding-0.6B 模型简介 Qwen3 Embedding 模型系列是 Qwen 家族中专为文本嵌入与排序任务打造的新一代模型,基于强大的 Qwen3 系列基础架构构建。该系列涵盖多种参数规模(0.…

语音识别并发能力提升:Paraformer多实例负载均衡部署

语音识别并发能力提升:Paraformer多实例负载均衡部署 1. 背景与目标 你有没有遇到过这样的情况:上传一段30分钟的会议录音,系统开始转写后卡住不动,页面提示“服务繁忙”?或者多个用户同时提交音频时,识别…

Linux系统维护liveCD推荐

目录前言一、制作ventoy启动U盘1.ventoy简介及下载地址2.解压ventoy并插入U盘开始制作启动U盘二、Rescuezilla简介及下载地址三、 Redo Rescue简介及下载地址四、SystemRescue简介及下载地址五、Boot-Repair简介及下载…

业务改动频繁?XinServer 让你改表不怕崩

业务改动频繁?XinServer 让你改表不怕崩 兄弟们,不知道你们有没有遇到过这种情况:产品经理一拍脑袋,说业务逻辑要改,加个字段吧。你这边吭哧吭哧改完数据库,那边后端接口得跟着调,前端也得跟着改…

Qwen-Image-Edit-2511上手实测:角色旋转自然不扭曲

Qwen-Image-Edit-2511上手实测:角色旋转自然不扭曲 最近,Qwen系列图像编辑模型再次迎来重要更新——Qwen-Image-Edit-2511正式上线。作为2509版本的增强版,这个新模型在角色一致性、几何推理和工业设计生成方面都有显著提升,尤其…

【NumPy维度转换终极指南】:20年工程师亲授reshape的5大陷阱与3种高阶用法

第一章:NumPy数组维度转换的核心概念在科学计算和数据分析中,NumPy 是 Python 生态系统的核心库之一。其核心数据结构是多维数组(ndarray),而数组的维度转换是数据预处理、模型输入构建等任务中的关键操作。理解如何灵…

Voice Sculptor语音合成全解析|附18种预设风格使用指南

Voice Sculptor语音合成全解析|附18种预设风格使用指南 1. 快速上手:三步生成专属语音 你是否曾为找不到合适的配音演员而烦恼?是否希望用AI快速生成不同角色的声音来丰富内容创作?Voice Sculptor正是为此而生。这款基于LLaSA和…

从‘点框’到‘语义理解’:sam3大模型镜像开启万物分割新范式

从‘点框’到‘语义理解’:sam3大模型镜像开启万物分割新范式 1. 引言:当图像分割开始“听懂人话” 你还记得第一次用AI做图像分割时的场景吗? 可能是在一张照片上小心翼翼地点一个点,或者拖出一个框,告诉模型&#…

动手试了科哥的OCR镜像,一键启动搞定批量图片处理

动手试了科哥的OCR镜像,一键启动搞定批量图片处理 最近在做一批文档扫描件的文字提取任务,手动复制太费劲,听说科哥出了一款基于 ResNet18 的 OCR 文字检测镜像,名字叫 cv_resnet18_ocr-detection,说是“一键部署、开…

Paraformer-large离线版部署教程:一键启动中文语音转文字服务

Paraformer-large离线版部署教程:一键启动中文语音转文字服务 1. 快速上手,打造你的本地语音识别系统 你是否遇到过需要将会议录音、课程音频或采访内容快速转成文字的场景?手动听写费时费力,而市面上很多在线语音识别工具又存在…

从0开始学文本排序:Qwen3-Reranker-4B保姆级教程

从0开始学文本排序:Qwen3-Reranker-4B保姆级教程 你有没有遇到过这样的问题:在一堆搜索结果里翻来覆去,就是找不到最相关的内容?或者自己搭建的知识库系统,召回的结果总是“差点意思”?如果你正在寻找一个…

Python文件读取报错全解析(UnicodeDecodeError大揭秘)

第一章:Python文件读取报错全解析(UnicodeDecodeError大揭秘) 在使用Python处理文本文件时, UnicodeDecodeError 是开发者最常遇到的异常之一。该错误通常出现在尝试读取非UTF-8编码的文件时,例如包含中文内容的GBK编码…

【Python编码问题终极指南】:彻底解决UnicodeDecodeError ‘utf-8‘ codec can‘t decode难题

第一章:UnicodeDecodeError问题的根源剖析 在处理文本数据时, UnicodeDecodeError 是 Python 开发者常遇到的异常之一。该错误通常出现在尝试将字节序列(bytes)解码为字符串(str)时,所使用的编码…

PyTorch-2.x-Universal-Dev-v1.0使用心得:让开发更专注业务

PyTorch-2.x-Universal-Dev-v1.0使用心得:让开发更专注业务 在深度学习项目中,环境配置往往是最耗时且最容易出错的环节。一个稳定、开箱即用的开发环境能够极大提升研发效率,让我们把精力集中在模型设计和业务逻辑上,而不是被各…

5分钟部署Qwen3-Embedding-4B:零基础搭建企业级文本检索系统

5分钟部署Qwen3-Embedding-4B:零基础搭建企业级文本检索系统 1. 为什么你需要一个高效的文本嵌入系统? 你有没有遇到过这样的问题:公司积累了成千上万份文档,客户一问“去年的合同模板在哪”,就得翻半天?…

微信联系作者获取支持!lama图像修复使用心得分享

微信联系作者获取支持!lama图像修复使用心得分享 1. 快速上手:部署与启动 1.1 镜像环境说明 本文基于“fft npainting lama重绘修复图片移除图片物品 二次开发构建by科哥”这一AI镜像进行实操分享。该镜像集成了先进的 LaMa图像修复模型,并…

Qwen3-4B部署总出错?自动启动机制避坑指南来了

Qwen3-4B部署总出错?自动启动机制避坑指南来了 1. 为什么你的Qwen3-4B总是启动失败? 你是不是也遇到过这种情况:兴冲冲地在本地或云服务器上部署了 Qwen3-4B-Instruct-2507,结果等了半天,模型没起来,日志…