经典蓝牙(Classic Bluetooth / BR/EDR)--- 核心协议层5 --- 经典蓝牙(BR/EDR)电缆替代协议层核心机制详解 📅 2026/8/9 6:35:52 文章目录经典蓝牙电缆替代协议层RFCOMM详解一、概述二、协议定位三、设计目标四、核心机制4.1 多路复用Multiplexing4.2 帧格式4.3 流控机制五、连接建立流程5.1 阶段一L2CAP 连接5.2 阶段二RFCOMM 数据信道建立六、关键参数协商PN 命令七、典型应用场景八、RFCOMM 与 BLE UART 的对比九、总结经典蓝牙电缆替代协议层RFCOMM详解一、概述RFCOMMRadio Frequency Communication射频通信协议是经典蓝牙BR/EDR协议栈中专用的电缆替代协议层Cable Replacement Protocol。它基于GSM TS 07.10标准设计核心目标是在蓝牙无线链路上模拟传统 RS-232 串口使原有基于串口的应用程序无需修改即可通过蓝牙传输数据。二、协议定位┌─────────────────────────────────────────────┐ │ 应用层 Profiles │ │ SPP / HFP / HSP / DUN / OPP / OBEX ... │ ├─────────────────────────────────────────────┤ │ ┌─────────────────────────────────────┐ │ │ │ 电缆替代协议层Cable Replacement │ │ │ │ ┌─────────┐ ┌─────────────────┐ │ │ │ │ │ RFCOMM │ │ TCS │ │ │ │ │ │(串口模拟)│ │(电话控制协议) │ │ │ │ │ └────┬────┘ └─────────────────┘ │ │ │ └───────┼─────────────────────────────┘ │ ├──────────┼──────────────────────────────────┤ │ ┌───────┴─────────────────────────────┐ │ │ │ L2CAP逻辑链路控制与适配层 │ │ │ │ - 提供面向连接的可靠信道 │ │ │ │ - 分段重组、QoS、多路复用 │ │ │ └─────────────────────────────────────┘ │ ├─────────────────────────────────────────────┤ │ HCI / Baseband / Radio │ └─────────────────────────────────────────────┘属性说明全称Radio Frequency Communication标准依据ETSI GSM TS 07.10OSI 映射传输层 ~ 会话层承载层L2CAP 面向连接信道PSM 0x0003核心能力可靠字节流、多路复用、流控、Modem 状态模拟三、设计目标RFCOMM 的设计围绕**“无线替代有线串口”**这一核心场景展开有线串口特性RFCOMM 对应实现物理 RS-232 线缆蓝牙 L2CAP 无线链路单一数据流多路复用最多 60 路逻辑信道RTS/CTS 硬件流控基于信用的软件流控Credit-BasedDTR/DSR 状态信号Modem Status 命令模拟波特率配置端口参数协商PN 命令四、核心机制4.1 多路复用MultiplexingRFCOMM 在一条 L2CAP 连接上复用多条独立的数据链路┌─────────────────────────────────────┐ │ 一条 L2CAP 链路 │ ├─────────┬─────────┬─────────┬───────┤ │ DLCI 0 │ DLCI 2 │ DLCI 4 │ ... │ │ (控制) │ (数据A) │ (数据B) │ │ └─────────┴─────────┴─────────┴───────┘DLCIData Link Connection Identifier数据链路连接标识符DLCI 0控制信道用于建立/释放数据信道、参数协商、Modem 状态传输DLCI 1保留GSM 07.10 兼容DLCI 2~59数据信道最多30 路双向数据流每方向 30 路DLCI 60~63保留DLCI 的计算公式DLCI (Server Channel 1) | Direction_Bit4.2 帧格式RFCOMM 帧基于 GSM 07.10 的 UIHUnnumbered Information with Header check帧┌────────┬────────┬────────┬────────┬────────┬────────┬────────┐ │ Flag │ Address│ Control│ Length │ Info │ FCS │ Flag │ │ (0xF9) │ │(UIHEF)│ │ │ │ (0xF9) │ ├────────┼────────┼────────┼────────┼────────┼────────┼────────┤ │ 1 byte │ 1 byte │ 1 byte │1/2 byte│0~32767B│ 1 byte │ 1 byte │ └────────┴────────┴────────┴────────┴────────┴────────┴────────┘Address 字段包含 DLCI、C/R 位、EA 位Control 字段固定为UIH (0xEF)表示无连接号的无编号信息帧Length 字段信息字段长度支持 EA 扩展最大 32767 字节FCS帧校验序列仅校验 Address Control Length4.3 流控机制RFCOMM 采用基于信用的流控Credit-Based Flow Control方向机制RFCOMM → L2CAP依赖 L2CAP 的流控L2CAP 本身支持基于信用的流控RFCOMM 内部发送方分配初始信用值接收方消耗信用耗尽后暂停发送上层应用通过 Modem Status 命令模拟 RTS/CTS 信号五、连接建立流程RFCOMM 会话的建立分为两个阶段L2CAP 连接建立→RFCOMM 数据信道建立。5.1 阶段一L2CAP 连接设备A 设备B │ │ │ L2CAP_Connect_Req (PSM3) │ │ ─────────────────────────── │ │ │ │ L2CAP_Connect_Resp (Success)│ │ ─────────────────────────── │ │ │PSMProtocol/Service Multiplexer0x0003标识 RFCOMM 服务5.2 阶段二RFCOMM 数据信道建立设备A (Initiator) 设备B (Responder) │ │ │ SABM (DLCI0, 建立控制信道) │ │ ─────────────────────────── │ │ │ │ UA (DLCI0, 确认) │ │ ─────────────────────────── │ │ │ │ PN (Parameter Negotiation) │ │ ─────────────────────────── │ │ │ │ PN Response │ │ ─────────────────────────── │ │ │ │ SABM (DLCIN, 建立数据信道) │ │ ─────────────────────────── │ │ │ │ UA (DLCIN, 确认) │ │ ─────────────────────────── │ │ │ │ MSC (Modem Status Command) │ │ ────────────────────────── │ │ │ │ 数据通信开始 │ │ │命令全称作用SABMSet Asynchronous Balanced Mode建立异步平衡模式连接UAUnnumbered Acknowledgement无编号确认PNParameter Negotiation协商最大帧长、窗口大小、流控等MSCModem Status Command模拟 DTR/DSR/RTS/CTS 等 Modem 信号DISCDisconnect断开连接DMDisconnected Mode拒绝连接或已断开六、关键参数协商PN 命令建立数据信道前双方通过 PN 命令协商以下参数参数说明典型值Maximum Frame Size最大帧长度127 ~ 32767 字节Convergence Layer汇聚层类型Type 1无汇聚Priority优先级0~63Credit-Based Flow Control是否启用信用流控是RFCOMM 强制Initial Credits初始信用值通常 7七、典型应用场景RFCOMM 是多个经典蓝牙 Profile 的核心承载协议Profile用途RFCOMM 角色SPPSerial Port Profile串口透传直接承载串口数据HFPHands-Free Profile车载免提传输 AT 命令接听/挂断/拨号HSPHeadset Profile耳机通话传输 AT 命令DUNDial-Up Networking拨号上网模拟 Modem AT 命令集OPPObject Push Profile文件推送OBEX 可基于 RFCOMM 传输SPP串口协议是 RFCOMM 最典型、最广泛的应用几乎所有蓝牙串口模块如 HC-05、RN-42都基于 SPP RFCOMM 实现。八、RFCOMM 与 BLE UART 的对比特性经典蓝牙 RFCOMM/SPPBLE UART自定义 GATT协议层级电缆替代层基于 L2CAP应用层自定义GATT Characteristic连接方式传统配对 连接广播 直连无需配对数据吞吐较高~1-3 Mbps 理论较低~125 Kbps ~ 2 Mbps功耗较高持续连接极低可休眠兼容性成熟稳定设备广泛支持需双方支持 BLE 自定义服务多路复用原生支持 60 路 DLCI需应用层自行实现流控基于信用的内置流控需应用层或 GATT 通知机制实现典型芯片HC-05、BC04、CSR8670nRF52832、CC2640、ESP32九、总结RFCOMM 是经典蓝牙协议栈中的电缆替代协议层它基于 GSM TS 07.10 标准在 L2CAP 可靠传输之上实现了 RS-232 串口的无线模拟。通过 DLCI 多路复用、基于信用的流控、Modem 状态模拟等机制RFCOMM 为 SPP、HFP、DUN 等上层 Profile 提供了透明、可靠的字节流通信能力是经典蓝牙替代物理线缆这一核心愿景的关键实现层。