经典蓝牙中RFCOMM与SPP的关系

0 Preface/Foreword

0.1 结论

RFCOMM是协议(Protocol),SPP是配置文件(Profile);SPP是基于RFCOMM定义的一种应用规范。

++直白地说++:

没有RFCOMM,就没有SPP;

RFCOMM不等于SPP

1 RFCOMM与SPP的关系

1.1 RFCOMM介绍

RFCOMMR adio F requency Communication

  • 类型:协议(Protocol)
  • 层级:跑在L2CAP之上
  • 作用:
    • 在蓝牙上模拟RS-232串口的字节流通信。

1.1.1 RFCOMM提供的能力

  • 面向字节流(像UART)
  • 可靠传输
  • 多路复用(DLCI)
  • 流控
  • 端口概念(类似COM1 / COM2)

RFCOMM本身不规定你要用这个串口干嘛

1.2 SPP介绍

SPPS erial P ort Profile

  • 类型:Profile(配置文件/应用规范)
  • 层级:应用/使用层
  • 作用:
    • 规定如何使用RFCOMM来实现蓝牙串口通信

1.2.1 SPP提供的能力

SPP说明的不是怎么传字节,而是:

  • 角色是谁(Client/Server
  • 如何通过SDP发现串口服务
  • 如何建立RFCOMM连接
  • 上层应用该怎么用这个虚拟串口

1.3 两者的关系

1.3.1 正确的协议栈关系(经典蓝牙)

  • SPP (Profile: 使用规范)
    • RFCOMM (Protocol:串口仿真)
      • L2CAP
        • ACL
          • Baseband
            • RF

++可以简单理解++:

  • 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。

相关推荐
yanlaifan10 天前
蓝牙RFCOMM&SPP&AT命令
rfcomm
wsoz1 个月前
串口仿真协议(RFCOMM)
单片机·嵌入式·蓝牙协议栈·rfcomm