文档详情

经典蓝牙A2DP介绍.ppt

发布:2016-08-14约2.37千字共14页下载文档
文本预览下载声明
A2DP介绍 基本概念及缩略语 A2DP(Advanced Audio Distribute Profile) 它定义了在ACL信道上进行高质量的音频分发的协议和过程 SBC(Low Complexity Subband Codec ) SBC是为蓝牙AV(Audio/Video)应用设计的音频编、解码方式,可以在中等比特率的情况下获得高质量的音频,并且具有低的计算复杂度 Stream Stream代表两个A/V设备之间流多媒体数据的端到端的逻辑连接 SRC(Source) SRC指的是音频数据流的源端 SNK(Sink) SNK指的是音频数据流的接收端 SEP(Stream End Point) SEP指出了注册SEP的应用端所具有的服务传输能力和AV能 概述 A2DP的实现依赖于GAVDP和GAP,在GAVDP中定义了流连接的建立过程,在A2DP中定义流的参数和编、解码过程。典型的应用可以参照下图 SRC(信源)端编码后通过微微网把音频数据发送到SNK(信宿)端 协议栈 协议栈结构见下图: A2DP的codec类型 A2DP要求SRC和SNK双方必须支持的编码格式为SBC,另外其它格式如MPEG-1,2 Audio, MPEG-2,4 AAC以及ATRAC family为可选编码格式。 如果SRC端以非A2DP Codec格式发送流数据到SNK,而SNK不支持非A2DP Codec格式的话,SRC会重新以SBC方式编码再发送。 高通参考设计支持的文件格式:mp3、wav、mmf、mid、aac 高通参考设计不支持的文件格式: Vocoder-based(EMR, FR, HR, AMR, 13K)格式的数据 高通参考设计中A2DP不关心video中的音频数据 AVDTP音频流的状态变化 AVDTP中定义了6种状态:IDLE、Configured、OPEN、STREAMING、Closing、Aborting。其中, IDLE状态指的是流连接没有建立但L2CAP信道已经打开; Configured状态指SEP的配置完成; OPEN状态指流连接已经建立; STREAMING状态指参数已经配置完毕,进行流的分发。 Closing状态指关闭SEP的状态 Aborting状态指Abort流连接 AVDTP音频流的状态变化 流连接建立和分发的时序 典型的过程 首先,SRC端发现SNK端的SEP(Stream End Point),然后通过SEPID获得SNK的服务能力,包括应用服务能力和传输服务能力。对于A2DP,应用服务能力中包含了CODEC的能力和内容加保护的能力;传输服务能力由AVDTP提供,它是为了更加合理的处理流数据,提高信道吞吐量。然后,根据获得的SEP的信息和服务能力,SRC为双方配置CODEC、内容保护、传输服务等音频流的参数。最后,流连接在L2CAP信道上建立。 具体的过程参见下图 流连接建立和分发的时序 参考设计的过程 高通参考设计音频播放的过程遵循了上图的过程,只是为了管理更加方便把状态划分的更加仔细。BT service层负责连接的建立、SEP发现、SBC等参数的设置等功能,音频的编码通过AVS部分的DSP来处理。发送编码后的音频数据的函数在初始化时就注册到一个CALL BACK中,当有数据编码结束后就会调用相应的函数向远端SNK发送音频流。具体的时序参下图 高通service层接口 * * 限制: 1 不支持同步的点对多点的数据分发 2 由于射频信号的传输、数据流的编、解码等,在SRC和SNK之间有延迟(高通参考设计设置为500ms) 3 音频数据速率必须小于蓝牙连接的比特率 Id Interface Comment 1 bt_cmd_ag_enable() 初始化A2DP SRC端数据(SBC、SEP、Capbilities).注册一些AVDTP中用到的回调函数 2 bt_cmd_pf_a2dp_disable() 注销SEP、AVDTP中的回调函数等 3 bt_cmd_pf_a2dp_set_device() 保存远端设备的地址,播放音频时会自动建立连接 4 bt_cmd_pf_a2dp_connect() 与远端设备建立连接 5 bt_cmd_pf_a2dp_disconnect() 断开与远端设备的连接 6 bt_cmd_pf_a2dp_start() 播放音频数据时由AVS调用 7 bt_cmd_pf_a2dp_suspend() It will suspend streaming to the remote device, se
显示全部
相似文档