蓝牙bt HFP 精讲之HFP SLC建立

一.HFP SLC

        SLC全称Service Level Connection。通俗一点讲就是HFP AG与HF建立连接之间需要提前交互的一堆AT命令。这些AT命令交互完之后,AG与HF就完成了SLC。

        根据前文介绍,HFP 架构图:

        

        HFP SLC的建立依赖AG与HF提前建立好RFCOMM连接。也就是AG与HF双方都必须提前建立好RFCOMM data link channel,才能进行HFP SLC的建立。另外HFP SLC的建立在AG与HF端都可以主动发起。

        以下章节所讲的为HFP 特性中的第一点,Connection management    

二.HFP SLC建立流程

        首先直接上整体的连接流程图:

        

        可以看到,其实HFP SLC建立也是在RFCOMM的基础上互发一些必要的AT指令

三.HFP SLC指令解析

        1.AT+BRSF

                原型:AT+BRSF=<HF supported features>

                BRSF(Bluetooth Retrieve Supported Features),此命令就是用于HF和AG互相告知对方支持的特性。

                HF支持特性如下:

                

                AG支持特性如下:

                      

                

        2.AT+BAC

                原型:AT+BAC=<HF available codecs>

                BAC(Bluetooth Available Codecs)用于在SLC建立过程中,HF与AG双方协商后,双方都支持的编码格式

           

                一般就如上两者,CVSD为窄带,mSBC为宽带

        3.AT+CIND=?

                原型:AT+CIND

                CIND,查询支持的indicator列表。在发送完AT+BAC后,HF必须首先发送此AT指令查询AG indicator列表。

                注:

                AT+CIND=? ,HF向AG查询,AG端支持的indicator列表

                +CIND         ,AG端回复支持的indicator列表

                AT+CIND?   ,HF向AG查询,AG当前各个indicator的状态

                +CIND         ,AG端回复支持的indicator状态

        4.AT+CMER

                原型:AT+CMER=[<mode>[,<keyp>[,<disp>[,<ind> [,<bfr>]]]]]

                CMER:Standard event reporting activation/deactivation AT command。简单来说就是使能或者去使能indicator。如果使能之后,当该indicator状态变化之后,AG要主动使用+CIEV指令向HF更新。HF收到+CIEV后,需要及时更新自己的状态

        5.AT+CHLD=?

                原型:AT+CHLD=<n>

                CHLD:Standard call hold and multiparty handling AT command。该指令用于AG和HF双方都支持三方通话的场景。HF和AG需要使用该指令来确认双方三方通话的状态。

                注:

                AT+CHLD=?        ,HF主动向AG查询三方通话的一些特性

                +CHLD:                ,AG上报HF,当前三方通话的特性和状态

                

        6.AT+BIND=

                原型:AT+BIND= <a>,<b>,<c>,...,<n>

                BIND(Bluetooth HF Indicators Feature)。该指令用于HF向AG告知自己支持哪些HF Indicators Feature,以及哪些被使能了。该指令只有在HF和AG都支持BRSF时,才可以使用。

                并且其中的值意义我们要到Bluetooth SIG Assigned Numbers [10] web page查询

                注:

                AT+BIND=                ,用于HF向AG告知自己支持的HF Indicators Feature

                AT+BIND=?              ,用于HF向AG查询,AG侧支持的HF Indicators Feature

                +BIND:                      ,AG向HF上报自己支持的HF Indicators Feature,不同的查询方式,该指令返回格式不一致,如下:

                        

                AT+BIND?                ,HF向AG发送使能哪些HF Indicators Feature

        

四.实例解析

        ellisys抓的包:

                

        

       这其中有一些上面没有讲到的AT指令,各位大牛可以查阅HFP手册或者百度都可以轻易查到。其中有些是apple定制的AT指令,可以参考Apple-Accessory-Design-Guidelines_iphone_iOS.pdf手册,也可以查到需要的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值