深入解析蓝牙服务与特性:从原理到代码实践

讲解蓝牙中最重要的概念——蓝牙的服务和特性

先给同学们看一下这张图,蓝牙协议的整体架构。
在这里插入图片描述

  • 最下面的是物理层,负责的是无线电波的收发以及信号链路的管理;
  • 中间的部分是协议层,主要实现蓝牙协议栈;
  • 最上面的是应用层,根据业务需求来实现不同的应用程序。

作为应用开发者,我们只需要关注应用层就可以了,物理层以及协议栈一般都是由芯片原厂来实现。协议栈里面主机与控制器之间的通信接口称为主机控制接口,简称hci。图上的一些名词和概念暂时不理解,也不要着急,随着学习的深入,后面都会逐渐接触。

以标准的蓝牙设备,比如这个蓝牙鼠标,来看一下它的服务和特性是如何实现的。在手机上打开名叫谷雨蓝牙的微信小程序,搜索到这只蓝牙鼠标,点击连接。连接成功后,在这里看到的就是该设备的服务列表,一共有五个服务。每个服务上面的英文单词是服务的名称,下面还有一行UUID。关于UUID,我们会在后面的视频中讲到。
在这里插入图片描述

随便点开一个服务展开,是该服务里面的特性。每一个特性由特性名称特性UUID特性的访问权限组成。
在这里插入图片描述

通过以上的实验可以得出,蓝牙设备在应用层是通过服务和特性来实现的。可以通过下面这张图来抽象地表示:
在这里插入图片描述

  • 一个蓝牙设备里面可以包含若干个服务;
  • 一个服务里面包含若干个特性;
  • 每个特性里面又可以有读、写、通知等权限。

每一个服务和特性都要有一个UUID,UUID是蓝牙组织定义的用于区分各个服务和特性的标识符,总长度是128bit。比如下面就是两个标准的UUID。
在这里插入图片描述

讲到这里可能会有同学感到疑惑,刚刚我们在手机小程序里面看到的UUID好像很短,与图上的不一样。的确不一样,考虑到128bit的UUID太长,使用起来不太方便,蓝牙组织联盟定义了一个UUID的基地址,允许用户使用16bit的UUID与该基地址拼接,形成128bit的UUID。比如16bit的UUID 2A37对应的128bit的UUID是这样的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值