0 Preface/Foreword
0.1 结论
RFCOMM是协议(Protocol),SPP是配置文件(Profile);SPP是基于RFCOMM定义的一种应用规范。
直白地说:
没有RFCOMM,就没有SPP;
RFCOMM不等于SPP
1 RFCOMM与SPP的关系
1.1 RFCOMM介绍
RFCOMM:RadioFrequencyCommunication
- 类型:协议(Protocol)
- 层级:跑在L2CAP之上
- 作用:
- 在蓝牙上模拟RS-232串口的字节流通信。
1.1.1 RFCOMM提供的能力
- 面向字节流(像UART)
- 可靠传输
- 多路复用(DLCI)
- 流控
- 端口概念(类似COM1 / COM2)
RFCOMM本身不规定你要用这个串口干嘛。
1.2 SPP介绍
SPP:SerialPortProfile
- 类型:Profile(配置文件/应用规范)
- 层级:应用/使用层
- 作用:
- 规定如何使用RFCOMM来实现蓝牙串口通信
1.2.1 SPP提供的能力
SPP说明的不是怎么传字节,而是:
- 角色是谁(Client/Server)
- 如何通过SDP发现串口服务
- 如何建立RFCOMM连接
- 上层应用该怎么用这个虚拟串口
1.3 两者的关系
1.3.1 正确的协议栈关系(经典蓝牙)
- SPP (Profile: 使用规范)
- RFCOMM (Protocol:串口仿真)
- L2CAP
- ACL
- Baseband
- RF
- Baseband
- ACL
- L2CAP
- RFCOMM (Protocol:串口仿真)
可以简单理解:
- RFCOMM:提供串口能力
- SPP:如何标准地使用这个串口
1.3.2 形象的类比
| 蓝牙 | 现实世界 |
| RFCOMM | TCP/IP |
| SPP | HTTP |
- TCP:提供可靠的字节流
- HTTP:规定如何在TCP上传网页
RFCOMM可以被不同的profile使用,SPP只是其中之一。
1.3.3 RFCOMM不只是被SPP使用
使用RFCOMM的profile:
| Profile | RFCOMM用途 |
| SPP | 数据本身(串口) |
| HFP | AT控制信令 |
| PBAP | 电话簿传输控制 |
| MAP | 短信消息控制 |
RFCOMM是通用控制/数据通道;SPP只是把RFCOMM当数据通道来用的Profile。