首页 > 解决方案 > 不遵循有关 UUID 的蓝牙低能耗标准是否违法

问题描述

  1. 我可以在广告数据包中使用任何 16 位/32 位 UUID 用于过滤目的吗?
  2. 连接后是否必须在广告数据包中列出服务 UUID 列表才能在服务发现中使用?
  3. 我可以让标准 GATT 服务在广告数据包中包含不相关的服务数据吗?
  4. 可以使用自定义制造商 ID 和数据制作制造数据吗?
  5. 我在哪里可以找到关于商业和非商业目的的这些问题的合法性?

我想在 android/iOS 和开发板上制作一个 BLE 服务器,但我找不到说明这些标准合法性的相关资料。

标签: bluetoothbluetooth-lowenergyandroid-bluetoothbluetooth-gattios-bluetooth

解决方案


要查看的相关来源是蓝牙核心规范补充 (CSS),您可以在此处找到:https ://www.bluetooth.com/specifications/bluetooth-core-specification/ 。

如您所见,它的指定非常松散。核心规范也没有过多地说明不同的广告类型。

  1. 规范在描述中说“服务 UUID 数据类型用于包含服务或服务类 UUID 的列表”。然后,规范描述了不同格式的 16/32/128 位 UUID,不完整或完整列表。除此之外,规范没有说明这个列表来自哪里或它代表什么。但是,它在一个地方使用了“如果设备没有特定大小的服务 UUID,......”的表述。规范虽然说“16 位和 32 位 UUID 只有在蓝牙 SIG 分配时才应使用”,因此您不能选择任何未分配的 16 位或 32 位 UUID。所以不,你不能随便选择任何随机的 16 位或 32 位 UUID,它必须是分配的。

  2. 与 1. 一样,规范没有说明应该宣传哪个列表。但众所周知,它应该代表设备 GATT 数据库中存在的 GATT 服务列表。

  3. “服务数据”的规范非常简短。描述由一句话组成:“服务数据数据类型由一个服务 UUID 和与该服务关联的数据组成”。对于数据格式,它说数据由 UUID 和“附加服务数据”组成。在这里,同样是常识(我猜?),相关数据必须由特定服务的规范定义。例如,Cycling Power Service 将数据定义如下:“Cycling Power Service UUID 后跟 Cycling Power Measurement 特征值”。因此,通常关联的服务数据由启用了广播属性的特征的特征值组成。

如果严格遵循 CSS(逐字),您可能会争辩说,可以使用与 GATT 数据库中不同的服务 UUID 列表。您还可以争辩说,制造商可以将其自己的“关联数据”与服务数据记录中的服务一起放入。我会说这些是可能的解释,但这不是编写规范的人的意图。

  1. “制造商特定数据”规范具有以下描述:“制造商特定数据类型用于制造商特定数据。前两个数据八位字节应包含来自分配编号的公司标识符。数据中任何其他八位字节的解释应由公司标识符指定的制造商定义。” 这意味着您不能“窃取”另一家公司的标识符并使​​用您定义的数据格式。

  2. 请注意,蓝牙比智能手机时代还要古老。一开始,大家实施蓝牙的目的都是为了销售使用蓝牙技术的产品(耳机、音箱、电话)。直到今天,在制作蓝牙“产品”时,您需要成为蓝牙 SIG 成员(这是免费的,但只有公司才能成为蓝牙 SIG 成员)并且当您在产品中使用任何蓝牙商标时,您需要获得它在蓝牙 SIG 上获得了资格并列出。您可以在https://www.bluetooth.com/develop-with-bluetooth/qualification-listing/阅读如果您未能对产品进行认证,将采取哪些措施和强制措施。要使产品合格,您必须遵循规范。您必须通过一个完整的资格测试套件。我很确定如果您使用错误的服务列表或在制造商数据中“窃取”制造商的公司 ID,它不会被捕获。在我看来,Bluetooth SIG 没有想到开发在已经通过蓝牙认证的智能手机上运行的软件应用程序。他们有资格成为“基于 GATT 的配置文件客户端(应用程序)”,费用为 100 美元(https://www.bluetooth.com/develop-with-bluetooth/qualification-listing/qualification-listing-fees/),但这显然不适合您,因为您实现了服务器配置文件。到目前为止,我还没有听说有人做过这个应用程序资格。所以对我来说,应该如何对待智能手机应用程序有点不清楚。

最后的想法是每个人都应该遵循规范以确保不同产品之间的适当互操作性。

对于您的特定情况,如果您只想最小化广告数据,只需从蓝牙 SIG 请求公司 ID(它是免费的)并使用制造商特定数据。


推荐阅读