由于HFP feature小节太多,所以我们计划本章把相近的feature合并,本文章主要讲下电话免提协议HFP(Hands-Free Profile)Audio Connection handing以及Audio Connection transfer during an outgoing call,就是一下HFP feature中的NO.3跟NO.7。
其中Audio Connection handing包括:
1)Audio Connection set up(建立SCO连接)
2)Audio Connection release(断开SCO连接)
3)Codec Connection set up(Codec建立)。
其中Audio Connection transfer during an outgoing call包括:
1)Audio Connection transfer towards the HF(建立SCO连接)
2)Audio Connection transfer towards the AG(断开SCO连接)。
另外,这两个feature我也录制了btsnoop,在资料中的...\STM32_UBUNTU_BLUETOOTH\2-蓝牙资料\蓝牙协议分析hfp_audio_transfer.log,还生成了流程图等。
本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:
第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等
第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等
第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。
第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)
第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等
第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展
第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。
另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。
-------------------------------------------------------------------------------------------------------------------------
CSDN学院链接(进入选择你想要学习的课程):
蓝牙交流扣扣群:970324688
Github代码:
入手开发板:
蓝牙学习目录:
--------------------------------------------------------------------------------------------------------------------------
Audio connection handing分为3个部分介绍,audio connection大家要通过看HCI protocol中的SCO才能知道,我来给大家用最简短的概括,说白了就是一个数据通道,主要传输电话音频数据。
Aududio connection HF & AG都可以建立.
1) 从AG建立audio connection如图所示
Btsnoop流程如下:
2) 从HF建立audio connetion的过程如下:
AT BCC (Bluetooth Codec Connection)
这个AT command主要是触发AG来建立codec connection
流程如下:
HF和AG都可以主动断开SCO,主动断开通过HCI command ,remote断开会收到HCI disconnect的event
Codec connection的建立也很简单,在SLC建立得而时候如果发送过AT BAC,那么AG会发送 BCS选择codec id,HF回复AT BCS回复相同得而codec id,然后AG回复OK
此部分比较简单,transfer towards to the HF就是建立SCO,transfer towards to the AG就是断开SCO,不再重复