查看: 367|回复: 0

[应用笔记] 主从一体蓝牙模组-自定义服务UUID功能

[复制链接]

93

主题

99

帖子

381

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
381
发表于 2024-1-8 10:26:32 | 显示全部楼层 |阅读模式
  背景

  举个例子,很多用户会把APP中的从机UUID写成固定值,为了用户手机APP作为主机成功连接E92从机,就需要修改E92的UUID值为手机APP固定值。

  一般推荐用户使用0x3A"设置Server参数"指令来自定义1个新服务,其中从机服务UUID,用户可设置成自己需要的。


  注:下图是利尔达默认UUID:

  过程


  一、UUID概念


  UUID(Universally Unique Identifier),通用唯一识别码。 UUID一般可以分为3种:蓝牙技术联盟UUID,供应商特定的UUID,不可用的UUID。


  1、 蓝牙技术联盟UUID


  所有的蓝牙技术联盟定义UUID共用了一个基本的UUID:0x 0000XXXX-0000-1000-8000-00805F9B34FB,总共128位,换算成8bit一个byte,也就是16个bytes(8*16=128)。为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘X’部分,也就是第13、14个byte。


  服务UUID、服务底下特征值的UUID,除了XXXX可以不同,剩下的14个字节必须设置成联盟规定的这串数字。


  2、 供应商特定的UUID


  供应商特定UUID类型,指0x aabbXXXX-ccdd-eeff-gghh-iiggkkllmmnn,共128bit位,除第13、14byte XXXX客户可以自由设定,剩下14个字节客户可以自己设定,但是必须保证服务的UUID、服务底下特征值的UUID,除了XXXX可以不同,剩下的14个字节必须设置成同一串数字。


  3、不可用的UUID


  不可用的UUID类型,指UUID完全是客户自由设定的,没有遵循BLE联盟制定的规则。


  供应商特定UUID


  /** @defgroup BLE_UUID_TYPES Types of UUID
   * @{ */
  #define BLE_UUID_TYPE_UNKNOWN   0x00  /**< Invalid UUID type. */
  #define BLE_UUID_TYPE_BLE       0x01  /**< Bluetooth SIG UUID (16-bit). */
  #define BLE_UUID_TYPE_VENDOR_BEGIN 0x02  /**< Vendor UUID types start at this index (128-bit). */
  /** @} */


  二、自定义1个服务


  举个例子,某用户要求如下,类型是 供应商特定UUID类型 :


  设置 Server 参数

  [16:34:08.265]发→◇01 FC 3A 26 00 01 01 68 0B F2 89 80 58 E3 A6 F1 4A E1 15 01 00 4B 55 03 02 00 10 03 C8 00 03 00 0C 03 C8 00 04 00 10 03 C8 00
  [16:34:08.272]收←◆04 FC 3A 01 00


  指令解析如下:
  头[H]:01 FC
  指令id[B]:0x3A
  长度[B]:0x26,len=38bytes
  PID[B]:0x00

  服务数目[B]:0x01
  服务类型[B] (128bit uuid):0x01
  服务UUID[16B]:68 0B F2 89 80 58 E3 A6 F1 4A E1 15 01 00 4B 55
  特征值个数[B]:0x03

  特征值UUID[H]:02 00
  特征值属性[B]:0x10=0001 0000,代表notify
  访问权限[B]:0x03=0011,代表可读可写
  该特征值的最大字节数[B]:0xC8,代表200bytes
  是否需要添加特征值描述符[B]:0x00

  特征值UUID[H]:03 00
  特征值属性[B]:0x0C=1100,代表write、write no response
  访问权限[B]:0x03=0011,代表可读可写
  该特征值的最大字节数[B]:0xC8,代表200bytes
  是否需要添加特征值描述符[B]:0x00

  特征值UUID[H]:04 00
  特征值属性[B]:0x10=0001 0000,代表notify
  访问权限[B]:0x03=0011,代表可读可写
  该特征值的最大字节数[B]:0xC8,代表200bytes
  是否需要添加特征值描述符[B]:00

  结论


  注:目前利尔达BLE从机模组中,nodic平台模组仅支持设置蓝牙技术联盟UUID、 供应商UUID这2种类型,telink平台模组蓝牙技术联盟UUID、供应商UUID、不可用的UUID这3种类型都支持。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表