BLE UUID

tech2025-09-30  12

1.1 UUID

"GATT层”中定义的所有属性都有一个UUID值, UUID是全球唯一的128位的号码, 它用来识别不同的特性。

1.2 蓝牙技术联盟UUID

蓝牙核心规范制定了两种不同的UUID,一种是基本的UUID, -种是代替基本UUID的16位UUID。

所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:

0x0000xxxx-0000-1000-8000-00805F9B34FB

为了进一步简化基本UUID, 每一个蓝牙技术联盟定义的属性有一个唯-的16位UUID,以代替.上面的基本UUID的’x’ 部分。 例如,心率测量特性使用0X2A37作为它的16位UUID,因此它完整的128位UUID为:

0x00002A37-0000-1000-8000-00805F9B34FB

虽然蓝牙技术联盟使用相同的基本UUID,但是16位的UUID足够唯一地识别蓝 牙技术联盟所定义的各种属性。

蓝牙技术联盟所用的基本UUID不能用于任何定制的属性、服务和特性。对于定制的属性,必须使用另外完整的128位UUID。

2.1 供应商特定的UUID

SoftDevice根据蓝牙技术联盟定义UUID类似的方式定义UUID:先增加一个特定的基本UUID,再定义-个16位的UUID (类似于一个别名), 再加载在基本UUID之上。这种采用为所有的定制属性定义一个共用的基本UUID的方式使得应用变为更加简单,至少在同一服务中更是如此。

使用软件nRFgo Studio非常容易产生一个新的基本UUID: 例如,在LED BUTTON示例中,采用0x0000xxx-1212-EFDE-1523-785FEABCD123作为基本UUID.

蓝牙核心规范没有任何规则或是建议如何对加入基本UUID的16位UUID进行分配,因此你可以按照你的意图来任意分配。

例如,在LED BUTTON示例中,0x1523作为服务的UUID, 0x1524作为LED特性的UUID,0x1525作为按键状态特性的UUID.

最新回复(0)