




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、蓝牙a2dp协议下载篇一:a2dp协议中文精简版 摘要:通过对蓝牙高级音频分发框架(a2dp)协议栈进行系统地分析,提出了一种基于消息机制的协议方案,在无a2dp框架的蓝牙1.1协议栈基础上实现了轻型的a2dp应用框架,并且利用嵌入式蓝牙开发平台,实现了基本的点对点蓝牙立体声音频数据的传输。 关键词:蓝牙;高级音频分发框架;消息机制;立体声音频流 引言 近年来,随着蓝牙技术在电子产品中的日益普及,蓝牙音频设备也层出不穷,其中具有免提功能的蓝牙耳机和蓝牙音频网关的应用是最典型的例子。但免提单元与音频网关进行音频传输建立起来的sco连接,仅能支持64kbps电信级语音质量的音频流,这也就限制了蓝牙
2、音频质量的提高,同时也影响了蓝牙的娱乐消费市场。为了满足人们对高质量音频的需求,进一步扩大蓝牙产品市场,蓝牙特殊兴趣小组sig组织,在蓝牙1.1规范的应用框架基础上又单独提出了高级音频分发框架(advanced audio distribution profile, a2dp)。该框架利用了在l2cap层建立起来的acl异步无连接链路来传输高质量的单声道或者立体声音频数据,有效负载的传输速率可以达到300kbps400kbps。 1 a2dp框架概述 在娱乐消费市场中,a2dp实例化应用就是用音乐播放器把音频数据通过acl连接发送到耳机或者音箱上。目前的框架规范中,并不支持同步的一点对多点的广
3、播式音频分发,而对于点对点音频的分发,又存在着两种不同的角色,一个是信源设备(src),这种设备作为发起者将数字音频流发送到piconet网中;另一个是信宿设备,是接收信源发出的音频流的设备。如果蓝牙音乐播放器是信源设备,那么与之交互的蓝牙耳机就是信宿设备,信源和信宿的区别就在于它是发起者还是接收者。 下面对该框架所涉及的具体协议和其依赖框架进行分析。 1.1 a2dp应用框架 在典型的蓝牙音频相关框架的整体结构中,a2dp框架所处的位置如图1所示: 图1 蓝牙音频框架整体结构 服务发现应用框架(sdap)所提供的功能是向其他蓝牙设备提供自身所具备的服务,并且能够使用远程设备所提供的服务和功能
4、。在实际应用中,几乎所有框架都支持服务发现协议(sdp)。蓝牙音频视频遥控应用框架(avrcp)实现了蓝牙设备之间的遥控功能,例如音乐播放器的前进,后退,停止,播放等控制信令的传输。免提功能头戴式设备应用框架(hfp/hsp),最主要的应用就是实现了蓝牙耳机的免提功能和某些蓝牙设备的音频网关功能。 高级音频分发框架(a2dp)依赖于通用音频视频分发框架(gavdp),gavdp定义了设置音频和视频流传输的步骤,而a2dp则进一步定义了音频流传输的参数和步骤细节。 在实际应用中,逻辑链路控制适配层协议(l2cap)要求比较高的可靠性,基带的广播数据分组将被禁止使用,因此,l2cap层并不支持可靠
5、的多点传输信道,这也就是a2dp框架不支持多点广播式音频分发的主要原因之一。而对于面向高层协议的开发和应用者来说,l2cap层协议是透明的,因此笔者对a2dp轻型框架具体实现的相关描述,也仅限于l2cap层以上,与a2dp相关的协议及框架如avdtp,gavdp等协议模块的设计。 图中的蓝牙主机控制接口hci层,是协议栈中软硬件的接口。本文所涉及的硬件环境是主机与主机控制器连接模型,hci层以上的协议(如sdp)在主机上运行,而以下的协议(如传输层的蓝牙基带协议等)由蓝牙主机控制器硬件来完成,这样既保证了底层协议传输的稳定性,又支持了上层应用协议的可扩展性。一旦在市场条件成熟,蓝牙技术的硬件部
6、分就可以被更快的硬件射频技术如uwb技术所取代,高层传输协议经过移植仍然可以沿袭使用,大大缩短了蓝牙产品的研发周期。 1.2 a2dp框架协议栈 a2dp是音频传输框架,它通过蓝牙传输层和对等设备,把音频数据流从音频信源(src)到音频信宿(snk)进行分发,因此该框架所包含的协议栈也分为两个部分,具体表现如图2所示: 图2 a2dp框架 基带协议baseband protocol,链路管理协议lmp,逻辑链路控制协议l2cap和服务发现协议sdp,在蓝牙核心协议规范中都有定义。而蓝牙音频视频分发传输协议avdtp则定义了蓝牙设备之间数据流句柄的参数协商,建立和传输过程以及相互交换的信令实体形
7、式,该协议是a2dp框架的基础协议。 2 轻型a2dp框架协议实现 笔者所提出的a2dp框架协议的实现集中在音频信源端,并未设计信宿端。之所以定义为轻型的,是因为在a2dp规范1.0基础之上,实现了此规范所规定的强制性功能,即在信源端仅仅实现了高级音频分发的基本功能,如立体声音频的传输,只支持低复杂度子带编解码(sbc)标准,而对其他编解码标准并未涉及;在a2dp模块的实现中并未包括任何的编解码能力,这是在用户层上实现的,是上层应用程序在设置阶段,通过配置协商来做相应的编码,解码和音频内容的转换工作;avdtp模块的功能不包括校验和报告,也不包括媒体多路复用,校验和报告通道的建立。 2.1 协
8、议模块划分 a2dp框架协议划分了三个模块:a2dp模块,gavdp模块,avdtp模块,另外还包括测试协议栈所需要的audio应用程序测试模块。对于gavdp,虽然该功能模块包括音频/视频两种数据流的传输与分发,但是由于笔者侧重对音频流的讨论,所以视频流相关模块(vdp)并未实现。图3是具体实现模块划分图: 图3 具体模块划分 2.2 消息传递机制 该轻型框架模块协议层之间的交互是通过消息传递机制来实现的。消息的种类可分为四种: (1)请求消息req,该消息是上层协议向下层协议主动发出的请求;(2)确认消息cfm,上层协议发出的每个req消息,都会收到下层协议发上来的确认;(3)指示消息in
9、d,该消息是下层协议向上层协议主动发起的告知;(4)响应消息rep,对于每个下层协议主动发上来的ind消息,上层协议都对此消息进行响应。如图4所示: 图4 协议间消息传递 采用基于消息传递机制的实现方法优点在于: 1)协议层之间交互通过固定的消息接口,即使上下层协议模块升级,也不会影响本层协议模块的功能,有很好的移植性和可复用性; 2)各层协议都是异步通信,可以大大降低拥塞情况的发生; 3)协议栈进程可以在上层管理一个消息队列,统一进行消息收发,当消息向下传递过程中遭到拒绝时,可以实现消息的重传功能。 4)与每层协议都用一个单独的任务来实现相应功能相比,采用消息机制的方法节省了系统调度时间,更
10、具有实时性,同时避免了死锁的发生。 2.3 重要数据结构2.3.1消息结构体 消息结构体分为三个域:发送模块id、接收模块id、消息枚举类型,具体定义如下: typedef struct bt_moduleid sender; bt_moduleid receiver; bt_primitive primitive; bt_header 2.3.2流端点结构体 流端点sep存在于应用层中,而应用层又在avdtp中注册它的sep,使其他设备可以发现和连接。sep在三个模块a2dp, gavdp, avdtp中有着不同的结构体类型,以适应本层协议的特殊作用,以a2dp模块为例,其sep结构体具体定
11、义如下: typedef struct gavdp_handle streamhandle; bt_u8 *codecinfoelement; bt_u8 lengthinfoelements; avdt_mediacodectype codectype; channelconfig configuration; avdt_responsecode pendingrspcode; bt_timerid resendtimerid; streamendpoint 2.4 各模块主要功能及消息接口 各模块是通过自己的handlemsg()函数来接收不同的枚举消息,并转向各自的消息处理函数的,下面具
12、体分析每个模块所实现功能。 2.4.1 a2dp模块 该模块实现了通过gavdp管理sep和sep能力的功能,并且在src和snk之间为音频流文本设置和配置了流通道。根据a2dp模块的通信流程把它的消息接口分为以下六种类型:(1)流设置消息,它又可分为对等流端点发现和流配置两个步骤;(2)流通道释放消息; (3)开始/挂起流消息;(4)配置/重新配置消息;(5)发现/得到能力消息;(6)媒体流开始消息。 2.4.2 gavdp模块 该模块从多个使用者角度出发,管理本地流sep和sep能力的注册,处理从远程设备发来的发现查询请求和得到能力请求,同时基于用户注册的sep信息,自动发送响应。 由于该
13、模块的功能是上层a2dp模块的细化,因此在设计中把它的消息接口和a2dp模块的接口类型做了一致性设计,两者消息接口类型基本相同。 2.4.3 avdtp模块 该模块负责建立一个到远程蓝牙设备的avdtp信令通道,并借助于avdtp协议发送所有的信令命令,同时为媒体流建立传输通道,必要的话为校验和报告也建立通道。另外还支持信令和媒体消息的分段。 该模块数据通信最基本的流程为:sep发现 获取snk能力 数据流配置 数据流建立 数据流开始 数据流挂起 数据流重新配置 数据流释放。 相应的sep在avdtp模块中的状态机如图5所示: 图5 sep状态机整个通信过程各个状态之间的跃迁靠下列消息来触发:
14、 a: avdt_set_configuration_req b: avdt_open_req c: avdt_start_req d: avdt_suspend_req e: avdt_close_req f: avdt_abort_req g: avdt_reconfigure_req h: avdt_media_req 在空闲状态下,发送a消息之前,空闲状态下要发出一系列动作,包括连接请求,发现请求,获取snk能力请求等。从空闲态到配置态的跃迁过程,本协议栈统称为流设置过程。 在打开状态下发送c消息之后,就进入了流控状态,此时通过h消息就可以发送从src到snk的媒体流数据包。 在通信过
15、程中的任何状态下,都可以通过发送f消息,进入中止态,进而回到没有连接任何远程sep的空闲状态。 3 硬件平台及测试 该轻型协议栈的实现与测试,是基于csr先进的bluecore4蓝牙芯片来完成的。该芯片支持蓝牙2.0+edr规范,并提供2.1mbps的数据传输速率,比标准蓝牙快三倍,可以实现更快速的连接,同步支持多个蓝牙链路,以及音频流等更宽带宽的新兴应用。最上层的音频应用程序实现了一个简单的具有处理sbc格式编解码信息的播放器,该应用程序和部分高层协议栈通过交叉编译,下载到硬件平台主机端。而播放器程序是通过调用本协议栈提供的api,进行音频数据流分发。 对于音频数据的接收端snk,我们采用摩
16、托罗拉ht820立体声耳机进行测试,在长时间播放音频数据的情况下,仍然会存在音频停顿的现象。使用一种截获空中蓝牙信号并进行协议分析的工具airsniffer,抓取流媒体传输数据包,经分析,音频数据并未丢失,而是流控机制存在问题,需要进一步完善。 4 结束语 笔者在蓝牙1.1协议规范的核心协议和应用框架的基础上,设计并实现了轻型a2dp框架,提出了一种基于消息传递机制的协议方案,并通过实际测试,已完成高级音频传输的基本功能。但是该协议仍然有很多不完善的地方,如通信状态反复切换的系统稳定性,消息重传机制,安全控制等方面都需要进一步改进。篇二:常用蓝牙协议介绍 蓝牙协议hfp,hsp,a2dp,av
17、rcp,opp,pbap hfp hfp(hands-free profile),让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。 hsp hsp 描述了 bluetooth 耳机如何与计算机或其它 bluetooth 设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。 这是最常用的配置,为当前流行支持蓝牙耳机与移动电话使用。 它依赖于在64千比特编码的音频/ s的cvsd的或pcm以及at命令从gsm 07.07的一个子集,包括环的能力最小的控制,接听来电,挂断以及音量调整。 典型的使用情景是使用无线耳机与手机进行
18、连接。 可能会使用hsp的若干设备类型:耳机、手机、pda 、个人电脑、手提电脑。 a2dp a2dp全名是advanced audio distribution profile 蓝牙音频传输模型协定! a2dp是能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有a2dp的耳机就是蓝牙立体声耳机。声音能达到44.1khz,一般的耳机只能达到8khz。如果手机支持蓝牙,只要装载a2dp协议,就能使用a2dp耳机了。还有消费者看到技术参数提到蓝牙v1.0 v1.1 v1.2 v2.0这些是指蓝牙的技术版本,是指通过蓝牙传输的速度,他们是否支持a2dp具体要看蓝牙产品制造商是否使用这个技术 av
19、rcp avrcp(audio/video remote control profile),也就是音频/视频远程控制规范。 avrcp 设计用于提供控制tv、hi-fi设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接入的a/v设备。它可以与 a2dp 或 vdp 配合使用。 avrcp 定义了如何控制流媒体的特征。包括暂停、停止、启动重放、音量控制及其它类型的远程控制操作。avrcp 定义了两个角色,即控制器和目标设备。控制器通常为远程控制设备,而目标设备为特征可以更改的设备。在 avrcp 中,控制器将检测到的用户操作翻译为 a/v 控制信号,然后再将其传
20、输至远程 bluetooth 设备。对于“随身听”类型的媒体播放器,控制设备可以是允许跳过音轨的耳机,而目标设备则是实际的播放器。常规红外遥控器的可用功能可以在此协议中实现。 avrcp 协议规定了av/c 数字接口命令集(av/c 命令集,由1394 行业协会定义)的应用范围,实现了简化实施和易操作性。此协议为控制消息采用了av/c 设备模式和命令格式,这些消息可以通过音频/视频控制传输协议 (avctp) 传输。 opp 蓝牙通信程序部分需采用用于设备之间传输数据对象opp profile: object push profile由于opp profile又细分为oppc (client)
21、端和opps(server)端profile,这两个profile区别在于只有client端可以发起数据传输的过程,但是附件设备与手机通信的情景中,既有手机发起数据传输请求也有设备侧发起传输请求的需要,所以要在设备中实现oppc和opps两个profile。 pbap 电话号码簿访问协议(phonebook access profile)篇三:蓝牙profile协议概览 高级音频分发配置文件 (a2dp) a2dp描述了立体声音频如何从媒体输出(source)传输至输入(sink)。 使用情景 简单说来,这是一个蓝牙音乐播放器(如mp3播放器、随身听、立体声等)音频输出是音乐播放器,而音频输入
22、是无线耳机或无线立体声音响。 产品范例 以下是使用a2dp配置文件的部分设备类型: 技术知识 此配置文件定义了音频设备的两个角色:输出和输入。 a2dp定义了在acl信道实现高品质音频内容的单声道或立体声分发协议和程序。因此,“高级音频”与“蓝 牙音频”应该区别开来,后者是指根据基带规格定义的sco信道中分发窄幅波段的语音。 此配置文件建立在gavdp基础上。它包括对复杂程度低的次频宽编解码技术(sbc)的必备支持和对mpeg-1,2音频、 mpeg-2,4 aac和自适应声学转换编码技术(atrac)的可选支持。 音频数据按适当的格式进行压缩后能在有限频宽中正常使用。环绕声的分发不在此配置文
23、件的范围。基带、lmp、l2cap和sdp是蓝牙核心规格中定义的蓝牙协议。avdtp包括一个用于沟通串流参数的信令实体以及一个处理串流的传输实体(请参阅“配置文件协议栈:配置文件模式”)。 应用层是设备定义应用服务和传输服务参数的实体。它可以将音频流数据改编成指定的数据包格式,反之亦可。 a/v远程控制配置文件 (avrcp) avrcp可以提供标准接口以控制 tv、hi-fi设备或其它设备,从而允许通过一个遥控器(或其它设备)来控制用户可以接入的所有 a/v 设备。它可以与a2dp或vdp配合使用。 使用情景 基本上你掌控了全部控制。你可以调整通用的菜单功能,例如调整电视的亮度或色调或者调整录 像机的时间,此外,你还可以控制声音大小、播放、暂停、跳过等音频功能。 产品范例 以下例子说明了可能会使用avrcp配置文件的若干设备类型: 控制器设备 目标设备 技术知识avrcp定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025黑龙江绥化市明水县人民医院招聘中医医生模拟试卷附答案详解
- 2025第五师医院招聘劳务派遣人员(2人)考前自测高频考点模拟试题及完整答案详解
- 红棋专业考试题目及答案
- 菏泽医保考试题库及答案
- 煤矿安全生产智能化-洞察与解读
- 2025国考四川铁路公安局申论公文写作模拟题及答案
- 2025国考北京市金融监管岗位申论预测卷及答案
- 2025国考朝阳市知识产权保护岗位行测题库含答案
- 2025国考阜新市安全生产岗位申论预测卷及答案
- 2025国考上海市出入境管理岗位申论高频考点及答案
- 小学数学教师写教学论文
- 2025年四川政治理论水平试题及答案
- 2025考研政治真题试卷与参考答案
- 工伤预防培训试题(附答案)
- 过渡金属催化机理-洞察及研究
- 军事电子信息技术
- 城镇排水管道检测与评估技术规程
- 药品储存与养护技术
- GB/T 18445-2025水泥基渗透结晶型防水材料
- 成都工勤转管理办法
- 基于深度学习的心电图诊断心律失常的研究
评论
0/150
提交评论