Android 9.0 蓝牙协议总结

一、蓝牙免提协议 HFP
HFP(Hands-Free Profile),通俗点翻译就是免提协议,说白了就是蓝牙电话协议,可以让蓝牙设备通过协议定义好的 AT command 控制电话,如接听、挂断、拒接、语音拨号等。每个功能都有特定的 AT command 和 response.。
1、HFP 协议在整个蓝牙中的架构图如下:
在这里插入图片描述
我们通常叫做 AG,HF,举一个最简单的例子,我们平时用的手机中的 HFP 的角色就是 AG,我们平时用的蓝牙耳机中的 HFP 角色就是 HF。
二、蓝牙音乐控制协议(AVRCP)
AVRCP(Audio/Video Remote Control Profile)定义了蓝牙设备和 audio/video 控制功能通信的特点和过程,另用于远程控制音视频设备,底层传输基于 AVCTP 传输协议。该 Profile 定义了AV/C 数字命令控制集。命令和信息通过 AVCTP(Audio/Video Control Transport Protocol)协议进行传输。浏览功能通过 AVCTP 的第二个 channel 而不是 AV/C。传输媒体信息通过基于 OBEX协议的 BIP(Bluetooth Basic Imaging Profile)协议。架构如下:
在这里插入图片描述

协议栈的位置是:
在这里插入图片描述

应用场景:
1、车载娱乐系统
在这里插入图片描述

从图中可以看出,手机端把音频数据传递给汽车这边,并且在车载这边也可以通过AVRCP命令来控制手机端这边的音乐,其中包含上一首、下一首、暂停播放等操作
2、单独充当 AVRCP controller 的设备
在这里插入图片描述

其中遥控器只是发送 Category 1 的 command 的指令来控制播放器,然后播放器把音乐发送
给耳机
3、两个设备之间的远程控制以及 Audio 流
在这里插入图片描述

也就是把控制跟接受音频放在了同一个设备上,其中 Headphone 只发送 Category 1 的指令来控制
4、每个设备都充当 AVRCP 双角色的设备
在这里插入图片描述

以上两个设备都是 AVRCP 双角色(controller,target)耳机通过 Category 1 的指令充当控制播
放暂停等(此时 Headphone 就是 AVRCP controller,Disc Player 是 AVRCP target),Disc Player 通
过 Category 2 来控制音量(此时 Disc Player 是 AVRCP controller,此时 Headphone 就是 AVRCP
target)
5、全功能显示的车载系统
在这里插入图片描述

车机通过 Category 1 来进行常规的 play/pause/browing 功能,还可以通过 Cover Art 来下载专
辑图片等功能。
三、蓝牙电话本协议(PBAP)
电话本访问协议 Phone Book Access Profile (PBAP)用于访问电话本对象(Vcard),是基于客户端/服务器的模型,一般用于 client 从 server 下载电话本。这个协议为为 HFP/SIM 协议设计。下面我们来介绍下 PBAP 的协议栈架构
四、蓝牙音乐协议(A2DP)
A2DP(Advanced Audio Distribution Profile)是蓝牙高音质音频传输协议,用于传输单声道,双声道音乐(一般在 A2DP 中用于 stereo 双声道),典型应用为蓝牙耳机。。A2DP 不包括远程控制的功能,远程控制的功能参考协议 AVRCP。整个架构如下:
在这里插入图片描述

协议栈的位置见红框:
在这里插入图片描述

A2DP 是基于 AVDTP 协议。
A2DP应用场景
在这里插入图片描述

A2DP 的角色分为 Source(SRC)跟 SINK(SNK)
Source (SRC) – A device is the SRC whenit acts as a source of a digital audio stream that isdelivered to the SNK of the piconet.
Sink (SNK) – A device is the SNK when it acts as a sink of a digital audio stream delivered fromthe SRC on the same piconet.
上面解释的也很清楚,说点白话点,就是谁发送音频数据谁就是 Source,谁接收音频数据谁就是 Sink,举一个例子:假设手机连接蓝牙耳机播放音乐,那么手机就是做 A2DP source 角色,蓝牙耳机就是做 A2DP sink 角色。
音频数据传递流程
在这里插入图片描述

总结下 Audio 从 source 发送到 sink的流程
在这里插入图片描述

我们来大体总结下整个流程:
1)A2DP source 的发送流程
UL 收集到 PCM 数据,然后发送到 A2DP,A2DP 经过 codec PCM lib(SBC,MPEG-1,2 AudioMPEG-2,4 AACATRAC family 或者自定义 encoder pcm lib)压缩成特定的音频格式,然后交给 AVDTP,AVDTP 转交给 L2CAP,L2CAP 通过 ACL 格式转交给 HCI,然后到达 BT chip,通过 RF 射频出去。
2)A2DP sink 的接收流程
BT chip 通过 RF 接收进来数据,然后通过 ACL 交给 HCI,然后交给 L2CAP,L2CAP 交给 AVDTP,
AVDTP 交 给 A2DP , A2DP 收 到 的 是 remote 经 过 压 缩 的 数 据 , 此 时 通 过 codec pcm
lib(SBC,MPEG-1,2 AudioMPEG-2, 4 AACATRAC family或者自定义encoder pcm lib)解压成PCM 数
据,然后交于声卡播放

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值