蓝牙基础知识详解:从原理到应用
蓝牙基础知识详解:从原理到应用
蓝牙技术是一种广泛应用于短距离无线通信的无线电技术,它工作在全球通用的2.4GHz ISM频段,支持设备间的点对点通信。本文将详细介绍蓝牙的基本概念、协议架构以及应用场景,帮助读者全面了解这一重要的无线通信技术。
蓝牙技术概述
蓝牙是一种利用低功率无线电,支持设备短距离通信的无线电技术,它工作在全球通用的2.4GHz ISM(Industrial(工业),Scientific(科学), Medical(医学)) 频段,使用IEEE802.11协议。为了对抗工作在2.4GHz频段的WIFI、ZigBee等设备干扰,蓝牙设备采用调频机制。
蓝牙类型
- 经典蓝牙(BR/EDR)
- 分为基本速率/增强数据速率(BR/EDR), 79个信道,在2.4GHz的(ISM)频段。
- 支持点对点设备通信,主要用于实现无线音频流传输,已成为无线扬声器、耳机和车载娱乐系统背后的标准无线电协议。
- 同时支持数据传输程序,包括移动打印。
- 低功耗蓝牙(BLE)
- 为低功耗操作而设计,工作在2.4GHz无授权ISM频段,共40个信道传输数据。
- 支持多种通信拓扑,包括点对点、广播和Mesh网络。
- 广泛应用于物联网(IOT)产品领域,支持设备定位技术,满足高精度室内定位服务的需求。
蓝牙协议
蓝牙协议主要分为两种,即基本速率(BR)和低功耗(LE),二者不互通,一般需要厂商支持二者协议,统称双模。
- BR(Basic Rate)
- BR是经典蓝牙,包括可选的EDR技术、交替射频的MAC层和PHY层扩展(简称AMP)。
- BR与EDR可以同时存在,但是BR/ERP和AMP仅可二选一。
- LE(Low Energy)
- 虽然BLE与经典蓝牙BR使用相同的2.4GHz无线电频率技术,但技术相差很大。
- BLE主要应用于物联网(IOT)产品领域。
BLE的协议层架构
- 物理层(Physical layer, PHY)
- 规定工作频段,40个RF Channel,其中3个广播信道,37个数据信道,GFSK调制方式,接收机灵敏,发射功率等。
- 通信双工模式采用TDD模式。物理层性能对硬件设备起决定性作用,特别是功耗、误码率、差分误差向量等。
- BLE工作在ISM频段的2400-24835MHz,占用40个射频信道,信道间隔2MHz,中心频率为2402+k*2 MHz。k=0,1,…,39。
- 包括3个广播信道(37,38,39)和37个数据信道(如下图)。
链路层(link layer, LL)
链路层是BLE协议栈的核心,负责自适应跳频地图、频点选择、数据发送slot和接收数据确认。
不负责数据解析工作,解析工作由上层负责。
接口层(Host Controller Interface, HCI)
HCI用于规范Host与Hostcontroller之间的通信协议和通信命令。
HCI层屏蔽了控制层,为协议层的上层提供了进入基带的统一方式。
HCI通过包的方式来传送数据、命令和事件,所有在主机和主机控制器之间的通信都以包的形式进行。
包括数据包(双向)、命令包(Host到Host controller)和事件包(Host controller到Host)。
通用访问协议(Generic access profile,GAP)
负责处理设备访问模式,包括被发现、建立连接、终止连接、初始化安全管理和设备配置。
GAP层可以扮演四种角色:
Broadcaster(广播者):不可以连接,一直发送广播
Observer(观察者):可以扫描广播,但是不能发起建立连接的设备
Peripheral(外设):可以被连接,在单个链路层连接中作为Server
Central(中央设备):可以扫描广播并发起连接,在单个或多个链路层中作为Client
逻辑链路控制和适配协议(Logical Link Control and Adaptation Protocol, L2CAP)
定义两个基本概念L2CAP 信道和L2CAP 信令,L2CAP信道是一个双向数据通道,通向对端设备上的某一特定的协议或规范。
支持数据的分割和重组,使得较大的报文可以在底层无线电中进行传输。
安全管理层(Security Manager,SM)
定义BLE通信两端设备的配对方法和密钥分发的工作模式,提供了加密、认证等安全保障。
使用AES加密算法,通过复杂的认证过程,保证密钥能够被安全传递到通信链路两端的设备中。
属性协议层(Attribute protocol,ATT)
在ATT层协议框架内,拥有一组属性的设备称为服务端(Server),读写该属性值的设备称为客户端(Client)。
Server和Client通过ATT PDU进行交互。
通用属性配置文件层(Generic Attribute profile, GATT)
GATT用来规范attribute中的数据内容,并运用group(分组)的概念对attribute进行分类管理。
BLE 连接都是建立在 GATT (Generic Attribute Profile)协议之上。
蓝牙架构
蓝牙架构主要分为三种方案:
- SOC蓝牙单芯片方案
- 半导体厂商半开源协议栈,把开发的蓝牙协议栈直接烧写到蓝牙芯片中(如CSRBC4/5, CSR8675 ,TI CC2540, NRF51xxx, NRF52xxx, ESP32xx等)。
- 此类芯片一般作为MCU使用,用于消费类电子,集成度高,可直接调整参数使用。
- SOC蓝牙+MCU方案
- 在集成好蓝牙芯片的基础上,通过特定的接口(UART居多),发送自定义的command来实现功能。
- 例如市面上常见的蓝牙串口模块。
- 蓝牙host+controller分开方案
- 应用在蓝牙多场景、多蓝牙协议设计中,比如蓝牙电话(HFP)、蓝牙音频(A2DP)、蓝牙音乐控制(AVRCP)、蓝牙电话本(PBAP)、蓝牙短信(MAP)等。