蓝牙音频的传送机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在蓝牙应用框架中,系统采用数据传输量为723.2kbps 的ACL 链路来传输语
音数据,在蓝牙的高级音频规范中定义了在ACL 链路上实现高质量单声道或者多
声道立体声传输的交互过程和音频编解码,为此在蓝牙点到点的传输系统中,采
用A2DP 传输规范进行蓝牙立体声音频的传输。在A2DP 中定义了两个角色:信源
(Source ,SRC )和信宿(Sink,SNK ).信源是蓝牙匹克网中将音频流向外发送端
的设备,如手机,MP3等:信宿是指蓝牙匹克网中接收音频流的设备,如耳机等。
蓝牙A2DP 协议模型如下图所示:
A2DP 协议模型
在该协议中,Baseband 、L2CAP 、LMP 、SDP 是蓝牙核心协议,蓝牙音频传输
协议AVDTP(Audio/Vdeo,Distribution Transport Protocol)是上层应用协议,
定义了蓝牙音频传输交互过程,A2DP 的实现是在上层应用程序里实现的。AVDTP
定义了音频流的三处协商,连接建立和传输过程,同时还规定了设备之间交换消
息的格式。AVDP 协议用下层的L2CAP 层提供的服务,完成自己的功能后为上层
提供相应的服务,其内部可以按照功能分成不同的模块,主要有数据流管理器、
数据恢复模块、适配层和信令实体四个部分,AVDPT 各部分的功能如下:
数据流管理器:提供数据帧的生成、时间戳的管理、媒体包序列编号、数据流的
传输、向对等层和上层报告包丢失和抖动计算等功能。
数据恢复模块:在L2CAP 层恢复丢失的数据分组,提供没有前向纠错编码的恢复
分组和有前向纠错编码的恢复分组。
适配层:提供使用鲁棒包头压缩方案压缩包头功能和在一个传输信道上实现多个
传输会话的复用的功能。
信令:主要完成服务发现、数据流参数协商、建立和拆除等相关的信令过程。
在AVDTP 中采用L2CAP 信道进行媒体流传输,L2CAP 是基带上层协议,为
上层提供协议复用的功能,L2CAP 使用L2CAP 请求连接(Connection Request)命
令中的PSM(Protocol Service Mulitiplexor)字段来实现协议复用,AVDTP 协议
的PSM 字段为0x0019。此外,AVDTP 可以实现不同的传输服务,包括基本服务、
恢复服务、报告服务、适应服务和传输及信令信道建立:
下面介绍一下流传输的交互过程,设备之间要进行流传输,首先要建立流连接,
在AVDTP 中定义了流端点SEP(Stream End Point)的概念,流端点是一个抽象的
概念,它包含了设备的应用能力和可用的资源,应用程序在AVDTP 中注册自己的
SEPs 以使其它设备可以发现它们并建立连接。SEID(Stream End .Point
Identifier)表示一个特定流的设备间引用,在应用层进行分配,用于对等AVDTP
实体的信号传输。下图表示了一个音频流端点SEP从连接建立到释多个流端点的过程。
首先INT端发起一个Stream End Point Discovery请求,该过程返回一个流端点或多个流端点的类型和SEID。根据上一个过程发现的SEID,INT(Initiator)端通过发起Get Capabilities请求查询远程SEP的服务能力,服务能力包括媒体传输能力、报告能力、恢复能力、内容保护能力、头压缩能力、复用能力以及媒体编解码能力。然后INT根据本地和远程的SEID通过Stream Configure过程来配置ACP(Acceptor)端SEP。配置完毕后,INT端发起Stream Start请求建立流连接,该过程完成后流连接建立即町以进行音频流传输。在传输过程中,任何一端发起Stream Suspend请求,流传输则挂起,要想重新进行流传输,需要发起StreamReconfigure过程。当流传输结束时,任何一方发起Stream Release 请求,则流端点关闭,连接释放。