目前市面流行的在BLE应用中,UUID“Universally Unique Identifier”用于标识蓝牙服务以及通讯特征访问属性,不同的蓝牙服务和属性使用不同的访问方法,就像人们语言交流一样,语言相同才能正常交流。
蓝牙技术联盟SIG定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB。总共128位,为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘x’部分。使用16位的UUID便于记忆和操作,如SIG定义了“Device Information”的16位UUID为0x180A。
蓝牙不同服务各自定义了“特征字段”用于实现数据访问,允许定义read、write、notification不同的特征属性,实现对应通道的读写操作,而“特征字段”也采用了UUID来唯一标识,如SIG在“DeviceInformation”服务下定义了“Manufacture Name String”实现“Read”属性,其16位UUID为0x2A29。
可见,蓝牙服务UUID以及服务特征字段,在蓝牙服务交互过程中起着非常重要的作用,而SIG标准中允许用户自定义服务,采用128位完成蓝牙服务,以及128位特征字段定义。在实际应用中,通常不同厂商的蓝牙模块都会各自定义蓝牙服务以及特征字,这就导致了市面上不同厂商生产的蓝牙模块相互间无法通讯。
为了更好的兼容不同厂商的蓝牙服务定义,蓝牙模块需要支持服务自定义配置功能,通过支持自定义蓝牙服务和特征字兼容不同的蓝牙定义,从而实现不同厂商模块间的互通。
成都亿佰特E104-BT02支持蓝牙服务UUID和服务特征UUID的配置,可灵活兼容不同厂商蓝牙模块,实现透传通讯。