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值去操作设备。
5743 1
【BLE】 BLE配对绑定保姆级介绍
|
物联网
低功耗蓝牙(BLE)设备常用的4种角色
对于主从设备的其它说法,大家需要了解一下。对于Central和Peripheral有多种说法,上面我们说的是主从,还有客户端/服务端,中心设备/外围设备,我们这里简单介绍一下,客户端(Client)对应上面的Central,接收数据;服务端(Server)对应上面的额Peripheral,提供数据,这个需要和网站的服务器/客户端区别一下;中心设备(Central)和外围设备(Peripheral),其实上面叫中心设备和外围设备。上面主设备(Master)和从设备(Slave)应该对应主/从。这个根据个人习惯,主/从用的比较多,如果在蓝牙中提到这些知道就行了。
1842 0
|
编解码
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
3396 1
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
|
监控 物联网 数据安全/隐私保护
蓝牙调试工具集合汇总
蓝牙调试工具集合汇总
1152 0
|
网络协议 Java Nacos
Nacos—配置管理
Nacos—配置管理
1318 0
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
9373 5
一文带你认识蓝牙 GATT 协议
|
算法 网络协议 物联网
|
数据采集 机器学习/深度学习 算法
【计算机二级Python】模拟试卷第4套选择题
第四套计算机二级Python考试的模拟选择题,包含40道题目,内容涉及需求分析、数据流图、黑盒测试、E-R图、二叉树、算法复杂度、Python文件后缀、浮点数精度、保留字、字符编码、循环结构、第三方库、列表操作、文件读写、CSV文件、turtle图形库、网络爬虫、数据分析、机器学习、字符串操作、类型转换、随机数、列表推导、字典、字符串格式化等方面,旨在帮助考生复习和准备考试。
470 4
|
存储 安全 定位技术
公网IP和私有IP
公网IP和私有IP
1484 2
|
安全 物联网
BLE基础知识(一)
前面通过《蓝牙基础知识(一)》和《蓝牙基础知识(二)》两篇,我们了解了一些蓝牙的基本概念。之前说过蓝牙分为BR/EDR和BLE,接下来,我们先来看看BLE的内容。

热门文章

最新文章

下一篇
开通oss服务