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