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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值