You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

BLE Stack中GATT与ATT的区别及BLE栈分层相关问题咨询

问题解答

一、GATT与ATT差异确认

你的两个理解均准确,补充细节如下:

  • ATT(属性协议)是底层传输协议,核心作用是定义属性的统一数据结构(句柄、UUID、权限、值),以及属性的读、写、通知、指示等基础交互规则,属于传输层的规则定义,不关心属性本身的业务含义。
  • GATT(通用属性配置文件)是ATT的上层封装,完全基于ATT的属性传输能力实现,核心是把ATT的属性做逻辑分组,定义了服务、特征、描述符等业务语义单元,同时规范了服务发现、特征读写、通知订阅等标准化交互流程,开发者仅需基于GATT的服务/特征模型开发即可,不需要直接操作原始ATT属性。

二、BLE Stack核心概念

BLE栈(蓝牙低功耗协议栈)既是官方定义的理论分层规范,也是厂商基于规范实现的可直接调用的软件组件:蓝牙技术联盟(SIG)先定义了每一层的功能、交互规则、报文格式的统一标准,各芯片厂商(比如Nordic、TI、乐鑫)再基于这个标准开发对应的软件实现,打包成库提供给开发者调用,不需要开发者从零实现蓝牙协议逻辑。

三、BLE栈分层及各层输入输出

BLE栈整体分为控制器(底层,通常在芯片硬件/固件中实现)、主机(上层,可在固件或操作系统中实现)两大块,中间通过HCI层交互,从下到上各层功能、输入输出如下:

  • 物理层(PHY)
    • 功能:负责无线信号的调制解调,2.4GHz频段的射频收发
    • 输入:来自上层链路层的数字二进制报文
    • 输出:调制后的无线射频信号(发送时)/ 解调后的数字二进制报文(接收时)
  • 链路层(LL)
    • 功能:负责广播、扫描、连接建立、链路维护、加密、报文重传、流量控制
    • 输入:上层HCI的控制指令、待发送的上层数据包;底层PHY解调后的原始报文
    • 输出:给PHY的待发送二进制报文;给上层的解析后的链路层事件、有效数据包
  • 主机控制接口层(HCI)
    • 功能:控制器和主机之间的标准化通信接口,统一指令和事件格式
    • 输入:主机下发的HCI指令、待发送数据;控制器上报的HCI事件、接收数据
    • 输出:给控制器的格式化HCI指令/数据;给主机的格式化HCI事件/数据
  • 逻辑链路控制与适配协议层(L2CAP)
    • 功能:报文的分片重组、复用逻辑通道、QoS管理
    • 输入:上层协议(ATT/SMP等)的数据包;下层HCI上报的数据包
    • 输出:给下层的分片后的小包;给上层的重组后的完整协议数据包
  • 安全管理层(SMP)
    • 功能:负责配对、密钥生成、加密认证、权限管理
    • 输入:配对请求、加密请求指令;对等设备的安全相关报文
    • 输出:安全参数、加密后的数据包;配对结果、加密状态事件
  • 属性协议层(ATT)
    • 功能:属性定义、基础属性交互规则实现
    • 输入:上层GATT的服务/特征操作请求;对等设备的ATT属性报文
    • 输出:给下层L2CAP的ATT格式报文;给上层GATT的属性操作结果、属性数据
  • 通用属性配置文件层(GATT)
    • 功能:服务/特征模型、标准化交互流程实现
    • 输入:上层应用的服务注册、特征读写/订阅请求;下层ATT上报的属性操作结果
    • 输出:给下层ATT的属性操作指令;给上层应用的特征数据、操作结果事件
  • 通用访问配置文件层(GAP)
    • 功能:统一设备的访问行为规范,包括设备角色(广播者/观察者/外设/中心)、广播参数、连接参数、配对流程的上层逻辑
    • 输入:上层应用的广播、扫描、连接、配对指令;下层协议栈的事件
    • 输出:给下层协议栈的对应控制指令;给上层应用的广播数据、连接状态、配对结果等事件

最上层为用户应用层,直接调用GAP、GATT的接口即可实现业务逻辑。

内容的提问来源于stack exchange,提问作者Bratw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:15:03