2024年最新Bluetooth 技术(一)--- 协议栈设计与演进(Core_v5,2024年最新收割快手,字节,百度,美团的Offer之旅

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

EDR(Enhanced Data Rate)技术应运而生,SIG 在2005年发布的Bluetooth 2.0 支持增强数据速率的EDR 技术,用来加快数据传输速率。EDR 的比特率可以达到3 Mbps,实际最大的数据传输速率为2.1 Mbps,EDR 相比BR 采用了什么新技术来增强数据传输速率呢?

EDR 改进了传输数据的调制方式,BR 技术采用GFSK(Gaussian Frequency-Shift Keying) 高斯频移键控对传输数据进行调制,EDR 技术则使用PSK(Phase-Shift Keying)相移键控来提高调制码率(EDR 采用了两种调制方式 π/4-DQPSK 和 8-DPSK),EDR 通过采用更高效的调制方式可以获得先前3 倍传输速率的提升。随着科技的发展,EDR 技术又落伍了,看看人家Wi-Fi 11g/11a 的传输速率都达到54 Mbps了,EDR 的2.1Mbps 显得太寒酸了,这次蓝牙该如何应对Wi-Fi 的竞争呢?

HS(High Speed) 技术来救场了,SIG 在2009 年发布的Bluetooth 3.0 引入的HS 技术,可以提供高达 24 Mbps 的理论数据传输速度,这么高的速率提升是如何做到的呢?蓝牙组织想到个主意,直接把WIFI 的PHY层和MAC层拿来使用,这就是AMP (Alternate MAC and PHY layer extension) 技术。不过呢,由于蓝牙自身的PHY + MAC层和AMP 技术差异太明显了,这次扩展只能是交替使用(Alternate)的,也就是BR/EDR 和 HS-AMP 不能同时使用(从Wi-Fi 11g 拿来的AMP 有54 Mbps 的传输速率,因为交替使用只能达到24 Mbps),蓝牙链路的协商建立依然使用BR/EDR 技术,高数据速率传输采用AMP 技术(AMP 不能单独使用,只是BR/EDR 的可选项补充),两套技术交替使用就显得不够简洁高效了,因此HS-AMP 技术并没有大规模普及。
BR/EDR/AMP Controller
蓝牙协议规定了两个层次的协议,分别为蓝牙核心协议(Bluetooth Core)和蓝牙应用层协议(Bluetooth Application)。蓝牙核心协议关注对蓝牙核心技术的描述和规范,它只提供基础的机制,并不关心如何使用这些机制;蓝牙应用层协议,是在蓝牙核心协议的基础上,根据具体的应用需求,百花齐放,定义出各种各样的策略,如FTP、文件传输、局域网等等。

Bluetooth Core 由Host和Controller 两部分组成,这两部分在不同的蓝牙技术中比如BR/EDR、AMP、LE,承担角色略有不同,但大致的功能是相同的。Controller 负责定义RF、Baseband 等偏硬件的规范,并在这之上抽象出用于通信的逻辑链路(Logical Link);Host 负责在逻辑链路的基础上,进行更为友好的封装,这样就可以屏蔽掉蓝牙技术的细节,让Bluetooth Application 更为方便的使用。在一个系统中,Host只有一个,但Controller可以一个,也可以有多个。

1.2 Bluetooth LE

上面介绍的蓝牙BR/EDR/HS 技术的进化路线,就是传输速率的加快、加快、再加快。但能量是守恒的,你想传的更快,代价就是消耗更多的能量。而有很多的应用场景,并不关心传输速率,反而非常关心功耗,这就是Bluetooth LE(称作蓝牙低功耗)产生的背景。

2010年蓝牙技术联盟发布了Bluetooth 4.0,新增了BLE 蓝牙低功耗协议,伴随着物联网潮流的兴起,SIG 也逐渐将重心从向高速率发展转移到向低功耗发展(也可以说高速率方向上已经与Wi-Fi 拉开较大差距,二者从直接竞争转为差异化发展)。BLE 专注的低功耗领域也同样有竞争对手(比如ZigBee),BLE 在与ZigBee 相互竞争的同时,也不断从ZigBee 身上获得借鉴,发展出了自组网Mesh 技术和基于6LoWPAN 的IP 组网技术。

Bluetooth LE技术相比BR技术,差异非常大,可以说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已,二者的协议层结构对比如下:
BR/EDR和LE框架对比

  • Physical Layer:负责提供数据传输的物理通道或信道。通常情况下,一个通信系统中存在几种不同类型的信道,如控制信道、数据信道、语音信道等等,BR/EDR、AMP与BLE 三种技术的Controller 对比可参考图片 Bluetooth ISM Band
  • Logical Layer:在物理层的基础上,提供两个或多个设备之间、和物理无关的逻辑传输通道或链路;
  • L2CAP Layer:也即Logical Link Control and Adaptation Protocol Layer,负责管理逻辑层提供的逻辑链路。基于该协议,不同Application 可共享同一个逻辑链路,类似TCP/UDP 中 port 的概念;
  • Profiles Layer:Profile是蓝牙协议的特有概念,为了实现不同平台下的不同设备的互联互通,蓝牙协议不止规定了核心规范(称作Bluetooth core),也为各种不同的应用场景,定义了各种Application 规范,这些应用层规范称作蓝牙profile。Profile定义了设备如何实现一种连接或者应用服务,可以把Profile理解为连接层或者应用层协议比如HTTP。

BR/EDR技术,侧重“点对点”通信,但随着物联网的发展,业务对简单的、不需要连接的多播或广播通信的需求越来越迫切,因此BLE 技术在RF 和Baseband 协议中修改原有的79 个channel 的跳频方式,将channel 个数减少为40 个,并保留了3 个固定 channel(37,38,39 信道)用于广播通信,在 Bluetooth 5 中又引入了扩展广播信道,可以临时使用37 个数据信道中的某些信道用作广播或多播通信。

蓝牙技术联盟在2014年发布了Bluetooth 4.2,进一步完善了BLE 协议,以便其满足物联网设备的需求。得益于BLE 低功耗技术,蓝牙设备在数据传输领域的增长逐渐加快,并追赶上其在音频传输领域的普及度。因为Bluetooth 4.x BLE 侧重于低功耗,实际最大传输速率只有约 700 Kbps(稳定连续传输的速率更低),无法满足音频传输的速率需求(CD 音质所需最小带宽为1.41 Mbps = 44.1 KHz(采样率)X 16 bit(位深度) X 2 声道),这导致蓝牙设备在后面很长一段时间都并行使用两套协议栈(BR/EDR 协议栈与BLE 协议栈),这就显得不够简洁高效,在一定程度上影响了蓝牙设备的应用普及。
BLE与BR/EDR 指标对比

二、蓝牙协议框架

在Bluetooth 5 之前,由于BLE 的最大传输速率只有700 Kbps,无法满足音频连续稳定的传输需求,只能并行使用两套协议栈(蓝牙音频传输使用BR/EDR 协议栈,蓝牙低功耗数据传输使用LE 协议栈)。2016年,Bluetooth 5 为LE 提供了2 Mbps 的PHY 支持,为BLE 协议支持音频传输提供了基础,最大数据传输速率可以达到接近1.4 Mbps。2019年,SIG 发布的Bluetooth 5.2 协议规范正式支持LE Audio 协议,也即在LE 协议上提供了对音频数据流传输的支持。至此,蓝牙协议终于可以摆脱老旧低效的BR/EDR 协议,只需要使用LE 协议就可以满足数据传输和音频传输的需求,前言部分介绍的位置服务和设备网络也承载在LE 协议上。Bluetooth 5.2 协议架构图示如下(包括BR/EDR/AMP和LE 协议):
蓝牙5.2协议架构
从上面的Bluetooth 5.2 协议架构图可以看出,蓝牙数据传输常使用ACL 异步数据通道传输数据,蓝牙音频传输则使用SCO 同步数据通道传输音频数据流,LE 协议通过新增 Isochronous Adaptation Layer 来支持等时同步传输的音频数据流。上面的蓝牙协议架构图包括了蓝牙支持的所有协议类型,看起来比较复杂,如果只取中间LE Core 部分的协议就简单很多了,考虑到BR/EDR 将逐渐退出历史舞台,后续主要介绍BLE 协议部分。

2.1 LE Audio

LE Audio 解决了最近流行的AWS 真无线耳机的很多问题,比如左右耳等时同步传输问题,虽然不同蓝牙芯片厂商提供了不同的解决方案,但受限于专利限制和标准不统一,徒增了蓝牙音频设备的成本。Bluetooth 5.2 提供的 LE Audio 采用 Isochronous Adaptation Layer 解决了左右耳等时同步传输的问题,而且可以扩展到多个音频设备在广播通道上等时同步传输音频数据流,比如多人会议可以借助蓝牙耳机等时同步音频数据流,配合蓝牙耳机的降噪技术可以让会议语音更清晰。

LE Audio 虽然可以借助2 Mbps 的PHY 传输音频数据,其最大传输速率仍与EDR 有一定差距,为了保证蓝牙音频设备的音质,SIG 提供了一种新的音频编码方案 LC3 (Low Complexity Communication Codec),该编码方案作为SBC (Sub-bandcoding Codec) 的继承者,可以在比SBC 更低的码率下超过SBC 的音质,让 LE Audio 即便在较低的传输速率下也能保证音质。除了 LC3 编码,SIG 还提供了可选的 LC3plus 编码来提供高分辨率的音频数据传输,可以传输24 bit / 96 kHz 的音频数据流,这已经达到aptX-HD、LDAC、LHDC 等高分辨率编码方案的水平了,由于LC3plus 是一个开放的标准,这将让高分辨率的蓝牙音频设备成本大幅下降,同时解决不同编码方案支持带来的兼容性问题。
LC3编码音质与LE Audio 等时同步传输通道

2.2 LE Beacon and Direction Finding

蓝牙位置服务算是近几年才出现的新服务,GPS全球定位包括同类的Galileo、GLONASS 和北斗定位系统都已经比较成熟了,为什么SIG 还要为蓝牙新增位置服务呢?

我们熟知的GPS 类全球定位系统靠跟卫星通讯获得位置数据,卫星信号比较弱、容易受到建筑遮挡,因此常用于室外定位,对于室内定位就非常受限了。我们会发现在室内有时也能通过GPS 信号完成定位,这主要是借助基站获得GPS 卫星的部分信息,降低对GPS 卫星信号的依赖,也就是AGPS (Assisted GPS)技术。AGPS 技术仍然需要少量的卫星数据,也需要附近基站的支持,对于完全接收不到GPS 信号的室内就无能为力了,且GPS 和AGPS 系统在室内的定位精度较差(大概在10米级别),无法满足室内精准定位的需求,各种室内定位技术就应运而生了。
不同技术室内定位精度
蓝牙的室内定位技术最早是苹果于2013 年推出的 iBeacon,蓝牙信标技术是各大公司为了满足室内定位市场需求自己实现的技术,并不是 SIG 推出的官方标准。Beacon技术主要利用 LE 提供的广播或多播通信功能,其基本原理是蓝牙设备在广播信道上定时广播beacon 信号,接收机处理这些beacon 信号并实现距离估算和准确定位。

Beacon 信号中包含发射信号功率,接收机可以获得接收信号强度RSSI 和beacon 信号发射功率,有了信号发射功率和接收功率,就可以利用蓝牙信号在自由空间传播的路径损耗公式计算出接收机与发射机之间的距离,计算公式如下:

路径损耗=发射功率-接收功率

蓝牙信号在自由空间传播的路径损耗计算公式如下(2.4e3是指蓝牙工作频率2.4e3 MHz,d是传输距离单位 km):

路径损耗(dB) = 32.45 + 20lg(2.4e3) + 20lg(d)

Beacon 定位的基本原理是根据需要定位的目标与多个信标发射设备距离画圆找交叉点。通过一个蓝牙 Beacon 发射设备的信标数据可以计算出接收机与Beacon 发射设备之间的距离,要想在平面空间实现精确定位,需要至少 3 个Beacon 发射设备广播的信标数据(两个信标设备画圆会有两个交叉点,无法判断哪个交叉点是对的)。
蓝牙信标定位技术
由于蓝牙信号在实际传播中会遇到遮挡,并不是完全在自由空间中传播,因此需要对上面公式的计算结果d 做适当的修正,由于蓝牙信号在室内传播路径容易受外界条件影响,这种Beacon 定位技术的误差也不够高(大概在1 米级别)。值得一提的是,WIFI 室内定位技术也采用了类似Beacon 定位技术的原理,定位精度也跟蓝牙Beacon 差不多处于同一级别,WIFI 室内定位的优势是可以使用现成的AP(Access Point,也即路由器),不需要重新布置定位Beacon 发射设备。

物联网需要更精准的室内定位技术,SIG 想要在室内定位技术上压过WIFI,在2019年发布的Bluetooth 5.1 标准中新增了Direction Finding 寻向技术,该技术可以让蓝牙的定位精度达到厘米级,是室内精准定位市场抢占先机和话语权。Direction Finding 技术是如何实现厘米级的定位精度呢?

蓝牙BLE 5.1提供两种不同定位方法,“Angle of Arrival”(AoA)到达角和“Angle of Departure”(AoD)出发角,两种方法的基本原理都是发射机发射正弦波信号(CTE: Constant Tone Extension signal),接收机接收CTE 信号并计算相位。AoA方法要求接收机含多天线阵列,AoD方法要求发射机含多天线阵列,如下图所示:
AoA与AoD寻向定位技术图示
Direction Finding 寻向技术根据无线电波传输过程中的基本特性,通过信号相位计算信号方向。蓝牙发射机发射正弦波信号,以发射机为圆心,信号的相位会随距离延伸呈周期性变化,在同一半径圆上不同位置P1、P2 接收到的正弦信号相位是一致的,如果P1和P2 不在同一半径圆上且半径差值不是波长的整数倍,那么两者接收到的正弦波信号相位是不一样的,如下图所示:
P1/P2不同距离接收到的信号相位差
本文以AoA Method 为例继续分析(AoD Method 原理类似),该方法接收机含多天线阵列(以两个接收天线为例),接收机能从两个天线接收到的正弦波信号获得各自的相位值,已知两个接收天线之间的距离,再计算出两个天线接收到正弦波信号的相位差,就可以通过公式计算出到达角AoA,计算公式图示如下:
使用相位差计算到达角AoA
从上面的图示可以看出,一组简单的天线阵列(比如线性阵列)可以计算出一个方位角 Azimuth,一组复杂的天线阵列(比如矩形阵列或环形阵列)可以计算出一个方位角 Azimuth 和一个海拔角 Elevation(比如下图立体空间中Point B 相对Point A 的Azimuth 和 Elevation 共同定义两点之间的相对寻向角度)。

如果要定位平面空间中的某点,只需要两个方位角即可,如果要定位立体空间中的某点,再加上一个海拔角就可以了,这种通过多个寻向角度定位目标点的技术,至少需要两个接收机/发射机及其天线阵列,精度可以达到亚米级(大概10 厘米级别)。如果对精度要求不高,还可以使用一个相对寻向角度再加一个估算距离(通过前面介绍的Beacon 技术获得)获得定位目标点,这种方案只需要一个接收机/发射机及其天线阵列,但定位精度下降到跟Beacon 相近的级别。
多角度寻向精准定位图示

2.3 IPv6 Over BLE

蓝牙技术联盟从2010 年推出低功耗蓝牙LE 协议后,就不断拥抱物联网浪潮,为物联网设备的需求提供相应的解决方案。物联网,顾名思义要接入 Internet 互联网,SIG 于2014年发布的Bluetooth 4.2 规范中就迫不及待的新增了接入IPv6 的功能,BLE 设备是如何接入Internet 的呢?
BLE 设备接入Internet

Bluetooth SIG 为支持基于BLE 的IPv6,仅仅做了一件事情:发布了一份总页数为14页、有效内容不足5页的Profile规范 ---- Internet Protocol Support Profile,用于支持Internet Protocol(IPv6),该Profile在BLE 协议栈中的定义如下:
IPSP在BLE 协议栈中的定义
物联网设备要接入Internet 离不开TCP/IPv6 协议(IPv4 地址已告罄),为了让处理能力有限的低功耗无线个域网设备(比如Zigbee、BLE等设备)接入IPv6 网络,IETF (Internet Engineering Task Force) 于2007 年发布了6LoWPAN(IPv6 over Low -Power Wireless Personal Area Networks)协议规范(RFC4944)。最初 6LoWPAN 是为IEEE 802.15.4 协议(比如Zigbee)开发的,在BLE 协议规范发布后 6LoWPAN 也开始支持BLE 协议上承载IPv6 网络(IPv6 over BLE 规范RFC7668),BLE 设备就可以借助6LoWPAN 协议层来承载TCP/IPv6 协议栈了。

BLE 的应用服务需要符合相应的Profile,承载6LoWPAN 协议层处理IPv6 packet 也是一种服务场景,因此也需要设计相应的Profile,于是SIG 就发布了IPSP (Internet Protocol Support Profile),IPSP 实现的 IPv6 over BLE 服务主要包括下面几步:

  1. 定义IPSP Node 和IPSP Router 两个角色:IPSP Router 是用来转发IPv6 packet 的设备,IPSP Node 只能产生或者消费 IPv6 packet,如果某一个Router 需要连接其它Router,它可以同时实现 Node和Router 两种角色;
  2. IPSP Node 需要基于GATT 提供IPSS (Internet Protocol Support Service),以便让IPSP Router 通过SDP (Service Discovery Protocol) 发现它;
  3. IPv6 packets 在Node 和Router 之间通过面向连接的 L2CAP 传输,并使用LE_PSM_IPSP(0x0023) 作为协议识别码(在连接建立的时候提供),同时规定MTU 为1280;
  4. 在L2CAP之上,依次是6LoWPAN、IPv6、UDP/TCP、CoAP/MQTT 等网络协议栈,由IPSP Router 将IPv6 packet 放到Internet 上传输。

BLE 设备常见的IPv6 组网方式如下:
BLE IPv6 组网方式

2.4 BLE Mesh Network

从BLE 协议发布,SIG 将重心放到低功耗物联网设备上,相当于侵入了Zigbee 的市场,开始与Zigbee 直接竞争。ZigBee 是基于802.15.4标准衍生出的无线标准,有4大杀手锏:低功耗、低成本、IP组网(基于6LoWPAN)和自组网(Mesh network)。蓝牙在2010 年推出BLE 之后,低功耗和低成本方面,已经旗鼓相当了,2015年发布IPv6 over BLE 规范后,基于6LoWPAN 的IPv6 组网也丝毫不落下风,剩下的就是自组网Mesh network 没法跟Zigbee 竞争了。蓝牙的自组网络拓扑结构是怎样的呢?蓝牙与Zigbee 的自组网Mesh network差距在哪呢?

蓝牙设备是分主从角色的,传统蓝牙最常使用点对点连接,当有多个从设备连接到同一个主设备,这一主多从的星型拓扑结构就构成了一个蓝牙散点网(piconet)。这些处于同一个散点网中的设备共用同一个物理信道通信,一个主设备与多个从设备之间就只能靠分时复用共享的物理信道通信了,星型拓扑和分时复用限制了一个主设备最多能同时连接的从设备数量(BR/EDR 最多支持 7个从设备)。

BLE 虽然也采用一主多从的星型拓扑结构,连接到同一主设备的多个从设备使用不同的物理信道与主设备通信,相当于每对主从设备构成一个独立的散点网。而且BLE 新增了广播通信模式,无连接的广播模式可以支持比面向连接的散点网更大规模的通信,但广播通信是不安全的,广播距离受限也难以满足物联网大规模自组网的需求。下图展示了BR/EDR 和LE 的自组网络拓扑结构,图中每个圈表示一个散点网,右图中的星形节点C/D/H/K/R 表示广播设备,实线箭头由主设备指向从设备,虚线箭头表示发起连接请求:
BR/EDR与LE 自组网拓扑结构
物联网设备在部分场景下是需要大规模自组网才能提供更完善的场景服务的(比如楼宇自动化、传感器网络等),现有的蓝牙协议自组网规模受到星型拓扑结构的限制(只能主从设备间通信,从设备间不能通信),难以大规模扩展。Zigbee 使用的mesh network 支持上万节点的接入,这个差距只能靠新的网络拓扑结构来弥补了,SIG 于2017 年发布了Bluetooth mesh networking 规范,同样使用了mesh 网格拓扑结构实现大规模自组网,BLE mesh 网络拓扑结构图示如下:
BLE Mesh网络拓扑结构
BLE mesh network 采用网状网络取代星型网络,可以实现大规模自组网,也能支持上万节点的接入。从上图可以看出,BLE mesh 网络定义了四种连接和五种节点来构成mesh 网络,这四种连接与五种节点的功能描述如下:

| BLE mesh四种连接 | 功能描述 |

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 17
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值