11 广播和扫描响应数据格式
广播、周期性广播和扫描响应数据格式如Figure 11.1所示。数据由重要部分和不重要部分组成。重要部分包含一系列的AD结构。每个AD结构都有一个1 octet的长度值和Length octets的数据字段。数据字段的第一个octet是AD类型,剩下的Length - 1 octets是AD数据,具体数据依赖AD类型。不重要部分用于在必要时扩充数据,全为0。

如果长度值设置为0,那么数据字段的字节数为零。这种情况只会发生在允许重要部分提前终止的情况下。
只有重要部分的数据应该播送。
主机广播数据放在ADV_IND、ADV_NONCONN_IND、ADV_SCAN_IND、AUX_ADV_IND和AUX_CHAIN_IND PDUs的AdvData字段中。
额外的控制器广播数据放在AUX_ADV_IND、AUX_SYNC_IND和AUX_SCAN_RSP PDUs的ACAD字段中。
周期性广播数据放在AUX_SYNC_IND和AUX_CHAIN_IND PDUs的AdvData字段中。
扫描响应数据放在SCAN_RSP PDUs的ScanRspData字段或AUX_SCAN_RSP PDUs的AdvData字段中发送。
如果完整的数据无法放入AUX_ADV_IND、AUX_SYNC_IND或AUX_SCAN_RSP PDU的AdvData字段,则使用AUX_CHAIN_IND PDUs发送数据的剩余片段。一个AD结构可能会分在两个或多个PDUs上。
数据类型和定义:参见 Core Specification Supplement,Part A,Section 1
数据类型值:https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/
广播数据-Advertising Data (AD), 扫描响应数据-Scan Response Data (SRD),额外的控制器广播数据-Additional Controller Advertising Data (ACAD)
| Data type 大分类 | AD | SRD | ACAD | Data type 小分类 | 类型值 | 描述 |
| Service UUID | O | O | O | «Incomplete List of 16-bit Service UUIDs» | 0x02 | More 16-bit Service UUIDs available |
| «Complete List of 16-bit Service UUIDs» | 0x03 | Complete list of 16-bit Service UUIDs | ||||
| «Incomplete List of 32-bit Service UUIDs» | 0x04 | More 32-bit Service UUIDs available | ||||
| «Complete List of 32-bit Service UUIDs» |

本文详细介绍了蓝牙广播、周期性广播和扫描响应数据的格式,包括数据的重要部分和不重要部分,以及各种AD结构的类型值和定义。关键数据类型如ServiceUUID、LocalName、Flags等被解释,为理解蓝牙设备间通讯提供了基础。
最低0.47元/天 解锁文章
1778

被折叠的 条评论
为什么被折叠?



