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

# 蓝牙概述

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

蓝牙（Bluetooth<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 视觉开发套件</li>
          <li>Qualcomm Dragonwing RB3 Gen 2 核心开发套件</li>
        </ul>
      </td>

      <td>QCS6490</td>

      <td>
        <ul>
          <li>WCN6750</li>
          <li>WCN6856（通过 M.2 USB）</li>
        </ul>
      </td>

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

    <tr>
      <td>
        <ul>
          <li>Qualcomm Dragonwing RB3 Gen 2 Lite 视觉开发套件</li>
          <li>Qualcomm Dragonwing RB3 Gen 2 Lite 核心开发套件</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 评估套件（EVK）</li>
        </ul>
      </td>

      <td>IQ-9075</td>

      <td>
        <ul>
          <li>WCN6856</li>
          <li>WCN7850</li>
          <li>QCC2072（要启用该芯片组，请参阅 <a href="./known-issues-and-workarounds">已知问题及解决方法</a>）</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>
  </tbody>
</table>

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

<Frame caption="图：Qualcomm 连接芯片组框图">
  <img src="https://mintcdn.com/qualcomm-prod/PyJ823JBh-_RDtS4/Technologies/Bluetooth/media/qli-bt/QC_Connectivity_blockdiagram.png?fit=max&auto=format&n=PyJ823JBh-_RDtS4&q=85&s=e9da2bbc3bfa4adf41cfeedc503c236d" 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 连接芯片组符合*蓝牙核心规范 v5.2 或 v5.3*。这些芯片组具有以下控制器特性和能力：

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

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

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

## BlueZ 协议栈

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

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

## 蓝牙配置文件与角色

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

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

<table>
  <thead>
    <tr>
      <th rowSpan={2}>配置文件</th>
      <th rowSpan={2}>角色</th>
      <th rowSpan={2}>版本</th>
      <th colSpan={3}>芯片组支持情况</th>
    </tr>

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

  <tbody>
    <tr>
      <td>通用访问配置文件（GAP）</td>
      <td>中心设备和外围设备</td>

      <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>
    </tr>

    <tr>
      <td>基于 GATT 的人机接口设备（HID）配置文件（HOGP）</td>
      <td>主机</td>
      <td>v1</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>
    </tr>

    <tr>
      <td rowSpan={2}>高级音频分发配置文件（A2DP）</td>
      <td>源（Source）</td>
      <td>非分离式 v1.3</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td>接收端（Sink）</td>
      <td>非分离式 v1.3</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>
    </tr>

    <tr>
      <td>控制器（Controller）</td>
      <td>v1.5</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✓</td>
    </tr>

    <tr>
      <td rowSpan={2}>免提配置文件（HFP）</td>
      <td>音频网关</td>
      <td>非分离式 v1.7</td>
      <td align="center">✓</td>
      <td align="center">✕</td>
      <td align="center">✕</td>
    </tr>

    <tr>
      <td>客户端</td>
      <td>非分离式 v1.7</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>
    </tr>

    <tr>
      <td>文件传输协议（FTP）</td>
      <td>客户端和服务器</td>
      <td>v1.2</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>
    </tr>

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

<Note>支持蓝牙配置文件并发。</Note>

### 通用访问配置文件

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

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

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

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

GAP 为设备定义并分配以下配置文件角色。

| 配置文件角色           | 描述                                                                                                                                 |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| 中心设备（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 执行以下功能：

* 通过应用配置文件与应用程序交互。

  应用配置文件定义了属性集合以及设备间通信所用属性所需的任何权限。

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

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

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

### 基于 GATT 的人机接口设备配置文件

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

### 高级音频分发配置文件

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

A2DP 支持以下角色。

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

### 免提配置文件

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

HFP 为设备定义并分配以下配置文件角色。

| 配置文件角色 | 描述                                                                                                               |
| ------ | ---------------------------------------------------------------------------------------------------------------- |
| 客户端    | <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 定义了设备用于交换消息对象的特性和过程。它基于客户端-服务器交互模型，由客户端发起事务。消息对象的类型包括电子邮件（Email）和短信服务（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>。
