这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 低功耗蓝牙通讯的数据包

共1条 1/1 1 跳转至页

低功耗蓝牙通讯的数据包

专家
2026-11-03 11:51:47     打赏

低功耗蓝牙通讯模式下的数据包,与经典蓝牙通讯的数据包不同,分为四个部分

image.png

⭐ 前导码为1个字节(或者2个字节,取决于PHY),用于接收端的同步和增益控制

⭐ 接入地址为4个字节,在物理层识别通信对象用。广播包场合为固定数据;数据包场合用随机数。

⭐ 协议数据单元,长度不定,由数据定,是传输的核心数据。

⭐ 循环冗余校验,3个字节,用于检验协议数据单元(PDU)的完整性。

 

协议数据单元(PDU)

1、广播包

image.png

⭐ 头部(Head),2字节

·PDU Type ,4Bits,定义广播的类型

      ADV_IND (0000):可连接的非定向广播,请求与任何中心设备建立连接。

      ADV_DIRECT_IND (0001):可连接的定向广播,请求与特定设备建立连接。

      ADV_NONCONN_IND (0010):不可连接的广播,仅用于广播数据(如Beacon)。

      ADV_SCAN_IND (0110):可扫描的非定向广播,允许设备请求更多信息(Scan Response)

·Length,6 bits,指示Payload部分的长度,范围为6到37字节。

·其他,包含TxAdd/RxAdd(地址类型)、RFU(保留未来使用)等。

⭐ 有效载荷 (Payload),0 ~ 37字节

内容取决于PDU Type。对于最常用的ADV_IND,其Payload通常包含两部分:

· AdvA (6字节):广播设备的蓝牙MAC地址。

· AdvData (0-31字节):广播数据本身。这部分数据由多个 AD Structure 组成,每个AD Structure的结构为:

· Length (1字节):该AD Structure的总长度。

· AD Type (1字节):数据类型,如设备名称、厂商自定义数据、UUID等。

· AD Data (0-29字节):实际的数据内容。

 

2、数据包

image.png

⭐ 头部(Head),2字节,用于管理连接和数据流控制

·LLID ,2Bits,逻辑链路标识符,用于区分载荷类型。

01 - 表示数据PDU的延续片段或空PDU

10 - 表示L2CAP消息的起始或完整消息

11 - 表示LL控制PDU

·NESN,1Bit, 下一个期望序列号,用于对来自对端设备的最后一个数据包进行确认(ACK)或请求重传(NACK)。

·SN,1Bit, 序列号,由发送方使用,用于标识自己发出的数据包,与NESN配合实现可靠传输。

·MD,1Bit, 更多数据标志,置1表示发送方还有更多数据待发,用于控制连接事件内的数据流。

·CP,1Bit, CTEInfo Present,指示头部之后是否存在CTEInfo字段(用于测向的恒定音调扩展)。这是蓝牙5.1引入测向功能后新增的位。

·RFU,2Bits(有CP场合)或3Bits(无CP场合,与CP合并),保留供未来使用,在4.0/4.1规范中,这些位必须置0。

·Length,6 bits(无CP场合,与CP合并)或8Bits(有CP场合),指示Payload部分的长度,字节单位。

⭐ 有效载荷 (Payload)

· L2CAP Header (4字节):L2CAP层的头部。

· Data (0-247字节):实际的应用数据。

· MIC (4字节, 可选):消息完整性检查码。仅在连接被加密时存在,用于验证数据来源的真实性和完整性。

 

广播包的PDU专注于设备发现和连接建立,载荷长度和格式相对固定;而数据包的PDU则专注于连接后的可靠数据传输

 





关键词: 懒猫的学习笔记     蓝牙    

共1条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]