蓝牙相关知识
蓝牙相关知识
[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个信道,每个信道2MRegulatory 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固件代码维护
蓝牙框架
控制器:
- 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
- 等等
参考
- 《Bluetooth Core Specification v5.2》
- https://www.bluetooth.com/specifications/specs/
- Bluetooth 技术(一)— 协议栈设计与演进