簡述藍牙服務UUID自定義功能
目前市面上流行在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在“Device Information”服務下定義了“Manufacture Name String”實現“Read”屬性,其16位UUID為0x2A29。
可見,藍牙服務UUID以及服務特征字段,在藍牙服務交互過程中起著非常重要的作用,而SIG標準中允許用戶自定義服務,采用128位完成藍牙服務,以及128位特征字段定義。在實際應用中,通常不同廠商的藍牙模塊都會各自定義藍牙服務以及特征字,這就導致了市面上不同廠商生產的藍牙模塊相互間無法通訊。
為了更好的兼容不同廠商的藍牙服務定義,藍牙模塊需要支持服務自定義配置功能,通過支持自定義藍牙服務和特征字兼容不同的藍牙定義,從而實現不同廠商模塊間的互通。
信馳達科技的nRF52832 USB Dongle支持藍牙服務UUID和服務特征UUID的配置,可靈活兼容不同廠商藍牙模塊,實現透傳通訊。