HFP前置连接流程

如果是对端发起的连接那么本机端就会收到一个
HCI Connection Request 的一个EVENT。

这个HCI EVENT 的Event code 是0x04 他要带3个参数第一个是蓝牙地址,第二个是cod(点击连接跳转介绍cod).第三个link type。

host 回复 HCI Accept Connection Request


HCI_Accept_Connection_Request(命令想详细介绍)。

BD_ADDR:请求连接的设备的蓝牙设备地址。蓝牙MAC地址-CSDN博客

Role:允许主机指定链路管理器是否请求角色切换并成为此连接的中央设备(Central)。这是一个偏好,而不是强制要求。如果角色切换失败,连接仍然会被接受,而 HCI_Role_Discovery 命令将反映当前的角色。

然后controller 会回复HCI Command Status 表示收到了HCI_Accept_Connection_Request

之后连接成功 controller会上报 HCI Connection Complete


HCI Connection Complete 会带5个参数

  1. status:表示连接状态 0x00是连接成功,0x01-0xff是连接错误码。

  2. Connection_Handle 连接的句柄,执行很多操作都靠这个句柄

  3. BD_ADDR:蓝牙地址

  4. 连接的类型是走的ACL还是SCO

  5. 是否加密。

在然后就是配对的过程

对端会发起一个配对的流程,由于介绍的这边采用的是一个PIN code 配对方式,所以controller会发送一个HCI Event到host HCI PIN Code Request

然后host 通过命令HCI PIN Code Request Reply 将PIN code 发给controller 只要对端设备的PIN code输入跟本端一致就配对成功了。

这个HCI COMMOND 有3个参数

配对成controller 会将Link Key(理解成一个长期的配对码,断开重连不需要再配对就是这个起的左右) 发送给host。HCI Link Key Notification



接下来就是去问询HCI的一些feature。

HOST 发送HCI Read Remote Supported Features

这个Connection_Handle就是上面发起连接的时候已经获取到了。

r然后controller 通过HCI EVENT HCI Read Remote Supported Features Complete


接下来就会一些HCI EVENT的交互

之后就进入到L2CAP的流程了

首先是L2CAP Information的交互

再然后就是L2CAP的连接,这边就会建立起SDP

然后就是配置L2CAP的一些信息,两端的MTU

然后配置完成对端问询本端的一些DID信息

之后SDP就会断开,之所以知道断开是SDP是因为src id。

之后会再次连上然后对端问询L2CAP支持哪些协议,SDP会告诉对端我们支持HFP协议,然后在断开.

之后会再次连上然后对端问询HFP支持哪些内容,然后断开SDP。

之后就RFCOMM的连接,连接成功之后同样是交互MTU.

再然后就是RFCOMM的交互

后面就开始HFP 的一些AT 命令的交互,第一步一定是SLC的连接

相关推荐
piaoyiren1 天前
基于 STM32F103 蓝牙遥控云台超声波避障小车
stm32·单片机·嵌入式硬件·蓝牙·超声波测距·直流电机
K成长日志5 天前
BLE链路层空口包--LE Uncoded PHY
物联网·嵌入式·蓝牙·iot·ble·无线·通信
TengTaiTech10 天前
打破ANC的“静默牢笼”:基于QCC3095实现主动降噪与侧音共存的音频方案
蓝牙·qcc·混音
TengTaiTech16 天前
重构无线音频边界:基于高通QCC3056的新一代蓝牙音频发射器深度解析
蓝牙·qcc
HiDev_17 天前
BLE Legacy 连接【读取当前连接所使用 PHY 类型 HCI_LE_Read_PHY command】
蓝牙·ble·蓝牙连接·ble 蓝牙广播·蓝牙hci command
HiDev_18 天前
BLE Legacy 连接【断开连接 Disconnect command】
蓝牙·ble·蓝牙连接·ble 蓝牙广播·蓝牙hci command
K成长日志19 天前
BLE协议之设备地址
网络·物联网·网络协议·嵌入式·蓝牙·ble
HiDev_20 天前
HCI 功能规范【5.1. Correctness】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command·蓝牙广播扫描
HiDev_21 天前
HCI 功能规范【4.2. Controller to Host data flow control】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command
HiDev_21 天前
HCI 功能规范【4.4. Command flow control】
蓝牙·ble·ble 蓝牙广播·蓝牙hci command