图 2-2 蓝牙协议栈
2。2。2 蓝牙的应用框架
如果说蓝牙的核心协议为蓝牙操作提供了基础,那么蓝牙的应用框架就是通 过组合不同的核心协议,实现蓝牙设备的“个性化”,即选取不同的核心协议实 现具体功能,并为不同制造商提供通用的用户体验。蓝牙的应用框架包括:通用 访问应用框架(GAP),音频视频分发传输协议(AVDTP),通用音频/视频分 发应用框架(GAVP)等。本文重点研究的 TWS 连接,在应用框架上就是以 GAP 和 GAVDP 为基础的 A2DP 连接,如图 2-3。
图 2-3 基于 GAP 的 A2DP 框架
第三章 A2DP 概述
本章节将简要介绍高级音频分发应用框架(A2DP),包括它的原理、协议 堆等,重点探究 A2DP 连接过程中音频流的状态变化以及传输过程。
3。1 A2DP 简介
蓝牙高级音频分发应用框架(A2DP)是以通用访问应用框架(GAP)和通 用音频视频分发应用框架(GAVDP)为基础,定义了在 ACL 信道上实现单声道 或立体声的高品质音频流分配的协议和过程。所以应该将蓝牙音频与高级音频加 以区分,蓝牙音频表示的是面向连接的同步链路(SCO)信道上的窄带语音分布。 而对于高质量的立体声,蓝牙通常使用 A2DP 来实现音频数据的传输。A2DP 的 一个典型应用就是将音频流从立体声音乐播放器传输到耳机或者扬声器。
由于 A2DP 仅仅定义了点对点的音频传输,所以开发人员将传输的两端音频 设备分别叫做:音频信源(SRC)和音频信宿(SNK)。SRC 用作传送到微微网 中 SNK 端数字音频流的设备来源,SNK 用作微微网中从 SRC 端传送的数字音 频流的接收器,如图 3-1。文献综述
图 3-1 A2DP 数据流示意图
需要注意的是,在 A2DP 的使用中,并不包括远程控制功能。因此,要对音 频进行音量调整、暂停播放等功能,需要借助蓝牙的核心协议实施控制。下面介 绍一下 A2DP 的协议堆。
3。1。1 A2DP 的协议堆
图 3-2 展示了在 A2DP 中使用的协议和实体设备,分析图可知,A2DP 是在 音频视频分发协议(AVDTP)的基础上,为音频数据传输制定的一种规范。 AVDTP 定义传输音频数据时参数的协商,链路的建立,数据的传输,信令交换 的实体形式等等[8]。除此之外,基带(Baseband)、链路管理器协议(LMP)、 逻辑链路与适配协议(L2CAP)以及服务发现协议(SDP)都可以在蓝牙核心协议规范中找到。应用程序层是蓝牙设备定义其应用服务和传输服务参数的实体, 该层还负责将音频流数据适配成 A2DP 规定的分组格式。
由于 A2DP 是高品质音频数据传输的框架,所以它要求在 SRC 端至少要支 持子带编码(SBC)[9],同时在相应的 SNK 端至少支持 SBC 解码。SBC 是一种 低复杂度编码解码方式,它可以在 A2DP 传输下获得较高的音质。但是随着时代 的发展,SBC 编解码方式形成的音质已经不能满足于市场需求了,所以现在大 部分立体声趋向于采用 AAC、aptX 等方式,关于它们的对比下文会提及。
基于安卓的真实无线立体声TWS实现(5):http://www.youerw.com/jisuanji/lunwen_203412.html