【问题标题】:What's the maximum length of a BLE Manufacturer Specific Data AD?BLE 制造商特定数据广告的最大长度是多少?
【发布时间】:2016-10-26 07:03:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: bluetooth-lowenergy


    【解决方案1】:

    来自规范-蓝牙核心规范的补充 第 4 版 A 部分 1.4

    1.4.1 说明

    制造商特定数据类型用于制造商特定 数据。前两个数据字节应包含公司标识符 分配编号 - 公司标识符文档中的代码。这 数据中任何其他八位字节的解释应由以下定义 由公司标识符指定的制造商。

    1.4.2 格式 数据类型

    描述:大小:2 个或更多字节 前 2 个字节包含 公司标识符代码后跟额外的制造商特定 数据

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

    所以除了广告包长度本身没有限制,每个广告数据31个字节,另外31个字节用于扫描响应。

    对于具有标志广告类型的广告数据开头的 3 个字节有要求(任何非零长度广告都需要,请参阅 Core V4.0 Volume 3 Part C 11.1.3 em>),将您的广告数据长度减少 3。

    然后是制造广告类型标志和长度,它们会添加到您的制造数据中,减去另外 2 个字节。这给你留下了:

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

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

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

    【讨论】:

    • 对于 Core v4.0,有关 Flags AD 的部分略有不正确。如果不需要设置任何位,该标准允许省略标志 AD。但是典型的广告数据包确实需要这些标志,因此实际上它成为必需的。对于 Core v5.1(我不确定它何时更改),Flags AD 的使用更加宽松: - 设置了任何标志位并且广告数据包是可连接的。 (来自 CSS v9 第 A 部分,第 1.3.1 节)因此,如果广告不可连接,在 v5.1 中,您可以回收这 3 个字节。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      相关资源
      最近更新 更多