> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 蓝牙概述

> 了解蓝牙无线技术，并探索 Qualcomm Linux 的蓝牙解决方案。

蓝牙<sup>®</sup>无线技术是一种短距离通信系统，可实现设备之间的无线数据交换。蓝牙技术的主要优势如下：

* 取代连接便携式和固定电子设备的线缆。
* 提供稳健、节能且经济高效的解决方案。
* 提高解决方案及其应用的灵活性。

蓝牙技术提供以下无线电选项。

| 无线电                 | 描述                                                                                                           |
| ------------------- | ------------------------------------------------------------------------------------------------------------ |
| 基本速率/增强数据速率（BR/EDR） | <ul><li>提供可选的 EDR、备用媒体访问控制（MAC）和物理层（PHY）扩展。</li><li>支持同步和异步连接，BR 的数据速率为 721.2 Kbps，EDR 为 2.1 Mbps。</li></ul> |
| 低功耗（Low Energy）     | <ul><li>使产品能够实现比 BR/EDR 更低的电流消耗、更低的复杂度和更低的成本。</li><li>适用于数据速率较低且占空比较低的用例和应用。</li></ul>                       |

BR/EDR 和低功耗无线电选项支持设备发现、连接建立和连接机制。无线电的最佳选择取决于解决方案的用例或应用。

Qualcomm<sup>®</sup> Linux<sup>®</sup> 支持以下套件的蓝牙解决方案。

<table>
  <thead>
    <tr>
      <th>套件</th>
      <th>硬件片上系统（SoC）</th>
      <th>蓝牙芯片组</th>
      <th>蓝牙协议栈</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing<sup>TM</sup> RB3 Gen 2 Vision Development Kit</li>
          <li>Qualcomm Dragonwing RB3 Gen 2 Core Development Kit</li>
        </ul>
      </td>

      <td>QCS6490</td>

      <td>
        <ul>
          <li>WCN6750</li>
          <li>WCN6856 over M.2 USB</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing RB3 Gen 2 Lite Vision Development Kit</li>
          <li>Qualcomm Dragonwing RB3 Gen 2 Lite Core Development Kit</li>
        </ul>
      </td>

      <td>QCS5430</td>

      <td>
        <ul>
          <li>WCN6750</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing IQ-9075 Evaluation Kit (EVK)</li>
        </ul>
      </td>

      <td>IQ-9075</td>

      <td>
        <ul>
          <li>WCN6856</li>
          <li>WCN7850</li>
          <li>QCC2072</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing IQ-8275 EVK</li>
        </ul>
      </td>

      <td>IQ-8275</td>

      <td>
        <ul>
          <li>WCN6856</li>
          <li>WCN7850</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing IQ-615 EVK</li>
        </ul>
      </td>

      <td>IQ-615</td>

      <td>
        <ul>
          <li>QCA6698AQ</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing IQ-x7181 EVK</li>
        </ul>
      </td>

      <td>IQ-x7181</td>

      <td>
        <ul>
          <li>WCN6855</li>
          <li>WCN7850</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing IQ-x5121 EVK</li>
        </ul>
      </td>

      <td>IQ-x5121</td>

      <td>
        <ul>
          <li>WCN6855</li>
          <li>WCN7850</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing CQ-2390 EVK</li>
        </ul>
      </td>

      <td>CQ2390</td>

      <td>
        <ul>
          <li>WCN3988</li>
          <li>Qualcomm Dragonwing IQ10 EVK</li>
        </ul>
      </td>

      <td>IQ10</td>

      <td>
        <ul>
          <li>WCN7850</li>
        </ul>
      </td>

      <td>BlueZ</td>
    </tr>
  </tbody>
</table>

下图显示了 Qualcomm 连接芯片组的各种组件，包括蓝牙子系统及其与应用处理器的交互。

<Frame caption="图：Qualcomm 连接芯片组框图">
  <img src="https://mintcdn.com/qualcomm-staging/uWQLnBcS9sxlZhgB/Technologies/Bluetooth/media/qli-bt/QC_Connectivity_blockdiagram.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=9a166b360b5bae9481ea778f8ac4987e" alt="连接芯片组的高层框图。" width="1027" height="463" data-path="Technologies/Bluetooth/media/qli-bt/QC_Connectivity_blockdiagram.png" />
</Frame>

<a id="bluetooth-specification" />

## 蓝牙规范

WCN6750、WCN6856、WCN7850 和 QCA6698AQ 连接芯片组符合 *Bluetooth Core specification v5.2 或 v5.3*。这些芯片组具有以下控制器特性和能力：

* 蓝牙低功耗数据速率高达 2 Mbps
* 长距离模式，在 500 Kbps 和 125 Kbps 两个新的较低比特率下具有更好的灵敏度
* 通过使用广播扩展，广播能力提升 8 倍
* 改进的信道选择算法（CSA #2），有助于改进信道协调以及与其他蓝牙和非蓝牙流量的共存效率

下表列出了 WCN6750、WCN6856、WCN7850、QCA6698AQ 和 WCN3988 连接芯片组支持的蓝牙规范和特性。

| 特性                               | WCN6750 | WCN6856 | WCN7850 | QCA6698AQ | QCC2072 | WCN3988 |
| -------------------------------- | :-----: | :-----: | :-----: | :-------: | :-----: | :-----: |
| 蓝牙低功耗安全连接                        |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| 蓝牙低功耗隐私 1.2                      |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| Bluetooth 5.1 Core specification |    ✕    |    ✕    |    ✕    |     ✕     |    ✕    |    ✓    |
| Bluetooth 5.2 Core specification |    ✓    |    ✓    |    ✕    |     ✓     |    ✓    |    ✕    |
| Bluetooth 5.3 Core specification |    ✕    |    ✕    |    ✓    |     ✕     |    ✓    |    ✕    |
| Bluetooth 6.0 Core specification |    ✕    |    ✕    |    ✕    |     ✕     |    ✓    |    ✕    |
| 数据长度扩展                           |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| 2 Mbps PHY                       |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| 广播扩展                             |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| 蓝牙低功耗长距离                         |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| CSA #2                           |    ✓    |    ✓    |    ✓    |     ✓     |    ✓    |    ✓    |
| USB 1.1 接口支持                     |    ✕    |    ✓    |    ✓    |     ✕     |    ✕    |    ✕    |

## BlueZ 协议栈

BlueZ 是一个支持核心蓝牙层和协议的蓝牙 Linux 协议栈。BlueZ 的特性如下：

* 符合 *Bluetooth Core specification v5.4*
* 支持多个蓝牙设备
* 为所有层实现套接字接口
* 支持多线程数据处理

## 蓝牙规范（Profile）和角色

蓝牙 Profile 定义了建立蓝牙连接所需的设备规范、要求和角色。Profile 还决定了设备之间使用的通信协议。

BlueZ 协议栈为连接芯片组支持以下蓝牙 Profile 和角色。

<table>
  <thead>
    <tr>
      <th rowSpan={2}>Profile</th>
      <th rowSpan={2}>角色</th>
      <th rowSpan={2}>版本</th>
      <th colSpan={4}>芯片组支持情况</th>
    </tr>

    <tr>
      <th>WCN6750 / WCN6856</th>
      <th>WCN7850</th>
      <th>QCA6698AQ</th>
      <th>WCN3988</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>通用访问规范（GAP）</td>
      <td>中央设备和外围设备</td>

      <td />

      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>串行端口规范（SPP）</td>
      <td>客户端和服务器</td>
      <td>v1.2</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>HID over GATT 规范（HOGP，人机接口设备）</td>
      <td>主机</td>
      <td>v1</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>通用属性规范（GATT）</td>
      <td>中央设备和外围设备</td>

      <td />

      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td rowSpan={2}>高级音频分发规范（A2DP）</td>
      <td>Source</td>
      <td>Nonsplit v1.3</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>Sink</td>
      <td>Nonsplit v1.3</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td rowSpan={2}>音频/视频远程控制规范（AVRCP）</td>
      <td>Target</td>
      <td>v1.5</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>Controller</td>
      <td>v1.5</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td rowSpan={2}>免提规范（HFP）</td>
      <td>音频网关</td>
      <td>Nonsplit v1.7</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>客户端</td>
      <td>Nonsplit v1.7</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>对象推送规范（OPP）</td>
      <td>客户端和服务器</td>
      <td>v1.2</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>文件传输协议（FTP）</td>
      <td>客户端和服务器</td>
      <td>v1.2</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>电话簿访问规范（PBAP）</td>
      <td>客户端和服务器</td>
      <td>v1.1</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>消息访问规范（MAP）</td>
      <td>客户端和服务器</td>
      <td>v1.2</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
      <td align="center">✓</td>
    </tr>
  </tbody>
</table>

<Note>支持蓝牙 Profile 并发。</Note>

### 通用访问规范

蓝牙低功耗 GAP 是现有 BR/EDR GAP 的扩展。它处理设备的以下基本操作：

* 发现设备
* 建立连接
* 绑定多个设备
* 建立私密连接
* 解析私有地址

所有蓝牙设备都必须实现 GAP 定义的基本功能。GAP 确保所有蓝牙设备无论其支持何种更高级别的功能，都能够建立基带连接。GAP 负责以下功能：

* 发现蓝牙设备的通用流程
* 连接蓝牙设备的链路管理方面
* 与安全级别相关的流程
* 用户界面级参数的通用格式，例如命名约定

GAP 为设备定义并分配以下 Profile 角色。

| Profile 角色       | 描述                                                                                                                                   |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| 中央设备（Central）    | <ul><li>处理能力和内存相对较强的设备。例如手机或平板电脑。</li><li>始终是主设备。</li><li>不进行广播。</li><li>支持主动或被动扫描以及所有链路层控制流程。</li></ul>                             |
| 外围设备（Peripheral） | <ul><li>小型、低功耗且资源受限的设备，可以连接到功能更强大的中央设备。例如心率监测仪之类的仪器，或支持蓝牙低功耗的近距离标签。</li><li>始终是从设备。</li><li>通过连接进行广播。</li><li>支持所有链路层控制流程。</li></ul> |
| 广播者（Broadcaster） | <ul><li>发送不可连接的广播事件，包括特征和服务数据。</li><li>不需要接收器。</li></ul>                                                                             |
| 观察者（Observer）    | <ul><li>接收广播事件并监听特征和服务数据。</li><li>不需要发射器。</li></ul>                                                                                  |

### 串行端口规范

SPP 便于设备之间通过虚拟串行端口进行无线通信。它支持客户端和服务器角色。

SPP 定义了以下要素：

* 蓝牙设备使用射频通信（RFCOMM）在两个对等设备之间建立模拟串行线缆连接的要求。
* 为应用程序提供的服务条款。
* 蓝牙设备之间互操作性的特性和流程。

### 通用属性规范

GATT 是一个服务框架，它使用属性协议（ATT）来发现服务，以及读取和写入对等设备上的特征值。它支持客户端和服务器角色。

GATT 执行以下功能：

* 通过应用程序 Profile 与应用程序交互。

  应用程序 Profile 定义了属性集合以及设备间通信中使用的属性所需的任何权限。

* 指定两个蓝牙低功耗设备如何使用服务或声明、特征和描述符交换数据。

  它不定义属性使用规则。上层应用程序通过使用这些概念来实现功能。

* 将服务、特征和相关数据存储在基本查找表中，并为每个条目分配 16 位 ID。

### HID over GATT 规范（人机接口设备）

HOGP 定义了蓝牙低功耗无线通信设备如何使用 GATT 通过蓝牙低功耗协议栈支持 HID 服务。<Note>仅支持并验证了主机（Host）角色；不支持 HOGP 客户端角色。</Note>

### 高级音频分发规范

A2DP 定义了通过蓝牙连接将高质量音频从一个设备传输或流式传输到另一个设备的要求。例如，将音乐从手机、笔记本电脑或台式机流式传输到无线耳机，以及将音频流式传输到助听器、人工耳蜗或车载控制台。

A2DP 支持以下角色。

| Profile 角色 | 描述                                                                                                             |
| ---------- | -------------------------------------------------------------------------------------------------------------- |
| Source     | <ul><li>向微微网（piconet）的 sink 进行数字流式传输的音频源。</li><li>便于将立体声质量的音频从多媒体播放器流式传输到无线耳机或扬声器。</li></ul>                   |
| Sink       | <ul><li>无线音频设置中的音频接收设备。</li><li>使用音频编解码器压缩音频数据，然后在扬声器端以最小损失进行解码。</li><li>支持高质量的无线音频播放，为提升音频体验提供便捷方式。</li></ul> |

### 免提规范

HFP 定义了音频网关设备如何连接到免提设备以实现远程控制和音频连接等功能。

HFP 为设备定义并分配以下 Profile 角色。

| Profile 角色 | 描述                                                                                                                 |
| ---------- | ------------------------------------------------------------------------------------------------------------------ |
| 客户端        | <ul><li>免提设备。例如无线耳机或车载控制台。</li><li>建立服务级连接，与远程音频网关创建音频连接，并传输双音多频（DTMF）码。</li><li>支持接听或拒接来电、拨打号码和控制音量等功能。</li></ul> |
| 音频网关       | <ul><li>音频输入和输出的网关。例如手机。</li><li>与免提设备通信，免提设备远程控制音频网关的音频机制和其他功能。</li></ul>                                         |

### 对象推送规范

OPP 定义了两个蓝牙设备如何交换对象，例如名片、图像、壁纸、铃声或视频。它允许蓝牙设备：

* 从另一个蓝牙设备拉取对象。
* 向另一个蓝牙设备推送对象。
* 与另一个蓝牙设备交换对象。

OPP 支持客户端和服务器角色。

### 文件传输协议

FTP 定义了两个蓝牙设备之间交换文件的要求。FTP 支持客户端和服务器角色。它允许蓝牙设备：

* 浏览另一个蓝牙设备的文件和文件夹。
* 与另一个蓝牙设备交换文件和文件夹。
* 在另一个蓝牙设备上创建或删除文件和文件夹。

### 电话簿访问规范

PBAP 便于在远程设备和本地设备之间交换电话簿对象。它基于客户端-服务器交互模型，客户端设备从服务器设备获取电话簿对象。在 BlueZ 协议栈中，PBAP 支持以下角色：

* 电话簿服务器设备（PSE）：包含源电话簿对象。
* 电话簿客户端设备（PCE）：从 PSE 检索电话簿对象。

电话簿对象的类型如下所列。

| 电话簿对象   | 描述              |
| ------- | --------------- |
| 主电话簿    | 设备（例如手机）的电话簿。   |
| 来电历史    | 最近接听的来电列表。      |
| 去电历史    | 最近拨打的电话列表。      |
| 未接来电历史  | 最近未接来电列表。       |
| 组合通话历史  | 最近接听、拨打或未接来电列表。 |
| 快速拨号联系人 | PSE 上的快速拨号条目列表。 |
| 收藏联系人   | PSE 上的收藏联系人列表。  |

PBAP 允许以下功能：

* 从远程设备下载联系人和通话历史。
* 浏览远程设备上的联系人。
* 选择电话簿对象。

### 消息访问规范

MAP 定义了设备用于交换消息对象的功能和流程。它基于客户端-服务器交互模型，由客户端发起事务。消息对象类型包括电子消息（电子邮件）和短消息服务（SMS）。

MAP 结合消息服务器设备的消息传递能力和客户端设备的用户界面能力，以实现通知、浏览、阅读、删除、生成和发送消息。在 BlueZ 协议栈中，MAP 支持以下设备角色：

* 消息服务器设备（MSE）：提供消息存储库引擎。
* 消息客户端设备（MCE）：使用 MSE 的消息存储库引擎实现 MAP 功能。

## 后续步骤

* 要开始验证 BlueZ 协议栈的功能，请参见 <a href="verify-the-functionality-of-blue-z-stack" target="_self">验证 BlueZ 协议栈的功能</a>。

* 要了解有关蓝牙架构的更多信息，请参见 <a href="bluetooth-architecture" target="_self">蓝牙软件架构</a>。
