0 Preface/Foreword
1 HFP链路介绍
HFP的语音数据不经过L2CAP。直接通过SCO/mSCO就到了baseband,最后通过空口发送过去。
1.1 HFP总的数据链路
HFP包含两条数据链路:
- 控制链路(AT信令)
- 语音链路(音频数据)
AT信令:
RFCOMM -> ACL -> L2CAP -> Bluetooth Air Interface
语音链路:
SCO/mSCO -> Baseband -> Bluetooth Air Interface
控制链路和语音链路属于并存。
1.1.1 语音链路
语音链路如下:
- MIC
- CVSD/mSBC (语音编码)
- SCO/eSCO(Payload)
- Baseband(时隙调度)
- PHY (2.4G)
- Bluetooth Air Interface (蓝牙空口)
1.2 完整的HFP通话时序
1.2.1 建立ACL连接(底层)
手机《===》耳机
ACL Link建立
1.2.2 建立RFCOMM通道(走L2CAP)
RFCOMM DLCI打开
|
v
开始AT命令交换
1.2.3 协商语音codec(仍然是RFCOMM)
AT+BRSF
AT+BAC
AT_BCS
1.2.4 建立SCO/eSCO语音链路(关键一步)
SCO Link建立
|
v
实时语音开始
从这一刻开始:
- 语音 != RFCOMM
- 语音 !=L2CAP
1.2.5 并行运行
控制:RFCOMM/L2CAP/ACL
语音:SCO/eSCO
1.3 L2CAP相关的协议
| 功能 | 使用L2CAP |
| A2DP(音乐) | ✅️ |
| AVRCP 控制 | ✅️ |
| HFP语音(CVSD/mSBC) | ❌️直接baseband -> PHY |
| HFP AT控制 | ✅️ |
| 音量/电量/状态 | ✅️ |