蓝牙RFCOMM&SPP&AT命令

0 Preface/Foreword

1 RFCOMM介绍

1.1 RFCOMM

RFCOMMR adio F requency COMM unication(基于射频的通讯协议

在蓝牙上模拟RS-232串口通信(Serial Port Emulation)。

RFCOMM被描述为:Bluetooth Serial Port Emulation Protocol

1.2 RFCOMM上层典型profile

++RFCOMM上层典型应用包括++:

  • SPP (S erial P ort Profile)
  • HFP(AT命令通道)
  • PBAP/MAP的控制信令

1.3 Apple不开放RFCOMM

普通开发者无法使用RFCOMM,需要通过了MFi(Made For iPhone)认证才可以使用。(系统安全,数据可监管)

1.4 RFCOMM特性

对比BLE + GATT,RFCOMM功耗高。

2 RFCOMM应用场景

2.1 A2DP播放音乐(不使用RFCOMM)

A2DP不需要使用RFCOMM。

++A2DP的数据流如下++:从手机端看

  • 手机(Source)
    • SBC/AAC编码
      • AVDTP
        • L2CAP (ACP / Streaming Channel)
          • 蓝牙空口
            • 耳机(Sink)

NOTE:核心传输是使用L2CAP。

2.1.1 蓝牙空口

蓝牙空口Bluetooth Air Interface;真正通过2.4GHz无线电在空气中传输的那一段。即

芯片天线《======》空气中的射频信号《======》另一端天线(比如手机)

++蓝牙空口对应以下两层++:


上层协议(L2CAP)


Baseband / Link |<---逻辑链路调度


PHY(物理层) |<---2.4GHz空口


++PHY:++

  • 调制方式(GFSK / π、4-DQPSK / 8-DPSK)
  • 信道(79 / 40 channels)

++Baseband/Link Layer:++

  • 时隙(time slot)
  • SCO / ACL调度
  • 重传、跳频

++空口性能:++

  • 丢包率
  • 干扰能力
  • Rx灵敏度
  • Tx功率

通俗理解:

蓝牙空口=不看任何上层协议,只看无线电怎么飞

2.1.2 ACP(工程口语,不是规范名)

在A2DP /AVDTP里真正标准的分类是:

  • AVDTP Signaling Channel(信令通道
    • 用途
      • 建立连接
      • 选择codec
      • Start/Suspend Stream
    • 特点
      • 数据量小
      • 不实时
  • AVDTP Media Transport Channel(媒体通道
    • 用途
      • 承载SBC/AAC音频帧
    • 特点
      • 连续
      • 高throughput
      • 对时延敏感

2.1.3 A2DP音频链路

++顺序如下++:

  1. PCM samples
  2. SBC / AAC编码
  3. AVDTP 打包
  4. L2CAP segamentation
  5. ACL packet
  6. Baseband scheduling
  7. PHY modulation
  8. 蓝牙空口(2.4GHz)

2.2 HFP通话

HFP通话一定会用到RFCOMM,而且是必须的。

++HFP的协议结构++:

  • RFCOMM(控制信令(AT指令))
  • SCO/eSCO(语音数据)
  • L2CAP(底层承载)

2.2.1 HFP控制信息

所有通话相关的++控制信息++都在RFCOMM里:

  • 建立通话
  • 挂断
  • 来电通知
  • 电量、信号强度上报
  • 音量控制

++典型的数据流++:从耳机到手机(耳机----->手机(AT命令))

  • AT+BIND=?
  • AT_VGS=10
  • AT_CHUP
  • AT_CLCC

2.2.2 数据流(建立通话)

✅️AT命令--->RFCOMM ✅️语音---->SCO/eSCO

2.2.3 为什么语音不走RFCOMM

++RFCOMM特性++:

  • 基于ACL(面向无连接;抖动大)
  • 面向字节流(无时间严格性)
  • 有重传(实时性差)

++语音需要特性++:

  • 固定带宽
  • 低延迟
  • 可丢包

蓝牙语音=SCO/eSCO的电路交换模型。

2.2.4 HFP音频链路

++HFP音频链路如下++:

  1. CVSD / mSBC
  2. SCO/eSCO
  3. Baseband
  4. 蓝牙空口

2.3 AVRCP

调音和播放控制,可能需要用到RFCOMM。

  • 之前的实现:用到RFCOMM
  • 当前主流的做法是:L2CAP

2.3 SPP通讯

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