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