基于Android的蓝牙In-band ring功能的实现.docVIP

基于Android的蓝牙In-band ring功能的实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Android的蓝牙In-band ring功能的实现.doc

基于Android的蓝牙In-band ring功能的实现   【摘要】 蓝牙作为一种短距无线数据与语音传输的开放性全球规范,目前在整个世界范围内都得到了很广泛的应用。它可以支持便携式计算机、移动终端以及其他电子设备之间通过建立无线电空中接口相互通信,可以方便地进行数据和语音传输。Android是基于Linux的移动操作系统,目前在终端市场占据了70%的市场份额,应用相当广泛。本文通过研究Android系统以及蓝牙协议栈,在现有架构基础上平台实现了in-band ring功能。   【关键字】 蓝牙 Android in-band ring   一、引言   蓝牙(Bluetooth)技术规范由蓝牙特别兴趣小组(SIG)制订,在使用通用无线传输模块和数据通信协议的基础上,开发交互式服务和应用,多用于便携式通信设备。   整个蓝牙协议体系结构自上而下分为高端应用层、中间协议层和底层硬件模块,结构如图1所示。   蓝牙协议栈最上层为应用层,它对应于各种应用模型的剖面(Profile)。   中间协议层由逻辑链路控制与适配协议、服务发现协议、串口仿真协议和电话控制协议等规范组成。它是蓝牙协议栈的核心部分,主要实现了逻辑链路控制与适配协议实现数据的拆装、服务质量的控制和协议复用等功能,为上层协议的实现提供相应的基础。服务发现协议主要为上层应用程序提供一种发现网络中可用的服务及其特性的特殊机制;串口仿真协议是为运行在不同设备上的两个应用程序建立一条完整的通信路径,并保持两个设备之间有一个通信段;电话控制协议则提供蓝牙设备间话音和数据的呼叫控制指令[1]。   蓝牙射频、基带层和链路管理层构成蓝牙的底层模块。蓝牙射频用于实现数据位流的过滤和无线传输;基带层主要控制跳频和蓝牙数据信息帧的传输;链路管理层则用于建立和拆除链路,以及链接的安全和控制。它们共同为上层软件模块提供相应的访问接口。两个模块之间的数据的传输必须通过蓝牙主机控制器接口(HCI)的解释才能进行[2]。   其中免提协议(HFP) 属于蓝牙应用层profile,其中从上到下的协议栈层次如下图。本文所述的in-band ring功能是基于HFP协议来进行开发的。   二、 Android 蓝牙以及开发平台   2.1 Android 蓝牙   目前基于Linux内核的操作系统广泛采用蓝牙协议栈的Bluez,Android也不例外,但是Android4.2版本以后,谷歌开始采用通信机制更加完善的Bluedroid协议栈,目前高通平台采用的就是该协议栈。   2.2 开发平台和Android系统   本文调试的硬件是采用高通骁龙8X系列平台,该平台内置8核处理器,平台主芯片内封装了WCNSS子系统芯片,WCNSS子系统芯片属于三合一芯片wifi/bt/fm。   WCNSS子系统芯片与AP之间采用高通自定义的总线架构,其中蓝牙音频数据通过PCM接口传输。调试系统是基于Android5.1。   三、In-band ring功能   In-band ring功能定义了如何从AG端播放声音到HF端的协议和信令交互过程。其中AG端是指音频网关,本文指手机端;HF指免提设备,本文指蓝牙耳机或者车载等。声音是指通过发送的sco(面向同步连接)音频数据。目前sco音频广泛采用的是CVSD编码,而音频参数主要有sco和esco两大类,每个大类参数又包含了若干子类参数。音频参数主要由链路管理协议来进行配置。确保AG与HF音频能够能够正常传输。   通过该功能可以在来电时将AG端声音发送到HF端进行播放,在一些特定的场合可以方便地将来电人信息等转化为语音通知用户,可以大大提升用户体验。   3.1信令过程   AG与HF端信令交互主要通过AT指令进行。   首先AG与HF端连接后,HF端会发送AT+BRSF获取AG端支持情况,AG端在收到AT指令后会发送+BRSF携带支持的feature参数,其中in-band ring作为参数特征值会发送至HF端[3]。   当AG端有来电时,会发送+ciev指令,并携带call的参数发送到HF端。然后需要由AG段发起Audio连接,HF端接受连接请求,建立Audio连接后,由AG端发送音频数据,HF端收到音频数据后进行播放。   当HF端发送ATA或者AT+CHUP指令以及AG端CALL进入idle或者active后,AG需要先停止发送该音频流数据,进行对应指令操作[4]。   3.2Android端实现   蓝牙开启后,Bluedroid会进行初始化操作,其中HFP会初始化AG端的服务,对AG支持的功能进行设置,以便HF端进行获取。协议占会调用initializeFeaturesNative设置supp

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档