规范和协议

[English]

在蓝牙系统中:

  • 协议 (Protocol): 定义了完成特定功能所需的底层通信机制,例如数据传输、链路控制、安全服务和服务信息交换等

  • 规范 (Profile): 定义了蓝牙系统提供的功能和特性(例如音频传输、遥控、串口通信等),它们依赖于底层协议实现

下表总结了 ESP-Bluedroid 支持的经典蓝牙规范:

规范 (Profile)

支持角色

说明

GAP

设备发现、连接和安全管理

A2DP

Source, Sink

高质量音频传输

AVRCP

Controller, Target

音频/视频远程控制

HFP

AG, HF

免提语音通话

SPP

Server, Client

串口数据传输

以上规范基于以下协议实现:L2CAP、SDP、RFCOMM、AVDTP、AVCTP。协议模型如下图所示:

┌───────────────────────────────────────────────────────┐
│                     Applications                      │
├───────────────────────────────────────────────────────┤
│                       Profiles                        │
│ ┌───────┬───────┬───────┬───────┬───────┐             │
│ │  GAP  │ A2DP  │ AVRCP │  HFP  │  SPP  │             │
│ └───────┴───┬───┴───┬───┴───┬───┴───┬───┘             │
├─────────────┼───────┼───────┼───────┼─────────────────┤
│             │       │       │       │    Transport    │
│        ┌────┴───┬───┴───┬───┴───────┴────┬───────┐    │
│        │ AVDTP  │ AVCTP │    RFCOMM      │  SDP  │    │
│        └────┬───┴───┬───┴────────┬───────┴───┬───┘    │
├─────────────┴───────┴────────────┴───────────┴────────┤
│                        L2CAP                          │
├───────────────────────────────────────────────────────┤
│                         HCI                           │
└───────────────────────────────────────────────────────┘

经典蓝牙协议栈

各层功能如下:

  • L2CAP、SDP:核心协议,是经典蓝牙主机协议栈的必备组成部分

  • RFCOMM:串口模拟协议,为 SPP 和 HFP 提供传输支持

  • AVDTP、AVCTP:音频/视频传输和控制协议,为 A2DP 和 AVRCP 提供传输支持

  • Profiles:定义具体应用场景的功能实现

协议

L2CAP

蓝牙逻辑链路控制和适配协议 (Logical Link Control and Adaptation Protocol, L2CAP) 是经典蓝牙主机协议栈的核心协议,主要功能包括:

  • 上层协议复用

  • 数据分段和重组

  • 服务质量 (QoS) 信息传递

L2CAP 允许多个应用程序共享同一条 ACL-U 逻辑链路,通过面向信道的接口与其他设备通信。

L2CAP 信道支持以下操作模式:

  • 基本 L2CAP 模式

  • 流量控制模式

  • 重传模式

  • 加强重传模式

  • 流模式

其中,ACL-U 逻辑链路支持基本 L2CAP 模式、加强重传模式和流模式。

SDP

服务发现协议 (Service Discovery Protocol, SDP) 允许应用程序发现其他对等蓝牙设备提供的服务,并获取服务特征信息。SDP 包含 SDP 服务器和 SDP 客户端之间的通信:

  • 服务器:维护描述服务特征的服务记录表

  • 客户端:通过发出 SDP 请求,检索服务器维护的服务信息

RFCOMM

串口仿真协议 (RFCOMM) 在 L2CAP 之上提供类似串口的通信接口,用于应用程序进行串口数据传输和模拟,是 SPP 和 HFP 的基础协议。RFCOMM 模拟了 RS-232 串口的控制信号和数据流,支持多个并发连接。

AVDTP

音频/视频分发传输协议 (Audio/Video Distribution Transport Protocol, AVDTP) 用于在 L2CAP 层上传输音视频流,是 A2DP 的基本传输协议。AVDTP 包括两个实体:

  • 信令实体:协商流参数

  • 传输实体:传输媒体流

AVCTP

音频/视频控制传输协议 (Audio/Video Control Transport Protocol, AVCTP) 用于传输 AV/C 命令和响应,为 AVRCP 提供传输服务。支持两种信道:

  • 控制信道:传输控制命令

  • 浏览信道:传输浏览命令

规范

GAP

通用访问规范 (Generic Access Profile, GAP) 定义了蓝牙设备发现、连接建立和安全管理的基本过程。GAP 是所有其他规范的基础。

更多信息请参阅 GAP API

A2DP

高级音频分发规范 (Advanced Audio Distribution Profile, A2DP) 定义了基于 ACL 信道实现高质量音频传输的应用层规范和流程。

角色定义:

  • Source (SRC):音频源端,如手机、电脑

  • Sink (SNK):音频接收端,如蓝牙音箱、耳机

音频编解码器:

目前支持 SBC (Sub-Band Coding),这是 A2DP 规范强制要求的编解码格式。

A2DP 基于 GAP 和 通用音频/视频分发规范 (Generic Audio/Video Distribution Profile, GAVDP),负责建立音频/视频流。图 规范依赖关系 展示了相关规范的依赖关系。

更多信息请参阅 A2DP API

AVRCP

音频/视频远程控制规范 (Audio/Video Remote Control Profile, AVRCP) 定义了音频/视频设备远程控制的标准接口。

角色定义:

  • Controller (CT):发起控制命令的设备

  • Target (TG):接收并响应控制命令的设备

支持的控制命令:

通过 PASS THROUGH 命令支持:播放、暂停、停止、上一曲、下一曲、音量调节等。

功能分类:

  • 播放机/录像机

  • 监控器/放大器(默认配置)

  • 调音器

  • 菜单

A2DP 与 AVRCP 通常一起使用:

  • A2DP 负责高质量音频流传输

  • AVRCP 负责音视频设备远程控制

  • 下层通过 AVDTP(用于音频流)和 AVCTP(用于控制命令)在 L2CAP 信道上传输数据和命令

规范依赖关系 展示了 A2DP 和 AVRCP 的依赖关系:

规范依赖关系

规范依赖关系

更多信息请参阅 AVRCP API

HFP

免提规范 (Hands-Free Profile, HFP) 定义了蓝牙免提设备与手机之间的应用层通信规范。

角色定义:

  • Audio Gateway (AG):音频网关,通常是手机

  • Hands-Free Unit (HF):免提设备,如车载蓝牙、蓝牙耳机

音频编解码器:

  • CVSD:窄带语音编解码器

  • mSBC:宽带语音编解码器

主要功能:

  • 接听/挂断/拒接电话

  • 音量控制

  • 语音拨号

  • 来电显示

更多信息请参阅 HFP API

SPP

串口规范 (Serial Port Profile, SPP) 定义了基于 RFCOMM 协议的串口通信应用,用于通过蓝牙模拟 RS-232 串口数据传输。

角色定义:

  • Server:等待连接的设备

  • Client:发起连接的设备

应用场景:

  • 设备配置和调试

  • 传感器数据传输

  • 点对点数据交换

更多信息请参阅 SPP API


此文档对您有帮助吗?