蓝牙Core Spec 5.3演进

复制转载请注明出处。

Core spec 5.3 在2021/7/13号正式发布,我23号在SIG官网发现了协议的更新。
看蓝牙SIG的介绍,5.3协议主要是一些特性的增强(Feature Enhancements),主要包含5个方面。
1、Periodic Advertising Enhancement 周期性广播的增强
2、Encryption Key Size Control Enhancement 加密密钥大小控制增强功能
3、Connection Subrating(连接次级评级)次级连接
4、Channel Classifcation Enhancement 信道分类的增强
5、Removal of the Alternate MAC and PHY (AMP) Extension 删除不用的
AMP Phy


core spec 5.3 showing changes from 5.2

  • 蓝牙Core Spec 5.3演进
  • 1 Periodic Advertising Enhancement
    • 1.1 背景
      • 1.1.1 Extended Advertising
      • 1.1.2 Periodic Advertising
      • 1.1.3 Broadcast Retransmissions
      • 1.1.4 Energy Efciency 能量效率
      • 1.1.5 The Primary Advertising Channels and RX Duty Cycle
    • 1.2 About the Periodic Advertising Enhancement
      • 1.2.1 Capabilities and Benefts 能力和好处
      • 1.2.2 对应的改变
  • 2 Encryption Key Size Control Enhancement
    • 2.1 背景:
    • 2.2 问题点:
    • 2.3 About the Encryption Key Size Control Enhancement
  • 3 Connection Subrating
    • 3.1 背景:
      • 3.1.1 LE-ACL Connection
      • 3.1.2 CIS(Connected Isochronous Streams)
      • 3.1.3 ACL连接相关的控制过程
      • 3.1.4 Mixed Duty Cycle Requirements
    • 3.2 About Connection Subrating
      • 3.2.1 好处:
      • 3.2.2 主要用户场景:
      • 3.2.3 CS5.3是怎么做的:
      • 3.2.4 新增的HCI接口
  • 4 Channel Classifcation Enhancement
    • 4.1 背景:
    • 4.2 About the Channel Classifcation Enhancement
      • 4.2.1 Use Case:
      • 4.2.2 交互流程:
  • 5 Removal of the Alternate MAC and PHY (AMP) Extension
  • 6 总结

1 Periodic Advertising Enhancement

1.1 背景

1.1.1 Extended Advertising

蓝牙5.0把广播信道抽象为两类,一种叫主广播信道(primary advertisement channels),工作在37,38,39三个信道中。蓝牙4.0的广播使用的都是主广播信道,另一种叫第二广播信道(Secondary Advertising channels),工作在0–36信道中。蓝牙5.0中在主广播的数据类型增加了一个ADV_EXT_IND指令,当扫描设备收到ADV_EXT_IND指令且能识别其携带的数据时(需要扫描设备也是蓝牙5.0才能正确识别),根据包中携带的信息可以去第二广播信道监听其辅助包(auxiliary packet)。
扩展的广播:LE设备可以使用37个 general purpose channels(Secondary Advertising Channels)去发送广播数据,就和3个primary advertising channel一样。好处就是为了降低数据包冲突的概率。
扩展的广播包含四种广播包格式:ADV_EXT_IND, AUX_ADV_IND, AUX_SYNC_IND and AUX_CHAIN_IND ,它们都使用Common Extended Advertising Payload 广播包格式。
Common Extended Advertising Payload的主要数据字段为Extend Header,格式如下图:

对一些重要字段进行一下说明:

字段 含义
AdvDataInfo(ADI) 包含两个子域Advertising Data ID(DID)和Advertising Set ID(SID)。DID用来标识广播数据的ID,每次数据更新时DID也会随之更新为与上次不同的随机值。这样可以判断是否为重传包。SID用来标识不同的广播事件集,因为在扩展广播中,会有若干个广播事件,所以用SID来进行标识
AuxPtr 扫描设备就是通过Auxptr所携带的内容来确定辅助包的位置及其所处的信道,辅助包为AUX_ADV_IND
SyncInfo 用于指示AUX_SYNC_IND的内容,周期性广播使用的参数
ACAD Additional Controller Advertising Data,附加控制广播数据,如一个服务的UUID或服务数据
CTEInfo 代表是否支持Constant Tone Extension,AOA和AOD时使用

扩展的广播可以有很多种方式使用方式,其中一种叫做周期性广播(periodic advertising)。

1.1.2 Periodic Advertising

传统的广播,Core Spec 4.0中为了避免多设备之间2.4G上的数据碰撞,使用一个0-10ms的随机值来避免,用下图来展示:

虽然现有方式解决了数据碰撞问题,但是也使接收机接收更加困难了,所以又有了periodic advertising。

周期性广播通过ADV_EXT_IND进行引导,依次在不同信道上发送后续数据,相应的也引入了新的问题。

1.1.3 Broadcast Retransmissions

蓝牙的广播是没有确认协议以及明确的重传机制的。因此使用了periodic Advertising之后,发送者的开销也变大了,需要多发几次以保证RX设备能收到。

1.1.4 Energy Efciency 能量效率

AUX_SYNC_IND广播包中不包含AdvDataInfo域,又由于controller收到信息之后直接通过HCI LE Periodic Advertising Report event发送给Host,Host就需要判断这些包是否对自己有用。

1.1.5 The Primary Advertising Channels and RX Duty Cycle

对于广播包来说,约定的方式是在37 38 39 信道上各发一次,这又引出了一个问题,举例说明:
如果一个设备在RX的总占空比为60%,其他40%进行TX,这样分配在37 38 39 三个主广播信道上的占用就是20%。对于Controller来说不知道什么时候可以直接切换到其他信道(因为可能会有重传等数据出现)。

1.2 About the Periodic Advertising Enhancement

1.2.1 Capabilities and Benefts 能力和好处

在Core Spec 5.3中规定,在AUX_SYNC_IND包中,Common Extended Advertising Payload Format 中的ADI域是可选的。
在接收设备中,Host可以指示Controller它是否需要识别出已经发送过的数据包。这种方式就提高了Host端的效率,不需要被重复的包打扰。
对于Controller来说,当收到数据包后检查ADI域,就可以判断是否为重传、前期是否收到过,这样RX设备就可以直接switch到其它的channels,对这个信道来说RX的占空比减少了,可以去其他信道进行接收。

1.2.2 对应的改变

  1. Link layer需要先添加一个标志位FeatureSet表明自己是否支持此功能(LE Read Local Supported Features HCI command ),然后在Host下发可选指令后,判断是否添加ADI域。
  2. HCI接口的变化,主要的接口变化如下表:

2 Encryption Key Size Control Enhancement

2.1 背景:

Encryption Key Lengths:

加密提供的保护强度在很大程度上依赖于加密算法以及秘钥。对于秘钥来说,秘钥的好坏程度取决于密钥值的随机程度和密钥长度。

目前的秘钥长度情况:
支持的最大密钥长度因设备类型而异,因此此值通常在出厂时设置。core spec规定了通用的56bit为最小密钥长度。
在设备建立加密连接时,可以协商秘钥大小,下图为空包实例:

接下来host会进行询问,流程如下:

HCI中都可以看到:

2.2 问题点:

  1. Extra Round Trip(额外的往返)
  2. Invalid Key Size(密钥大小无效)
    对于应用来说,Controller协商的秘钥可能无效,不满足应用的要求,目前到Core spec5.2是没有方案来解决的。

2.3 About the Encryption Key Size Control Enhancement

包含两点改动:
1、 原文是这么说的:inform the host of the negotiated key size at the same time that it informs the host that encryption has been enabled. (在通知Host已启用加密的同时,通知Host协商的密钥大小。)

上述问题点1解决了,只需要一条指令,并且原文说这样提高了加密的速度与效率(少了两条指令交互)。
2、新增一条HCI指令

3 Connection Subrating

3.1 背景:

3.1.1 LE-ACL Connection

了解连接间隔、连接事件外设延时的概念(Peripheral Latency ),下图有助于理解,这些都是Core Spec 4.0的概念:

3.1.2 CIS(Connected Isochronous Streams)


这时出现的问题是:如果ACL Connection Interval很长,这样在建立Audio链路时就会耗费很长的时间,如下图:

3.1.3 ACL连接相关的控制过程

a、Connection Update procedure,连接参数更新的过程
b、Channel Map Update procedure,指示信道质量,即跳频时可选用的信道
c、选用哪一个PHY
这些相关的控制过程也跟连接参数相关,如果链接参数过长,进行参数切换时都需要有个很长的间隔,实时性很差。

3.1.4 Mixed Duty Cycle Requirements

目前市面上的蓝牙设备一般占空比是不变的,如下图所示:

但有一种场景:比如我们的蓝牙耳机,在用户连接后没有使用时,耳机处在一个低占空比的状态,但突然来了电话或者需要听歌,占空比需要切换,但这时不能有明显的延时。切换策略如下:

从event 4开始进行参数更新,到Event 10 才完成,中间6个Event是Core Spec的强制要求,目的是留出足够的时间让Central 和peripheral都完成更新,也预留出重试的时间。否则万一参数更新失败,就会断链。
所以在这种情况下会有明显的问题:若在低占空比的情况下,连接间隔比较大,如1s,6个Event后就是6s,严重影响体验。

3.2 About Connection Subrating

3.2.1 好处:

快速的实现从长连接间隔转换到短的连接间隔。

3.2.2 主要用户场景:

a、LE Audio
b、使用sensor采集数据的监控设备

3.2.3 CS5.3是怎么做的:

增加了一些新的参数:
subrate factor
continuation event
continuation number
举例说明:Peripheral Latency=1, subrate factor=3 and continuation number=1

在举个例子说明一下Continuation Number,下图为Peripheral Latency=0, subrate factor=5 and continuation number=2的情况:

在下面在举个例子说明一下交互使用的注意事项:

  1. event #0 (a subrated connection event)位置,外设进行数据listen,但是接收到的链路层PDU为空
  2. event #1 #2两个事件会被跳过
  3. event #3 #4 #5重复上述过程
  4. Peripheral Latency被设置为1,并且在Event #6收到了数据,7 8 9 10 11都会被跳过

下面都是重复的,可以了解下。此处如果加一个continuation number会更复杂一些。

通过这种方式,就算将Connection Interval修改的比较短,也可以通过调整Peripheral Latency来进行功耗调整。
补充一个概念:Subrate Base,即在一次Subrate Factor中第几次是subrated conenction event(which one is active used)。

3.2.4 新增的HCI接口


如下示例为一次切换流程:

在转换期间,新旧两组参数同时使用。

4 Channel Classifcation Enhancement

4.1 背景:

Adaptive Frequency Hopping :跳频技术
蓝牙LE中的信道分类仅由中央设备执行,中央控制器可以使用本地获取的信道性能测量值或主机提供的信息来确定信道分类。
若两个设备离的较远,Central设备计算的可用信道值并不一定适用于Peripheral,这可能会导致数据包冲突,并且通常会降低吞吐量和可靠性。
空包中看到的分级情况:used和unused两类。

4.2 About the Channel Classifcation Enhancement

在Core Spec 5.3之前,Le设备的信道分类都是由中央设备做的,新的改动就是外围设备也可以上报信道分类信息。

4.2.1 Use Case:

Core Spec中举的例子:
Alice:手机(最新的手机,支持Channel classification enhancement) 耳机(最新的耳机)
Bob:耳机(同样品牌,同样型号的,但是是一年前买的)

Alice和Bob的耳机都连接到Alice的手机,手机放在客厅的桌子上,通过LE Audio听音乐。
Bob发现他去厨房的时候,耳机会卡顿,音质会变差;
Alice也很奇怪,她带着耳机去厨房就没有问题。
Alice很严谨,去查了说明书。发现,她的耳机是这个牌子和型号的第二版,而鲍勃的是第一版。
Bob也很严谨,他发现当走到厨房位置时,可以搜到邻居家的wifi了,认为是邻居家的wifi干扰了他的耳机。
经过咨询客服,原来Alice的耳机可以上报自身检测到的信道质量,完美避开了邻居家wifi的干扰,但是Bob的老款耳机没有这个功能。

4.2.2 交互流程:

5 Removal of the Alternate MAC and PHY (AMP) Extension

在另行通知之前,会员仍然可以根据早期的蓝牙核心规范版本(如5.2)对使用AMP的产品进行鉴定。

6 总结

5.3是为了共同提高许多类型产品的可靠性、能效和用户体验。可能在设备形态上并体现不出来。大部分改动都在Le上,可能也是在为Le Audio扫清障碍。

蓝牙5.3 Core Spec演进与功能变化相关推荐

  1. Bluetooth Core Spec经典蓝牙安全机制导读

    关键词:Bluetooth Classic Security 经典蓝牙安全机制 Pairing Authentication Encryption 本文基于Bluetooth Core Spec v5 ...

  2. 蓝牙的发展史及版本演进

    蓝牙技术最初由爱立信创制,始于爱立信公司的1994方案,它是研究在移动电话和其他配件间进行低功耗.低成本无线通信连接的方法. 发明者希望为设备间的通讯创造一组统一规则(标准化协议),以解决用户间互不兼 ...

  3. java实现蓝牙通信程序_Android蓝牙通信聊天实现发送和接受功能

    很不错的蓝牙通信demo实现发送和接受功能,就用了两个类就实现了,具体内容如下 说下思路把 主要有两个类主界面类和 蓝牙聊天服务类. 首先创建线程 实际上就是创建BluetoothChatServic ...

  4. .net core 监听文件夹变化, FileSystemWatcher 封装

    功能: .net core 监听文件夹变化, FileSystemWatcher 封装 问题1:复制一个新文件能正常运行,但是复制第二个文件的时候就报一个文件正被其他线程占用无法打开的异常?The p ...

  5. Win7 激活状态出问题;Chrome OS 文件管理器功能变化

    (给技术最前线加星标,每天看技术热点) 转自:开源中国.solidot.cnBeta.腾讯科技.快科技等 0.Windows 7 激活状态出问题 前几天不少用户反映 Windows 7 的补丁 KB4 ...

  6. linux mint 修改日期,Linux Mint 19发行日期和功能变化

    Linux Mint 19发行日期和功能变化 Mark Do 2018年1月9日 暂无评论 阅读 4,974 次 Linux Mint 19 名称和大致发行日期近期揭晓. 流行的基于Ubuntu的Li ...

  7. Core Spec 5.0 学习

    Vol1 Architecture & Terminology Overview 1 GENERAL DESCRIPTION 蓝牙无线技术是一种短距通信系统,旨在取代连接便携式和/或固定电子设 ...

  8. ASP.NET Core 实现带认证功能的Web代理服务器

    引言 最近在公司开发了一个项目,项目部署架构图如下: 思路 如图中文本所述,公司大数据集群不允许直接访问外网,需要一个网关服务器代理请求,本处服务器A就是边缘代理服务器的作用. 通常技术人员最快捷的思 ...

  9. 如何在 Asp.Net Core 实现 Excel 导出功能

    在web应用程序开发时,或许你会遇到这样的需求,如何在 Asp.Net Core 中实现 excel 或者 word 的导入导出,在 NuGet 上有大量的工具包可以实现这样的功能,本篇就讨论下如何使 ...

  10. ASP.NET Core 5.0新增功能摘要

    .NET5.0发布了大半个月,从.NET Core3.1的平滑迁移体验令人心旷神怡,改个targetframework就完成迁移,不要太轻松!然而,ASP.NET Core5.0也有很多有意思的改变, ...

最新文章

  1. 皮一皮:双11到底买了啥...
  2. HDU 4445 Crazy Tank --枚举
  3. 总在说 Spring Boot 内置了 Tomcat 启动,那它的原理你说的清楚吗?
  4. LSMW批处理使用方法(03)_步骤2
  5. 在macOS X中gdb的codesigned问题解决
  6. lamp架构,搭建一个网络平台
  7. [html] 你有用过图片热区吗?它有什么运用场景?
  8. java oracle spool,oracle之spool详细使用总结
  9. 科学家计算机模拟宇宙,科学家利用计算机模拟整个宇宙的演化
  10. window certutil查看文件md5,校验文件MD5
  11. 这篇文章说说特征工程(反欺诈与征信变量)
  12. u盘插上电脑后计算机没没磁盘,U盘插上电脑没有显示“可移动磁盘”的解决
  13. 分析时间复杂度,主定理,势能分析
  14. 【linux内核分析与应用-陈莉君】物理内存分配与回收机制下
  15. 负离子空气净化器哪个牌子好,空气净化器科普
  16. 强化学习实战-使用Sarsa算法解决悬崖问题
  17. Android NDK 编译 三方库记录 及 jni库封装问题
  18. PCI总线及发展历程(详细)总结
  19. 企业员工流动大难管理?低代码+人事管理系统轻松掌控员工档案信息!
  20. mysql8实战_实战MySQL8.0.17 Clone Plugin

热门文章

  1. JavaWeb-16 (E家园项目案例1)
  2. tensorflow如何使用tensorboard将图片文件events.out.tfevents.1618410161.DESKTOP-CLCBFNS展示出来
  3. autojs指纹验证
  4. 学计算机的的用87键键盘可以吗,键盘87和108键区别
  5. 什么是WIFI 探针?WIFI 探针的用途有哪些?
  6. 谈谈Google AdSense以外的国外优秀广告联盟
  7. 组态王 6.55 启停plc_PLC编程进料PLC编程项目
  8. 实时渲染3D动画创作大赛
  9. 《山水情》------中国水墨山水动画的颠峰与极至
  10. 2021Bootstrap框架入门(最新)