Bluetooth Core6.0中关于Channel Sounding设置初始化过程详细介绍

目录

 第一步:读取本地设备CS支持功能:

Num_Config_Supported

​Max_Consecutive_Procedures_Supported

​Num_Antennas_Supported

​Max_Antenna_Paths_Supported

​Roles_Supported

​Modes_Supported

​RTT_Capability,RTT_AA_Only_N,RTT_Sounding_N,RTT_Random_Payload_N

NADM_Sounding_Capability, NADM_Random_Capability

CS_SYNC_PHYs_Supported

Subfeatures_Supported

​T_IP1_Times_Supported

T_IP2_Times_Supported:

T_FCS_Times_Supported

T_PM_Times_Supported

T_SW_Time_Supported:

TX_SNR_Capability:

 第二步:读取远程设备CS支持功能:

第三步:双方CS缺省值设置

第四步:本地设备读取远程设备的FAE表格

第五步:Host设备创建CS配置

Config_ID

Create_Context

Main_Mode_Type & Sub_Mode_Type

Min_Main_Mode_Steps & Max_Main_Mode_Steps

Main_Mode_Repetition

Mode_0_Steps

Role

RTT_Type

CS_SYNC_PHY

Channel_Map

Channel_Map_Repetition

Channel_Selection_Type

Ch3c_Shape & Ch3c_Jump

第六步:安全CS过程使能


当BLE设备间完成连接后(Connection State),可以通过Channel Sounding (CS)获取双方的精确距离。换句话说,BLE的CS技术仅支持在连接态完成测距功能,而无法在非连接态实现上述功能。Channel Sounding设置初始化过程的示例Message Sequence Chartsr如下图所示。BLE设备实现CS功能,需要完成设置初始化以完成一些必要的配置以及获取一些必要的信息。

 第一步:读取本地设备CS支持功能:

首先,本地设备需要读取CS支持功能。该过程通过LE CS Read Local Supported Capabilities命令实现(详细参考:Vol4, Part E: 7.8.130)。

该命令发送后,本地设备直接反馈结果,该结果中具体内容包括:

Num_Config_Supported

该参数反馈本地设备支持的配置数量,协议规范该参数取值范围为1~4,也就是进入连接态后,单个Controller设备最多支持4个设备CS配置。也就是单个Controller在同一个连接态下同时最多仅支持4个设备进行CS。

Max_Consecutive_Procedures_Supported

该参数反馈本地设备支持进行连续CS过程的最大次数,该参数的取值范围为0x0000~0xFFFF.

当该参数配置为0时,表示当前Controller同时支持固定次数的连续CS过程,同时还支持不定次数的CS过程直至用户终止。

当该参数配置为非零时,表示当前Controller支持连续CS过程的最大次数。

Num_Antennas_Supported

该参数表示在CS时,本地设备CS tone交互时最大可用的天线数量。本质上是BLE CS功能是同时能够实现测距和测向功能。

目前该参数的取值范围是1~4,也就是最大天线数量仅支持4个。这和单独的BLE AoA/AoD仍然还有区别。

Max_Antenna_Paths_Supported

该参数表示在CS时,本地设备最多支持天线路径的数量。

目前该参数的取值范围是1~4,也就是最大天线路径数量支持4个

关于天线切换和路径功能的详细解释,请额外参考[Vol 6] Part A: 5.3 Antenna Switching for Channel Sounding和[Vol 6] Part H, 4.7 Phase measurements with antenna switching。

Roles_Supported

该参数表示本地设备支持的CS角色。反馈是bit0时,表示当前设备支持Initiator,反馈是bit1时,表示当前设备支持Reflector,如果都支持,那么两个bit都反馈1。

Initiator和Reflector的定义参考:[Vol 6] Part H 4.3 Channel Sounding steps

Modes_Supported

该参数表示本地设备可选CS模式的支持情况。当前仅支持反馈为bit0,也就是支持Mode-3.

标准中定义的Mode-3为同时支持测量设备间的相位旋转(phase rotations)和来回飞行时间(round-trip time),详细解释参考[Vol 6] Part H, 4.3.4 Channel Sounding step mode-3。

RTT_Capability,RTT_AA_Only_N,RTT_Sounding_N,RTT_Random_Payload_N

BLE设备在CS时可以通过CS_SYNC数据包的交互测量传输的往返时间,详细功能介绍可以参考[Vol 6] Part H,3.1 Measuring RTT。标准中的时间测量可以通过Access Address([Vol 6] Part H, 3.2 Timing estimate based on an Access Address), sounding sequence([Vol 6] Part H, 3.3 Fractional timing estimate based on a sounding sequence)和random sequence([Vol 6] Part H, 3.4 Fractional timing estimate based on a random sequence)实现。

RTT_Capability用三个bit分别来表示上述三种RTT测量的时间精度。当对应bit设置为1时,表示本地设备支持10ns的精度,而设置为0时,表示本地设备支持150ns的精度。

RTT精度的评估方法进一步参考[Vol 6] Part H, 3.1.2 ToD and ToA reporting accuracy。

RTT_AA_Only_N用来表示本地设备是否支持Access Address来测量RTT

RTT_Sounding_N用来表示本地设备是否支持sounding sequence来测量RTT

RTT_Random_Payload_N用来表示本地设备是否支持random sequence来测量RTT

NADM_Sounding_Capability, NADM_Random_Capability

为了增强BLE CS的安全性,协议中引入了攻击检测功能(Attack detection),详细介绍可以参考[Vol 6] Part H, 3.5 Attack detection requirements。标准中提供了两种攻击检测功能,分别是基于Sounding sequence和Random sequence,具体序列定义可以参考[Vol 6] Part H, 3.5.3.1 Sounding sequence attack signal definition和3.5.3.2 Random sequence attack signal definition。

NADM_Sounding_Capability和NADM_Random_Capability分别用来显示本地设备是否支持上述两种攻击检测功能。

 

CS_SYNC_PHYs_Supported

BLE CS中的CS_SYNC数据包交互时,物理层调制的码率和GFSK的调制BT系数具体定义参考[Vol 6] Part A, 3.1.2 Modulation characteristics of Channel Sounding steps。除了1M经典码率之外,还提供两个可选调制方式,分别为2M码率,BT=0.5和2M码率,BT=2。

CS_SYNC_PHYs_Supported用来表示本地设备上述调制方式的支持情况。

Subfeatures_Supported

该参数用来表示本地设备其他CS子特性的支持情况,这些特性在标准中没有规范强制支持,都属于可选支持:

  1. 工作模式为reflector时,是否支持CS Mode-0传输下计算频率误差及补差功能,具体参考[Vol 6] Part A 3.5 Frequency measurement and generation in Channel Sounding和[Vol 6] Part H 6.3 Frequency actuation error correction
  2. 是否支持CS的Algorithm #3c跳频算法,具体可以参考[Vol 6] Part H  4.1.4.2 Channel Selection Algorithm #3c
  3. 是否支持基于sounding sequence的相位测距功能,具体可以参考[Vol 6] Part H  3.3.1 Phase-based PCT estimate based on a sounding sequence

T_IP1_Times_Supported

T_IP1(Time for Interlude Period 1)为BLE CS具体步骤中的时间间隔之一,具体时间间隔参数和定义参考[Vol 6] Part H  4.3 Channel Sounding steps。

例如,在mode-0中T_IP1为Initiator发送CS_SYNC_0_I和Reflector发送CS_SYNC_0_R数据包之间的时间间隔;在mode-1中,T_IP1为Initiator发送CS_SYNC_1和Reflector发送CS_SYNC_1数据包之间的时间间隔。

       T_IP1标准中支持7中间隔,其中145us是强制支持间隔。

T_IP2_Times_Supported:

T_IP2(Time for Interlude Period 2 (between CS tones))为BLE CS具体步骤中的时间间隔之一,具体时间间隔参数和定义参考[Vol 6] Part H  4.3 Channel Sounding steps。

例如,在mode-2中T_IP2为Initiator发送CS tone和Reflector发送CS tone数据包之间的时间间隔;在mode-4中,T_IP2为Initiator发送CS_SYNC_3_I和Reflector发送CS_SYNC_3_R数据包之间的时间间隔。

T_IP2标准中支持7中间隔,其中145us是强制支持间隔。

T_FCS_Times_Supported

T_FCS(Time for Frequency Change Spacing)是BLE CS过程中频率变化所需要的时间间隔,具体定义参考:[Vol 1] Part A 9.1 Channel Sounding procedure和[Vol 6] Part H 4.3 Channel Sounding steps。

T_FCS标准中支持以下9中间隔,其中150us是强制支持间隔。

T_PM_Times_Supported

T_PM (Time for Phase Measurement)是BLE CS过程中相位测量的时间。例如在Mode-2或者Mode-3中Initiator发送CS tone和Reflector发送CS tone过程中测量相位的时间,具体参考[Vol 6] Part H 4.6 Phase measurements during T_PM。

T_PM标准中规范了3中测量时间,其中40us是强制支持相位测量时间。

T_SW_Time_Supported:

T_SW(Time for antenna switch period of the CS tones) 是BLE CS过程如果采用多天线技术,那么该参数用于设定相位测量之前的天线切换时间,具体参考[Vol 6] Part H 4.7 Phase measurements with antenna switching。

T_SW标准中规范了不切换和1us,2us,4us和10us四种天线切换时间。

TX_SNR_Capability:

BLE CS引入了控制输出信号SNR的可选功能。规范中,定义了5种TX SNR要求。而具体SNR估计,标准中可以参考:[Vol 6] Part A 3.1.3 SNR control for Channel Sounding steps。

 第二步:读取远程设备CS支持功能:

本地设备获取自身的CS支持功能之后,还需要获取远程设备CS支持功能。该过程通过LE CS Read Remote Supported Capabilities 命令实现(详细参考:Vol4, Part E: 7.8.131)。

该命令执行后,设备将通过空口发送一条LL_CS_CAPABILITIES_REQ数据包,远程设备收到该请求后,准备自身的特性填入LL_CS_CAPABILITIES_RSP后空口返回。执行设备收到远程设备的LL_CS_CAPABILITIES_RSP数据包后,产生HCI_LE_CS_Read_Remote_Supported_Capabilities_Complete事件,将获取信息上报至执行设备。

LL_CS_CAPABILITIES_REQ和LL_CS_CAPABILITIES_RSP数据包总体符合Data Physical Channel PDU格式,其中的Payload定义为:

这两个数据包对应的Opcode对应为:

LL_CS_CAPABILITIES_REQ和LL_CS_CAPABILITIES_RSP数据包的详细介绍可以参考[Vol 6] Part B, 2.4.2.44 LL_CS_CAPABILITIES_REQ and LL_CS_CAPABILITIES_RSP,其中的关键字段属性与LE CS Read Local Supported Capabilities中介绍的一致,不在额外展开。

而HCI_LE_CS_Read_Remote_Supported_Capabilities_Complete事件的详细介绍可以参考[Vol 4], Part E, 7.7.65.39 LE CS Read Remote Supported Capabilities Complete event。

第三步:双方CS缺省值设置

本地设备和远程设备都可以通过LE CS Set Default Settings命令,完成BLE CS的缺省值设置,具体可以参考[Vol 4], Part E, 7.8.134 LE CS Set Default Settings command。

BLE设备缺省情况下,两种Roles都处于关闭状态,因此需要通过该命令激活分别激活CS中的Role。

 

CS_SYNC_Antenna_Selection将设置CS_SYNC数据包收发过程中使用的天线。

结合SNR control功能,Max_TX_Power将设置CS过程中允许配置的最大信号输出功率。

第四步:本地设备读取远程设备的FAE表格

BLE CS精度与两个设备的频率偏差和精度有关,因此本地设备通过CS计算距离时,需要提前获得远程设备每个频点的FAE(Frequency Actuation Error)表格。

本地设备通过发送LE CS Read Remote FAE Table命令开始这一个过程,具体参考[Vol 4], Part E, 7.8.135 LE CS Read Remote FAE Table command。

收到该命令后,本地设备通过空口发送一条LL_CS_FAE_REQ数据包,远程设备收到该请求后返回LL_CS_FAE_RSP数据包。两个数据包对应的Opcode对应为:

LL_CS_FAE_REQ中只有对应的Opcode而无具体内容,LL_CS_FAE_REQ中的数据包为:

其中,72个Octet对应就是每个信道的FAE ppm值。BLE CS规定的信道号,具体参考[Vol 6] Part H, Section 1 CHANNEL SOUNDING PHYSICAL CHANNELS。每个Octet占8个bit,总共256个数值,分别表示从-4ppm~3.96875ppm,步长为0.03125ppm信道FAE频率值,其中-128对应-4ppm,127对应3.96875ppm。频率FAE与数值的对应关系是:将具体的频率误差ppm值乘32后四舍五入至最近的整数。因此,0ppm对应的频率误差范围从-0.015625ppm~0.015625ppm。本地FAE误差ppm的计算方法,参考[Vol 6] Part A 3.5.1 Fractional frequency offset。

最后,本地设备收到LL_CS_FAE_RSP数据包后,产生LE CS Read Remote FAE Table Complete 事件,并记录远程设备的FAE值。LE CS Read Remote FAE Table Complete具体参考:[Vol 4] Part E, 7.7.65.40 LE CS Read Remote FAE Table Complete event

第五步:Host设备创建CS配置

Host设备通过LE CS Create Config 命令,创建或者更新BLE CS过程中的参数,具体可以参考:[Vol 4], Part E, 7.8.137 LE CS Create Config command。

如果上述参数中Create_Context配置为两端同时设置,那么当前设备将通过空口通过LL_CS_FAE_REQ和LL_CS_FAE_RSP,同时设置远端设备。

LL_CS_FAE_REQ的CtrData具体格式如下,其中的参数通过LE CS Create Config配置生成,具体名字可能有变化,但基本是一一对应。

LL_CS_FAE_RSP空口回复的内容比较简单,仅反馈LL_CS_FAE_REQ中对应的Config_ID号

下面对LE CS Create Config命令中的参数展开解释:

Config_ID

由于规范中,规定BLE CS Host最多可以与4个设备进行CS。因此,需要通过Config_ID指定当前配置参数生效的CS对,该参数取值范围为1~4。

Create_Context

指定当前配置参数只在本地设备,还是本地设备和远端设备同时生效。

Main_Mode_Type & Sub_Mode_Type

指定CS过程中使用的具体主模式和子模式类型。具体Mode的详细介绍,参考[Vol 6] Part H 4.3 Channel Sounding steps

Min_Main_Mode_Steps & Max_Main_Mode_Steps

这两个参数配合,让主机决定CS子模式执行前,主模式可以执行的个数,具体参数可以参考[Vol 6] Part H 4.4.3 Sub_Mode insertion

Main_Mode_Repetition

该参数用于设定在上一个CS子模式和当前要执行的CS子模式之间,CS主模式可以重复的次数。具体参数可以参考[Vol 6] Part H  4.4.4 Main_mode repetition

Mode_0_Steps

该参数设定了在每个CS子事件开始时,插入的mode-0 CS次数,该参数数值应该在1和3之间。[Vol 6] Part H 4.4.2 CS subevent structure

Role

设定本地设备在CS过程中的角色,有Initiator和Reflector两种可选。Initiator和Reflector的定义参考:[Vol 6] Part H 4.3 Channel Sounding steps

RTT_Type

用于设定CS过程中RTT测量使用的方式,共有三个AA, Sounding Sequence和Random Sequence三种方法,7中类型可以选择,具体可以参考[Vol 6] Part H,3.1 Measuring RTT

CS_SYNC_PHY

用于设定BLE CS过程中CS_SYNC数据包的调制物理层参数,具体可以参考[Vol 6] Part A 3.1 Modulation characteristics。

Channel_Map

用于设定BLE CS过程中可以使用的信道号,每个bit对应一个信道。如果当前信道可以使用,那么对应的bit置1.

Channel_Map_Repetition

用于设定使用的Channel_Map在CS过程中非mode-0模式下重复的次数。该参数详细功能介绍参考:Vol 6, Part H 4.1.4 Channel index selection for non-mode‑0 steps

Channel_Selection_Type

用于设定CS过程中非mode-0模式下使用的跳频算法,当该参数设定为0x01时,也就是选择Algorithm #3c算法时,需要额外设定Ch3c_Shape和Ch3c_Jump这两个参数。具体算法介绍参考:Vol 6, Part H 4.1.4.1 Channel Selection Algorithm #3b 和4.1.4.2 Channel Selection Algorithm #3c

Ch3c_Shape & Ch3c_Jump

当且仅当Channel_Selection_Type为Algorithm #3c时,此两参数才起作用。具体参考Vol 6, Part H 4.1.4.2 Channel Selection Algorithm #3c

第六步:安全CS过程使能

用于启动或者重启安全CS过程,具体可以参考:Vol 6, Part B  5.1.23 Channel Sounding Security Start procedure

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/142241.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【第12章】SpringBoot之SpringBootActuator服务监控(上)

文章目录 前言一、准备1. 地址和端口配置2. 引入依赖3. Actuator Properties 二、使用1. Beans (beans)2. Configuration Properties (configprops)3. Environment (env)4. Health (health)5. Heap Dump (heapdump)6. Mappings (mappings)7. Metrics (metrics)8. Thread Dump (…

浅谈vue2.0与vue3.0的区别(整理十六点)

目录 1. 实现数据响应式的原理不同 2. 生命周期不同 3. vue 2.0 采用了 option 选项式 API,vue 3.0 采用了 composition 组合式 API 4. 新特性编译宏 5. 父子组件间双向数据绑定 v-model 不同 6. v-for 和 v-if 优先级不同 7. 使用的 diff 算法不同 8. 兄弟组…

小米,B站网络安全岗位笔试题目+答案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

面试官问:请描述一次你成功解决问题的经历?

面试官为什么要这么问? 面试官问你描述一次成功解决问题的经历,主要是为了评估你的几个关键方面: 问题解决能力:了解你在面对挑战时的思维方式和应对策略。 决策能力:考察你在压力下做出明智决定的能力。 沟通技巧&am…

集团人事管理信息化目标及重点工作内容【数字化规划】

人力资源管理能力模型通常被细分为六个主要支柱,这些支柱共同构成了人力资源管理的核心框架。每个支柱分别涵盖了不同的HR职责和技能,以下是这六支柱能力模型的详细介绍: 1. 人力资源规划与策略(HR Planning and Strategy&#xf…

自修C++PrimerPlus--类型转换、右值引用、引用中的类对象

目录 1.类型转换介绍 2.关闭vs2022的报警系统 3.string里面的I/O 4.引用和左值引用 4.1左值和右值的说明 4.2具体的代码演示 4.3字符和字符串的const区分 4.4右值引用的示例介绍 5.将引用应用于类对象 6.函数和C风格字符串 6.1两者的区别 6.2演示案例 1.类型转换介…

学习图解算法 使用C语言

图解算法 使用C语言 也就是通过C语言实现各种算法 链接:百度云盘 提取码:1001

中国空间计算产业链发展分析

2024中国空间计算产业链拆解 空间计算设备主要包括AR、VR、MR等终端设备。VR设备通常包括头戴式显示器(VR头盔)、手柄或追踪器等组件,用以完全封闭用户视野,营造虚拟环境体验。这些设备配备高分辨率显示屏、内置传感器和跟踪器。 …

哪些行业需要办理网络文化经营许可证?

网络文化经营许可证,是指经文化行政部门和电信管理机构批准,颁发给从事经营性互联网文化活动的互联网信息服务提供者的市场合法准入资质。经营性互联网文化活动是指以营利为目的,通过向上网用户收费或者电子商务、广告、赞助等方式获取利益&a…

linux 内核代码学习(九)--Linux内核启动和文件系统

一个比较顺手的学习平台可以达到事半功倍的效果,这里使用的平台环境主要是利用了主机和从机间的文件共享,以及从机自带的编译环境可以比较顺利的编译busybox1.0版本,方便进行内核和文件系统的测试了学习。 主机环境:vmware7.0win1…

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 内存分配和回收规则

文章目录 垃圾回收机制堆空间的基本结构内存分配和回收规则对象优先在 Eden 区分配分配担保机制 大对象直接进入老年代长期存活的对象进入老年代主要进行 GC 的区域部分收集 (Partial GC):Minor GCMajor/Old GCMixed GC 整堆收集(Full GC) 空…

时序必读论文10|ICLR23 Crossformer 跨维度依赖的多变量时序预测模型

论文标题:iCROSSFORMER : TRANSFORMER UTILIZING CROSS DIMENSION DEPENDENCY FOR MULTIVARIATE TIME SERIES FORECASTING 开源代码:https://github.com/Thinklab-SJTU/Crossformer 前言 Crossformer是一篇非常典型的在transformer基础上魔改注意力机…

24/9/16 算法笔记 评估模型

评估机器学习模型的性能是一个关键步骤,它可以帮助我们了解模型在实际应用中的表现。以下是一些常用的评估模型的方法: 准确率(Accuracy): 最常见的评估指标,表示正确预测的样本数占总样本数的比例。 精确度…

Linux命令:文本处理工具sed详解

目录 一、概述 二、用法 1、基本语法 2、常用选项 3、命令格式 4、编辑命令 5、获取帮助 三、 示例 1、替换字符串 2、删除行 (1)删除包含"string"的所有行 ​编辑 (2)删除从第1行到第10行的所有行 3、插…

MySQL篇(运算符)(持续更新迭代)

目录 一、简介 二、运算符使用 1. 算术运算符 1.1. 加法运算符 1.2. 减法运算符 1.3. 乘法与除法运算符 1.4. 求模(求余)运算符 2. 比较运算符 2.1. 等号运算符 2.2. 安全等于运算符 2.3. 不等于运算符 2.4. 空运算符 2.5. 非空运算符 2.6.…

java -- JDBC

一.JDBC概述: 过java语言操作数据库中的数据。 1.JDBC概念 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于 执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以 为不同的关系型数据库提供统一访问,它由…

CORS跨域请求共享

参考文章: https://xz.aliyun.com/t/12001?time__1311GqGxRGiti%3Dd052x%2BxCwx7qGIxpbDulE%3DoD https://blog.csdn.net/weixin_46622976/article/details/128452494 跨域资源共享 自己的理解,一般来讲,我们使用未授权的接口漏洞,都是因…

Django学习实战篇四(适合略有基础的新手小白学习)(从0开发项目)

前言: 在本章中,我们开始编写面向用户的界面,其中只涉及简单的HTML结构,不会做太多美化,目的就是把后台创建的数据展示到前台。 从技术上来讲,这一节将涉及Django 中function view和 class-based view 的用…

robosuite基础教程(一)——基本概念

robosuite和robomimic都是由ARISE Initiative开发的开源工具,旨在推进机器人学习和机器人操作领域的研究。 一、基本概念 robosuite是一个由MuJoCo物理引擎驱动的模拟框架,专为机器人学习设计。它提供了一套基准环境,是Advancing Robot Int…

Linux实操笔记2 Ubuntu安装Nginx的不同方法

今天来了解Ubuntu或者说Linux系统安装Nginx的几种办法。包括从Ubuntu的库安装到官方源码编译安装。 一、Nginx是什么? 以下是来自Nginx中文文档的内容。 Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比…