蓝牙协议栈 电话免提协议HFP(Hands-Free)概念讲解
零. 概述主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) 协议概念介绍。一. 声明本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H
零. 概述
主要介绍下蓝牙协议栈(bluetooth stack) 电话免提协议HFP(Hands-Free) 协议概念介绍。
一. 声明
本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:
第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。
第二篇: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学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144
蓝牙交流扣扣群:970324688
Github代码:https://github.com/sj15712795029/bluetooth_stack
入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708
蓝牙学习目录:https://blog.csdn.net/XiaoXiaoPengBo/article/details/107727900
--------------------------------------------------------------------------------------------------------------------------
二. 蓝牙电话免提(Hands-Free)协议概念介绍
2.1 概念介绍
HFP(Hands-Free Profile),通俗点翻译就是免提协议,说白了就是蓝牙电话协议,可以让蓝牙设备通过协议定义好的AT command控制电话,如接听、挂断、拒接、语音拨号等。每个功能都有基于RFCOMM协议栈之上特定的AT command和response.
2.2 HFP协议在整个蓝牙中的架构
可以看到HFP是基于RFCOMM协议的,整个Local Device跟Remote Device的交互过程是:
HFP HF <-> RFCOMM <-> L2CAP <-> HCI ACL <-> CHIP <---------> CHIP <->HCI ACL <-> L2CAP <-> RFCOMM <-> HFP AG
2.3 HFP角色介绍
Audio Gateway (AG) – This is the device that is the gateway of the audio, both for input and output. Typical devices acting as Audio Gateways are cellular phones.
Hands-Free unit (HF) – This is the device acting as the Audio Gateway’s remote audio input and output mechanism. It also provides some remote control means
我们通常叫做AG,HF,举一个最简单的例子,手机连接我们的蓝牙耳机,那么手机中的HFP的角色就是AG,我们平时用的蓝牙耳机中的HFP角色就是HF.
2.4 HFP的历史版本
通过bluetooth SIG的官网(https://www.bluetooth.com/)我们可以看到一供有以下几个版本:
v0.95 版本已经被弃用,此版本已经下载不到
V1.0 版本同样被弃用,并且已经下载不到
V1.5系列的版本(1.5.0/1.5.1)被定义为老版本
V1.6 系列的版本(1.6.0/1.6.1)同样被定义为版本
V1.7 系列的版本(1.7.0/1.7.1)也被定义为老版本
V1.7.2 版本是HFP的最新版本,在2019年1月21号正式发布(截止到我写文章这是最新版本)
在介绍差异之前我们来看下HFP支持的所有Feature
差异我们就从1.5说起吧,其他的下载不到了,其中序号22之前的所有特性都是V1.5版本定义,22.23.24是V1.6.0之后更新,25是V1.7.0之后更新,后面小节我们来意义介绍下特性
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)