理解蓝牙技术中的可靠性

马丁·伍利

798

下面的重点深入讨论了蓝牙可靠性的复杂性,并解决了最佳使用此无线通信技术的许多连接障碍。有效的数据传输和接收需要仔细掌握不同时间段的数据包交付情况。

和其他无线通信技术一样,蓝牙也使用无线电。但是无线电作为一种编码和传输数据的媒介并不可靠,因为存在着各种各样的挑战。因此,不仅仅是蓝牙,任何建立在物理层无线电之上的通信技术都必须应对一系列的基本问题。但是,通过正确的堆栈设计和各层中的正确流程,就可以建立高度可靠的无线电通信。

碰撞发生在2频道
图1:2号频道发生的碰撞

简单地说,可靠的蓝牙通信发生在传输的数据等于接收的数据,并且任何与该数据相关的预期操作都按照预期发生的时候。然而,在现实世界中,根据所涉及的不同的可靠性参数,有时会有更微妙的定义。例如:

容忍失败

99.9999%的成功率可以被认为是可靠的。

延迟

为了在数据传输500毫秒内观察到预期的动作,需要低系统延迟。

交易

成功应用所有更改或未进行任何更改的一系列更新。

恢复力

即使某些部件出现故障/劣化,系统仍能成功处理操作。

未同步通信中丢失的数据包
图2:非同步通信中丢失的数据包

无线电技术的挑战

无线电通信在无线电频谱的信道内进行。如果两个设备同时在同一信道上传输数据,它们万博就是皇冠会相互损坏,导致数据丢失。这就是所谓的碰撞。其发生的概率取决于复发和传播所需的时间。再加上传输速度和数据包大小。

能量随距离减小
图3:能量随距离减小

大家都知道,蓝牙使用的是2.4GHz频段,也就是ISM。Wi-Fi、ZigBee和DECT手机也可以使用这个频段。

蓝牙设备中的无线电通常是半双工的,也就是说,它们可以同时发送和接收信号,但不能同时进行。以设备a在通道上向设备B传输数据包为例。

对于接收,设备B必须同时积极收听正确的频道。如果它不在侦听,或者在不同的信道上,则不会接收数据包。设备监听的时间比例称为Rx占空比。别忘了,一台设备一次只能监听一个频道。

信号强度也有巨大的影响。当信号强度较低时(由于其相对接近背景噪声),可能会遇到更多错误。蓝牙核心规范规定允许的误码率(BER)高达0.1%。除此之外的任何事情都是不可接受的。

无线电能保持在这一限度内的信号强度称为接收灵敏度。所以,如果你是一个产品设计师,选择一个接收器灵敏度好的收音机是很重要的。

堆栈实现通常包括几个用于临时数据包存储的缓冲区。如果数据包到达缓冲区的速率超过数据包消耗速率足够长的时间,缓冲区将开始溢出,数据将丢失。

GFSK解决的可靠性挑战

无线电信号特性用于表示数字数据的方式称为调制方案。与基于振幅的方案相比,基于频率的方案更不容易受到噪声干扰的影响。

GFSK将中心载波频率向上或向下移动以表示1或0
图4:GFSK向上或向下移动中心载波频率以表示1或0

蓝牙使用一种特殊的基于频率的调制方案,称为高斯频移键控(GFSK)。它通过向上或向下移动中心载波频率来表示1或0。

但是频率的突然变化会产生噪声。因此,GFSK增加了一个滤波器,使频率过渡平滑,噪声更小。GFSK是一个很好的无线通信基础平台。

蓝牙包字段

蓝牙数据包具有多个字段。开头是前导码,长度为8位,包含1和0的交替模式。它用于查找精确的发射机频率并设置收音机的增益控制。

蓝牙数据包中的字段
图5:蓝牙数据包中的字段

32位长的访问地址包含一个特殊值,这意味着任何蓝牙设备或特定连接的唯一标识符都可以接收数据包。由于蓝牙控制器将同时接收相关和不相关的信号,因此它必须能够区分并准确识别相关信号。

在远端,有循环冗余检查(CRC),用于检测由于冲突而无意更改或损坏传输数据的情况。它是通过比较发送端计算的CRC值与接收端计算的CRC值来实现的。如果它们不相同,那么一定发生了损坏,数据包被丢弃。
消息完整性代码(MIC),也称为消息验证代码(MAC),是一种安全特性,有助于检测故意篡改的数据(而不是通过冲突意外篡改的数据)。

误差修正

栈的物理层(PHY)有一种变体称为LE Coded PHY,它允许蓝牙不仅检测错误,而且在一定的限度内纠正数据包中的错误。这有助于在低信噪比(SNR)的通信。

距离发射机越远,信号强度越低,信噪比越差,越难保持低误码率。但使用前向纠错(FEC),您可以在低信噪比下工作,因此在更长的范围内情况仍然可靠。

扩频

蓝牙解决可靠性挑战的一个重要方法是采用扩频技术的各种方法。因此,与其对所有信息包使用单一的通道,不如通过一组不同的通道进行传输,从而最大限度地减少冲突的可能性。万博就是皇冠

蓝牙通信的可靠处理

在连接时,设备在某些通信参数上达成一致,包括与定时有关的几个参数,例如无线电可用于维护此连接的频率。无线电必须通过许多不同的连接共享。此特定参数称为连接间隔。

在连接间隔开始时,设备轮流发送和接收数据包,数据包之间的间隔为150微秒。控制连接的精确、约定的定时参数提供了两个设备的发送和接收行为之间的协调,并使通信可靠。

面向连接的通信

面向连接的通信中的扩频看起来是这样的:蓝牙LE将2.4GHz频段划分为40个通道,每个通道宽2MHz。其中三个用于广告(专门用于无连接通信)。当两个连接的设备通信时,使用其他37。万博就是皇冠

2.4GHz频段,分为40×2MHz通道万博就是皇冠
图6:2.4GHz频段划分为40×2MHz通道万博就是皇冠
连接使用和无线电共享的简化说明
图7:连接使用和无线电共享的简化图示

在每个连接事件中,所使用的通道都会随机变化。因此,通过这种方式,数据包传输在ISM频带上分散开来。此外,系统会记录任何不良信道(由于CRC故障或频谱干扰),并将其删除。因此,即使在ISM频带的一部分饱和时,也确保了有效的通信。这种行为被称为自适应跳频(AFH)。AFH显著降低了碰撞的概率,使蓝牙设备即使在非常困难的无线电环境中也能正常工作。

自适应跳频跨信道分布式通信万博就是皇冠
图8:跨信道分布通信的自适应跳频万博就是皇冠

如前所述,信号强度会极大地影响可靠性,FEC是用于解决这一问题的技术之一。但是,另外,要知道,当接收到的信号水平保持在一定范围内(称为黄金范围)时,无线电接收器工作得最好。蓝牙有一个叫做LE功率控制的功能,它允许连接的设备请求动态改变传输功率水平,以便接收到的信号强度保持在这个黄金范围内。当设备之间的距离在正常使用时特别有用。

避免缓冲区溢出

为了减轻缓冲区溢出对可靠性的挑战,数据包的流量必须进行管理。这可以使用一种称为流控的技术来实现,这种技术在许多不同的通信技术中都使用。

流控制
图9:流量控制

该栈的Bluetooth Low Energy L2CAP层在需要时应用流量控制,并支持多种不同的流量控制模式。例如,如果您在堆栈的顶部使用增强的属性协议,那么它在L2CAP层中使用增强的基于信用的流量控制模式,允许接收设备向发送设备通信其接收数据包的当前容量。如果该值为零,则接收端缓冲区已满,发送端将等待恢复数据包传输。

流控制技术
图10:流动控制技术

因此,它是一种动态流控制策略,可防止缓冲区溢出。

蓝牙无连接通信的可靠性

在蓝牙中,无连接通信称为广告。在基本情况下,每个包的副本以随机信道顺序在每个信道上广播。它们的时间间隔完全由广播设备控制,不与发射机协调。还有另一种形式的广告称为扩展广告,它使用所有40个蓝牙LE频道。万博就是皇冠

在基本广告中使用三个频道不如在连接万博就是皇冠中使用自适应跳频复杂。但是,广告频道被故意放置在彼此相隔很远的地方,这样一部分的干扰就不会完全阻碍交流。

基本的广告以确定的时间间隔发生,但它在包传输的调度中包含一些随机的时间变化,最多可达10毫秒。这是为了避免与附近恰好在同一时间发送或发布广告的设备发生持续冲突。

蓝牙无连接通信不试图协调广告设备和接收设备的活动。但是,有一种特殊的广告模式,称为周期广告,它使广告的时间完全确定和精确。

定期广告
图11:周期性广告

扫描设备还可以发现广播设备的周期性广告时间表,以便它们可以精确地与广播设备同步扫描活动。

通过这种方式,设备可以比基本的广告形式更可靠、更有效地接收广播数据。

蓝牙网状网络

Bluetooth mesh允许创建大型网络,拥有数以万计的设备。这是一种使用蓝牙LE的特殊方式,其中网格堆栈位于蓝牙LE控制器的顶部。

Bluetooth mesh定义了承载器,该承载器提供了使用Bluetooth LE控制器进行mesh消息通信的不同方式。承载器为无连接和面向连接的通信提供支持。

解决蓝牙网格问题

可以将网格节点配置为以定义的间隔自动重新传输消息,以便快速重新传输多个副本。因此,当您发送多个副本时,消息丢失的概率会显著降低。如果要确保所有接收设备同时对消息进行操作(即使它们没有接收到相同的副本),也可以通过使用延迟参数来实现,该参数在许多mesh消息类型中都可用。

图12显示了以50ms间隔传输三次的信息。在这里,第一个副本的延迟参数为100毫秒,并被6个目标灯中的4个接收。

信息以50ms的间隔传送三次
图12:消息以50ms的间隔传输三次

图13显示了第二份拷贝在50ms后发送,并被六盏灯中的第五盏接收到。

第二份副本在50毫秒后发送,并由六个指示灯中的第五个接收
图13:第二份副本在50毫秒后发送,并由六个灯中的第五个灯接收

然后最终的副本没有指定的延迟(图14)。六盏灯中的第二盏接收到信号。然后,在按下电灯开关100毫秒后,所有6个节点一起执行要求的状态改变。这就避免了所谓的爆米花效应,即灯光不会同时亮起来。

最终副本没有指定延迟时间
图14:最终副本没有指定的延迟

蓝牙mesh-multipath交付

一个常见的蓝牙网格网络设计策略是通过在一个节点子集中启用中继功能,在整个网络中构建多个冗余路径(图15)。然后,当您发送消息时,原则上所有这些路径都是可用的。在实践中,如果一条路径由于节点的占空比而不可用,则有可能其他路径中的一条是可用的,而您所发送的消息将在路径的末尾到达它的目的地。

跨网络的多个冗余路径
图15:网络中多个冗余路径

这篇文章是基于Martin Woolley的演讲“理解蓝牙技术的可靠性”,Martin Woolley是EMEA高级开发人员关系经理,他在2月份的世界科技大会和2021年印度电子周Bluetooth SIG上发表的演讲。关于这个主题的一篇综合论文,由马丁撰写,可从Bluetooth SIG网站获得,网址是

理解蓝牙技术中的可靠性

分享你的想法和评论

请输入您的评论!
请在这里输入你的名字