发布时间:2026/9/3 13:37:06
【蓝牙精品系列文档】【02_gatt进阶】01_ATT协议详解 ATT 协议详解核心概念ATT(Attribute Protocol)是 BLE 数据访问的基础协议,采用 Client-Server 模型。Server 暴露属性(Attribute),Client 通过 ATT PDU 读写这些属性。Attribute(属性)每个属性由 4 个要素组成:┌──────────────┬──────────────┬──────────────┬──────────────┐ │ Handle: 2B │ Type: 2/16B │ Value: ≤512B │ Permissions │ │ 属性句柄 │ 属性类型(UUID)│ 属性值 │ 权限 │ └──────────────┴──────────────┴──────────────┴──────────────┘ Handle: 0x0001 ~ 0xFFFF,Server 中按递增顺序排列 Type: 16-bit 或 128-bit UUID,标识属性含义 Value: 0 ~ 512 字节 Permissions: Read / Write / Notify / Indicate + 认证/加密要求 在 ATT 层属性表中:Permissions = 1 字节(8 bits)标准 ATT/GATT 里,权限是一个 uint8(1 字节) 的位域: 每一位代表一种权限(读、写、加密、认证等) 常见位定义(不同芯片 SDK 会一致): bit0:Read bit1:Write bit2:Read Auth bit3:Write Auth bit4:Read Encrypt bit5:Write Encrypt ……一、整体前置认知这是BLE GATT 层的基础单元:Attribute(属性),整个蓝牙设备的服务、特征值、描述符,本质全是一个个 Attribute。每一条属性固定由句柄、类型、值、权限4 部分构成,是 BLE 数据交互的最小载体。二、逐个要素详解1. Handle(属性句柄)—— 2 字节(2B)核心作用属性的唯一编号 / 地址,主机(手机 / APP)靠这个编号定位要操作哪一条属性。长度:固定 2 字节,取值范围0x0001 ~ 0xFFFF(总共 65535 个可用句柄)规则:设备端(Server 从机)内部严格按从小到大递增排列,不会乱序、不会重复。举例:0x0001 = 第一条属性、0x0002 = 第二条…… 主机读写数据时,直接发「句柄 + 指令」,设备就能精准找到对应属性。类比:一栋楼里的房间门牌号,找房间就看门牌号。2. Type(属性类型)—— 2 字节 或 16 字节(2B / 16B UUID)核心作用定义这个属性 “是干什么的”,用 UUID 区分属性身份、功能、类别。分两种格式:16-bit UUID(2 字节)蓝牙协议预定义的标准通用属性,全网统一、大家都认识。例:0x2800:主服务0x2803:特征值声明0x2A00:设备名称0x2A19:电池电量128-bit UUID(16 字节)厂商自定义私有属性,标准蓝牙没有定义,用于厂商私有功能、自定义数据通道。长度更长,保证全球不重复。类比:门牌号对应房间用途标签(卧室 / 厨房 / 储物间),标签决定房间能干什么。3. Value(属性值)—— 最长 512 字节核心作用属性真正存储的业务数据,也是蓝牙收发的有效载荷。长度范围:0 ~ 512 字节(BLE 单条属性值上限)内容:可以是字符串、传感器数据、指令、状态、二进制数据流等。特点:主机读就是取这个值,写就是修改这个值。类比:房间里存放的东西,是最终要读写的内容。4. Permissions(权限)—— 访问控制规则核心作用规定谁能对这个属性做什么操作、需不需要加密 / 认证,是安全 + 访问限制规则。分为两大块:操作权限+安全权限(1)基础操作权限(4 种标准动作)Read 读允许主机读取当前属性的 Value 值。Write 写允许主机向属性写入新的 Value 值。Notify 通知从机(Server)主动上报数据给主机,无需主机主动读,数据变化就推送。特点:无应答,速度快,常用在传感器实时上报。Indicate 指示和 Notify 类似,也是从机主动推数据,但主机必须回复应答,可靠性更高。简单区分:Notify = 发消息不用对方回执;Indicate = 发消息必须等对方确认收到。(2)安全附加要求(认证 / 加密)搭配上面 4 种操作使用,做安全加固:加密(Encrypted):读写 / 推送该属性时,连接必须开启蓝牙加密,明文不传输。认证(Authenticated):除加密外,还需要设备配对、身份鉴权(绑定设备),安全等级更高。权限组合举例仅 Read:只能读,不能写、不能推送Read + Write:可读写,普通数据通道Notify + 加密:仅允许加密连接下主动推送数据Indicate + 认证:高安全级别的主动上报(如密码、

相关新闻

2026/9/1 7:44:57

终极指南:如何免费解锁Wand专业版全部功能

终极指南:如何免费解锁Wand专业版全部功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 还在为Wand(原WeMod)…

2026/9/1 10:16:32

虚幻引擎粒子系统实战指南:从级联编辑器到性能优化

1. 项目概述:从零开始理解虚幻引擎的粒子系统如果你刚接触虚幻引擎,看到“粒子系统”这个词可能会觉得它既神秘又强大。在游戏和实时渲染的世界里,粒子系统是创造那些令人惊叹的视觉效果的基石——无论是角色施法时指尖跃动的魔法火花、枪口喷…

2026/9/3 3:01:40

ArcGIS Pro 3D场景构建与外部模型集成指南

1. 为什么需要将外部模型集成到ArcGIS Pro中?在三维地理信息系统中,真实世界往往需要精细的模型与地理环境相结合。比如城市规划中,设计师可能需要将建筑模型(.fbx格式)放置到真实地形上;考古复原时&#x…

2026/9/3 13:33:26

游戏MOD入门:从主菜单替换到沉浸式体验设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 13:33:26

AI生成与言说事件:文本生产背后的责任边界与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/3 13:28:25

STM32裸机驱动IP101GR以太网PHY实战指南

简介:本资源是面向嵌入式开发工程师与STM32进阶学习者的网络通信实战资料包,聚焦STM32平台下IP101GR以太网PHY芯片的驱动开发与TCP/IP协议栈集成。资源完整覆盖硬件接口(RMII)、MAC初始化、PHY寄存器配置、lwIP协议栈移植及网络收…

2026/9/1 16:02:17

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/2 9:00:32

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/2 8:41:06

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/3 0:02:06

零基础装 OpenClaw 小龙虾 AI:Windows 一键部署教程与避坑要点

Windows 部署 OpenClaw 完整教程|本地 AI 智能体 5 分钟落地,环境配置一次搞定 版本说明:Windows 3.1.0 / Mac 2.7.9 写在前面 近两年开源 AI 领域有一款被称作「数字员工」的工具持续走热,它就是 OpenClaw,圈内人更习…

2026/9/3 0:02:06

Hermes Agent 本地部署新方案:Windows 整合包减少依赖报错

Windows 本地部署 Hermes 太麻烦?这版一键包 5 分钟快速跑通 很多人想体验 Hermes Agent,但真正开始部署时,往往会卡在环境配置这一步。 需要安装各类依赖、调试运行环境、处理路径问题,还容易遇到命令行报错、系统拦截、文件缺…

2026/9/3 0:02:06

实测 OpenClaw 一键包,5 分钟完成本地自动化环境搭建

OpenClaw 本地 AI 自动化工具部署指南|使用一键包规避环境配置难题 痛点:部署 AI 自动化工具常常要处理 Python、Node.js 各类依赖,版本冲突、环境配置耗费大量时间,OpenClaw 提供一键安装包,降低部署门槛。 适配系统&…

2026/9/2 1:15:22

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/2 1:15:22

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/2 1:15:20

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…