BLE制造商特定数据AD的最大长度是多少?

tig*_*ing 7 bluetooth-lowenergy

BLE广告最多可以发送31个字节.在广告中,可能有几个广告.

我想知道广告是否仅包含一个制造商特定数据AD是否有效,以及这种AD是否可以填满所有31个字节(1个字节的长度字段,1个字节的类型字段(0xff),2 CIC的字节和27字节的自定义数据).

蓝牙核心规范或任何其他规范是否指定了这一点?

rye*_*ger 10

从规范补充到蓝牙核心规范第4版A部分1.4:

1.4.1描述

制造商特定数据类型用于制造商特定数据.前两个数据八位字节应包含来自Assigned Numbers - Company Identifiers文档的公司标识符代码.数据中任何其他八位字节的解释应由公司标识符指定的制造商定义.

1.4.2格式数据类型<>

描述:大小:2个或更多八位字节前2个八位字节包含公司标识符代码,后跟其他制造商特定数据

表1.4:制造商特定数据类型

因此,除了广告包长度本身之外没有限制,每个广告数据为31个字节,扫描响应为31个字节.

广告数据开头的3个字节要求具有Flags广告类型(任何非零长度广告都需要,请参阅Core V4.0第3卷第C部分11.1.3),从而减少广告数据的长度3.

然后,制造广告类型标志和长度将添加到您的制造数据中,减去另外2个字节.这让你:

  • 广告数据中的26个字节或
  • 扫描响应中有29个字节

用于制造数据本身(尽管应该使用其中两个字节来指定公司标识符代码),这将带来:

  • 广告数据中的24字节实际数据或
  • 扫描响应中有27个字节.


小智 2

BT规范中对于广告数据(AdvData)中的AD类型数据没有限制。AdvData可以为空或者包含一个/多个AD类型数据。这取决于设备/应用程序。因此,没有什么可以阻止您使用制造商特定数据的全部容量。

注意:AD 类型格式在核心规范补充中定义。