LE Direction Finding
本文旨在概述定位方法,以帮助产品使用 AoA/AoD 开发。
AoA/AoD 代表两种不同的定位方法,APP可根据实际需要进行选择。更多信息可参见章节 到达角度 (AoA) 方法 和 出发角度 (AoD) 方法。
如果支持多天线且APP需要切换天线,开发人员可以参考章节 天线切换 获取更多信息。
AoA/AoD 可以支持两种场景,更多信息可参见章节 面向连接场景的AoA/AoD 和 无连接场景中的AoA/AoD。
LE 设备可以通过传输启用方向查找的报文,使其方向信息对对等设备可用。
使用来自多个发射器的方向信息和提供其位置的配置文件级别信息,LE无线电可以计算其自身 的位置。
此功能支持LE非编码PHY,但不支持LE编码 PHY。
到达角度 (AoA) 方法
LE设备可以使用单天线,通过传输启用了方向查找的报文,使其方向信息对对端设备可用。
对端设备由 RF 开关和天线阵列组成,在接收这些报文时切换天线,并捕获 IQ样本。 IQ 样本可用于计算使用天线阵列中不同元件接收到的无线电信号的相位差, 从而用于估算到达角度 (AoA)。
出发角度 (AoD) 方法
由RF开关和天线阵列组成的设备可以通过传输启用了方向查找的报文,并且在传输过程中切换天线,使其出发角度(AoD)可检测。
对端设备使用单天线接收数据包,并在接收这些数据包的期间捕获IQ样本。 基于天线阵列的发射元件与接收单天线之间LE射频信号的不同传播延迟可以确定方向。 传播延迟可通过IQ测量检测到。 任何支持AoD功能的接收LE射频的单天线都可以捕获IQ样本,并借助规定发射器天线布局的配置信息来计算入射无线电信号的角度。
天线切换
设备可以支持由开关控制的两个或多个天线组成的天线阵列。 设备在接收数据包的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如下图所示。
无连接场景中的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.h
和 subsys\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流程如下图所示。
参考资料
Bluetooth SIG.Core_v5.4 [M].2023-01-31