ble 完整广播数据组成

BLE(Bluetooth Low Energy,低功耗蓝牙)的一条完整广播数据解析,通常涉及广播数据包的结构、内容及其格式。以下是一个基于BLE广播数据结构的详细解析:

一、BLE广播数据包概述

BLE广播数据包是在广播通道(通常为37、38、39三个通道)上发出的,用于设备发现、信息交换等目的。一个完整的BLE广播数据包通常由包头(Header)和有效数据(Payload)两部分组成。

二、广播数据包包头

广播数据包的包头包含了关于数据包类型、地址类型、长度等关键信息。包头格式通常如下:

PDU Type:表示广播包的类型, 长度4个bit。

  1. 可连接的非定向广播(PDU Type=0x00 ADV_IND)
    特点:这是最常见和用途最广的广播类型。它表示当前设备可以接受任何设备的连接请求,并包括广播数据和扫描响应数据。进行通用广播的设备能够被扫描设备扫描到,或者在接收到连接请求时作为从设备进入一个连接。
    用途:适用于需要与其他设备进行连接的情况,如智能手环、蓝牙音箱等设备在开机后进行的广播。
  2. 可连接的定向广播(PDU Type=0x01 ADV_DIRECT_IND)
    特点:这种广播类型是为了尽可能快地建立连接而设计的,通常被称为回连包。它同时包含广播者的地址和发起者的地址,只有符合该地址的“发起者”才可向“广播者”发起一个连接请求。此外,它还有特殊的时序要求,完整的广播时间必须每3.75ms重复一次,但持续时间不能超过1.28秒。
    用途:适用于已知设备地址且需要快速建立连接的场景,如已经配对的设备之间的快速连接。
  3. 可扫描的非定向广播(PDU Type=0x02 ADV_SCAN_IND)
    特点:这种广播类型允许设备被扫描,但不可直接连接。它主要用于设备发现和信息广播,但不包括连接请求的处理。
    用途:适用于只需要设备被发现或广播特定信息,而不需要建立连接的场景,如Beacon设备。
  4. 不可连接的非定向广播(PDU Type=0x03 ADV_NONCONN_IND)
    特点:这种广播类型不接受任何请求包(包括扫描请求和连接请求),仅用于广播数据,但不允许其他设备对其进行扫描或连接。
    用途:适用于仅需要广播数据而不需要与其他设备进行交互的场景,如一些传感器设备。

RFU:保留未来使用,长度1个bit。

ChSel:通道选择,长度1个bit,指示是否支持通道选择算法。

TxAdd:广播设备地址类型,长度1个bit,指示广播设备使用的是公共地址还是随机地址。

RxAdd:目标设备地址类型,长度1个bit,对于广播包来说,此位通常设置为0,因为广播是单向的,不针对特定目标设备。

Length:广播包净荷的长度,长度1个字节,表示有效数据的字节数。

三、有效数据(Payload)

有效数据是广播数据包的核心部分,包含了实际要传输的信息。BLE广播数据的有效数据部分遵循LTV(Length-Type-Value)格式,即每个数据单元由长度、类型和值三部分组成。

长度(Length):表示类型和值字段的总长度,长度1个字节。
类型(Type):表示数据单元的类型,长度1个字节,根据Bluetooth SIG定义的AD类型或制造商自定义类型进行区分。
值(Value):具体的数据内容,长度可变,根据长度字段确定。
详解

四、示例解析

以一个典型的ADV_IND广播包为例,其有效数据部分可能包含以下元素:

Flags:表示设备的连接模式、是否支持LE Secure Connections等,是广播数据包中常见的元素之一。
Device Name:设备的名称,便于用户识别。
Appearance:描述设备的外观或类型,如键盘、鼠标等。
UUID:服务的UUID,用于标识设备提供的服务。
Manufacturer Specific Data:制造商特定的数据,长度和格式由制造商定义。

  • 15
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值