BLE基础知识(二)

简介: 上一篇《BLE基础知识(一)》聊到GAP,接下来继续来聊聊ATT, GATT等内容,这些在BLE中应用还是比较多的。

前言

上一篇《BLE基础知识(一)》聊到GAP,接下来继续来聊聊ATT, GATT等内容,这些在BLE中应用还是比较多的。


ATT

ATT(Attribute protocol)协议是为了允许设备读写保存在Server上的数据值。每个存储值就是一个属性。

ATT定义了属性的内容,规定了访问属性的方法和权限。平时我们的BLE设备就是通过属性进行数据收发的。

ATT定义了两种角色:ClientServer

  • Server:存储属性,接收Client的ATT请求,命令和确认。
  • Client:接收Server的应答,指示和通知。

GATT

GATT(Generic Attribute Profile) 是建立在ATT之上的。为传输数据建立通用操作和框架。

GATT也定义了两种角色: ServerClient。GATT Client也是一个ATT Client,GATT Server也是一个ATT Server,所以GATT角色不需要去专门绑定ATT角色。

  • Server:一般就是进行广播,被连接的设备。
  • Client:一般就是进行扫描,然后主动去连接的设备。

GATT还指定了GATT Server上包含的数据格式。由属性协议传输的属性被格式化为服务和特征。来看看下图:

20210622192920203.png

上图定义了一些概念及它们之间的包含关系,这些概念还是很重要的,接下来我们来一一解释。


1. Service — 服务

简单理解就是提供某项服务或功能。比如心率,电池监测等都可以定义为一个服务。

系统可以有两种service:主要(primary)和次要(secondary)

primary: 提供设备的主要功能

secondary:提供设备的附加功能


2. Included services — 包含服务

类似于包含头文件,就是将其他共用的服务包含进来。


3. Characteristic — 特征

可以理解为服务中的某个特性,比如心率服务,就会有个心率值,心率值就可以定义为一个Characteristic 。


4. Properties — 属性

这里的属性和上面的Attribute不一样。这里的属性定义的是Read / Write / Notify / Indicate等,用于声明Characteristic是否可读可写等属性。


5. Value — 值

用来保存数值的。


6. Descriptor — 描述符

用于描述Characteristic,让用户更能理解该Characteristic的作用和如何使用。


通过上图,我们可以看出Service的数据结构定义。


相关文章
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
4961 1
【BLE】 BLE配对绑定保姆级介绍
|
运维 安全 Linux
Jumpserver堡垒机部署和基本使用
Jumpserver堡垒机部署和基本使用
1645 2
|
网络协议 Java Nacos
Nacos—配置管理
Nacos—配置管理
1066 0
|
SQL 数据库管理 索引
SQL语句查询教师表:高效构建与技巧分享
在数据库管理中,查询操作是最基础也是最重要的功能之一
|
物联网 Android开发
Bluetooth
Bluetooth
237 0
|
安全 物联网
BLE基础知识(一)
前面通过《蓝牙基础知识(一)》和《蓝牙基础知识(二)》两篇,我们了解了一些蓝牙的基本概念。之前说过蓝牙分为BR/EDR和BLE,接下来,我们先来看看BLE的内容。
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
400 0
|
网络协议 安全 物联网
蓝牙基础知识(一)
最近刚好一直在研究蓝牙相关的内容,所以想来和大家一起分享。首先我们依然以基础概念开始,因为一头扎进代码,只会让你不知所措!
|
存储 安全 算法
一文彻底搞懂什么是SSH中间人攻击(Man-in-the-middle attack)
服务器重新安装之后,ssh无法连接,提示中间人攻击(man-in-the-middle-attack)。之前也遇到过,按照网上的操作能解决,但是一知半解,今天趁此把该问题消化掉。
4163 0
|
物联网 UED
【BLE】蓝牙BLE传输到底有多快?
我们在开发蓝牙产品的时候,经常会被问到,这个文件传输用蓝牙可以做吗?多长时间可以传完?蓝牙的传输速率是多大?很多人对蓝牙的传输速率可能只有一个大概的概念几KB?几十KB?下面就来看一下蓝牙的传输速率到底有多快?众所周知,对于无线连接,链路维护和数据包冗余会产生一定的传输成本,以保持蓝牙连接的健壮和高效。因此,连接的低功耗蓝牙数据吞吐量的公式为:使用这个公式,我们将在建立连接时计算从 4.0 到 5 的数据吞吐量。
2010 0
【BLE】蓝牙BLE传输到底有多快?