蓝牙基础之蓝牙软硬件架构介绍

笔记哥 / 04-21 / 36点赞 / 0评论 / 223阅读
**liwen01 2025.04.05** ## 前言 随着物联网的发展,蓝牙已融入到我们生活的方方面面:手机、平板、手环、耳机、音响、智能灯泡、智能门铃、摄像机、冰箱、空调、洗衣机、血糖仪、键盘、鼠标等等。 关于蓝牙相关的芯片、协议栈、应用方案也因产品需求的不同而存在很大的差异,因而导致关于蓝牙相关的知识相对比较离散。 ## (一) 蓝牙版本与类型 ![](https://cdn.res.knowhub.vip/c/2504/21/2db45f46.png?G1UAAETn9LwULGBw3%2bkOtsSpiWsGKtIIKvWs1%2fP%2f%2b1xE7xdgaL5nHyvOh1%2f0sYLMrLkRGMaKFMDFpWoVKQns0CZFPO8Z) 蓝牙与 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。 ![](https://cdn.res.knowhub.vip/c/2504/21/f6926e9a.png?G1UAAER17rxgo1Adfice0wSBBJuBijSCSj3r9fz%2f2pfI%2bzkUJd6j9en7wy9any4kq1GgoBaEAE2WTz0sI6SKYkZajms4) ### (2) 低功耗蓝牙 低功耗蓝牙主要应用于小数据量传输,比如:温湿度采集器、手环、心率检测、血氧测试、电子标签、宠物防丢、智能灯泡、门锁等等物联网设备。 它们一般是将采集到的信号发送到服务端(比如手机),发完之后设备就进入休眠状态以节省功耗。 在双模设备中,如果传输的数据量比较大,蓝牙会切换为经典模式,比如文件传输、音乐播放等。 BLE 蓝牙目前也支持音乐传输,BLE Audio (基于 Bluetooth 5.2) 通过 LC3 编解码器提升了音质 ,但延迟和带宽仍弱于经典蓝牙。 后续会专门介绍蓝牙耳机的实现原理。 ## (二) 蓝牙软件协议栈 我们把某个协议的实现代码称为协议栈(protocol stack),蓝牙协议栈就是实现蓝牙协议的代码。 简单来说,蓝牙协议栈就是用来对你的应用数据进行层层封包,以生成一个满足蓝牙协议的空中数据包。 ![](https://cdn.res.knowhub.vip/c/2504/21/94c67127.png?G1UAAETn9LwUqBJh3%2bkOtsSpiWsGKtIIKvWs1%2fP%2f%2b1xE7xdg1HzPPlacD7%2foYwWpqpsSGMoVKYDFSitQsSTVXByuLe8Z) - **Controller(控制器)** 部分:包含 **PHY**(物理层)和 **LL**(链路层),并通过 **HCI** 和上层通信,主要负责底层无线收发与连接管理。 - **Host(主机)** 部分:包含 **L2CAP、SMP、ATT、GATT、GAP** 等协议层,为应用提供数据传输、安全、属性组织和访问以及连接管理等功能。 - **Profiles(应用层)**:基于 GATT 定义各种标准化或自定义的服务与特征,用于实现特定应用场景。 从上图可以看出,蓝牙协议栈是连接芯片(射频)和应用的桥梁,是实现整个蓝牙应用的关键 **目前开源的蓝牙协议栈有**: ![](https://cdn.res.knowhub.vip/c/2504/21/80d5e6a5.png?G1QAAMTsdJxIJF6j26hD2jvFHc2ARBVBpZ71es9Z%2byb6fheWHJ%2fR%2bvT94Q%2btTycA1UDCAs4IXjiZXhBlDZZZa7GCuIYD) 还有些非开源的蓝牙协议栈,它们主要由商业公司开发和维护,通常是为了提供更好的技术支持、认证、优化和专有功能,比如 windows 和苹果设备。 ![](https://cdn.res.knowhub.vip/c/2504/21/83edf909.png?G1UAAER17rxgZVCcfice0wSBBJuBijSCSj3r9fz%2f2pfI%2b7lCS7xH69P3h1%2b0Pl1InkZRKFEQgiJZNliqCCmjGqg84hoO) 这里只对蓝牙的协议栈做简单的介绍,更详细的分析放到后面单独介绍。 ## (三)蓝牙硬件架构 蓝牙软件架构,其实主要也就是蓝牙协议栈。如果要做蓝牙开发,基于不同的硬件方案架构,需要对蓝牙协议栈了解的深度也不一样。 ### (1) SOC单芯片方案 ![](https://cdn.res.knowhub.vip/c/2504/21/60f32f8a.png?G1QAAMTsdJxIPGmi26hD2jvFHc2ARBVBpZ71es9Z%2byb6fgejxGe0Pn1%2f%2bEPr00lEqgmBIVwQPDhZNlysGtQ0FVSucQ0H) **架构特点**: - 蓝牙协议栈(Host + Controller)和应用处理器集成在同一颗芯片内。 - 适用于低功耗、小尺寸、低成本的应用场景。 - 典型芯片如 Nordic nRF52 系列、Dialog DA14531、TI CC2640。 **优势**: - 设计简单,开发成本低,功耗优化较好。 - 适用于嵌入式系统,无需额外的 MCU 处理数据。 **典型应用**: - 蓝牙耳机、智能手环、无线传感器、低功耗 IoT 设备。 这种方案一般使用在:蓝牙耳机、智能手环、无线传感器、低功耗 IoT 设备。 从软件开发的角度看,这种方案与普通 MCU 开发相似,因为芯片厂家已经把蓝牙协议栈做了封装,我们只需要调用接口使用就可以了。 ### (2) SoC 蓝牙 + MCU 方案 ![](https://cdn.res.knowhub.vip/c/2504/21/988c8281.png?G1UAAOQ8bZy4P45t1OHaRJHQDFSkEVTqWa%2f33n0awPcHI2t%2bZh8rzodf9LECzKy6ASMbKlJgJBdXdZNESKWWouJ5zwA%3d) **架构特点**: - 蓝牙协议栈和射频部分(Host + Controller)集成在蓝牙 SoC 内,MCU 负责上层应用逻辑和数据处理。 - 适用于计算需求较高的场景,比如复杂的数据处理或多协议支持。 - 典型芯片如 Cypress CYW20719。 **优势**: - MCU 处理应用层任务,蓝牙 SoC 专注于通信,提高系统性能。 - 灵活性较高,可以选用不同性能的 MCU 适配需求。 **典型应用** - 智能家居、工业控制、医疗设备、蓝牙网关。 这种蓝牙方案一般是把蓝牙做成模块形式,MCU只需要通过串口发送响应的 AT 指令来实现蓝牙的不同功能。 对于软件开发来说,这是最简单的一种开发方式,方案的局限就是比较难实现一些自定义的蓝牙功能。 ### (3) 蓝牙 Host + Controller 分离方案 ![](https://cdn.res.knowhub.vip/c/2504/21/3d2e2f7b.png?G1UAAER17rxgXWEKfice0wSBBJuBijSCSj3r9fz%2f2pfI%2bznBHO%2fR%2bvT94RetTxczq8WEoCEjBEJLqlDWI1AzoDhTims4) **架构特点**: - 蓝牙协议栈拆分为 Host(高层协议,如 L2CAP、GATT、GAP)和 Controller(低层协议,如 PHY、Link Layer)。 - Host 运行在主机(MCU/CPU)上,而 Controller 作为独立模块(蓝牙芯片或蓝牙模块)。 - 通过 HCI(Host Controller Interface)进行通信,常见接口有 UART、SPI、USB。 **优势**: - 适用于计算能力较强的设备,如智能手机、PC、车载系统等。 - Host 端可以更灵活地管理多个蓝牙连接,提高可扩展性。 **典型应用**: - 智能手机、笔记本电脑、车载娱乐系统、嵌入式网关设备。 这种方案比较常见的就是我们电脑外接的 USB 蓝牙适配器。USB 适配器只实现了(Controller)的功能。 Host 和应用层由 PC 端根据不同的业务需求去实现蓝牙的不同功能。 ### (4) 蓝牙 + Wi-Fi 方案 ![](https://cdn.res.knowhub.vip/c/2504/21/b41c0a46.png?G1QAAOQ5d14KEAj2nXZQm6mbNgMSVQSVetbrPWftG%2bD7g5ElP6P1GfvDH1qfAapaXYGRFQXJM5JflbyQJZNSlcw9rxE%3d) **架构特点**: - 蓝牙和 Wi-Fi 共享相同的射频前端,通常由同一颗芯片实现共存。 - 适用于需要同时使用 Wi-Fi 和蓝牙的设备,如智能家居、智能音箱。 - 典型芯片如 Broadcom BCM4375、Qualcomm QCA9377,AIC8800M40B **优势**: - 优化射频共存,降低干扰,提高整体通信性能。 - 适用于高吞吐量和低功耗结合的应用场景。 **典型应用**: - 智能手机、智能电视、物联网网关、车载娱乐系统。 目前 IPC 摄像机中支持蓝牙配网的设备都基本是使用这种方案。 在配网的时候使用蓝牙将路由器 ssid、 password 等信息由手机传递到设备中。 WiFi 模块在根据蓝牙接收到的 ssid、 password 去连接路由器,之后的音视频等数据都是通过 WiFi 传递到 IOT 平台或手机上。