当前位置: 首页 > news >正文

蓝牙技术概览

摘要

本文对蓝牙硬件架构、协议栈、应用协议类型等进行概要描述,内容总结于蓝牙联盟官网蓝牙规范文件,本文只用于蓝牙技术扫盲,具体细节请参考官网(Bluetooth® Technology Website)

蓝牙概念

蓝牙名字来源于第十世纪一位英勇的丹麦王子—哈拉尔·蓝牙(Harald Bluetooth),他带领人民平定统一了当时周围几个动乱的国家,终结了当地纷乱的海盗时代,蓝牙一名在那时象征着统一与连接。
1996年,爱立信、诺基亚、东芝、IBM、英特尔几位电子通讯领域的巨头,希望能够开发出一种标准的短距离的无线传输技术,希望这门技术能像蓝牙王一样,将当时的无线通讯领域统一起来:

  • 目的:提供一种低功耗、低成本的无线连接方式,主要用于个人区域网络(PAN),支持设备之间的短距离通信。
  • 应用范围:包括耳机、键盘、鼠标、智能手机与电脑间的文件传输、物联网设备等。
  • 工作频段:2.4 GHz ISM (I工业、S科学、M医学)频段,与 Wi-Fi 使用的频段相同,但两者使用不同的调制方式和协议来避免干扰。

主要版本及特性

版本特性
Bluetooth 1.x最初版本,奠定基础架构,数据传输速率低(721Kbps),单双工,功耗高,距离10米
Bluetooth 2.0 + EDR引入增强数据速率(EDR),传输速率提高到3Mbps,功耗降低,全双功,距离10米
Bluetooth 3.0 + HS引入高速模式,最高可达24Mbps,可以传输视频,距离100米
Bluetooth 4.0包含了低功耗蓝牙(BLE),功耗低、延时低、成本低,AES-128加密,适合物联网设备,24Mbps,s距离100米
Bluetooth 5.x40Mbps,大广播包,支持mesh,智能家居场景更友好,内定定位误差1米,优化数据传输可靠性,可应用于医疗等可靠场景中,距离300米

蓝牙版本向下兼容

常见蓝牙技术方案

  • SOC单芯片方案,NRF52xxx,乐鑫ESP32等,将蓝牙协议栈直接设计到芯片中,再配合芯片的串口、ADC等其他外设,就能完成产品需求的功能。
  • SOC蓝牙+MCU方案,在SOC单芯片基础上,MCU和蓝牙模块之间通过串口等通讯方式,使用预定义的相关指令控制蓝牙进行工作。
  • 主机+控制器方案,最复杂蓝牙方案,能实现最多的蓝牙功能,例如,手机、汽车或者功能复杂的蓝牙手表等。

系统架构

蓝牙的核心系统由一个主机(Host)和多个控制器(Controller)组成,两者靠HCI(主机控制接口 Host Controller Interface)接口连接,主机是蓝牙协议栈(逻辑实体),控制器是指蓝牙芯片(物理实体),芯片的模式包含传统蓝牙和低功耗蓝牙两种类型,根据芯片支持模式的数量可以分为:

  • 单模蓝牙芯片:单一传统蓝牙、单一低功耗蓝牙
  • 双模蓝牙芯片:同时支持传统蓝牙和低功耗蓝牙
    主机和控制器之间的组合逻辑可为:
    在这里插入图片描述

核心系统架构如图
在这里插入图片描述

控制器

射频器Radio

提供射频功能,负责物理通道的信息收发

链路控制器Link Controller

控制传输速率、传输功率等射频参数,对蓝牙数据包进行编码和解码

基带资源管理器Baseband Resource Manager

负责无线介质的所有访问,主要包含两个功能:通讯调度、协商接入合约。
通讯调度:蓝牙通讯是时分复用的,通讯被划分为很多时间槽,将基带资源分配好,确保不同应用可以有效共享无线资源。
协商接入合约:与通讯实体协商接入合约,合约就是约定的通讯服务质量(Qos),音频协议、文件传输、串口模拟等实体对带宽、延迟、数据速率等服务质量,有不同的要求。

等时适配层ISOAL Isochronous Adaptation Layer

对上下层数据包大小及传输间隔进行适配,等时性传输:在固定时间间隔内可靠传输完数据;数据包大小匹配:上层与下层数据包大小不同时,自动完成分片/重组、分段/重装

操作说明
分片 Fragmentation数据包过大时,拆分成各个小包
重组 Recombination将分散的各个小数据包重新组合成完整的数据包
分段 Segmentation类似分片,但更加强调按照逻辑边界切分数据,例如音频包
重装 Reassembly将多段数据按照顺序重新组装为原始数据流

信道探测模块 Channel Sounding

负责创建、修改、释放信道探测物理链路,提供距离估计和攻击检测功能,使用蓝牙实现高精度测距,例如数字汽车钥匙、室内导航等;监测是否存在中继攻击(按照距离是否跳变的原理)。

链接管理器 Linker Manager

蓝牙设备连接的总指挥官,负责建立和维护设备之间的连接关系,使用BR/EDR的链路管理协议LMP和LE中的链路管理协议LL,实现启用加密传输、调整物理链路发射功率、调整Qos合约。

设备管理器 Device Manager

控制设备级行为的中枢模块,控制设备发现、可被发现、可连接、发起连接、配对与绑定的管理,是“即插即用”和动态组网的关键组件。

HCI接口层

使用硬件接口UART/USB/SDIO实现主机与控制器的通讯,主要包含:

  • H2 USB
  • H4 UART
    • CMMAND 主机协议栈发送给控制器的命令
    • EVENT 控制器上报给主机协议栈的事件
    • ACL 双向交互的上下交换的普通数据
    • SCO 双向交互的音频数据
    • ISO LE用的数据包
  • H5 UART
  • BCSP 串口
  • SDIO 安全数字传输
    主机和控制中都有对应的HCI各个通讯方式的驱动
    在这里插入图片描述

主机

L2CAP资源管理器

位于主机的L2CAP层(Logical Link Control and Adaptation Protocol),负责在有限资源下保障服务质量,协调数据传输的优先级和合规性。
上层应用数据(SDU)会被L2CAP分段多个PDU数据,然后PDU数据通过接口发送到控制器上,控制器缓冲区和HCI接口带宽都有限,某个高带宽应用传输时可能会阻塞其他应用,此时需要L2CAP进行调度,使有Qos的通道能按时传输。
附带流量合规性监测,例如监测某通道实际是否符合Qos合约。但是该处只是定义应该调度,但没有明确调度的方法。
在这里插入图片描述

信道管理器Channel Manager

创建、管理和关闭 L2CAP 信道,将信道绑定到上层应用上,实现设备间端到端的连接,且满足Qos要求,实现蓝牙多服务并发。L2CAP信道是各主机之间端到端的逻辑通路,每个信道对应一个特定的服务或者数据流,例如有音频控制、音频流、文件传输、串口模拟等。

安全管理器协议SMP Security Manager Protocol

低功耗LE蓝牙通讯的安全中枢,使用专用信道与对端设备协商并管理加密密匙、身份密匙,实现身份认证、隐私保护,与底层LinkManager协作完成底层安全操作,建立完整的安全连接、配对、绑定、隐私保护的基础。

属性协议ATT Attribute Protocol

低功耗LE使用L2CAP固定信道,实现ATT客户端与ATT服务器之间的点对点的CS通讯模式,属性是什么:设备的各种数据,属性字段包含:

  • 属性句柄 唯一16位编号,用于定位该属性
  • 属性类型 心率、设备名称等等
  • 正文 数据内容
  • 权限 访问权限,RO WO RW等

通用属性协议GATT Generic Attribute Profile

低功耗蓝牙(LE)生态系统的“应用语言”,构建在ATT之上的应用层框架,ATT 负责“怎么传”,GATT 规定“传什么、怎么组织”。GATT定义了ATT服务器中 服务、特征、属性的层次结构:

概念说明
Service(服务)一组相关功能的集合,例如“心率服务”、“电池服务”。用 UUID 标识。
Characteristic(特征)服务中具体数据项,包含具体数值,例如心率值,并设置访问权限
Attribute(属性)GATT 中的最小数据单元,每个服务和服务内的字段都以属性形式存在,由 Handle 唯一标识。
GATT使用标准接口:发现 读取 写入 通知
  • 发现:查找远端设备提供哪些服务和特征
  • 读取:获取某个特征的当前值
  • 写入:设置某个特征的当前值
  • 通知:接收服务器主动推送的数据
    以上操作使用ATT实现,只是GATT将其封装成高级API。
    在这里插入图片描述

服务发现协议SDP Service Discovery Protocol

经典蓝牙(BR/EDR)系统中实现服务发现的核心机制,使用固定信道,使客户端按照服务属性搜索所需服务。
服务属性:每个蓝牙服务在SDP中被描述为“服务记录(service record)”,属性中包含服务类、服务列表、服务名称、服务描述、服务提供者、端口号,可以使用这些属性字段进行精确查找。例如,搜索是否有音乐服务、是否支持文件传输。但SDP只负责发现服务,不定义发现后的访问方式,具体方式由具体服务决定。
在这里插入图片描述

串口仿真协议RFCOMM Serial Port Emulation

在传统经典蓝牙上模拟处RS-232的串口行为,底层是L2CAP

其他协议:

  • 对象交换协议OBEX Object Exchange ,广泛用于在设备之间传输文件、同步数据或交换对象(如名片、日历事件、消息等)。
  • 蓝牙免提协议 HFPHands-Free,将手机的通话转移到耳机、汽车上。
  • A2DP (Advanced Audio Distribution Profile),高质量音频流从一个设备传输到另一个设备的标准方法,通常用于无线耳机或音箱与音源设备(如手机、电脑)之间的音频传输
  • HID (Human Interface Device Profile),HID 允许蓝牙设备作为输入设备(如键盘、鼠标)工作,并且可以与操作系统或其他蓝牙设备进行交互。
  • AVRCP (Audio/Video Remote Control Profile),AVRCP 用于控制多媒体播放设备(如音乐播放器),它允许遥控器发送命令给媒体播放器来执行播放、暂停、快进等操作。
  • MAP (Message Access Profile) MAP 让设备能够访问短信和电子邮件消息。这对于车载系统特别有用,因为它可以让驾驶员安全地阅读和回复短信,无需手动操作手机。

收发数据流

经过面对主机、控制器的组成分析,可以清楚的了解数据是如何从上层逐渐到下层的,总体数据流示意图如下所示
在这里插入图片描述

http://www.dtcms.com/a/322681.html

相关文章:

  • [Oracle] SUBSTR()函数
  • 轻量化阅读应用实践:21MB无广告电子书阅读器测评
  • Spring Boot 应用测试全指南:从单元测试到集成测试的实战之路
  • 密集遮挡场景识别率↑31%!陌讯轻量化部署方案在智慧零售的实战解析
  • ppt 生成视频的 ai 大模型全面解析
  • ORA-600 kcratr_nab_less_than_odr和ORA-600 4194故障处理---惜分飞
  • 书生浦语第五期-L1G4-InternLM 论文分类微调实践(XTuner 版)
  • 机器翻译中的语言学基础详解(包括包括语法、句法和语义学等)
  • HashTable, HashMap, ConcurrentHashMap
  • SpringBoot 集成 MapStruct
  • 10. 怎么实现深拷贝?
  • 大模型SSE流式输出技术
  • C++ 类模板
  • 使用langchain框架开发一个能调用工具的聊天助手Demo
  • MCU-基于TC397的启动流程
  • SQL基本
  • “自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板
  • 2022 RoboCom 世界机器人开发者大赛-本科组(国赛)
  • 【阿里巴巴大数据实践之路学习记录】第十章-维度设计
  • 算法_python_学习记录_02
  • Docker大全
  • 通过 Docker 运行 Prometheus 入门
  • 开源智能手机安全相机推荐:Snap Safe
  • 数据结构(9)——排序
  • 【C++上岸】C++常见面试题目--数据结构篇(第十五期)
  • 搜索算法经典案例
  • SpringSecurity过滤器链全解析
  • navicat 连接docker容器里面mysql服务失败解决
  • 传输线的瞬时阻抗
  • UE破碎Chaos分配模型内部面材质