Bluetooth 蓝牙协议 技术原理

技术原理

蓝牙的传输频率为2.47 GHz,即蓝牙信号每秒可切换状态达24亿次。起初我曾以为信号每变化一次即可传递一个移位的信息。按照这一假设,蓝牙在一秒内理论上能够传输24亿位的信息。由于一个字节等于8个比特,计算可得蓝牙的理论最大传输速度可达到300 MB/s。

然而,蓝牙的实际最高传输速度仅为约3 MB/s,与理论计算的300 MB/s存在显著差距。

蓝牙通信的本质是在无线信道中传输二进制的"0"和"1",以实现设备之间的数据交互。然而,不同的通信协议采用的具体数据格式和帧结构各不相同,这使得它们在性能和应用场景上有所差异。

例如,在某些通信协议中,一帧数据可能仅包含10位信息,而在其他复杂的协议中,每帧数据可能达到108位,以支持更多的信息传输。对于蓝牙通信,其主要分为经典蓝牙(BR/EDR)和低功耗蓝牙(BLE)两种类型,其数据帧格式也存在显著差异:

经典蓝牙(BR/EDR)

每帧数据包的最大长度为357字节

帧结构通常包括访问码、标头(Header)和数据负载(Payload)。访问码用于设备间的同步,标头携带设备地址、类型及校验信息,而数据负载承载用户的实际数据内容。

经典蓝牙通常用于高带宽场景,如音频传输、文件共享等。

低功耗蓝牙(BLE)

每帧数据包的最大长度为261字节

帧结构更加紧凑,通常包括Preamble(序言)、访问地址、协议数据单元(PDU)和CRC校验字段。PDU中既包含控制信息,也包含有效数据。

BLE以低功耗为核心,主要应用于物联网设备和传感器通信,适合小型数据包的传输需求。

经典蓝牙

经典蓝牙的协议构成包含多个部分,各部分具有不同的功能,以确保通信的可靠性和准确性。具体结构如下:

访问地址(Access Address)

开头为9个字节的访问地址。

访问地址的主要作用是区分每一个蓝牙设备,确保数据能准确地发送到目标设备。

标头(Header)

紧接访问地址的是7个字节的标头。

标头的作用是提供数据的控制信息,包括数据类型、传输状态以及其他与协议相关的信息,以确保通信的可靠性和稳定性。

数据域(Payload)

标头之后是数据域,其长度在0到339字节之间

数据域承载实际传输的数据内容。例如,当传输的是简单的控制指令时,数据域可能非常短,仅包含1到2个字节的信息;而在传输音频信号时,数据域的长度可能达到数百字节,以满足高数据量的需求。

CRC校验(Cyclic Redundancy Check)

数据帧的最后2个字节为CRC校验字段。

CRC校验的作用是验证接收数据的完整性,检测传输过程中可能出现的错误,从而确保数据的可靠性。

低功耗蓝牙

蓝牙通信中,为了检测一帧数据的正确性,低功耗蓝牙(BLE)的数据帧结构与经典蓝牙有所不同,其组成部分如下:

预补码(Preamble)

数据帧的开头是一个预补码,用于时钟同步和信道估计。

该部分确保接收端能够与发送端的信号保持同步,并对通信信道的特性进行估计,以提高传输的可靠性。

访问地址(Access Address)

紧随预补码之后的是4个字节的访问地址。

访问地址用于区分不同的蓝牙设备,确保数据被正确发送到目标设备。

数据域(Payload)

数据域的长度范围为2到253字节,承载实际传输的数据内容。

数据域可以包含简单的控制指令或复杂的应用数据。

CRC校验(Cyclic Redundancy Check)

数据帧的最后是3个字节的CRC校验字段。

CRC校验用于检测数据在传输过程中是否出现错误,从而确保通信的可靠性。

属性 经典蓝牙(Classic Bluetooth) 低功耗蓝牙(BLE, Bluetooth Low Energy)
传输速率 高达3 Mbps 最大约1 Mbps
功耗 较高 极低
应用场景 高数据量传输(音频、视频、文件等) 物联网设备(传感器、可穿戴设备、智能家居等)
数据包长度 数据域最大339字节 数据域最大253字节
帧结构 开头为9字节访问地址 ,包含7字节标头 开头为预补码 ,包含4字节访问地址
CRC校验位 2字节 3字节
传输频率 2.4 GHz ISM频段 2.4 GHz ISM频段
配对时间 较长 较短
连接设备数量 支持同时连接多个设备 一般支持单一连接(广播模式例外)
协议复杂度 较高,支持多种复杂协议栈 较低,协议栈设计更简洁
成本 较高 较低
调制方式 频率跳变调制(FHSS)+ GFSK GFSK、π/4-DQPSK、8DPSK
应用程序支持 适合高性能需求的设备,如耳机、音响等 适合低功耗设备,如健康监测仪、智能手环等

蓝牙的传输依赖于专门的蓝牙模块,其主要作用是将CPU发出的低频数字信号转化为高频的载波信号。在无线通信中,多个高频载波信号通过调制过程来表示二进制的"0"和"1"。因此,尽管蓝牙的工作频率是2.47 GHz,但其数据传输速率最快仅为3 Mbps。

蓝牙的频率范围并非单一,而是利用了高斯频移键控(GFSK)技术来进行信号调制。在蓝牙技术中,信号的频率并不是固定的,而是在中心频率的基础上进行偏移。具体来说,蓝牙的载波频率通常以2.402 GHz为中心,偏移量为±185 kHz。因此,信号的实际频率会在2.402 GHz附近变化,形成两个频率:一个是偏移加185 kHz,另一个是偏移减185 kHz。

考虑到同一空间内可能有多个蓝牙设备工作,蓝牙技术通过多信道通信来避免信号干扰。低功耗蓝牙(BLE)使用40个信道,频率范围从2.402 GHz到2.480 GHz,每个信道的间隔为2 MHz。经典蓝牙则使用79个信道,其频率范围同样是从2.402 GHz到2.480 GHz,但每个信道的间隔为1 MHz。在传输过程中,蓝牙设备会频繁地在不同信道之间切换,一秒钟内可能会进行上百次的频率跳变(频率跳跃技术),以此避免不同蓝牙设备之间的干扰,从而保持通信的稳定性。

需要注意的是,蓝牙的最高数据传输速率为3 Mbps,是指数据在CPU与蓝牙模块之间的传输速率。而蓝牙的工作频率为2.47 GHz,是指蓝牙信号在空气中传播时的载波频率。通过频率跳跃和多个信道的使用,蓝牙能够有效避免干扰并实现稳定的通信。

相关推荐
qq762118225 小时前
arm rk3588 升级glibc2.31到2.33
arm开发
深圳市青牛科技实业有限公司5 小时前
一文详解串行、并行、同步、异步
arm开发·科技·单片机·嵌入式硬件·音视频·游戏机
byte轻骑兵9 小时前
【0x001A】HCI_Remote_Name_Request_Cancel命令详解
c语言·网络·蓝牙·通信协议·hci
憧憬一下11 小时前
RK3399 PCIe 中断处理与映射分析(INTx中断机制源码分析)
arm开发·嵌入式硬件·嵌入式·linux驱动开发·pci/pcie
水饺编程12 小时前
简易CPU设计入门:本系统中的通用寄存器(三)
linux·fpga开发·硬件架构·硬件工程
YHPsophie12 小时前
XQR5VFX130-1CN1752V,,具有高度的可编程性和灵活性的FPGA中文技术资料
数据库·fpga开发·信息与通信·fpga
码农不屈的一生16 小时前
ARM架构服务器安装部署KVM虚拟化环境
运维·服务器·arm开发·架构
老家大门口的的猴子1 天前
Ramfs, rootfs 和 initramfs
linux·服务器·开发语言·驱动开发·信息与通信
qq_243309111 天前
qt+Linux+arm多核CPU 亲和性
linux·arm开发·qt
娶不到胡一菲的汪大东1 天前
Linux之ARM(MX6U)裸机篇----5.仿stm32的LED驱动实验
arm开发·stm32·嵌入式硬件