跳转至

Telink Channel Sounding Handover Solution应用指南


概述

本文档适用于Telink Channel Sounding (简称CS) Handover Demo的准备和搭建。目的是为了方便FAE或者客户拿到Demo后能够快速熟悉和搭建,方便演示和评估。

Channel Sounding Handover 测距方案概述

Telink Channel Sounding Handover测距方案目前是基于TLSR922x系列进行Demo,该方案支持“1主多锚点”的硬件配置,可应用于数字汽车钥匙、空间定位等场景。后续将会推出基于TL322X的CS Handover测距方案,将会在现有方案上进一步优化测距延时和提高测距稳定性。

Channel Sounding 技术原理

蓝牙信道探测(Channel Sounding)技术,作为蓝牙核心规范6.0版中的一项核心技术,为蓝牙技术领域引入了前所未有的安全精密测距功能,这一技术不仅极大地拓宽了蓝牙技术的应用边界,更为包括蓝牙“查找(Find My)”服务及数字钥匙解决方案在内的多种应用场景提供了强有力的技术支持。

蓝牙信道探测采用了两种成熟的测距方法,即基于相位的测距 (PBR, phase based ranging) 和基于往返时间 (RTT, round trip time),在蓝牙连接的设备之间实现安全、精细的测距。

泰凌蓝牙信道探测测距方案

基于相位的测距原理PBR(Phase Based Ranging)

根据信号周期得到距离

根据通信原理,可以根据信号传播的周期数得到信号传播的距离。如上图所示,假设信号以一个固定频率f传播,传播速度为光速c,信号波长为\(\lambda\),信号共传播N个周期,那么可以得到传播距离为:

R = N*\(\lambda\) = N * (c/f)

但是通常设备无法得到发送设备与接收设备之间的信号传播周期数,因此,PBR涉及一种技术通过其他数据得到设备之间的距离,工作原理如下:

PBR技术得到距离

(1) 设备A以固定频率f~1~发送信号,为了计算方便,设备A的发送信号初始相位为0。

(2) 设备B接收到信号,并记录这个接收相位为\(\varphi\)~1~。

(3) 然后设备B以相同频率f~1~回传信号给设备A,并保证初始相位为\(\varphi\)~1~,以保证设备A在接收到的信号在相位和频率上是设备A发送的信号的延续。

(4) 设备A测量接收到信号的相位记为\(\Delta\)\(\varphi\)~1~,即为信号在设备A与设备B之间传播的相位差。

设备A以固定频率f~2~重复上述步骤,并记录接收信号的相位差为\(\Delta\)\(\varphi\)~2~。

设备A与设备B的距离可表示为:

R = (\(\frac{c*(\Delta\varphi~2~-\Delta\varphi~1~)}{2*2\pi(f~2~-f~1~)}\))mod(\(\frac{c}{2(f~2~-f~1~)}\))

基于往返时间的测距原理RTT(Round Trip Timing)

RTT测距原理

基于RTT的测距原理比较简单,如图,假设设备A在ToD~A~时刻发送信号,设备B在ToA~B~时刻接收到信号,间隔一段时间后,设备B在ToD~B~时刻发送信号,设备A在ToA~A~时刻接收到这个信号,那么ToF就是信号在设备A与设备B之间传播的时间。

ToD~A~与ToA~A~对于设备A是已知的,同理,ToA~B~与ToD~B~对于设备B也是已知的,那么可以得到:

ToF=\(\frac{(ToA~A~-ToD~A~)-(ToD~B~-ToA~B~)}{2}\)

假设信号传播速度为光速c,则设备A与设备B之间的距离R可表示为:

R = c * ToF

Channel Sounding Handover测距方案原理

(1) 主节点与手机或Fob进行BLE连接,获取手机或Fob的ACL连接信息;

(2) 主节点通过总线方式将连接信息传输给所有子节点;

(3) 各个子节点均能监听到手机或Fob发送的ACL包,并将接收到的RSSI反馈给主节点,由主节点进行汇总输出;

(4) 主节点先开启CS测距流程,然后子节点1在与手机进行CS测距,之后各个子节点依次与手机开展CS测距;

(5) 各个子节点的测距计算均独立完成,计算得出的距离信息会输出至主节点,由主节点汇总输出;

(6) 目前基于 TLSR922X 系列的方案中,节点间测距周期的时间为120ms,在 “1主4锚点” 的配置下,完成一轮测距需要 600ms。

测距流程

软硬件准备

软硬件准备

(1) 硬件:C1T325A102_V1_0 & C1T266A102_V1_0

(2) 车端节点_Bin:

  • 主节点:sniffer_main_node_2025-4-16(USB-CDC).bin
  • 子节点:sniffer_sub_node_2025-4-16.bin

(3) Fob节点_Bin: sniffer_fob_node_2025-4-16(双天线).bin

(4) 上位机:Telink BDT_CS_Tool

(5) 其它:

  • 12V电源
  • CAN双绞线
  • mini-USB线

硬件介绍

(1) 主节点&子节点硬件:TLSR9223B_C1T325A102_V1_0

主节点&子节点

(2) Fob节点硬件:TLSR9528A_C1T266A102_V1_0

Fob节点

(3) LED指示灯状态:

  • 主节点:

    • 白灯:400ms周期闪烁
    • 红灯:常亮表示ACL连接
    • 蓝灯:闪烁表示RF在发包
  • 子节点:

    • 白灯:4个子节点按顺序分别1s/2s/3s/4s周期闪烁
    • 红灯:常亮表示监听成功
    • 蓝灯:闪烁表示CS进行中
  • Fob节点:

    • 绿灯:2s周期闪烁
    • 红灯:常亮表示ACL连接

主从节点硬件连接架构

(1) CANH/CANL/12V/GND

(2) 注意CAN总线需要采用双绞线连接

主从节点硬件连接架构

操作说明

软件烧录方法

软件烧录连接

(1) 上位机:Telink BDT

(2) 工具:BEVK(下图中的黑盒子)

硬件实物图

(3) 硬件连接方式

硬件连接

硬件连接成功会出现下图红框内容,提示“BDT connect to 1: usb#vid_248a&pid_8266 ......”

硬件连接成功界面

软件烧录

芯片类型选择B92_3V3。

烧录准备:

步骤一:点击SWS,会提示Swire ok,说明与芯片连接OK;

步骤二:点击Activate,会提示“Activate MCU ok!”,此时停掉芯片运行;

步骤三:点击Unlock,会提示“Flash unlock ok”,此时Flash解锁成功,可以开始烧录软件。

软件烧录准备

软件烧录:

(1) 点击“File”选择需要烧录的bin文件;

选择烧录文件

(2) 点击“Download”进行烧录,等待完成即可。

  • 主节点选择bin: sniffer_main_node_2025-4-16(USB-CDC).bin
  • 子节点选择bin: sniffer_sub_node_2025-4-16.bin
  • Fob选择bin: sniffer_fob_node_2025-4-16(双天线).bin

烧录

对各节点烧录不同的Flash配置

如下图,点击“Tool”,选择“Memory Access”,按照下图设置各个选项:B92_3V3/EVK/FLASH/len:16Byte。

配置Memory Access

CS参数和发射功率参数配置,目前主从节点使用软件默认配置即可,需要确保Flash地址0x0A1000的4K区域没有其他参数存在。

Flash擦除4K方法:

步骤一:点击“Setting”按钮;

步骤二:设置Erase Flash Addr(H):A1000;

步骤三:设置 Sector Start Size(K):4;

步骤四:点击“Erase”按钮,即可看到操作log完成4K擦除。

Flash擦除4K方法

对各节点烧录不同Flash配置的步骤:

(1) 首先需要对0x0A0000进行4K擦除:

按照Flash擦除4K方法,进行Flash4K擦除,地址设置为A0000:

步骤一:点击“Setting”按钮;

步骤二:设置Erase Flash Addr(H):A0000;

步骤三:设置 Sector Start Size(K):4;

步骤四:点击“Erase”按钮,即可看到操作log完成4K擦除。

(2) 节点配置:用来配置节点顺序和CAN总线参数等,Flash地址设置0x0A0000, Data内容根据不同的节点设置ID,在Data输入框区域按回车即可完成Flash写入:

  • 主节点和子节点1:04 00 31 07 64 00 77 07 00 00 51 07 37 07 FF FF

配置主节点和子节点1

  • 子节点2:04 00 31 07 64 00 77 07 01 00 52 07 37 07 FF FF

配置子节点2

  • 子节点3:04 00 31 07 64 00 77 07 02 00 53 07 37 07 FF FF

配置子节点3

  • 子节点4:04 00 31 07 64 00 77 07 03 00 54 07 37 07 FF FF

配置子节点4

注意

  • 在一拖三Demo节点的时候需要将04 00 31 ... 分别改成03 00 31 ...并分别烧录。

对各节点烧录cali_tone参数Flash配置:

(1) 主节点和4个子节点:用来烧录校准参数,Flash地址设置0xFE300, 在Data输入框区域按回车即可完成Flash写入:

7F 36 9E 80 3F 0 3F 0 21 FE 20 F7 21 F8 22 1 22 4 23 FE 22 F7 24 FD 24 FF 23 F3 25 FA 26 FE 27 2 27 F9 27 F7 28 FA 29 FB 29 F8 29 F6 2A FA 2B FA 3F 0 3F 0 3F 0 2D FA 2E FC 2E FA 2E F3 30 FA 30 FC 31 FA 32 F9 32 F6 33 F9 35 FF 36 F9 36 F5 38 FD 38 2 38 F4 38 F6 39 2 3A 7 3A 4 3A F7 3B 1 3C 3 3C FE 3D 4 3D 5 3D 3 3E F9 3D B 3E 7 3F 4 3F B 3F FE 3D 10 3E C 3C 10 3C 10 3D 10 3B 14 3D 8 3C 11 3D D 3C F 3C E 3B 10 3A 11 3B C 3A F 3B C 3B C 37 18 3F 0 3F 0

烧录cali_tone参数

(2) Fob节点:用来烧录校准参数,Flash地址设置0x1FE300, 在Data输入框区域按回车即可完成Flash写入:

4A 35 9E 80 3F 0 3F 0 20 B 20 A 21 8 20 C 1F 10 21 D 22 9 22 C 24 5 23 9 24 9 24 8 25 6 25 4 25 8 26 5 26 6 27 2 27 1 27 6 27 7 3F 0 3F 0 3F 0 29 6 2A 1 2A 4 2A 2 2A 9 2B FF 2B 0 2C FF 2C 0 2C 3 2C FF 2D FE 2D FC 2E 2 2D F6 2E F9 2E FB 2F FF 2F 4 2F FF 30 FD 30 FE 31 FF 31 F6 31 F9 31 F7 33 0 32 F3 33 F9 34 F7 35 F9 35 F9 34 F2 37 FE 37 F6 38 FE 39 FB 39 FA 3A FB 39 F5 3A 0 39 F0 3A F3 3A EF 3B F4 3A ED 3C F3 3D F4 3C EE 3F FA 3B E8 3F 0 3F 0

在烧录完成不同的配置后,软件烧录环节完成,接下来将进行连接环境的搭建和测试。

连接和测试

连接

将主从节点分别按照以下连接方式进行连接:

(1) 主从节点直接通过CAN总线进行通讯,总线最两端的节点(主节点和子节点1)需要把J6 & J7两个跳帽分别连接,用于使能终端电阻;

(2) 主从节点进行12V供电,Fob端可以通过充电宝给USB接口供电即可;

(3) 主节点通过mini-USB直接与电脑连接,通过电脑端的上位机来显示距离数据和log;

主从节点连接

按照以上步骤将硬件连接完成后,电脑端打开Telink BDT_CS_Tool:

(1) 打开Telink BDT;

打开Telink BDT

(2) 点击“Tool”按钮,选择“CS Tool”;

选择CS Tool

(3) 弹出CS Tool工具,如下图所示;

CS Tool界面

对有进行连接配对过的设备,可以直接点击绿色按钮开启测试。

开始测试

注意

  • 对于一拖三的Demo,需要把下面的红框sub3_dist去除打钩。

取消勾选sub3_dist

对首次配对的设备,请按照下述步骤继续进行操作并开启测试:

(1) 选择对应的串口号,通信波特率选择3000000;

(2) 点击“scan”扫描设备,注意不要勾选下方的MAC Filter选项;

(3) 在扫描到的设备列表中,选择名为“cs_telink”的设备;

扫描并选择cs_telink设备

(4) 点击左上角“Connect”按钮(暂时先不管弹框报错,点击ok关掉),连接成功后主从节点的红色LED灯常亮;

点击Connect按钮

(5) 勾选“Direct Drawing Mode”。点击Distance,切换到图表界面;

切换到图表界面

(6) 点击上方的“View”按钮,勾选Chart Setting,在下方弹出的一些Lines Display界面,勾选如图的选项,把“Main Dist”、“sub0_Dist”、“sub1_Dist”、“sub2_Dist”、“sub3_Dist”都勾选;

Lines Display界面设置

(7) 点击开始按钮,可以观察到图表开始刷新并显示所测到的距离值;

点击开始按钮

(8) 另外,切换到“log”标签可以看到输出的原始log,并且可以在“Setting”标签页面设置保存log;

切换到“log”标签

接下来就可以根据不同测试场景来进行测试和评估。

测试场景

测试目的:评估实车条件下Handover多节点测距稳定性和动态测试响应情况;

测试环境和手法:

  • 室外停车场环境,固定Initiator主节点放置在实车中控位置并通过USB线连接电脑;

  • 节点位置布置情况:

    • Main node:置于中控扶手箱
    • Sub node 0:置于车头保险杠
    • Sub node 1:置于副驾门把手
    • Sub node 2:置于车尾保险杠
    • Sub node 3:置于主驾门把手

节点位置

Case1:

主驾方向定点测试,不同距离分别测试2分钟左右并记录数据;

测试场景

相关距离数据

测距效果(1m)

测距效果(5m)

测试小结:

(1) 无遮挡的主驾节点(node3)测试误差比较小,小于0.5米;

(2) 中控主节点的定点测试误差在2.5米到3米左右,不过不同距离的Offset比较一致,该偏差可以通过整车标定来去除;

Case2:

主驾方向动态测试,手持Fob节点,远离车到20米后再返回,记录往返移动数据和曲线趋势。

测试目的:评估在动态移动时候测到距离的准确度和稳定性,以及距离的变化趋势等;

测试小结:整体趋势如图, 整体趋势符合行进路线;

测试效果