【蓝牙专题】HFP协议解析

本文详细介绍了HFP1.6协议,包括其定义、角色配置、支持的编解码和AT命令,以及通信流程,如ServiceLevelConnectionEstablishment和Release过程。重点展示了AT+BRSF和AT+CMER等关键命令的作用。
摘要由CSDN通过智能技术生成

一、概念

HFP(Hands-free Profile),HFP1.6定义了Hands-Free设备的功能,可以让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。
 

1、依赖关系:

2、配置和角色

HFP定义了音频网关(AG)和免提组件(HF)两个角色:
AG–该设备为音频(特别是手机)的输入/输出网关。
HF–该设备作为音频网关的远程音频输入/输出机制,并可提供若干遥控功能。

注:HFP并没有master与slave的区分,在建立HFP通信前,LMP link是必须的;

3、支持的功能

其中编解码方式可以看到CVSD是必须支持的,mSBC不是必须支持的,

4、AT command 

HFP使用AT command的子集来发送命令;

(1)格式HFP中通过AT command来发送命令,响应,我们来看下命令格式说明:

(2)HFP AT command命令子集如下图:

序号

命令参数

说明

1

ATA

Standard call answer AT command.

2

ATDdd…dd

Standard AT command intended for placing a call to a phone number

3

ATD>nnn

Extension of the standard ATD command, intended for memory dialing

4

ERROR

Standard error indication code

5

OK

Standard acknowledgement to the execution of a command

6

NO CARRIER, BUSY, NO ANSWER, DELAYED, BLACKLISTED

Extended response indication codes for AT commands.

7

RING

Standard ―incoming call‖ indication

8

AT+CCWA

Standard ―Call Waiting notification‖ AT command.

+CCWA

Standard ―Call Waiting notification‖ unsolicited result code.

AT+CHLD

Standard call hold and multiparty handling AT command.

AT+CHUP

Standard hang-up AT command. Execution command causes the AG to terminate the currently active call.

AT+CIND

Standard indicator update AT command.

+CIND

Standard list of current phone indicators

AT+CLCC

Standard list current calls command.

+CLCC

Standard list current calls result code.

AT+COPS

The AT+COPS=3,0 shall be sent by the HF to the AG prior to sending the 

AT+COPS? command. AT+COPS=3,0 sets the format of the network operator string 

to the long format alphanumeric.

The AT+COPS? command is used for reading network operator. This profile shall 

only support the "reading" of the name of the network operator. The response to this 

command from the AG shall return a +COPS:<mode>,<format>,<operator> where:

<mode> contains the current mode and provides no information with regard to the 

name of the operator. 

BLUETOOTH SPECIFICATION  Page 80 of 126

Hands-Free Profile 1.6

10 May 2011

<format> specifies the format of the <operator> parameter string, and shall always 

be 0 for this specification.

<operator> specifies a quoted string in alphanumeric format representing the name 

of the network operator. This string shall not exceed 16 characters.

AT+CMEE

Standard AT command used to enable the use of result code +CME ERROR: <err> 

as an indication of an error relating to the functionality of the AG. 

The set command AT+CMEE=1 is covered in this specification.

+CME ERROR

+CME ERROR: 0 – AG failure

+CME ERROR: 1 – no connection to phone 

+CME ERROR: 3 – operation not allowed 

+CME ERROR: 4 – operation not supported 

+CME ERROR: 5 – PH-SIM PIN required 

+CME ERROR: 10 – SIM not inserted

+CME ERROR: 11 – SIM PIN required 

+CME ERROR: 12 – SIM PUK required 

+CME ERROR: 13 – SIM failure 

+CME ERROR: 14 – SIM busy 

+CME ERROR: 16 – incorrect password 

+CME ERROR: 17 – SIM PIN2 required 

+CME ERROR: 18 – SIM PUK2 required 

+CME ERROR: 20 – memory full 

+CME ERROR: 21 – invalid index 

+CME ERROR: 23 – memory failure 

+CME ERROR: 24 – text string too long 

+CME ERROR: 25 – invalid characters in text string

+CME ERROR: 26 – dial string too long 

+CME ERROR: 27 – invalid characters in dial string 

+CME ERROR: 30 – no network service 

+CME ERROR: 31 - network Timeout.

+CME ERROR: 32 – network not allowed – Emergency calls only

AT+CLIP

Standard ―Calling Line Identification notification‖ activation AT command.

+CLIP

Standard ―Calling Line Identification notification‖ unsolicited result code.

AT+CMER

Standard event reporting activation/deactivation AT command.

+CIEV

Standard ―indicator events reporting‖ unsolicited result code.

AT+VTS

Standard DTMF generation AT command. 

AT+CNUM

Syntax: 

AT+CNUM  (Retrieve Subscriber Number Information)

AT+CNUM=?   (Test Subscriber Number Information –

Not Implemented)

Description: 

Command issued by HF for the ―Subscriber Number Information‖ feature in the 

AG.

Only the action command AT+CNUM format is used.

+CNUM

Syntax: 

+CNUM: [<alpha>],<number>, <type>,[<speed> ,<service>]  (Response for 

AT+CNUM)

Description:

Standard Response used for sending the ―Subscriber Number Information‖ from 

AG to HF.

The AG shall send the +CNUM: response for the AT+CNUM from the HF.

Values:

-  <alpha>: This optional field is not supported, and shall be left blank.

-  <number>: Quoted string containing the phone number in the format specified by 

<type>. 

-  <type> field specifies the format of the phone number provided, and can be one 

of the following values:

o  values 128-143: The phone number format may be a national or international 

format, and may contain prefix and/or escape digits. No changes on the 

number presentation are required.

o  values 144-159: The phone number format is an international number, 

including the country code prefix. If the plus sign ("+") is not included as part 

of the number and shall be added by the AG as needed.

-  values 160-175: National number. No prefix nor escape digits included.

-  <speed>: This optional field is not supported, and shall be left blank.

-  <service>: Indicates which service this phone number relates to. Shall be either 4 

(voice) or 5 (fax).

Example:

+CNUM: ,"5551212",129,,4

二、HFP通信流程

上图中的Table3.1给出了HFP支持的feature,这里我们只看1-7,后面的可以自己去翻下spec;

1、HFP Service Level Connection Establishment

        使用HFP时,第一步就是初始化Service Level Connection Establishment,可以由AG或HF发起;Service Level Connection是基于RFCOMM data link chaanel,流程图如下:

a、可以看到,RFCOMM data link chaanel通道建立后,HFP首先发出AT+BRSF来协商HFP支持的feature,详细见后面AT+BRSF feature的说明;

b、第二步是基于第一步,如果AG和HF都支持Codec Negotiation feature,则发送AT+BAC命令,由HF告知AG支持的codecs;

c、第三步AT+CIND是得到支持的indicators和其顺序;

d、第四步:HF使用AT+CMER使能AG端的“Indicators status update”功能这样AG端就可以主动上报状态的改变,无论是服务,电话等;

e、第五步:如果支持“Call waiting and 3-way calling”feature,则使用AT+CHLD获取信息;

这样,就建立了HFP通信,当发生断链时,HF会在超时后主动再次发起HFP Service Level Connection Establishment连接;

我们看下AT+BRSF和BRSF的说明

(1)AT+BRSF (Bluetooth Retrieve Supported Features)

Syntax: AT+BRSF=<HF supported features bitmap>
Description:

Notifies the AG of the supported features available in the HF, and requests information about the supported features in the AG. The supported feat ures shall 
be represented as a decimal value.
Values:
<HF supported features bitmap>: a decimal numeric string, which represents the value of a 32 bit unsigned integer. The 32 bit unsigned integer represents a 
bitmap of the supported features in the HF as follows:
Bit  Feature
0  EC and/or NR function
1  Call waiting or 3-way calling
2  CLI presentation capability
3  Voice recognition activation
4  Remote volume control
5  Enhanced call status
6  Enhanced call control
7  Codec negotiation
8-31  Reserved for future definition
The reserved bits [8-31] shall be initialized to Zero.

(2)BRSF与AT+BRSF类似;

2、HFP Service Level Connection release

HF和AG都可以发起release,步骤主要是RFCOMM信道的移除;

3、注册状态的传输

当AT+CMER和AT+BIA同时被打开时,AG会主动向HF发送AG's registration status changes,如下图:

4、信号强度事件通知

        当AT+CMER和AT+BIA同时被打开时,AG会主动向HF发送AG's signal strength changes,如下图:

5、其他,同上面两个通知还有AG's roaming status changes和 AG's battery level changes,如下面两个图片:

三、总结

        HFP是应用层协议,使用AT command的子集命令来实现自身命令;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值