蓝牙学习
本文最后更新于52 天前,其中的信息可能已经过时,如有错误请发送邮件到2624241828@qq.com

OSI七层模型

OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更好地理解和管理网络通信的过程。
OSI定义了网络互连的七层框架

  • 应用层(Application Layer):这是网络体系结构中的最顶层,提供用户接口和应用程序之间的通信服务。在这一层,用户可以访问各种网络应用程序,如电子邮件、文件传输和远程登录。
  • 表示层(Presentation Layer):该层负责数据的格式化、加密和压缩,以确保数据在不同系统之间的交换是有效的和安全的。它还提供了数据格式转换和语法转换的功能。\
  • 会话层(Session Layer):会话层管理应用程序之间的通信会话,负责建立、维护和终止会话。它还提供了数据的同步和检查点恢复功能,以确保通信的完整性和持续性。
  • 传输层(Transport Layer):传输层为应用程序提供端到端的数据传输服务,负责数据的分段、传输控制、错误恢复和流量控制。它主要使用 TCP(传输控制协议)和 UDP(用户数据报协议)来实现这些功能。
  • 网络层(Network Layer):网络层负责数据包的路由和转发,以及网络中的寻址和拥塞控制。它选择最佳的路径来传输数据包,以确保它们能够从源主机到目标主机进行传输。
  • 数据链路层(Data Link Layer):数据链路层提供点对点的数据传输服务,负责将原始比特流转换为数据帧,并检测和纠正传输中出现的错误。它还控制访问物理媒介的方式,以及数据帧的传输和接收。
  • 物理层(Physical Layer):物理层在物理媒介上传输原始比特流,定义了连接主机的硬件设备和传输媒介的规范。它确保比特流能够在网络中准确地传输,例如通过以太网、光纤和无线电波等媒介。

TCP/IP四层模型

  • 应用层(Application Layer)类似于 OSI 模型中的应用层,负责处理用户与网络应用程序之间的通信。它包括诸如 HTTP、FTP、SMTP 等协议,用于实现不同类型的网络服务和应用。
  • 传输层(Transport Layer):与 OSI 模型中的传输层相对应,提供端到端的数据传输服务。在 TCP/IP 模型中,主要有两个协议:TCP(传输控制协议)和 UDP(用户数据报协议),用于确保可靠的数据传输和简单的数据传输。
  • 网络层(Internet Layer):相当于 OSI 模型中的网络层,负责数据包的路由和转发。它使用 IP(Internet Protocol)协议来定义数据包的传输路径,并处理不同网络之间的通信。
  • 网络接口层(Link Layer):与 OSI 模型中的数据链路层和物理层相对应,负责管理网络硬件设备和物理媒介之间的通信。它包括以太网、Wi-Fi、蓝牙等各种物理层和数据链路层协议。

应用层常见协议

  • HTTP(HyperText Transfer Protocol):用于在客户端和服务器之间传输超文本数据,通常用于 Web 浏览器和 Web 服务器之间的通信。
  • FTP(File Transfer Protocol):用于在客户端和服务器之间传输文件,支持上传和下载文件的功能。
  • SMTP(Simple Mail Transfer Protocol):用于在邮件服务器之间传输电子邮件,负责发送邮件。
  • POP3(Post Office Protocol version 3):用于从邮件服务器上下载邮件到本地计算机,负责接收邮件。
  • IMAP(Internet Message Access Protocol):也是用于接收邮件的协议,与 POP3 类似,但提供了更丰富的功能,如在服务器上管理邮件等。
  • DNS(Domain Name System):用于将域名解析为对应的 IP 地址,从而实现域名和 IP 地址之间的映射。
  • HTTPS(HyperText Transfer Protocol Secure):是 HTTP 的安全版本,通过 SSL/TLS 加密传输数据,保证通信过程中的安全性。
  • SSH(Secure Shell):用于远程登录和执行命令,提供了加密的网络连接,保证了通信的安全性。
  • SNMP(Simple Network Management Protocol):用于网络设备之间的管理和监控,可以实现对网络设备的远程配置和监控。
  • Telnet:用于远程登录和执行命令,类似于 SSH,但不提供加密功能,通信数据不安全。

传输层常见协议

  • TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输服务,确保数据的可靠性、顺序性和完整性。TCP适用于对数据传输质量要求较高的场景,如文件传输、网页浏览等。
  • UDP(User Datagram Protocol):提供无连接的数据传输服务,不保证数据的可靠性,也不保证数据的顺序性和完整性。UDP适用于实时性要求较高、对数据传输质量要求不那么严格的场景,如音视频传输、在线游戏等。

网络层常见协议

  • IP(Internet Protocol):是互联网中最基本的协议,用于在网络中传输数据包。IP协议定义了数据包的格式、寻址方式和路由选择等信息,是整个互联网的基础。
  • ICMP(Internet Control Message Protocol):用于在IP网络中传递控制消息和错误信息。ICMP通常用于网络设备之间的通信,如路由器和主机之间的通信,以及用于检测网络连通性和故障诊断。
  • ARP(Address Resolution Protocol):用于将IP地址映射为MAC地址(物理地址)。ARP协议在局域网内部使用,通过发送ARP请求获取目标设备的MAC地址,从而实现数据包的传输。
  • RARP(Reverse Address Resolution Protocol):与ARP相反,用于将MAC地址映射为IP地址。RARP协议通常用于无盘工作站等设备,可以根据MAC地址获取对应的IP地址。
  • IPv6(Internet Protocol version 6):是IP协议的下一代版本,用于解决IPv4地址空间不足的问题。IPv6采用128位地址长度,提供了更大的地址空间,支持更多的设备连接到互联网。

网络接口层常见协议

  • 以太网协议(Ethernet):是一种常见的局域网技术,使用MAC地址进行帧的传输和接收。
  • 无线局域网协议(Wi-Fi):用于无线局域网的数据传输,通常基于IEEE 802.11标准。
  • 点对点协议(PPP):用于建立点对点连接的协议,通常用于拨号连接和虚拟专用网(VPN)等场景。
  • 数据链路层交换协议(DLC):用于在数据链路层进行数据交换和管理的协议,如HDLC、SLIP和PPP等。

蓝牙协议架构分析

从下往上来说

物理层 (Radio Layer)

Radio(射频层):将上层数据转换为信号发送出去,将接收的数据转换成信号返回给上层

基带与链路控制层 (Baseband and Link Control Layer)

Baseband(基带层):对蓝牙通信的建立、维护和断开提供了基本机制(链路管理、数据处理和通信控制)

  • 管理蓝牙设备之间的连接过程,包括扫描可用设备、广播、配对和建立连接。它还管理连接的断开。
  • 实施蓝牙的跳频技术,使得蓝牙通信在2.4 GHz频段中能够减少干扰。在蓝牙通信过程中,设备会定期在多个频道之间跳转。

链路管理层 (Link Manager Protocol, LMP)

Link Manage(链路管理层):负责建立并管理蓝牙连接。
Attention: Baseband和LM都有建立和断开链接的功能不过需要注意的是Baseband处理的是物理电路的建立和断开。它确保无线电频率上的通信信号得以传输和接收。在这一层,数据被打包成合适的帧格式,并且有一定的流量控制以确保有效传输。而LM是在逻辑层面上处理连接的建立、管理和断开。这包括初始的设备查询、配对、身份验证、加密等。LM协商连接的详细参数,例如连接间隔、超时时间、角色切换等。

逻辑链路控制和适配协议层 (L2CAP)

L2CAP层(Logical Link Control and Adaptation Protocol):位于Baseband和高层协议之间,由于Baseband层对数据包的大小有限制,L2CAP层能够将较大的数据包分段为更小的数据包以进行传输,并在接收端重新组合这些数据包。所以L2CAP层的主要作用就是将高层数据进行封装打包成下层跟容易接收的形式。

高层协议

  • RF COMM(Radio Frequency Communication):它是蓝牙协议栈中的一个传输协议,用于模拟串行数据通信。这意味着 RFCOMM 提供了一个虚拟的串行端口以实现无线通信。
  • OBEX(Object Exchange):主要用于设备间的结构化数据对象的交换。说白了就是用来传输数据(推送,如联系人、日历事件、图片等)。
  • PPP 和 BNEP:这是两个协议,PPP 是一个在直接连接的两个网络节点之间建立数据链路的协议(点对点连接)。BNEP 用于在两个蓝牙设备之间传输封装的网络数据包,可用于创建蓝牙个人局域网 (PAN)。这两个协议的上层是tcp\udp与ip协议这就比较好理解了,上层的网络数据由PPP/BNEPl来进行封装并实现点对点的传输。
  • AT modem commands主要作用是调制解调,应用场景如下:
  1. Hands-Free Profile (HFP) 和 Headset Profile (HSP):这两个配置文件定义了无线耳机、汽车套件和手机之间的通信。为了实现这些功能(如拨打电话、接听电话、调整音量等),手机和无线耳机/汽车套件之间会交换 AT 命令。
  2. 通信控制:通过 AT 命令,设备可以查询另一设备的状态、发起操作或配置设备。例如,检查电池电量、设置扬声器音量、拨打电话号码等。
  • TCS BIN(Telephony Control Protocol Specification Binary)设计用来支持蓝牙设备之间的语音和电话服务的建立和控制。TCS BIN 主要在呼叫控制、多方通话、DTMF(双音多频)等几个方面发挥作用。
  • SDP(Service Discovery Protocol):这个协议是蓝牙协议栈中的一个关键协议,设计用于在蓝牙设备之间的一个发现服务。其主要作用如下:
  1. 服务发现:当两个蓝牙设备首次配对时,SDP 用于查询和列出远程设备上可用的蓝牙服务。例如,一个手机可以查询耳机是否支持高级音频分发配置文件 (A2DP) 以进行立体声音频流。
  2. 获取服务属性:除了识别服务外,SDP 还提供关于每个服务的详细信息,如服务的版本、通道号、特定功能等。
  3. 动态服务发现:设备可能会在其生命周期内增加或减少蓝牙服务。通过 SDP,设备可以在任何时间动态地发现其他设备当前提供的服务

应用程序

  • Audio APP:音频传输,这个协议有点特殊它是直接通过Audio协议像基带层发送音频数据。
  • File APP:文件传输。
  • NW APP:网络数据传输。
  • Tel App:电话数据传输。
  • Mgmt App:设备管理、连接管理。

蓝牙协议栈

蓝牙技术概述

蓝牙协议包含两种技术:BR(basic rate基本速率)和LE(low energy低功耗),两者虽然均具备搜索管理,链接管理等基础机制,但技巧体系活像地理,无法直接互通

BR

BR 是蓝牙的经典技术,可包含两类扩展手艺:可选的 Enhanced Data Rate(EDR,增强数据速率),以及交替采用的 Alternate MAC and PHY layer extension(AMP,交替 MAC 与 PHY 层扩展)。

  • BR:作为早期蓝牙技术,其最高传输速率为 721.2Kbps
  • EDR:BR的增强版本,通过技术升级将理论速率提升至 2.1Mbps,属于 BR 的可选扩展,可与 BR 同时存在
  • AMP:进一步提升速率至理论54Mbps,由于其物理层和mac层与BR/EDR差异显著,两者无法同时工作需交替应用
    补:在蓝牙技术中,AMP 是 Alternate MAC and PHY layer extension的缩写,中文译为交替 MAC 与 PHY 层扩展。它是经典蓝牙(BR 技术)的一种扩展技术,主要作用是提升数据传输速率 —— 理论上可达到 54Mbps,远高于基础的 BR(721.2Kbps)和 EDR(2.1Mbps)。不过,由于 AMP 的物理层(PHY)和媒体访问控制层(MAC)与 BR/EDR(基本速率 / 增强信息速率)差异显著,两者无法同时工作,必须 “交替运用”(即同一时间只能启用 BR/EDR 或 AMP 中的一种),这也是其名称中 “Alternate(交替)” 的由来。

LE

不断提升传输速率,但高速率往往伴随高能耗。而许多场景对速率要求不高,却极度关注功耗,蓝牙低功耗技能(LE)由此诞生。就是BR 技术的演进方向
LE 是蓝牙技术联盟专为低功耗场景设计的个人局域网技术,广泛应用于医疗保健、运动健身、信标、安防、家庭娱乐及 IoT(物联网)产品领域。
尽管 LE 与经典蓝牙(BR/EDR)同属蓝牙体系,且均使用 2.4GHz 无线电频率(双模设备可共享天线),但两者技术差异极大,堪称 “同名不同技”:LE 采用更简单的调制体系,功耗远低于经典蓝牙

技术规范经典蓝牙(BT,含 BR/EDR)低功耗蓝牙(BLE)
无线电频率2.4GHz2.4GHz
通信距离约 10 米最大 100 米
发送数据耗时100ms<3ms
响应延时约 100ms6ms
安全性64/128-bit 及应用层自定义128-bit AES 及应用层自定义
能耗(参考值)100%1%-50%
空中传输速率1-3Mb/s1Mb/s
主要应用场景手机、游戏机、耳机、汽车、PC手机、游戏机、PC、智能穿戴、汽车、家用电子

补:BT、BR、Basic Rate、EDR、BR/EDR、AMP一般统统都是经典蓝牙。
低功耗蓝牙。就是BLE、Bluetooth Low Energy 、Bluetooth Smart、LE指的
双模蓝牙是经典蓝牙和低功耗蓝牙的结合,它可能同时拥护这两种手艺。

蓝牙协议栈架构概述

协议栈(protocol stack)

通信技术中,协议栈是指一组按层次结构组织的通信协议集合,每层协议负责特定的通信功能,且上层协议依赖下层协议给予的服务,共同实现不同设备或系统之间的有序可靠通信

通信过程涉及材料的封装、传输、解析、错误处理、安全验证等多个环节,单一协议难以覆盖所有细节。协议栈通过 “分层” 将复杂功能拆解:

  • 底层协议(如物理层、数据链路层)负责处理硬件接口、信号传输、数据帧封装等基础工作;
  • 上层协议(如网络层、传输层、应用层)负责资料路由、传输控制、应用素材解析等逻辑处理。
    例如,蓝牙协议栈包含物理层(PHY)、链路层(LL)、主机控制接口(HCI)、逻辑链路控制与适配协议(L2CAP)等多层协议,每层各司其职,最终实现设备间的蓝牙通信
    软件逻辑
    协议栈的核心是软件逻辑,其本质是对通信规则(协议)的代码实现
  • 底层协议(如物理层协议)可能需要与硬件(如射频芯片,控制器)交互,但协议栈本身的逻辑(如信息帧的格式定义,传输时序控制,错误校验算法等)是通过软件(固件,驱动或应用程序)实现的
  • 上层协议(如应用层协议)则完全由软件实现,负责将用户数据按照协议规则处理后,利用下层协议传递
    补:硬件(如芯片,天线)提供物理传输能力,而协议栈(软件)定义了如何使用硬件进行有效通信–硬件是“载体”,协议栈是“操作系统”,两者协同工作,但协议栈本身属于软件的部分

前提知识

HCI

蓝牙的HCI(host controller interface,主机控制接口)是蓝牙协议栈中至关重要的标准化接口,其核心作用是实现主机(host)与控制器(controller)的分离与通信,是蓝牙技术的模块话,标准化设计的核心体现。以下从定位,组成,交互逻辑,规范细节及意义等方面的详细介绍

定位:分离“软”与“硬”的“中间层”

蓝牙协议栈按功能分为主机和控制器两个模块

  • 主机:以软件为主,负责高层协议和逻辑处理。例如经典蓝牙的L2CAP、RFCOMM、SDP,或低功耗蓝牙的GAP,GATT,本质是“决策层”,决定做什么(如发起连接,查询设备,传输数据)
  • 控制器:以硬件+固件为主,负责底层信号处理,例如物理层(PHY),媒体访问控制(MAC),链路管理(经典蓝牙的LMP或BLE的LL),本质是“执行层”,负责怎么做(如无线电信号收发,信道切换,物理连接维护)
    而连接这两层的桥梁就是HCI,它定义了主机如何向控制器发送指令,控制器如何反馈状态,以及两者如何传输数据,让决策和执行技能分离开发又能高效合作

HCI组成:逻辑协议+物理接口

HCI并非单一的软件或者硬件,而是一套规范集合,包含两部分的核心内容

  1. 逻辑协议:定义数据交互规则
    这是hci核心,规定了主机与控制器之间交换的信息格式,类型和语义,包括三大类交互:
  • 命令:主机到控制器的指令,用于控制控制器执行特定操作
    例如:“开始扫描周围设备”“建立与某设备的连接”“”设置发射功率“等
    命令格式标准化:由操作码(opcode)+参数(parameters)组成
    操作码:由 16 位二进制构成,前 6 位为 “命令组(OGF,Opcode Group Field)”,后 10 位为 “命令码(OCF,Opcode Command Field)”。
    例如:OGF=0x01(链路控制组)、OCF=0x0001(“建立连接” 命令),组合后唯一标识一个命令。
    参数:根据命令类型携带具体信息(如目标设备地址、连接参数等)
  • 事件:控制器到主机的反馈,用于告知命令执行结果或异步状态变化
    例如,“扫描完成,发现 3 个设备”“连接成功”“连接断开(原因:信号弱)” 等。
    事件格式标准化:由事件码(Event Code)+参数(Parameters)组成
    事件码:8位二进制,标识事件类型(如0x01=“命令完成”、0x02=“命令状态”、0x05=“连接完成”)
    参数:携带事件细节(如命令执行结果,错误码,设备信息等)
  • 资料:主机与控制器之间的”业务数据传输“(双向)
    例如:应用层的材料和音频数据,经主机高层协议处理后,利用HCI传给控制器发送:控制器接收的无线信号解析后,通过HCI传给主机处理
    素材帧格式:包含”数据长度”+“payload(有效数据)”,根据蓝牙类型(经典蓝牙或ble)或物理接口略有差异
  1. 物理接口:定义“实际传输载体”
    逻辑协议需要通过具体的物理链路构建,hci支持多种标准化物理接口,适配不同设备场景:
  • UART(异步串口):最长与嵌入式设备(如蓝牙模块,智能硬件),有点是硬件简单,成本低,速率通常在115200bps~1Mbps
  • USB:电脑脑,手机等设备的主流接口,速率高(USB2.0可达480Mbps),支持即插即用,适合大数据量传输(如音频,文件)
  • SDIO:较少见,关键用于部分移动设备(如早期手机),通过SD卡接口传输,速率中等
  • PCM(脉冲编码调制):专为音频设计,用于蓝牙音频设备(如耳机)的实时语音传输
    特点:无论采用哪种物理接口,上层的逻辑协议(命令/事件/数据格式)完全一致,确保“换接口不换逻辑”,提升兼容性。

HCI在经典蓝牙与BLE中的差异

HCI是蓝牙科技的通用接口(经典蓝牙和BLE均支持),但因两者底层协议不同,HCI的命令集略有差异:

  • 经典蓝牙(BR/EDR):控制器涵盖LMP(链路管理协议),因此HCI命令多与LMP交互相关(如链路加密,功率控制,同步连接)
  • BLE:控制器包含LL(链路层),因此HCI命令多与LL交互相关(如广播控制,连接参数更新,广告包发送)
    但核心交互逻辑(命令到事件到内容)完全一致,仅具体命令的“功能范围”因底层协议差异而不同

HCI的核心意义

  1. 兼容性保障:不同厂商的主机(如 Windows 蓝牙驱动)和控制器(如高通蓝牙芯片),只要遵循 HCI 规范,就能无缝对接(例如电脑的 USB 蓝牙适配器,无论品牌,都能被系统识别)。
  2. 开发简化:主机开发者无需关注控制器的硬件细节(如射频电路、芯片型号),只需调用 HCI 命令即可控制蓝牙能力;控制器厂商只需构建 HCI 接口,无需关心上层应用逻辑。
  3. 灵活扩展:同一主机可适配不同物理接口的控制器(如电脑既可用 USB 蓝牙适配器,也可通过 UART 连接蓝牙模块),适应多样化设备需求。
    HCI 是蓝牙协议栈的 “神经中枢”,通过标准化的逻辑协议和物理接口,实现了高层软件(主机)与底层硬件(控制器)的解耦。它不仅是技术规范,更是蓝牙设备兼容、开发高效的核心保障,无论是经典蓝牙还是 BLE,其模块化设计都离不开 HCI 的支撑

BT Controller(蓝牙控制器)

BT controller指的是蓝牙芯片,包括BR/EDR芯片(蓝牙2.1芯片),AMP芯片(蓝牙3.0芯片),LE芯片(蓝牙4.0芯片),芯片层面会有两种模式,包括:

  • 单模芯片:仅承受BR/EDR(传统)或仅支持LE(低功耗)(例如早期蓝牙音箱多为单模 BR/EDR,多数 BLE 传感器为单模 LE)
  • 双模芯片:同时支持BR/EDR+LE(例如手机蓝牙芯片,既可以连传统蓝牙耳机,也可以连BLE手环)
  • BR/EDR,AMP,LE的本质:
    • BR/EDR(Basic Rate/Enhanced Data Rate)是“经典蓝牙的核心技术”,从蓝牙1.0到3.0均以其为基础(如蓝牙2.1是BR/EDR的一个版本,优化了配对等特性),负责中高速数据传输(如音频,文件),属于传统蓝牙技术范畴
    • AMP(Alternate MAC/PHY,交替射频)是蓝牙3.0引入的扩展技术,允许控制器通过其他射频(如wifi)传输高速数据(理论速率达24Mbps),本质是对BR/EDR的补充,仍属于控制机器的硬件功能模块
    • LELow Energy,低功耗)是蓝牙4.0引入的全新技术,专注低功耗,短距离通信(如传感器数据),与BR/EDR是平行的两种射频技术,而非“4.0以上”的专属
      补:
  • 蓝牙4.0是第一个同时承受BR/EDR(传统)和LE(低功耗)的版本(即双模的起点),并非4.0以上就是低功效蓝牙
    • 低能耗蓝牙的核心技术是从4.0开始引入的,后续的5.0,5.1,5.3等版面是对ble的性能升级(如更远距离,更快速率),但ble本身是种技术类型,而非4.0以上的版本统称
    • 传统蓝牙在4.0及以上版本中并未消失,而是许可与LE共存于双模芯片中(如蓝牙 5.0 芯片既支持 BLE 的新特性,也可兼容传统 BR/EDR 的音频传输)
  • 蓝牙版本(如 4.0、5.0)是技术规范的版本号,而非 “传统 / 低功耗” 的划分依据

controller(控制器)的类别

蓝牙协议栈的下层硬件+固件部分,负责底层射频(PHY),链路管理(如经典蓝牙的LMP,BLE的LL)分为三类:

  • LE controller:仅支持低功耗蓝牙技术
  • BR/EDR Controller:仅支持经典蓝牙技术
  • AMP controller(Alternate MAC/PHY):蓝牙3.0引入的辅助射频控制器,允许借用其他射频传输高速数据,需依赖主控制器(BR/EDR)管理

BT Host(蓝牙主机)

BT Host是蓝牙协议栈中位于HCI之上的“主机层”看,以软件为主,负责高层协议逻辑,不直接接触硬件,它包含的核心模块因技术类型不同而有差异:

  • 针对经典蓝牙:host包含L2CAP(逻辑链路控制与适配协议),RTCOMM(串口仿真协议),SDP(服务发现协议)等
  • 针对低功耗蓝牙:host囊括L2CAP,GAP(通用访问配置文件),GATT(通用属性配置文件)等
    “主机 – 控制器” 架构的核心逻辑。就是简单说:BT Host 是 “协议栈的上层软件部分”,而 BT Controller 是 “协议栈的下层硬件 + 固件部分”,两者通过 HCI 接口交互 —— 这才构成了蓝牙协议栈的标准软硬件分层架构

蓝牙协议栈的架构与框架

架构方案

(1)Figure 1.1:单模主控制器 + 可选 AMP 辅助(上排 4 种)

核心特点: 主控制器仅承载一种蓝牙技术(LE 或 BR/EDR),AMP 作为辅助射频扩展。

序号架构示意图技术组成核心逻辑与应用场景
1Host ↔ LE Controller单模 LE 主控制器仅支持低功耗蓝牙(BLE),专注低功耗、短数据传输(如 BLE 传感器、智能手环)。
典型场景: 无需经典蓝牙能力,追求极致功耗。
2Host ↔ BR/EDR Controller单模 BR/EDR 主控制器仅支持经典蓝牙(中高速数据/音频,如蓝牙 2.1~3.0),适合传统蓝牙设备(如音箱、打印机)。
典型场景: 需要稳定音频或文件传输,不关心低功耗。
3Host ↔ BR/EDR + 1个AMP单模 BR/EDR(主)+ AMP(副)– BR/EDR 负责核心蓝牙协议(连接、配对、时序),AMP 作为“射频外挂”(如借用 Wi-Fi 传输高速数据,提升速率至 24Mbps)。
典型场景: 经典蓝牙设备需偶尔传大文件(如高清图片),但仍以 BR/EDR 为核心。
4Host ↔ BR/EDR + 多AMP单模 BR/EDR(主)+ 多 AMP(副)– BR/EDR 主控制器 + 多射频 AMP(如同时支持 Wi-Fi、LTE),灵活适配不同网络环境,进一步扩展高速传输能力。
典型场景: 高端经典蓝牙设备,需兼容多射频高速传输(如旗舰平板传视频)。

(2)Figure 1.2:双模主控制器 + 可选 AMP 辅助(下排 3 种)

核心特点: 主控制器集成 BR/EDR + LE 双模能力,AMP 仍为辅助扩展。

序号架构示意图技术组成核心逻辑与应用场景
1Host ↔ (BR/EDR + LE)双模Controller单芯片集成 BR/EDR + LE 双模主控制器同一控制器同时承载经典蓝牙(中高速/音频)+ 低功耗蓝牙(BLE),实现“一芯双协议”。
典型场景: 手机、平板等消费电子,需同时连接经典耳机(BR/EDR)和 BLE 手环(LE)。
2Host ↔ 双模Controller + 1个AMP双模主控制器 + AMP(副)双模主控制器覆盖全蓝牙功能(经典 + BLE),AMP 补充超高速传输能力(如传 4K 视频)。
典型场景: 旗舰手机,既要连耳机/手环,又要快速传大文件。
3Host ↔ 双模Controller + 多AMP双模主控制器 + 多 AMP(副)– 双模主控制器 + 多射频 AMP,同时满足:
BLE: 低功耗传感;
BR/EDR: 稳定音频;
AMP: 多射频高速传输(如 Wi-Fi 6、5G 副链)。
典型场景: 未来智能终端,追求全场景蓝牙能力。
  1. 主控制器(Primary Controller):
  • 负责 核心蓝牙协议栈(链路建立、配对、时序同步、协议调度),是蓝牙功能的 “中枢”。
  • 单模主控制器:仅拥护 LE 或 BR/EDR;双模主控制器:同时支持两者(芯片级集成)。
  1. 辅助控制器(Secondary Controller,如 AMP):
  • 仅负责 “数据传输的射频扩展”,不处理核心蓝牙协议(需依附主控制器运行)。
  • AMP 是蓝牙 3.0 的扩展,本质是 BR/EDR 的 “高速插件”,无法独立作为蓝牙控制器。
  1. 单模 vs 双模的本质:
  • 单模:控制器硬件 / 固件仅支持一种蓝牙工艺(LE 或 BR/EDR)。
  • 双模:控制器硬件 / 固件同时支持两种手艺(芯片级集成,如蓝牙 4.0 及以上的双模芯片)。
    figure 1.1满足专一需求
    figure 1.2满足全功能需求

amp的依赖对象

单模:

在蓝牙单模场景中,amp的依赖对象需结合单模类型和amp的科技本质分析,核心结论是:
只有“单模BR/EDR控制器”能承载AMP,且AMP完全依赖该BR/EDR控制器;而单模LE控制器与AMP无任何关联(因协议设计完全不兼容)

单模分类和AMP的关联前提

蓝牙单模控制器分为两类:

  • 单模BR/EDR控制器:仅支持经典蓝牙,可扩展AMP(蓝牙3.0设计的能力)
  • 单模LE控制器:仅支持低功耗蓝牙,与AMP无任何技术交集(BLE的协议栈,设计目标与AMP完全无关,也未预留AMP的控制接口)
    因此,只有单模BR/EDR控制器的场景中才会涉及AMP;单模LE控制器的设备,根本不会集成AMP功能
单模BR/EDR场景中AMP的依赖逻辑

即使在单模BR/EDR控制器架构下,AMP依然是BR/EDR的辅助扩展,依赖关系与双模场景一致:

  1. 核心协议依赖:BR/EDR主控制器
    amp自身不具备独立的蓝牙核心能力,必须依靠单模BR/EDR控制器完成:
  • 设备发现,配对,连接建立:AMP无法主动搜索或配对设备,需BR/EDR先建立基础连接
  • 激活与协商:是否启动AMP,切换到那种辅助射频(如wifi)需通过BR/EDR的链路协商
  • 时序同步,安全验证:数据传输的时序和加密,依赖BR/EDR的协议栈支持
  1. 架构上的主副关系
    在单模br/edr+amp的架构中
  • BR/EDR控制器是主控制器:负责所有蓝牙核心协议(链路管理,安全,时序)
  • AMP是副控制器:仅负责数据传输的射频扩展(如把 BR/EDR 协商好的数据流,通过 Wi-Fi 射频发送),自身不参与蓝牙协议的核心逻辑。
  1. 为什么单模LE与AMP无关
    BLE的设计目标是低功耗,短数据,其链路层(LL),协议栈(GAP/GATT)与BD/EDR的差异极大:
  • BLE没有为高速射频扩展预留设计(如AMP的协商机制,链路迁移逻辑)
  • 即使强行尝试,BLE的低功耗链路也无法支持AMP所需的高速数据调度,时序同步等复杂流程
    因此,单模le控制器的设备从硬件到协议都不会集成amp的功能,不存在依赖关系
    只有单模BR/EDR控制器能与AMP配合,且AMP完全依赖该BR/EDR控制器的核心协议能力;单模LE控制器与AMP无关联。
    AMP是BR/EDR的专属扩展,和单模/双模无关——只要涉及AMP,必然依赖BR/EDR主控制器

双模

在“双模Controller+单AMP”和“双模Controller+多AMP”方案中,AMP依然依赖BR/EDR(经典蓝牙),而与BLE(低功耗蓝牙)无关。这是由蓝牙协议的底层设计决定的,具体原因如下:

  1. AMP原理决定了它依赖BR/EDR
    AMP(Alternate MAC/PHY)是蓝牙3.0专为经典蓝牙(BR/EDR)设计的扩展技术,其核心逻辑是借助BR/EDR的基础链路,完成高速射频的切换与管理
  • 蓝牙规范明确规定:AMP的激活,连接协商,时序同步,安全验证等核心控制流程,必须通过BR/EDR的链路完成(例如,设备必须先通过 BR/EDR 建立基础连接,才能协商是否启用 AMP 传输数据)
  • AMP自身不具备独立的 “设备发现、配对、链路维护” 能力,这些核心协议功能完全依赖BR/EDR主控制器提供的服务。
  1. BLE与AMP无交集,不存在依赖关系
    双模控制器虽然同时支持BR/EDR和BLE,但这两种技术是平行的协议栈,BLE的设计目标与AMP完全无关:
  • BLE专注于低功耗、短数据传输(如传感器数据),其链路层(LL)、协议逻辑(GAP/GATT)与BR/EDR差异极大,没有为AMP预留任何控制接口或管理机制。
  • 即使在双模设备中,AMP的激活和管理也只会借助BR/EDR链路完成,BLE仅负责自身的低功耗通信(如连接手环、传感器),不会参与AMP的任何流程。
  1. 双模控制器中AMP的依赖关系不变
    无论主控制器是“单模BR/EDR”还是“双模(BR/EDR+LE)”,AMP始终依赖BR/EDR的核心协议,与BLE无关
  • 双模控制器的价值是“同时支持BR/EDR(含AMP扩展)和BLE”,让设备既能通过BR/EDR+AMP实现高速传输 + 音频,又能借助BLE实现低功耗传感,但这两个功能模块是独立运作的——AMP的依赖关系不会因 “双模” 而转移到BLE上。

BLE协议介绍

层级 (Layer)子层/容器 (Sub-Layer)模块简称模块全称 (Full Name)
Application应用层Application Profiles and Services
SoftDeviceHost (主机层)GATTGeneric Attribute Profile
SoftDeviceHost (主机层)GAPGeneric Access Profile
SoftDeviceHost (主机层)ATTAttribute Protocol
SoftDeviceHost (主机层)SMSecurity Manager
SoftDeviceHost (主机层)L2CAPLogical Link Control and Adaptation Layer Protocol
SoftDeviceController (控制器层)LLLink Layer
SoftDeviceController (控制器层)PHYPhysical Layer

备注:

  • Application 层:位于最顶层,直接与 Host 层(通过 GATT/GAP)或 L2CAP 层进行交互。
  • Host 层:负责高级别协议,逻辑上位于控制器之上。
  • Controller 层:负责底层的射频通信和链路管理。
  • 箭头含义:图中的双向箭头表示层级间的通信接口(如 Application 可以直接跨过 GATT/ATT 直接与 L2CAP 通信)。
    从下往上
  • Physical Layer(PHY):作为协议栈中的最低层,一共定义了40个信道(其中三个广播信道,37个数据传输的信道),负责无线电信号的发送和接收。
  • Link Layer(LL):为BLE设备之间的通信提供了基础的链路功能,当两个BLE设备决定建立持续连接时,LL负责初始化、维护和断开这些连接。也就是说LL规定了蓝牙设备是如何建立连接的。LL操作基于状态机,其中主要的状态包括就绪、广播、扫描、初始化和连接。
  • L2CAP:这一层在上面的蓝牙协议由说过,就是对上层的数据进行封装以便于下层进行数据传输。
  • ATT:该协议是BLE设备用于存储和访问数据的协议。ATT定义了一种结构化的方法来组织和访问数据,这些数据以”属性”的形式存储。每个属性都有一个唯一的句柄、一个UUID(Universally Unique Identifier)来标识其类型、权限、值以及其他可能的元数据。在ATT中,存在两种设备角色:服务器和客户端。服务器存储属性,而客户端请求或修改这些属性。ATT定义了一系列的操作,使客户端能够与服务器交互。这些操作包括读、写、查找属性等。其中每个属性都可以设置不同的访问权限,如只读、只写或加密读写。这确保了数据的安全性和完整性。
  • GATT:该协议为ATT的访问提供了一个通用且具有结构化的的方法来组织和访问数据。
  • SM:顾名思义安全管理协议主要负责BLE设备间的配对和绑定过程,以及安全性相关的功能。其中配对是一个过程,其中两个BLE设备交换安全密钥以建立受保护的连接。绑定则是一个更长期的过程,其中密钥被持久化存储在设备中,以便将来可以重新建立安全连接,而无需再次配对。
  • GAP:该协议定义了设备之间如何发现、连接和进行安全认证。

BLE协议运行流程解析

在BLE中设备可以分为两类:中心设备、周边设变。我们将智能手表,智能门锁这类体积较小功耗较低的设备称为周边设备。对于手机这类具有相对较强运算能力的设备称为中心设备。

BLE连接过程

在上面的传统蓝牙与BLR对比表中有写到BLE的连接方式是以广播的形式进行连接。周边设备在没有与中心设备连接时会持续对外进行广播,而广播的状态可以分为四种:

  • ADV_IND:常见的广播状态,表示可以被连接,可以被扫描。
  • ADV_DIRECT_IND:表示只能被特定的设备进行连接。
  • ADV_NONCONN_IND:表示既不可以被连接也不可以被扫描
  • ADV_SCAN_IND:表示只允许被扫描,不可以连接。
    当中心设备接收到广播中周边设备的广播信号时,就会发送一个SCAN_REQ信号,中文直译就是发了一个扫描请求包,如果周边当前设备可以被扫描,并且接收到了这个扫描请求包之后,就会向扫描请求包的发送方返回一个SCAN_RSP包,这个包里面一般是含有设备的生产厂商、版本号这类设备信息。中心设备接收到这些信息后会大概判断,比如如果中心设备使用的是米家的APP,接收到周边设备返回的厂家信息发现是华为的设备可能就会忽视掉这个广播信息,而如果周边设备返回的信息显示是小米生态链中的设备就会发送一个CONNECT_REQ包,向周边设备发起连接,连接成功后,周边设备在与主设备断开连接之前不再发起广播连接其他设备。此时中心设备被称为主设备,被连接的周边设备称为从设备

连接成功后


在设备连接成功后,刚开始设备之间的信息传输都是以明文的方式进行传输,接下里会进入配对阶段,在配对开始的时候两个设备都会生成一个短期的密钥。这种短期的密钥(Short Term Key, STK)生成方式有四种:

  • Just Works:这是最简单的配对方法,适用于没有显示屏或输入能力的设备,例如一些传感器或智能灯泡。在这种方法中,双方不需要共享任何用户输入的PIN或数字。然而,由于缺乏用户干预,这种方法对中间人攻击(MITM)是脆弱的。
  • Passkey Entry:在这种配对方法中,一个设备显示一个六位数字(Passkey),另一个设备的用户需要手动输入这个数字来确认。这提供了一定程度的防护 against MITM攻击,因为攻击者需要知道或拦截这个Passkey来进行攻击。
  • Numeric Comparison:适用于双方设备都有显示屏的场景。在配对过程中,两个设备都会显示一个相同的六位数字。用户需要在两个设备上确认这些数字是否匹配。如果匹配,配对过程会继续。这种方法也提供了防护 against MITM攻击的能力。
  • OOB(Out of Band)配对:在这种方法中,设备使用一个与Bluetooth通信无关的通道或方法来交换或获取密钥信息。例如,可以通过NFC(近场通信)来交换配对信息。当用户将两个设备的NFC部分贴合在一起时,这些设备可以快速交换其加密信息。
    在确定好密钥后下一步进入了加密阶段,此时设备两个设备都有了相同的短期密钥,然后双方根据固定的算法生成一个长期密钥。之后两个设备就会将明文的数据通过长期密钥进行加密,加密之后再进行传输。下一步就是绑定阶段,再绑定阶段中设备会将长期密钥存储起来,下次连接时直接使用之前生成的长期密钥进行密文传输。

学习文章:
https://www.cnblogs.com/yfceshi/p/19026327
https://zhuanlan.zhihu.com/p/658050437

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇