蓝牙相关知识

[TOC]

背景

蓝牙协议:v5.2
蓝牙官网:https://www.bluetooth.com/specifications/specs/

前段时间,v5.3版本已经发布

主要应用领域

  • 数据传输,主要物联网
  • 音频传输,手机、PC; LE audio(5.2新增),解决了左右耳等时同步传输,LC3编解码器
  • 位置服务,LE Beacon,AoA和AoD(5.1新增)等,可精确到亚米级
  • 设备网络,主要是BLE Mesh、IPv6 Over BLE(IPSP)

几个重要版本

  • v2.0 + EDR Enhanced Data Rate,2 Mb/s and 3 Mb/s modes
  • 3.0 + HS AMP
  • 4.0 BLE
  • 5.0 2 Msym/s PHY for LE
  • 5.2 LE Isochronous Channels

更多具体细节可参见《Bluetooth Core Specification v5.2》的《CORE SPECIFICATION CHANGE HISTORY》章节
从蓝牙协议更新来看,BR/EDR 将逐渐退出历史舞台,LE将成为重点

无线特性

  • 2.4 GHz ISM频段,功率有限制
  • 调制方式:GFSK,pi/4-DQPSK和8DPSK
  • 硬件指标:频偏很重要, 天线阻抗匹配(影响有效效率)等

信道

  • ER/EDR
    79个信道,每个信道1M, 分为3类: 搜索,连接,通信

    Regulatory Range RF Channels
    2.400-2.4835 GHz f=2402+k MHz, k=0,…,78
  • BLE
    40个信道,每个信道2M

    Regulatory Range RF Channels
    2.400-2.4835 GHz f=2402+k*2 MHz, k=0, … ,39

    其中,37~39信道为专门的广播信道,其余信道为数据传输信道,Bluetooth 5 中又引入了扩展广播信道,可以临时使用37个数据信道中的某些信道用作广播或多播通信:

跳频

  • 避免环境中的干扰
  • 经典蓝牙(BR/EDR)与BLE的跳频算法不一样
  • 经典蓝牙(BR/EDR)由主设备(发起连接一方)维护跳频表
  • BLE建立点对点的数据连接后才会进行跳频
  • 主要由蓝牙模块firmware固件代码维护

蓝牙框架

avatar

控制器:

  • BR/EDR: 俗称经典蓝牙
  • BLE(Bluetooth Low Energy): 低功耗蓝牙
  • AMP(Alternate MAC/PHYs),L2CAP连接建立后可转移到此控制器,双方都需支持AMP;使用IEEE 802.11协议。(待删除,v5.3已删除)

双/单模蓝牙: BR/EDR+BLE,BR/EDR或BLE
3套基本上独立的技术,只是共用了部分HCI接口,数据链路和无线基带

链路:

  • SCO(Synchronous Connection-Ori-ented [logical transport])、ISO(LE Audio新增)

  • ACL(Asynchronous Connection-ori-ented[logical transport])

  • C/E:Command/Event

    SCO、ISO主要用于对时间要求很高的数据传输, 如同步话音传输;ACL主要用于分组数据传输

HCI(Host Controller interface):

主机控制器接口,主机部分和控制器(链路层+物理层,一般主要指蓝牙模块)通讯的接口;
常用的主要有USB、SDIO、UART等硬件接口;
走HCI协议,具体可参见协议文档;

Host部分

  • L2CAP: Logical Link Control and Adaptation Layer Protocol, 类似TCP/IP
  • SMP: Security Manager Protocol, STK, LTK
  • SDP: Service Discovery Protocol
  • GAP: 见下一节profie
  • ATT: 见下一节profie
  • GATT: 见下一节profie

Profile

蓝牙应用之间的互操作是通过profile来实现。profile定义了从底层到上层每一层所需的功能和特性,定义了层之间的垂直交互以及设备之间特定层的对等交互。应用的行为以及数据结构也由profile定义。

基本profile

  • GAP: Generic Access Profile,所有蓝牙设备都实现的最基本profile,包括role属性, discovery,
    authentication等
  • ATT: Attribute Protocol, 主要为设备间读写一些小数据而定义的协议
  • GATT: Generic Attribute Profile ,基于ATT,通用的Attribute操作框架,基于GATT的profile有很多,比如:HRP( Heart Rate Profile)、BLP(Blood Pressure Profile)、WSP(Weight Scale Profile)等等
    GATT-Based Profile hierarchy:

常用profile

  • A2DP: Advanced Audio Distribution Profile 高级音频传送,可传输立体声
  • HSP: Headset Profile 耳机功能,底层走的SCO链路,单声道,低采样率
  • HFP: Hands-Free Profile 免提功能,HFP在HSP的基础上增加了某些扩展功能,重拨,来电拒听等
  • AVRCP: A/V Remote Control Profile ,常与 A2DP 配合使用,A/V的暂停、停止、启动重放、音量控制等
  • HID: Human Interface Device Profile
  • FTP: File Transfer Profile
  • 等等

参考