蓝牙软硬件架构介绍,有哪些细节需要了解?

摘要:liwen01 2025.04.05 前言 随着物联网的发展,蓝牙已融入到我们生活的方方面面:手机、平板、手环、耳机、音响、智能灯泡、智能门铃、摄像机、冰箱、空调、洗衣机、血糖仪、键盘、鼠标等等。 关于蓝牙相关的芯片、协议栈、应用方案也因产
liwen01 2025.04.05 前言 随着物联网的发展,蓝牙已融入到我们生活的方方面面:手机、平板、手环、耳机、音响、智能灯泡、智能门铃、摄像机、冰箱、空调、洗衣机、血糖仪、键盘、鼠标等等。 关于蓝牙相关的芯片、协议栈、应用方案也因产品需求的不同而存在很大的差异,因而导致关于蓝牙相关的知识相对比较离散。 (一) 蓝牙版本与类型 蓝牙与 WiFi 类似,WiFi 属于 IEEE 802.11,蓝牙早期属于 IEEE 802.15.1,后面才由 Bluetooth SIG 独立维护。 蓝牙与 WiFi 的发展基本相似。早期蓝牙追求高速率,现在蓝牙主打:低功耗、低成本、高可靠性。 在蓝牙追求高速率转变到低功耗这个过程中,出现了一些不能相互兼容的蓝牙版本。从技术的角度看,蓝牙的历史版本之间并不太优雅。 (1) 经典蓝牙 蓝牙 1.0 版本的时候速率是 721Kbps, 那时 Modem 速度也才 56Kbps,蓝牙速率远超用户需求。 随着互联网的快速发展,1999 年 WiFi1(802.11b) 支持 11Mbps,2003 年wifi3(802.11g)支持 54Mbps, 2009 年 WiFi4(802.11n) 支持 600Mbps。之后各版本均是以 Gbps 速率为单位。 与此同时的蓝牙,为了追求速率的提升,就在 BR(Basic Rate)的基础上开发了EDR(Enhanced Data Rate)技术。随后在 2009 年,蓝牙又引入了 WiFi 的物理层和 MAC 层,推出了AMP功能,速率达到了 24Mbps。 但是 BR/EDR 技术与外来的 AMP 并不兼容,只能 2 选 1 使用。 由于蓝牙不能直接连接到互联网,且更加偏向于短距离,点对点连接的应用场景,与 WiFi 相比,蓝牙的优势并不明显。 速率越高,功耗自然就会更大。随着物联网的发展,设备对功耗越加敏感。为了区别于 WiFi,蓝牙开始布局低功耗应用场景。 在2010年,蓝牙推出了低功耗蓝牙BLE, 也就是蓝牙4.0版本。 经典蓝牙与低功耗蓝牙之间也不兼容,所以就有了单模蓝牙和双模蓝牙的说法。 单模蓝牙:单一传统蓝牙或是单一低功耗蓝牙。即 1 个 Host 结合 1 个 Controller。 双模蓝牙:同时支持两种不同模式的蓝牙。即 1 个 Host 结合多个 Controller。 (2) 低功耗蓝牙 低功耗蓝牙主要应用于小数据量传输,比如:温湿度采集器、手环、心率检测、血氧测试、电子标签、宠物防丢、智能灯泡、门锁等等物联网设备。 它们一般是将采集到的信号发送到服务端(比如手机),发完之后设备就进入休眠状态以节省功耗。 在双模设备中,如果传输的数据量比较大,蓝牙会切换为经典模式,比如文件传输、音乐播放等。 BLE 蓝牙目前也支持音乐传输,BLE Audio (基于 Bluetooth 5.2) 通过 LC3 编解码器提升了音质 ,但延迟和带宽仍弱于经典蓝牙。 后续会专门介绍蓝牙耳机的实现原理。 (二) 蓝牙软件协议栈 我们把某个协议的实现代码称为协议栈(protocol stack),蓝牙协议栈就是实现蓝牙协议的代码。 简单来说,蓝牙协议栈就是用来对你的应用数据进行层层封包,以生成一个满足蓝牙协议的空中数据包。 Controller(控制器)部分:包含PHY(物理层)和LL(链路层),并通过HCI和上层通信,主要负责底层无线收发与连接管理。 Host(主机)部分:包含L2CAP、SMP、ATT、GATT、GAP等协议层,为应用提供数据传输、安全、属性组织和访问以及连接管理等功能。 Profiles(应用层):基于 GATT 定义各种标准化或自定义的服务与特征,用于实现特定应用场景。 从上图可以看出,蓝牙协议栈是连接芯片(射频)和应用的桥梁,是实现整个蓝牙应用的关键 目前开源的蓝牙协议栈有: 还有些非开源的蓝牙协议栈,它们主要由商业公司开发和维护,通常是为了提供更好的技术支持、认证、优化和专有功能,比如 windows 和苹果设备。 这里只对蓝牙的协议栈做简单的介绍,更详细的分析放到后面单独介绍。 (三)蓝牙硬件架构 蓝牙软件架构,其实主要也就是蓝牙协议栈。如果要做蓝牙开发,基于不同的硬件方案架构,需要对蓝牙协议栈了解的深度也不一样。 (1) SOC单芯片方案 架构特点: 蓝牙协议栈(Host + Controller)和应用处理器集成在同一颗芯片内。 适用于低功耗、小尺寸、低成本的应用场景。 典型芯片如 Nordic nRF52 系列、Dialog DA14531、TI CC2640。 优势: 设计简单,开发成本低,功耗优化较好。
阅读全文