Bluetooth Profile Specification之1.0 A2DP初识

简介: Bluetooth Profile Specification之1.0 A2DP初识

image.png

1.A2DP是什么?


The Advanced Audio Distribution Profile.        


高级音频分发配置文件(A2DP)定义了在ACL频道上实现在单声道或立体声道中分发高质量音频内容的协议和程序。


A2DP你需要知道,它不支持远程控制功能。


但是设备可以通过实现A2DP和控制配置文件来支持远程控制的功能。举个例子,在音视频远程控制协议的使用场景中。(AVRCP)


2.A2DP协议独立性

image.png

如上图所示,A2DP依赖于通用访问配置文件(GAP),以及通用音频/视频分发配置文件(GAVDP),它定义了建立音频/视频流所需的程序。A2DP定义了特定于音频流的参数和过程。GAP和GAVDP中定义的术语、用户界面和过程适用于本配置文件,除非另有明确说明。


3.一图看清A2DP协议

image.png


AVDTP由一个用于进行流参数协商的信令实体和一个处理流本身的传输实体组成


上图所示的应用程序层是设备定义应用程序服务和传输服务参数的实体。该实体还将音频流数据调整为所定义的数据包格式,反之亦然。


4.SINK和SOURCE

源(SRC)——当一个设备作为一个数字音频流的源,并被传送到微型卫星的SNK时,它就是SRC。


接收器(SNK)——一种设备是一种SNK,当它作为从SRC传输的数字音频流的接收器时。

image.png


工作场景


设置/控制/操作从SRC到SNK的音频数据流。


A2DP不能工作在下面的情况:


1.该配置文件不支持同步的点对多点分布。


2.由于无线电信号处理、数据缓冲和流数据的编码/解码,SRC和SNK之间存在一定的延迟。抵消这种延误的影响取决于执行情况。


5.A2DP协议传输的安全性

内容保护是在应用程序级提供,而不是蓝牙链路级安全协议的功能。


6.A2DP应用层

配置文件的功能要求:


image.png


6.1 音频流设置

为什么必须要知道AVDTP的版本?


如果该远程设备的AVDTP版本未知,则该设备应执行SDP查询,以获取该远程设备上的AVDTP版本。这应在执行GAVDP_ConnectionEstablishment程序之前进行。这是必需的,因为音频流设置过程中的某些命令依赖于AVDTP版本。


当设备希望开始音频内容流时,设备首先需要设置流媒体联系信号程序和典型信号。在该设置过程中,设备选择最合适的音频流参数。配置了两种服务;一个是应用服务另一个是运输服务能力。这配置文件指定这些信令过程所需的音频特定参数。


6.2 音频流设置

本节包含一个在AVDTP中定义的针对音频流设置的典型信令过程的示例。。在本例中,假设SRC为INT,而SNK为ACP。


SRC和SNK初始化状态为IDLE.


SRC启动流端点(SEP)发现过程。此过程用于返回每个流端点的媒体类型和SEID。SRC查找音频类型流端点。


启动获取所有功能程序,以收集SNK的服务功能。服务能力有两种,一种是应用程序服务能力,另一种是运输服务能力。A2DP的应用服务能力包括音频编解码器能力和内容保护能力。


根据收集到的SEP信息和服务能力,SRC为SNK和SRC本身确定了最合适的音频流参数(编解码器、内容保护和传输服务)。然后,SRC请求SNK通过使用流配置过程来配置SNK的音频参数。SRC还可以配置了自己的音频参数。


然后,按照流建立程序中的定义,建立L2CAP通道。最后,将两个设备的状态设置为<OPEN>。

image.png



6.3 音频流

一旦建立了流连接并执行了GAVDP中的开始流过程,SRC和SNK都处于流状态,其中SRC(SNK)准备发送(接收)音频流。SRC使用发送音频流过程将音频数据发送到SNK,而SNK又使用接收音频流过程来接收音频数据。这些过程的方框图和已创建的数据包格式如图3.1所示。


再次注意,设备应处于流媒体状态,以发送/接收音频流。如果SRC/SNK希望发送/接收音频流,而该状态仍处于打开状态,则SRC/SNK应启动GAVDP中定义的开始流媒体程序。


6.3.1 发送音频流

在发送音频流程序中,如果需要,SRC应将数据编码为信令会话。然后,SRC的应用层应将编码数据调整到定义的媒体负载格式。


当使用内容保护时,内容保护标头可能先于加密的音频内容。这是依赖于内容保护的方法的。


然后,流数据通过AVDTP公开接口(接口4)传递给AVDTP实体。流数据应使用AVDTP选定传输服务在传输通道上发送。


6.3.2 接收音频流

SNK的AVDTP实体应使用所选的传输服务从传输通道接收流数据,并通过AVDTP公开接口传递到应用层。


当内容保护方法激活时,SNK的应用层应按照内容保护方法所述,处理检索到的AVDTP有效负载。通常,此处理需要内容保护头分析和解密相关的加密内容。


如果适用,音频数据的帧应根据所选择的编码格式进行解码。


image.png

音频流媒体程序的方框图和数据包格式


SRC通过用户发起的操作或内部事件启动启动流化过程。两种设备的状态均从<OPEN>改为<流媒体>。在此过程完成后,将开始播放音频流。


image.png

目录
相关文章
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2560 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
编解码 安全 Android开发
低功耗蓝牙LE Audio Profile 详细介绍
2019年底,蓝牙官方组织SIG发布了蓝牙5.2版本的核心协议,其中增加了一个重要的特性---LE Audio。蓝牙的应用协议都是从应用层到物理层完整包含的协议,LE Audio也不例外。但蓝牙5.2核心协议仅仅定义了蓝牙LE的链路层传输Audio的方式,上层协议以及完整的LE Audio规范迟迟未出,近日,蓝牙官方组织释放了LE Audio较为完整的规范文档。
低功耗蓝牙LE Audio Profile 详细介绍
|
数据可视化 数据挖掘
SmartPLS 4.0
SmartPLS 4.0
1554 3
|
编解码
【经典蓝牙】蓝牙AVRCP协议分析
蓝牙AVRCP协议是蓝牙设备之间音视频的控制协议。定义了音频/视频的控制、浏览、查询、通知等一系列的命令集。常用来蓝牙耳机对手机的音乐进行控制,以及获取手机的音乐信息等场景。AVRCP协议有两个角色,分别是controller(CT)和 target(TG)。CT: 发送控制命令到对端,控制对端媒体播放器的设备,例如蓝牙耳机,蓝牙遥控器等。TG:接收对端的控制命令,并执行操作,进行回复的设备,例如手机,电脑等。
4104 0
【经典蓝牙】蓝牙AVRCP协议分析
|
Go 内存技术
【Jlink】JLink Commander调试方法
上面的信息连可以看到当前运行的PC指针,再可以结合生成的map文件,就可以看到当前运行的函数。例如上面运行的PC指针为0x01000E72,下图是固件的map文件,查看map文件对应地址的函数为SEGGER_RTT_Write。用来读取内存的数据,参数为内存的地址和读取的长度。也可以直接用mem命令按照8位来读取。常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )用来写入对应的内存地址,参数为内存的地址和写入的数据。
2946 45
【Jlink】JLink Commander调试方法
|
安全 芯片
bluez5.50+pulseaudio实现蓝牙音响音频播放
bluez5.50+pulseaudio实现蓝牙音响音频播放
1285 0
bluez5.50+pulseaudio实现蓝牙音响音频播放
|
编解码 算法 数据格式
【经典蓝牙】蓝牙 A2DP协议分析
A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议, 用于传输单声道, 双声道音乐(一般在 A2DP 中用于 stereo 双声道) , 典型应用为蓝牙耳机。         A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。
3356 0
【经典蓝牙】蓝牙 A2DP协议分析
|
算法 安全 物联网
一种更优雅的蓝牙配对技术 - Cross-transport key derivation (CTKD)
蓝牙CTKD是蓝牙4.2版本引入的一种交叉传输密钥派生的安全机制,全称 Cross-transport key derivation,主要用在蓝牙双模设备上,它可以跨越BLE和BT的边界,通过将BLE配对生成的LTK转化成BT配对的LinkKey,从而直接实现BT的配对,当然也可以通过BT配对生成的LinnkKey转化成BLE的LTK来实现BLE的配对,目前我们主要研究和使用前者。通过CTKD可以通过一次配对将BT和BLE两个链路都配对上,从而提升蓝牙双模设备的配对体验。
1765 0
一种更优雅的蓝牙配对技术 -  Cross-transport key derivation (CTKD)
|
传感器 物联网 数据安全/隐私保护
蓝牙5.2新特性 Enhance ATT
了解Enhance ATT之前先回顾一下BLE的ATT,BLE两个设备连接之后,GATT的client端如何知道server端支持了哪些profile、服务,这个就需要ATT, ATT层提供了标准机制、协议、帧格式,用来发现读、读取、写入对端设备的属性,ATT有client 和serve两个角色。在ATT的下层是L2CAP,位于hci的上层,L2CAP提供了多路通道的复用,ATT层、SM层的数据都需要经过L2CAP层,L2CAP层通过标志位来区分不同的协议层的数据包。
493 0
蓝牙5.2新特性 Enhance ATT
|
编解码 语音技术
【经典蓝牙】 蓝牙HFP层协议分析
HFP(Hands-Free Profile), 是蓝牙免提协议, 可以让蓝牙设备对对端蓝牙设备的通话进行控制,例如蓝牙耳机控制手机通话的接听、 挂断、 拒接、 语音拨号等。HFP中蓝牙两端的数据交互是通过定义好的AT指令来通讯的
3593 0
【经典蓝牙】 蓝牙HFP层协议分析