基于A2DP框架的近距离无线音频通信研究

[10-10 20:36:41]   来源:http://www.88dzw.com  电子制作   阅读:8590

文章摘要:轻型A2DP框架协议实现这里所提出的A2DP框架协议的实现集中在音频信源端,并未设计信宿端。之所以定义为轻型的,是因为在A2DP规范1.0基础之上,实现了此规范所规定的强制性功能,即在信源端仅仅实现了高级音频分发的基本功能,如立体声音频的传输,只支持低复杂度子带编解码(SBC)标准,而对其他编解码标准并未涉及;在A2DP模块的实现中并未包括任何的编解码能力,这是在用户层上实现的,是上层应用程序在设置阶段,通过配置协商来做相应的编码,解码和音频内容的转换工作;AVDTP模块的功能不包括校验和报告,也不包括媒体多路复用,校验和报告通道的建立。1 协议模块划分A2DP框架协议划分了3个模块:A2DP

基于A2DP框架的近距离无线音频通信研究,标签:电子小制作,http://www.88dzw.com

轻型A2DP框架协议实现
这里所提出的A2DP框架协议的实现集中在音频信源端,并未设计信宿端。之所以定义为轻型的,是因为在A2DP规范1.0基础之上,实现了此规范所规定的强制性功能,即在信源端仅仅实现了高级音频分发的基本功能,如立体声音频的传输,只支持低复杂度子带编解码(SBC)标准,而对其他编解码标准并未涉及;在A2DP模块的实现中并未包括任何的编解码能力,这是在用户层上实现的,是上层应用程序在设置阶段,通过配置协商来做相应的编码,解码和音频内容的转换工作;AVDTP模块的功能不包括校验和报告,也不包括媒体多路复用,校验和报告通道的建立。


1 协议模块划分
A2DP框架协议划分了3个模块:A2DP模块、GAVDP模块和AVDTP模块,另外还包括测试协议栈所需要的Audio应用程序测试模块。对于GAVDP,虽然该功能模块包括音频/视频两种数据流的传输与分发,但是由于这里侧重对音频流进行讨论,所以视频流相关模块(VDP)并未实现。图3是具体实现模块划分图。

www.88dzw.com

图3 A2DP框架具体模块划分


2 消息传递机制
该轻型框架模块协议层之间的交互是通过消息传递机制来实现的,消息的种类可分为以下4种。
①请求消息REQ
该消息是上层协议向下层协议主动发出的请求。
②确认消息CFM
上层协议发出的每个REQ消息,都会收到下层协议发上来的确认。
③指示消息IND
该消息是下层协议向上层协议主动发起的告知。
④响应消息REP
对于每个下层协议主动发上来的IND消息,上层协议都对此消息进行响应。

图4 协议间的消息传递


协议间的消息传递如图4所示。
采用基于消息传递机制的实现方法的优点如下:
①协议层之间交互通过固定的消息接口,即使上下层协议模块升级,也不会影响本层协议模块的功能,有很好的移植性和可复用性。
②各层协议都是异步通信,可以大大降低拥塞情况的发生。
③协议栈进程可以在上层管理一个消息队列,统一进行消息收发,当消息向下传递过程中遭到拒绝时,可以实现消息的重传功能。
④与每层协议都用一个单独的任务来实现相应功能相比,采用消息机制的方法节省了系统调度时间,更具有实时性,同时避免了死锁的发生。
3 重要数据结构
①消息结构体
消息结构体分为3个域:发送模块Id、接收模块Id、消息枚举类型。具体定义如下:
typedef struct
{
 BT_ModuleId sender;
 BT_ModuleId receiver;
 BT_Primitive      primitive;
} BT_Header;
②流端点结构体
流端点SEP存在于应用层中,而应用层又在AVDTP中注册它的SEP,使其他设备可以发现和连接。SEP在3个模块—A2DP、GAVDP、AVDTP中有着不同的结构体类型,以适应本层协议的特殊作用。以A2DP模块为例,其SEP结构体具体定义如下:
typedef struct
{
GAVDP_Handle  streamHandle;
BT_U8     *codecInfoElement;
BT_U8   lengthInfoElements;
AVDT_MediaCodecType     codecType;
ChannelConfig   configuration;
AVDT_ResponseCode    pendingRspCode;
BT_TimerId   resendTimerId;
} StreamEndPoint;
4 各模块主要功能及消息接口
各模块是通过自己的消息函数来接收不同的枚举消息,并转向各自的消息处理函数,下面具体分析每个模块所实现功能。
①A2DP模块
A2DP模块实现了通过GAVDP管理SEP和SEP能力的功能,并且在SRC和SNK之间为音频流文本设置和配置了流通道。根据A2DP模块的通信流程把它的消息接口分为6种类型:流设置消息,它又可分为对等流端点发现和流配置两个步骤;流通道释放消息;开始/挂起流消息;配置/重新配置消息;发现/得到能力消息;媒体流开始消息。

上一页  [1] [2] [3]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作

《基于A2DP框架的近距离无线音频通信研究》相关文章