广告区域

广告区域

传奇知识网 - 一个你身边的百科全书

hfp怎么连接(车载蓝牙hfp连接的方法)

2023-05-20 12:44:56投稿人 : yq4qlskj围观 : 63 次0 评论

什么是HFP协议?

HFP协议说,蓝牙电话顾名思义就是利用蓝牙技术实现电话拨号的相关功能,具体应用于车载蓝牙、蓝牙音箱、蓝牙手环、蓝牙耳机等设备上我做过蓝牙音箱,所以这个主蓝牙音箱从第一视角解释蓝牙通话的相关内容。

免提模式缩写为HFP,蓝牙免提协议确保免提设备控制电话相关操作。这里的人脸设备是指相关的蓝牙设备(如蓝牙音箱、车载蓝牙)。详细说明请参考协议文件。

配置和角色

在HFP有两种角色:

为此配置文件定义了以下角色:

音频网关(AG)–这是作为音频网关的设备,用于输入和输出。充当音频网关的典型设备是蜂窝电话。

免提单元(HF)–这是充当音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段

上述角色定义来自《HFP议定书》文件。如果不明白那没关系,举个例子就好。以蓝牙音箱(耳机)为例。蓝牙音箱连接手机,所以手机的作用是AG,音箱(耳机)的作用是HF。

HFP协议连接

然后通过下图分析HF侧和AG侧如何连接和通信。

具体连接过程如下:

手机的音频连接在AG端和HF端都可以发起,连接过程中的消息交互和进程应答都是一样的。本文没有特别声明。第一个视角是分析蓝牙音箱高频侧的起点。上图中SLC(服务级连接)的建立代表了HFP连接的成功。

接下来,如果我接到HFP的电话,我会带你去上述过程中所涉及的消息。

ACL链路建立

这个包意味着控制器向协议栈发送蓝牙ACL连接请求。

这个包的意思是协议栈回复控制器收到连接请求。

这个包的意思是控制器回复协议栈的ACL连接成功。

L2CAP的链路连接

SDP服务发现HFP

这个包的意思是HF本地接收AG手机发送的SDP消息,发现免提HFP协议。

这个包的意思是HF发送AG手机端在本地接收服务的响应。

RFCOMM协议连接

下图框中的消息表示HFP连接将建立RFCOMM协议连接。

AT命令交互

下面图片框中的信息说明了涉及AT命令的交互。

如果你抓取的消息也有上图的说明,说明SLC连接已经建立成功,也就意味着HFP协议已经建立成功。

这样,如果《HFP议定书》运作失败,我们可以从以下五个方面分析原因:

1.蓝牙的ACL链接是否建立成功?

2.L2CAP链路建立成功了吗?

3.SDP服务搜索HFP协议是否正常完成。

4.RFCOMMM成功了吗?

5.AT命令是依次交互完成的吗?

AT命令按照以下顺序交互:brsf->BAC(AG和HF都支持编解码协商)->CIND=?->CIND?->CMER->CHLD=?(AG和HF都支持三方通话)

以上是HFP连接的流程。

HFP配置文件组成相关性

我在我的官方HFP协议手册里找到了这个。相信在了解了上面HFP的具体连接过程后,阅读下面的示意图会很容易。

HFP的电话音频

蓝牙通话过程中的语音数据,时效性要求较高,一般通过专用的SCO或ESCO链路传输,编码方式有:CVSD、MSBC。最基本的窄带8k编码方式是CVSD,免提蓝牙设备应该支持,支持宽带16k语音的设备可以选择mSBC编码数据。

在上图中(m表示强制支持,C1表示可选支持):

CVSD:这种编码方式的数据传输使用SCO或eSCO链路。根据本地控制器是否支持增强建立同步连接命令来确定链路的选择。如果支持此命令,创建语音和音频链接时将使用eSCO,否则将创建SCO链接。MSBC:这种编码模式下的数据传输只能使用eSCO链路。

上海合作组织和ESCO的区别在于:

1.SCO逻辑传输是对称的,而ESCO逻辑传输是非对称的。

2.SCO不支持重传,而ESCO支持重传。

那你怎么知道AG方是否支持ESCO呢?请参考我的下一篇关于HFP指令的文章。

蓝牙电话语音的传输方式

上图是官方协议给的,我简单总结一下:PhoneAudio->脉码调制->AG基带->HF基带->PCM解码->电话音频。

来源:传奇知识网,转载请注明作者或出处,尊重原创!

相关文章

发表评论
推荐文章