当前位置: 首页 > news >正文

GATT(Generic Attribute Profile)是蓝牙低功耗(Bluetooth Low Energy,简称BLE)协议栈中的一个核心协议

蓝牙的 GATT(Generic Attribute Profile) 是蓝牙低功耗(Bluetooth Low Energy,简称BLE)协议栈中的一个核心协议,用于定义设备如何通过蓝牙进行数据传输和交互。GATT 是基于 ATT(Attribute Protocol) 的一个高层协议,它提供了一种标准化的方式来组织和访问设备上的数据。

GATT 的核心概念

  1. 服务(Service)

    • 服务是一个逻辑分组,包含一组相关的特性(Characteristic)。
    • 每个服务都有一个唯一的 UUID(Universally Unique Identifier)来标识它。
    • 例如,心率监测服务(Heart Rate Service)是一个常见的服务,用于传输心率数据。
  2. 特性(Characteristic)

    • 特性是服务中的具体数据项,表示一个具体的值。
    • 每个特性都有一个唯一的 UUID,并且可以包含一个或多个描述符(Descriptor)。
    • 例如,心率监测服务中的“心率测量”特性,用于传输实时心率值。
  3. 描述符(Descriptor)

    • 描述符是特性值的附加信息,用于描述特性值的用途或格式。
    • 例如,特性值的单位、数据格式等。
  4. 属性(Attribute)

    • 属性是 GATT 中的最小数据单元,可以是服务、特性或描述符。
    • 每个属性都有一个唯一的句柄(Handle),用于标识它。

GATT 的工作原理

GATT 通信通常涉及两个角色:

  • GATT 服务器(GATT Server):提供数据的设备(通常是传感器或外围设备)。
  • GATT 客户端(GATT Client):请求和访问数据的设备(通常是智能手机或中央设备)。
通信流程
  1. 发现服务(Discover Services)

    • 客户端请求服务器列出所有可用的服务。
  2. 发现特性(Discover Characteristics)

    • 客户端请求服务器列出某个服务中的所有特性。
  3. 读取特性值(Read Characteristic Value)

    • 客户端读取某个特性的当前值。
  4. 写入特性值(Write Characteristic Value)

    • 客户端修改某个特性的值。
  5. 通知和指示(Notification 和 Indication)

    • 服务器可以主动向客户端发送特性值的更新(通知)或等待客户端确认后发送(指示)。

GATT 的应用示例

  1. 心率监测

    • 服务:心率监测服务。
    • 特性:心率测量、体感位置等。
    • 描述符:心率单位(如 BPM)。
  2. 设备信息

    • 服务:设备信息服务。
    • 特性:制造商名称、型号、硬件版本等。
  3. 环境传感器

    • 服务:环境传感器服务。
    • 特性:温度、湿度、压力等。

GATT 的特点

  1. 灵活性

    • GATT 允许开发者自定义服务和特性,以满足特定需求。
  2. 标准化

    • 蓝牙 SIG(Special Interest Group)定义了许多标准服务(如心率服务、电池服务等),便于设备间互操作。
  3. 低功耗

    • GATT 是蓝牙低功耗协议的一部分,适合电池供电设备。
  4. 事件驱动

    • 服务器可以主动向客户端发送数据(如通知),无需客户端频繁轮询。

总结

GATT 是蓝牙低功耗通信的核心协议,它通过服务、特性和描述符的层次结构,提供了一种标准化的方式来组织和访问设备上的数据。GATT 的灵活性和标准化特性使其成为物联网设备(如传感器、可穿戴设备等)通信的首选协议。

http://www.dtcms.com/a/111270.html

相关文章:

  • 【蓝桥杯】算法笔记3
  • 函数栈帧的创建与销毁
  • 言语理解与表达
  • 实战交易策略 篇十四:江南神鹰捕捉热点和熊市生存交易策略
  • 专为 零基础初学者 设计的最简前端学习路线,聚焦核心内容,避免过度扩展,帮你快速入门并建立信心!
  • 第15周:注意力汇聚:Nadaraya-Watson 核回归
  • 生成 SSH Key 并配置 GitHub/GitLab 详细教程
  • 深入理解AOP:面向切面编程的核心概念与实战应用
  • ctfshow VIP题目限免 robots后台泄露
  • 规则引擎Drools
  • 【KMP】P10915 [蓝桥杯 2024 国 B] 最长回文前后缀|普及+
  • RHCSA Linux 系统 文件的查看、复制、移动、重命名
  • 阿里巴巴langengine二次开发大模型平台
  • 压测工具开发实战篇(二)——构建侧边栏以及设置图标字体
  • Linux(十二)信号
  • SQL注入重新学习
  • OpenEuler/CentOS一键部署OpenGauss数据库教程(脚本+视频)
  • openmv用了4个了,烧了2个,质量堪忧啊
  • 基于FPGA的特定序列检测器verilog实现,包含testbench和开发板硬件测试
  • 鸿蒙 ——选择相册图片保存到应用
  • 第11/100节:三点估算
  • Muduo网络库实现 [十五] - HttpContext模块
  • 传统开发者视角:智能合约与区块链数据库探秘
  • 实操(进程状态,R/S/D/T/t/X/Z)Linux
  • im即时通讯支持红包收发分销功能,带内嵌web页面,已经测试完美运行
  • 二级索引详解
  • 从基础算力协作到超智融合,超算互联网助力大语言模型研习
  • C++学习笔记之 模板|函数模板|类模板
  • 嵌入式学习笔记——ARM-中断与异常
  • R5周:天气预测