作者:HW-LC
BT5的新特性基本都是BLE方面的改进,总的来说就是:
1:2X的传输速率。
2:4X的工作距离。
3:8X的广播包长度。
下面的特性大多数都是围绕这些数据来说明的。
PHY
蓝牙是一个全功能的协议栈,协议栈底层是物理层,通常被称为PHY。
BT5相对于BT4增加了两个新的PHY变体,因为有明确的目标,每个PHY变体被设计的拥有其独特的特性,为了后续规格书能够更加容易引用他们,这些PHYs的名字被简称为:LE 1M,LE 2M和LE Coded。
LE 1M
LE 1M是BT4的PHY,它使用GFSK(高斯频移键控),用于1 Ms/s的符号率,在BT5中是强制支持的。
LE 2M
新增的LE 2M允许物理层使用2 Ms/s的符号率,因此能使用比BT4 LE 1M更高的数据率。
LE Coded
LE Coded PHY相对于BT4 LE 1M,在不需要增加传输功率的情况下拥有4倍的工作距离。
Range
BT5用于比BT4更远的工作距离,作者实测在次优环境下可以达到350米,在后续商用蓝牙模块中也可能达到500米。
蓝牙是一种无线电技术,无线电是电磁辐射的一种形式,在这种通信技术上下文中,最大工作距离是可以从接受信号中正确的提取数据,而不仅仅是接收到信号。
在形式上,我们把传输信号的功率跟背景噪声的比值成为信噪比(SNR),当接收器远离发射器的时候,在恒定背景噪声的情况下,接收器的信号强度多少都会降低,因此信噪比也会降低,误码率(BER)也会提高。
误码率是接收器解错误析发射器传输的比特的概率,蓝牙要求接收器的误码率必须小于0.1%。
在最大BER限制下,不增加发射功率的情况下增加蓝牙的工作距离的确是一个问题,因为会带来更小的SNR。
在通信系统中,通过两大策略来处理错误:一个是错误检测,一个是错误纠正。
错误检测
接收器有很多种错误检测的方案来检测错误,奇偶校验位方案已经使用了几十年了。有线,串行通信系统任然使用奇偶校验位来检测错误。
还有就是循环冗余校验(CRC),所有的数据包都有一个24比特的CRC值。接收器重新计算CRC,并与数据包中的CRC进行比较,如果它们不一样则发生了错误。
如果检测到错误,系统有两种方式应对:
- 丢弃(如果错误是致命的)。
- 请求让发射器重新发送该数据(只需要不回复ACK即可,发射器则会重新发送数据)。
错误修正
接收器不仅能检测错误,还要在某些场景下能够修复错误,这样就不需要等待发射器的数据重传了。BLE4仅支持错误检测,不支持错误修正。
使用高级的错误纠正技术有利于在低SNR情况下解码,因此可以离发射器更远,这是BT5拥有更远的工作距离的基础。LE Coded PHY使用前向纠错技术(FEC),他通过在传输数据包中增加额外的冗余比特,唯一的目的是支持FEC算法来确定正确的值和对应的错误比特。
FEC编码使用一个卷积编码器,使用如下算法对每个输入比特生成两比特冗余:
LE Coded PHY使用两种不同的编码方案:S=2和S=8,模型映射器把通过卷积FEC编码器把每个比特映射到P符号中,P的值取决于使用的编码方案,如果S=2则没有什么不同,如果S=8,则经过FEC编码器之后每个比特都会变成4比特,具体转换如下:
S=2和S=8两种方案会导致两种不同的结果,使用S=2方案,工作距离会翻倍,使用S=8方案,工作距离会变成4倍,但是我们可以看到,因为接收器需要冗余数据来支持FEC算法,这个也影响发射器传输的符号数量,因此会降低数据率。
PHY选择
Host可以使用新的HCI(Host Control Interface)命令来切换PHY方案,下面是BT5不同的PHY方案的关键指标:
在同等发射功率的情况下,不同PHY对应的接收器天线灵敏度是不一样的:
功率
BT5中最大的发射功率定义为+20 dBm,而在BT4中这个层级定义为+10 dBm,将TX功率提升10倍可能会对最大传输范围产生根本的影响,而且不同的主管机构不允许高于+10 dBm的发射功率,这个是因为BT4中BLE仅可以使用简化的跳频序列和少量的信道。
然后BT5可以使用比BT4更多的信道(得益于新的跳频算法),这些增强功能可以允许BT5设备未来将在全球各地使用高于+10 dBm的发射功率,从而提供传输性能并建立更强大的连接。
广播
扩展信道
BT4的广播包最大支持37字节,如果除去6字节的头部,那么有效载荷最大只有31字节。广播数据包通过专用的三个信道(37,38,39)来广播数据,每个信道有2 MHz的宽度,总的信道数量有40个,编号为0-39。
同样的有效载荷会典型的发送到3个信道,每个时刻发送一个信道。
相对于BT4,BT5的广播有很大的变化,GAP(Generic Access Profile)中增加了广播,扫描,连接等8个跟广播相关的PDUs,这些变化允许在无连接场景下广播更多的数据量,也显著增加了占空比的利用。
4个旧的PDU(legacy):ADV_IND,ADV_DIRECT_IND,ADV_NONCONN_IND,ADV_SCAN_IND
4个新的PDU(extended):ADV_EXT_IND,AUX_ADV_IND,AUX_SYNC_IND,AUX_CHAIN_IND
大数据包和广播信道卸载
BT5允许使用255长度的数据包,这个是通过offloading(卸载)有效载荷到其他的信道(0-36)来完成的,这些信道之前只允许用于连接事件(在连接上数据可能传输时,一个连接事件就是一个时隙),另外无连接场景下允许更大的数据包,这会带来其他的好处。
数据头新增了一个AuxPtr字段,在37,38,39信道上传输,这个也就是BT5中所说的Primary Channel。AuxPtr字段包含了广播有效载荷中的数据包将在哪个Secondary Channel中传输,因此接收器知道将在哪个信道来接收。
广播数据包链
在那些需要广播大量数据的用户场景,可以通过把数据包链在一起,每个数据包都是整个数据集的一个子集,每个链在一起的数据包都可以通过不同信道来传输,因为数据头中AuxPtr包含了链中的下一块数据。
需要注意的是BT5最大允许使用255的PDU,但是并不代表Host端只能广播255字节的数据,实际上Host端可以使用1650长度的广播数据(参见BT5 SPEC page 2716)。
Controller可以支持Host广播数据分片,总的Host广播数据在分片前最大长度不能超过1650,当链路层对Host广播数据分片时,Controller会对分片数量和每个分片大小进行指定,Controller需要尽量少的产生分片数量来确保Host广播数据传输的可靠性。Host可以指定倾向的Controller分片方案,但是Controller可以忽略Host的这个倾向。如果广播,或者扩展广播发送的扫描回复数据量,或者扫描PDU,加上扩展数据包头长,广播模式和扩展数据包头超过了广播物理信道PDU有效载荷的最大长度(255字节),链路层需要对Host广播数据进行分片。
广播集
BT4没有广播载荷的条款,可以通过合入私有的扩展包来在某些模块中实现这个功能,BT5通过标准机制来实现广播数据的多路,不同子集。
广播集有一个ID来指定一个给定的数据包具体属于哪个子集,每个子集有他自己的广播参数,例如广播使用的间隔(interval)和PDU类型,广播数据集可以使用Primary channel或者Secondary channel。重要的是:任务的调度和不同子集的传输属于Controller链路层,而不是由Host来驱动,这样子将带来更低的功耗。Host只需要通知Controller广播集和他们各自的参数即可,剩下的就交给链路层来完成。
周期广播
在广播事件调度进程中,广播通常包含一定程度的随机性,通过故意插入随机延迟来避免持久数据包的冲突,在BT4中这个是广播能够正常工作的唯一办法。BT5引入了定期执行的能力和确定性广播,允许扫描者用扫描数据包来同步广播设备时间表。这是一个更高能效的扫描方式,同样可能给BLE的其他无连接用户场景铺平道路,比如音频应用程序。
GAP定义了一个同步模式和一个非同步模式,当在同步模式下操作时,定义了一个周期广播同步建链流程。周期广播,在同步模式下执行,使用了一个新的数据头字段SyncInfo,包含了时间和时间偏移,定期广播使用了一个新的GAP PDU叫做AUX_SYNC_IND。
减少竞争和工作周期
BT5中最有趣的广播变更是:广播当前使用的信道,使用Primary channel 37,38,39来携带少量的数据,使用Secondary channel 0-36来携带大多数的数据。因为使广播数据使用了所有可用的信道,只有较小的数据头使用了Primary channel,这个将减少Primary channel的竞争。
此外BT4在三个不同的信道上传输同样的有效载荷三次,BT5在Primary channel通过较小的数据头,只需要传输这些数据一次,因为总的传输数据量减少了,因此工作周期也减少了。
新增加的广播PDUs
为了支持新增加的消息,我们增加了额外的广播PDUs,这些PDUs在如下事件时广播:
- ADV_EXT_IND
增加不可连接(仅广播)和定向扫描事件,此封包可以在Primary channel上广播,并表示可以提供Secondary channel上的广播信息,比如:在哪个信道上广播,什么时候广播,以及使用哪个PHY。
- AUX_ADV_IND
用于在次广播信道上发送的广播数据的第一片段,此封包可以在Secondary channel上广播主要的有效载荷,最大255字节。
- AUX_CHAIN_IND
用于发送剩下的数据,在未完成的辅助PDU广播事件。
- AUX_SYNC_IND
用于间隔广播,在固定信道上的单向数据。
如果只发送数据量小于1个AUX_ADV_IND长度(255字节),参见于BT5 Spec page 2759:
如果发送的数据量大于1个AUX_ADV_IND长度(255字节),参见于BT5 Spec page 2765:
定期广播使用ADV_EXT_IND封包只是定期广播模式,该封包会指向AUX_ADV_IND,其中包含有关定期广播模式的实际信息:广播间隔,跳频序列,广播者地址,参见于BT5 SPEC page 2753:
T_IFS: Time Inter Frame Space,150微秒。
T_MAFS: Time Minimum Auxiliary Frame Space,300微秒。
高占空比非建链广播
针对非建链广播,最小广播间隔已经从100 ms降低为20 ms,这个将有助于设备像beacons一样快速识别和回复广播数据包。
可用时间块标记
BT5做了一些改进来提高与设备上其他无线技术的的共存,比如智能手机。
BT使用2.4 GHz ISM频段,这个是紧邻移动无线标准频段,比如LTE,当在灵敏度低的接收器上进行传输时,这两个系统有潜在的干扰风险,BT使用可用时间块标记(SAM,Slot Availability Masks)系统,它允许蓝牙标记可用的时间块来进行同步,这个是紧邻移动无线标准频段的最好方式。
标记设备的收发时间块,其他蓝牙设备获取该信息即可避免在该设备忙碌是争抢信道资源,有利于在信道资源有限的情况下维持多设备同时工作。
蓝牙本身有一个防冲突的协议,比如A设备当前WLAN在下载,那么A设备的蓝牙协议栈就告诉当前设备的蓝牙最好不要工作,但是B设备的蓝牙协议栈不知道A设备的WLAN在工作,所以还是会尝试去通信,从而带来干扰,可用时间块标记(Slot Availability Mask,SAM)就是A设备同步自己的可用时间块信息(类似AWDL的availability window)到B,B等到A到了自己的Availability Slot的时候再开始通信,从而减少共存干扰。
跳频
蓝牙在连接的时候使用自适应跳频技术,这是一个算法来确定收发的无线信道,涉及到选择信道的切换频率,因此数据可以在一个较宽频段上进行通信,这个让蓝牙在拥塞的无线环境下可以正常工作。
BT4用于跳频的信道选择算法只使用12个特定的信道,连接事件中所有的数据包都使用同样的信道,这个不是最优方案,比如音频场景。
BT5使用了一种新跳频算法,跳频序列是伪随机的,特定信道的随机范围特别大,设备可以在连接参数中指定他们是否支持新的跳频算法,使用共享的事件计数器,确保连接的对端设备从伪随机的可用信道中选择同样的信道。
意义
BT5代表了蓝牙技术中的下一个里程碑,使用新的远距离LE Coded PHY可以提供整套住宅,建筑物的覆盖。更高符号率的LE 2M PHY提高了频谱利用率,能够支撑新兴用户场景,比如:体育,健康,医疗设备。蓝牙的广播扩展特性给下一代beacons,音频场景铺平了道路,新的工业应用和智慧城市应用将成为可能。
BT5将会在很多方面产生重大影响,并进一步将其定位为低功耗无线互联网的首选技术。
BT5.1更新
BT5.1相对于BT5增加了寻向(direction finding)功能,GATT缓存增强等特性。
待更新
BLE Mesh
Voice Over BLE






































苏公安网备 32011402010933号