首页 > 其他分享 >蓝牙

蓝牙

时间:2023-05-12 14:48:37浏览次数:35  
标签:服务 UUID 蓝牙 特性 属性 设备

什么是蓝牙
蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而使数据传输变得更加迅速高效,为无线通信拓宽道路。
简单说,蓝牙就是一种使用无线电通信的技术去完成设备与设备间通讯与数据交换。 而我们通常使用的那些蓝牙耳机、蓝牙打印机、蓝牙手环、蓝牙鼠标等等设备,都是基于蓝牙通信技术对外提供某种(或多种)特定功能的设备。所以,蓝牙本身并不提供服务(应用功能),他只是一种数据(信息)的传输方式(或者说是通道),而设备所提供的功能,则是由设备里的各种不同的程序所提供,这种程序功能,我们叫他为服务。
想一想,蓝牙耳机与无线耳机,他们提供的都是音频播放的功能,区别在于通讯的方式不同。

蓝牙服务的组成
使用蓝牙对外提供服务的设备,需要有对应的服务功能,如蓝牙耳机,他需要提供音频播放的功能,这种具体的功能,就是蓝牙服务。这个服务分为服务、特性、属性三个部分:

服务(Service)
服务(Service) 可以理解一个房间,当这个房间为空的时候他什么也不是,不能提供任何的服务功能,所以,房间里面至少需要有一个或多个家俱,不同的家俱有不同的功能,这就是特性(Characteristic)。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。就像我们有卧室、厨房、书房等不同的房间,为了统一,我们给这些不同功能的房间定义了各自的编号,我们假定卧室编号为0001,不管是哪家公司修建的卧室,都必须使用0001来表示这是卧室,当客人需要休息时,他只需要找到编号为0001的房间就行了。这样,不管是用英文、法文还是德语来给房间命名,我们都知道他是卧室。

特性(Characteristic)
特性(Characteristic) 是依附于某个服务(Service)的,就像前面说到卧室里的床,卧室并不能让我们睡觉休息,真正让我们睡觉休息的是床。在卧室里,我们除了放床,通常还可以放梳妆台、衣柜等相关的家俱,每样家俱可以提供与之相关的不同功能。同样,我们需要给每样家俱分配一个编号,这就是特性(Characteristic)的UUID。我们知道,每种家俱会有一个或多个不同的子功能,这个子功能就是特性(Characteristic)所包含的属性(Property) 。例如床单可以更换、床的高低可以调整。

属性(Property)
属性的概念就更好理解,这里就不再比喻。
通常的属性有如下几个:
Read: 读属性,具有这个属性的特性是可读的,也就是说这个属性允许手机来读取一些信息。手机可以发送指令来读取某个具有读属性UUID的信息。
Notify: 通知属性, 具有这个属性的特性是可以发送通知的,也就是说具有这个属性的特性(Characteristic)可以主动发送信息给手机。
Write: 写属性, 具有这个属性的特性是可以接收写入数据的。通常手机发送数据给蓝模块就是通过这个属性完成的。这个属性在Write 完成后,会发送写入完成结果的反馈给手机,然后手机再可以写入下一包或处理后续业务,这个属性在写入一包数据后,需要等待应用层返回写入结果,速度比较慢。
WriteWithout Response:写属性,从字面意思上看,只是写,不需要返回写的结果,这个属性的特点是不需要应用层返回,完全依靠协议层完成,速度快,但是写入速度超过协议处理速度的时候,会丢包。

什么是 UUID
前面说蓝牙服务的时候,我们多次提到了UUID,这UUID (Universally Unique Identifier)用于标识蓝牙服务以及通讯特征访问属性,不同的蓝牙服务和属性使用不同的访问方法,就像人们语言交流一样,语言相同才能正常交流(找到正确的UUID,才能使用正确的功能)。
简单理解UUID就是编号,对应不同服务的一个唯一的编号,用于区分不同的服务及服务特性的个体。服务和特性都有各自的UUID。他很像网络应用中的端口号,例如80是HTTP协议的端口,他提供的是HTTP服务。为了明确标准的蓝牙服务,蓝牙技术联盟SIG定义UUID共用了一个基本的UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB。总共128位,为了进一步简化基本UUID,每一个蓝牙技术联盟定义的属性有一个唯一的16位UUID,以代替上面的基本UUID的‘x’部分。使用16位的UUID便于记忆和操作,如SIG定义了“Device Information”的16位UUID为0x180A。也就是说,不管是什么样的蓝牙设备,只要你提供设备信息(Device Information) 的服务功能,就必须使用”0x180A“的UUID号。这样,当应用程序需要读取这蓝牙设备的设备信息时,只需要找到对应UUID号为0x180A的服务,就可以获取到。

蓝牙不同服务各自定义了“特征字段”用于实现数据访问,允许定义read、write、notification不同的特征属性,实现对应通道的读写操作,而“特征字段”也采用了UUID来唯一标识,如SIG在“DeviceInformation”服务下定义了“Manufacture Name String”实现“Read”属性,其16位UUID为0x2A29。
可见,蓝牙服务UUID以及服务特征字段,在蓝牙服务交互过程中起着非常重要的作用,而SIG标准中允许用户自定义服务,采用128位完成蓝牙服务,以及128位特征字段定义。

总结
蓝牙,是一种无线通讯技术;
蓝牙设备是使用蓝牙通讯技术来实现特定的功能。蓝牙设备里需要有蓝牙服务,其包括服务、特性、属性。服务与特性都有一个唯一对应的UUID,每个特性有read、write、notification等属性。我们真正使用蓝牙服务的时候,实际是针对不同属性的特性进行操作。使用过程是:通过蓝牙通信完成与设备的连接,查找到对应的服务,定位到该服务下的某个特性,并根据特性的属性完成具体操作。

技术联盟已定义好较多的标准服务UUID,例如串口服务应该使用00001101-0000-1000-8000-00805F9B34FB为标准的UUID。同时,也允许厂商定义自己的UUID,以满足已定义服务外的功能实现。

题外话:很多厂家的蓝牙串口模块(及某些打印服务)并没真正使用规定的标准UUID编号,而使用自己定义的UUID

 

UUID可以获取

服务与特征Id

var serviceId = "0000FFFF-0000-1000-8000-00805F9B34FB";
var characteristicId = "0000FF02-0000-1000-8000-00805F9B34FB";
var characteristic_write = "0000FF01-0000-1000-8000-00805F9B34FB";

 

为什么这样写:蓝牙设备的特征值及其编码 - 简书 (jianshu.com)

标签:服务,UUID,蓝牙,特性,属性,设备
From: https://www.cnblogs.com/On1on/p/17394074.html

相关文章

  • 多通道振弦传感器无线采集仪蓝牙功能的使用
    多通道振弦传感器无线采集仪蓝牙功能的使用无线采集仪内置了蓝牙通讯功能,制式为ISMBandV5.1BLE。可以使用无线采集仪支持的通讯协议经由蓝牙接口完成无线采集仪访问(参数读取、设置,实时数据获取等)。配对码为0000或者1234。以手机为例说明。(1)下载并安装APP在任意的手......
  • 蓝牙搜索不到设备
    说明设备管理器中的蓝牙设备都看不到了或者蓝牙有驱动,但就是添加设备搜索的时候搜不到设备解决方法在设备管理器中-通用串行总线控制器-(有黄色报错的三角形感叹号)未知的USB设备,右键禁用,然后再启用,最后重启电脑即可出现蓝牙设备。释放静电:关机——拔电源插头——按电源键......
  • [嵌入式新产品] 蓝牙遥控器
    日本目前发售了一款蓝牙遥控器,一台智能手机可以通过蓝牙连到该遥控器上来操作家电.价格是400多人民币.最大可以注册50台家电,同时具备时钟功能REX-BTIREX1大小(约为)宽60高22深70mm,手掌大小.(蓝牙遥控器)使用方式:在手机端安装对应的App,App通过蓝牙控制遥控器,遥控器......
  • 蓝牙模块AT指令
    AT模式的波特率为38400每次发送指令时,要加回车(\r\n)蓝牙模块常用AT指令模块复位指令响应参数AT+RESETOK无恢复默认状态指令响应参数AT+ORGLOK无获取/设置模块地址指令响应参数AT+ADDR?+ADDR:<参数>OKParam:模块蓝牙地址......
  • C# 蓝牙开发你必须知道
    ​    无线,无网络环境上位机与下位机连接方式比较常见的就是蓝牙与串口,这里记录回顾一下这段时间蓝牙开发方面的记录。    蓝牙分为BLE蓝牙与经典蓝牙,两者主频都是2.4GHz,传输距离,范围,吞吐量可以自己网上详细查找,这里不详细展出,1.蓝牙传输必然得有传输......
  • 蓝牙的扫描、连接、读写
    步骤:在info.plist中加入蓝牙的权限NSBluetoothAlwaysUsageDescription:创建蓝牙管理者对象,创建后,首先会执行系统蓝牙是否打开的协议方法centralManagerDidUpdateState,如果系统蓝牙未打开,会有系统的弹框提示打开蓝牙,如下:打开系统蓝牙后,开始扫描设备,扫描到设备后会执行didDis......
  • 国产蓝牙芯片OM6621P/HS6621系列 应用门锁方案
    在5G、物联网以及互联网家装市场的快速发展等多重因素的作用下,中国智能家居市场展现蓬勃发展态势。作为智能家居“入口”产品以及家庭智能安防产品的核心单品,智能门锁以其区别于传统机械锁更具安全性、便利性、可扩展性的优势,逐渐成为智能家居生态链上不可或缺的核心组成部分,备受......
  • 蓝牙调试工具
    学习蓝牙协议栈可以看其交互数据,所用到的工具如下: airpacketsniffer:如ellisys(是个仪器)这是一个仪器,能抓取两个蓝牙设备之间的数据;将这个仪器和PC相连,在PC上通过ellisys、frontline、wireshark等软件可以看到两设备之间的交互数据。 hwhcisniffer:也是一个仪器......
  • 蓝牙基础
    蓝牙目前已更新的版本(assignednumbers文档中): 各个版本之间的差异:在core_v5.3中的卷1中: ......
  • 蓝牙认证
    蓝牙认证1. 蓝牙SIG认证:蓝牙SIG认证是蓝牙技术联盟(Bluetooth SIG)进行的认证,用于验证产品的互操作性、符合性和稳定性等,通常是指蓝牙设备的基本认证。2. FCC认证:美国联邦通信委员会(FCC)对所有发射的电子产品进行认证。蓝牙设备也需要通过FCC认证,以确保其符合美国法规并不会对其他......