LE Direction Finding

本文旨在概述定位方法,以帮助产品使用 AoA/AoD 开发。

LE 设备可以通过传输启用方向查找的报文,使其方向信息对对等设备可用。

使用来自多个发射器的方向信息和提供其位置的配置文件级别信息,LE无线电可以计算其自身 的位置。

此功能支持LE非编码PHY,但不支持LE编码 PHY

到达角度 (AoA) 方法

LE设备可以使用单天线,通过传输启用了方向查找的报文,使其方向信息对对端设备可用。

对端设备由 RF 开关和天线阵列组成,在接收这些报文时切换天线,并捕获 IQ样本。 IQ 样本可用于计算使用天线阵列中不同元件接收到的无线电信号的相位差, 从而用于估算到达角度 (AoA)。

../../../../../_images/Angle_of_Arrival_Method.png

到达角度方法

出发角度 (AoD) 方法

由RF开关和天线阵列组成的设备可以通过传输启用了方向查找的报文,并且在传输过程中切换天线,使其出发角度(AoD)可检测。

对端设备使用单天线接收数据包,并在接收这些数据包的期间捕获IQ样本。 基于天线阵列的发射元件与接收单天线之间LE射频信号的不同传播延迟可以确定方向。 传播延迟可通过IQ测量检测到。 任何支持AoD功能的接收LE射频的单天线都可以捕获IQ样本,并借助规定发射器天线布局的配置信息来计算入射无线电信号的角度。

Angle of Departure Method

出发角度方法

天线切换

设备可以支持由开关控制的两个或多个天线组成的天线阵列。 设备在接收数据包的Constant Tone Extension(到达角度方法)或发送数据包的Constant Tone Extension(离开角度方法)时切换天线。

相关API

APP可以调用相关API读取切换速率、采样速率、天线数量以及设备支持的最大Constant Tone Extension长度。

函数名称

描述

le_aox_read_antenna_information

读取天线信息

蓝牙消息

蓝牙消息在 subsys\bluetooth\bt_host\inc\gap_aox.h 中定义。

#define GAP_MSG_LE_AOX_READ_ANTENNA_INFORMATION      0x01    //Response msg type for le_aox_read_antenna_information

面向连接场景的AoA/AoD

在面向连接的场景中,能够使用AoA/AoD的设备可以通过发送Connection CTE Request来启动Constant Tone Extension Request流程。

发起者角色所需功能

  • Connection CTE Request

    • 支持Receiving Constant Tone Extensions功能。

    • 支持Extended Reject Indication功能。

    • 所有支持Constant Tone Extensions的PHYs支持以下功能。

      • LL_CTE_REQ

      • LL_CTE_RSP

      • Constant Tone Extension Request procedure

响应者角色所需功能

  • Connection CTE Response

    • 支持Extended Reject Indication功能。

    • 所有支持Constant Tone Extensions的PHYs支持以下功能。

      • LL_CTE_REQ

      • LL_CTE_RSP

      • 传输Constant Tone Extensions

      • Constant Tone Extension Request procedure

需要的蓝牙特性

以下功能在 bin\rtl87x2x\bt_host_image\bt_host_x_x\bt_host_config.h 中定义。

  • F_BT_LE_5_1_SUPPORT

  • F_BT_LE_5_1_AOA_AOD_SUPPORT

  • F_BT_LE_5_1_AOX_CONN_SUPPORT

相关API

面向连接场景的AoA/AoD相关API在 subsys\bluetooth\bt_host\inc\gap_aox_conn.h 中定义。

功能名称

描述

le_aox_set_conn_cte_receive_params

设置Connection CTE接收参数

le_aox_set_conn_cte_transmit_params

设置Connection CTE发射参数

le_aox_conn_cte_request_enable

请求Controller开始或停止initiating the Constant Tone Extension Request procedure

le_aox_conn_cte_response_enable

请求Controller响应Constant Tone Extension Request

蓝牙消息

在面向连接的场景中,关于AoA/AoD的蓝牙消息定义在 subsys\bluetooth\bt_host\inc\gap_aox.h

#define GAP_MSG_LE_AOX_SET_CONN_CTE_RECEIVE_PARAMS  0x22    //Response msg type for le_aox_set_conn_cte_receive_params
#define GAP_MSG_LE_AOX_CONN_CTE_RESPONSE_ENABLE     0x23    //Response msg type for le_aox_conn_cte_response_enable
#define GAP_MSG_LE_AOX_CONN_CTE_REQUEST_ENABLE      0x24    //Response msg type for le_aox_conn_cte_request_enable
#define GAP_MSG_LE_AOX_CONN_IQ_REPORT_INFO          0x25    //Notification msg type for connection IQ report
#define GAP_MSG_LE_AOX_CTE_REQUEST_FAILED_INFO      0x26    //Notification msg type for failure of CTE request

Constant Tone Extension Request Procedure

启动和停止Constant Tone Extension Request Procedure如下图所示。

../../../../../_images/Constant_Tone_Extension_Request_Procedure.png

启动和停止Constant Tone Extension Request Procedure

无连接场景中的AoA/AoD

能够在无连接场景中使用AoA/AoD的设备应能够启动Connectionless Constant Tone Extension Procedure。

发射器角色所需功能

  • Connectionless CTE Transmitter

    • 广播状态下支持LE Periodic Advertising feature。

    • 所有支持Constant Tone Extensions的PHYs支持以下功能。

      • 传输Constant Tone Extensions

接受器角色所需功能

  • Connectionless CTE Receiver

    • 同步状态下支持LE Periodic Advertising feature。

    • 所有支持Constant Tone Extensions的PHYs支持以下功能。

      • 接收扩展头中包含CTEInfo字段的广播物理信道PDUs

      • IQ采样

需要的蓝牙特性

定义在 bin\rtl87x2x\bt_host_image\bt_host_x_x\bt_host_config.h 中的以下功能需要启用。

发射器角色所需功能

  • F_BT_LE_5_1_SUPPORT

  • F_BT_LE_5_1_AOA_AOD_SUPPORT

  • F_BT_LE_5_1_AOX_CONNLESS_SUPPORT

  • F_BT_LE_5_0_SUPPORT

  • F_BT_LE_5_0_PA_SUPPORT

  • F_BT_LE_5_0_PA_ADV_SUPPORT

  • F_BT_LE_5_0_AE_ADV_SUPPORT

接受器角色所需功能

  • F_BT_LE_5_1_SUPPORT

  • F_BT_LE_5_1_AOA_AOD_SUPPORT

  • F_BT_LE_5_1_AOX_CONNLESS_SUPPORT

  • F_BT_LE_5_0_SUPPORT

  • F_BT_LE_5_0_PA_SUPPORT

  • F_BT_LE_5_0_PA_SYNC_SUPPORT

  • F_BT_LE_5_0_AE_SCAN_SUPPORT

相关API

无连接场景下的AoA/AoD相关API定义在 subsys\bluetooth\bt_host\inc\gap_aox_connless_transmitter.hsubsys\bluetooth\bt_host\inc\gap_aox_connless_receiver.h

函数名称

描述

le_aox_connless_transmitter_init

初始化无连接发射器的advertising sets数目

le_aox_connless_transmitter_set_cte_transmit_params

请求Controller设置周期性广播中Constant Tone Extensions的发射参数

le_aox_connless_transmitter_set_cte_transmit_enable

请求Controller启用或禁用在周期性广播中传输Constant Tone Extensions

功能名称

描述

le_aox_connless_receiver_set_iq_sampling_enable

请求Controller启用或禁用从周期性广播序列中的周期性广播包中的Constant Tone Extensions 中捕获IQ样本

蓝牙消息

在无连接场景中与AoA/AoD相关的蓝牙消息在 subsys\bluetooth\bt_host\inc\gap_aox.h 中定义。

#define GAP_MSG_LE_AOX_CONNLESS_TRANSMITTER_SET_CTE_TRANSMIT_PARAMS   0x40   //Response msg type for le_aox_connless_transmitter_set_cte_transmit_params
#define GAP_MSG_LE_AOX_CONNLESS_TRANSMITTER_STATE_CHANGE_INFO         0x41   //Connectionless CTE transmitter state change info
#define GAP_MSG_LE_AOX_CONNLESS_RECEIVER_SET_IQ_SAMPLING_ENABLE       0x50   //Response msg type for le_aox_connless_receiver_set_iq_sampling_enable
#define GAP_MSG_LE_AOX_CONNLESS_RECEIVER_CONNLESS_IQ_REPORT_INFO      0x51   //Notification msg type for LE connectionless IQ report info

Connectionless Constant Tone Extension Procedure

发送和接收Connectionless Constant Tone Extension流程如下图所示。

../../../../../_images/Connectionless_Constant_Tone_Extension_Procedure.png

发送和接收Connectionless Constant Tone Extension流程

参考资料

  1. Bluetooth SIG.Core_v5.4 [M].2023-01-31