0755-23080616 吴小姐: 15813701668 范先生:15813708988 林先生:15813708868 宋先生:19192162070

UWB测距原理:TWR、TDoA和AoA有什么区别

2026-08-13 03:15

分享到:

做 UWB 定位方案时,只看“厘米级”还不够。同一代 UWB 芯片装进不同系统,现场问题也可能完全不同。TWR 的偏差常与回复时延、两端钟差有关。TDoA 的难点在锚点同步。AoA 的角度误差还会随距离放大成横向偏差。

选型时先看系统直接测什么,以及哪些误差会进入结果。标签数量增加后,还要确认同一信道是否有足够时间完成所有收发。已经在查固定偏差或定位跳动,可以从第 5 节读起。只想先在 TWR、TDoA 和 AoA 之间做初选,可以先看第 7 节,再回头核对相关公式。

1. TWR、TDoA 和 AoA 分别测什么

在定位系统中,锚点通常固定安装,坐标已知。标签跟随人、设备或物料移动,系统要解算的是标签位置。ToF 是无线信号从发射端传播到接收端所需的时间,乘以光速后可换算为传播距离。

TWR,也就是双向测距,需要标签和锚点互发消息。系统从一轮或两轮往返时间中扣除设备的回复时间,得到两台设备之间的距离。锚点之间不必共用同一时钟,但标签和锚点的时钟快慢只要略有不同,测距结果仍会出现偏差。

TDoA 测的是到达时间差。标签发出一帧用于定位的短广播报文,通常称为 blink。周围锚点分别记录它到达的时刻,也就是接收时间戳,定位服务器再比较这些记录。标签不需要知道精确的发射时刻,但各锚点记录的时间必须换算到同一个参考时钟下。上行 TDoA 可以用一次标签发射完成一次位置计算。标签省去了与各锚点逐一往返的报文,锚点网络或定位服务器则要负责同步时间并集中计算位置。

AoA 关心的是方向。多根接收天线会看到同一信号的相位差或到达时间差,系统据此估计入射角。工程上常见的 PDoA 是 AoA 的一种实现方式。把 ToF 距离与 AoA 方向组合后,可以得到相对锚点的二维位置。

TWR 先得到距离,TDoA 用多锚点时间差求位置,AoA 增加方向信息。实际系统也可以把 ToF 与 AoA 组合使用。

2. TWR 为什么怕长回复时延

SS-TWR 只做一轮询问和应答。DS-TWR 增加一轮时间信息交换,用两边记录的往返时间共同估计 ToF。Qorvo APS013 中的非对称 DS-TWR 流程包含询问帧 Poll、应答帧 Response,以及携带最后一组时间信息的 Final 帧。

非对称DS-TWR三帧时序图

图 1. 非对称 DS-TWR 的三帧时序与 ToF 计算关系。

Qorvo APS011 附录 A 的误差模型中,无线信号的实际传播时间远短于设备等待应答的时间。先忽略传播时间对应的小项后,SS-TWR 的主要距离误差近似为

SS-TWR误差公式图

其中,SDS-TWR误差公式图 是响应端从收到询问到发出应答的时间,AoA横向偏差公式图 是两端的相对频率偏差,TWR信道时间估算公式图 是光速。后文使用的 ppm 表示百万分之一,用来描述时钟快慢相差的比例。

假设回复时延为 400 μs,两端相对频偏为 20 ppm,代入后约为 1.20 m。回复时延延长到 1 ms,结果约为 3.00 m。这里计算的是两端时钟快慢不同,又没有做频偏补偿时,长回复时间会把误差放大多少,并不表示 SS-TWR 必然会出现米级误差。缩短回复时间,或根据实测频偏修正时间戳,都能减小这一项。

同一误差模型分析的对称双边 TWR,也就是 SDS-TWR,在完成双边计算后,仍未抵消的主要误差与两轮回复时延之差有关,可写成

UWB650测距时间估算图

如果两轮回复时延只相差 10 μs,相对频偏仍取 20 ppm,按这一项折算约为 1.5 cm。DS-TWR 能明显减小回复时延与钟差共同造成的误差,但天线收发延时仍要校准,墙体或货架遮挡仍会让传播路径变长,安装位置也仍会影响结果。

协议选择不能只看 SS 少一帧、DS 多一帧。如果 MCU 从收到报文到发出应答的时间较长,或者每次回复时间不稳定,DS-TWR 往往更稳。如果同一信道留给每个标签的收发时间很少,而设备又能缩短回复时间并估计两端频偏,SS-TWR 仍有使用空间。

3. TDoA 标签不与各锚点逐一往返,锚点必须同步

TWR 通过标签与锚点的往返报文处理两端钟差。TDoA 只让标签发射一次,此后各锚点记录的接收时间必须换算到同一个参考时钟下,才能直接比较。

光在 1 ns 内传播约 30 cm,因此 1 ns 的锚点相对时间误差,会先变成约 30 cm 的距离差误差。这里的“距离差”是标签到两个锚点的距离之差,它还不表示最终坐标也会偏 30 cm。把多组距离差换算成坐标时,锚点摆放、标签所在位置和解算方法还会继续影响结果。若希望同步误差在距离差中只占约 3 cm,各锚点校准后剩余的时间误差需要接近 100 ps。

锚点同步要处理三类问题:各时钟起始时间不同,时钟走时速度会随温度和时间变化,各锚点的收发电路延时也不相同。Zhang 等人的 TDoA RTLS 论文采用主锚周期发送时钟校准包,其他锚点同时记录校准包和标签 blink 的接收时间,再计算各自时钟相对主锚快了多少、起始时间差了多少。设备运行期间,这些差值还要持续更新。

有线同步可以让锚点共用参考时钟或触发信号,但线缆本身的传播延时也要测量和校准。无线同步可以少布一部分线,却要定期发送同步报文,持续估计各锚点时钟,并在锚点失去同步后重新锁定。项目如果没有说明采用哪种同步方式、由哪台设备校时,仅仅选一颗“支持 TDoA”的收发器还不能完成定位。

锚点数量还取决于算法是否已经知道标签的大致高度、初始位置或活动区域。一项四锚 TDoA 研究指出,迭代算法在有合适初值时,可用 3 个锚点做二维定位、4 个锚点做三维定位。这里的“初值”是算法开始迭代前使用的大致位置。若要求不依赖初始位置、直接由方程求出唯一坐标,通常需要 4 个锚点做二维定位、5 个锚点做三维定位。现场还要考虑上下或左右对称的候选位置、遮挡、包丢失和锚点分布,不能把方程能够求解所需的最少锚点数直接当成安装数量。

做二维定位时,不能因为只输出 x、y 坐标,就把标签的 z 坐标随意写成 0。应把标签高度设为接近实际作业高度的固定值,锚点仍使用各自实测的 x、y、z 坐标。若标签可能从地面移动到货架高处,就要改做三维解算,或单独评估高度变化会给平面坐标带来多大误差。

4. AoA 的角度指标要换算到工作距离

只有项目需要知道目标方向时,才有必要考虑 AoA。角度误差不能直接当作位置误差使用。目标接近阵列正前方时,可用下面的公式初步估算横向偏差。

四锚单小区容量对比图

是目标到锚点的距离, 是角度误差。以正前方为参考,取 5° 时,5 m 处的横向偏差约为 0.44 m,10 m 处约为 0.87 m,20 m 处约为 1.75 m。目标明显偏离阵列正前方时,要用“实际入射角加上角度误差”与“实际入射角”分别计算横向位置,再求两者之差,不能继续套用正前方的数值。产品写“角度精度小于 5°”,也不等于在任何距离都能给出几厘米的位置结果。

Qorvo DW3220 提供两个天线端口,产品页给出的测距精度为 10 cm 以内,AoA 精度为 5°以内。前一个指标表示测得距离与真实距离相差多少,后一个表示测得方向与真实方向相差多少。把距离和方向组合后,单个锚点可以给出标签相对自己的位置。若要覆盖锚点侧面或背面,还要检查阵列视场。不同方向可能产生相同的相位差时,还要结合天线阵列、外壳和安装方向排除错误方向。

AoA 还要求各天线通道的相位差能够稳定复现。同一信号经过不同天线、馈线和 PCB 走线后会产生额外相位差,整机外壳也可能改变天线响应,这些差异都要通过标定扣除。目标被墙体或货架遮挡时,最强信号可能来自反射路径,而不是标签与锚点之间的直达路径,此时算出的角度会明显偏离真实方向。现场验证时,至少应覆盖目标距离、入射方向和典型遮挡,而不是只在正前方做一次静态测试。

5. 调试时先分清“距离不准”还是“坐标不稳”

公式能说明误差从哪里来,现场排查则更适合从现象入手。第一步是确认手里的精度数字具体指什么。芯片或模块的 ranging accuracy 指标签与单个锚点之间的测距误差,positioning accuracy 指系统综合多条距离或时间差后,最终 x、y、z 坐标与真实位置相差多少。两者不能直接画等号。

多个已知距离下,偏差近似恒定

先检查天线延时和固定距离偏移。UWB650 可以通过 ANTDELAY 调整天线延时,这个参数会直接影响测距和定位结果。DISTOFFSET 用于按厘米修正固定距离偏移。校准时不要只测一个距离。可在无遮挡环境下选择数个已知距离,检查每次读数是否都多出或少掉相近的厘米数,还是距离越远,误差也越大。

读数会随朝向、人员走动或遮挡突然变化

这类现象通常不是一个固定校准值造成的,而是信号走过的路径发生了变化。人体、墙体、玻璃和金属可能削弱标签与锚点之间的直达信号,也可能把信号反射后再送到接收机。接收机如果把反射路径当成直达路径,测得的传播时间就会变长。先把设备移到无遮挡的开阔环境复测,再改变天线朝向,比直接调整定位算法参数更容易找出原因。

单条距离稳定,坐标却跳动

此时应检查锚点坐标、安装位置和标签高度设置。锚点排成一线、集中在目标同一侧,或标签长期处在锚点围成的区域之外时,即使每条距离只波动几厘米,换算出的坐标也可能跳动得更大。调试 UWB650 的定位精度时,还要检查遮挡情况,并确认标签是否位于锚点围成的区域内。

这三种现象可能同时出现,但检查顺序不同。如果几个已知距离都多出或少掉相近的数值,先校准 ANTDELAY 和 DISTOFFSET。如果读数会随遮挡或天线朝向突变,先处理安装环境和天线。如果单条距离稳定而坐标仍跳动,再检查锚点坐标、安装位置和定位算法。这样排查,比看到 30 cm 偏差就笼统归因于“UWB 精度不够”更容易找到具体原因。

6. 容量需要按实际报文和锚点数量计算

容量指同一套系统能够同时服务多少标签,以及每个标签每秒能更新多少次位置。距离已经测准,并不表示同一信道有足够时间完成目标更新率所需的全部报文。报文排不下时,重新校准天线也不能增加可用时间。

TWR 每获得一条距离,标签和一个锚点都要留出时间收发报文。一个二维位置若依赖 3 条距离,标签就要依次与多个锚点测距。TDoA 中,标签通常只发一个 blink,多个锚点同时接收。增加一个标签时,标签侧主要增加的是这一帧发射,而不是与每个锚点分别往返。TDoA 系统仍要传输同步报文、把各锚点的时间戳送到服务器,并避免多个标签同时发射造成碰撞,因此“一次发射”不等于标签数量不受限制。

快速估算 TWR 会占用多少信道时间时,可以写成

是标签数, 是每个标签每秒更新位置的次数, 是每次定位参与的锚点数, 是标签与一个锚点完成一次测距所需的时间。计算结果的单位是“每秒需要占用多少秒的信道时间”。结果接近 1 s/s,意味着一秒钟内几乎整整一秒都已用于测距,留给重试、报文间隔、控制命令和其他业务的时间已经很少。

UWB650的测距流程混合使用 DS-TWR 与 SS-TWR,并利用模块估得的两端时钟快慢差修正结果。在 6.8 Mbps 下,发起端完成一次测距需要 4.819 ms。若按 3 个锚点顺序测距估算,一次二维更新的纯测距时间约为

一个标签以 10 Hz 更新,仅测距事务就约占 145 ms/s。多个标签共享同一信道时,还要继续乘标签数,并为命令处理、重试和保护间隔留出空间。这个算例只用于估算当前模块时序,不是系统最大标签数承诺。

Ridolfi 等人的容量研究假设四个锚点共同覆盖一个区域,比较不同的无线速率与报文格式、信道调度方法和定位方式。在使用短报文、按预定时间轮流发送,并且不计算同步报文的理论极限配置中,TDoA 为 6171 updates/s,TWR 为 1381 updates/s,后者约为前者的 22%。换成一次事务约 4.7 ms 的参考配置后,对应数值变为 211 和 101,TWR 比 TDoA 少约 53%。

图 2. 四锚单小区模型下,不同报文长度、调度和同步条件对应的更新容量。

这组比例只适用于论文采用的报文和调度条件,不能直接换算成项目能接入多少标签。报文长度、锚点数量、各设备轮流发送的规则和同步方式一变,每秒可完成的位置更新数也会变化。项目评审时,应把实际无线速率、每次测距需要多长时间、预计重试次数和同步报文所占时间列在同一张表里,再计算剩余时间。

7. 把项目条件代入选型表

只知道场地面积或标签总数,还不能决定用 TWR 还是 TDoA。还要确认每个标签每秒需要更新几次、锚点能否共享精确时间,以及一次实际测距会占用多长时间。

项目问题

更倾向 TWR 的情况

更倾向 TDoA 的情况

AoA 在哪里有用

锚点能否同步

不希望给所有锚点提供共同参考时钟

能用线缆或无线报文校准各锚点时钟,并能在失去同步后恢复

AoA 不能代替 TDoA 所需的锚点同步

标签侧复杂度

标签能接收并回复测距报文,也能接受由此增加的功耗

希望标签主要按固定周期发出一帧报文

标签通常只需一根天线,多天线阵列放在锚点侧

信道时间

算上所有标签和锚点后,仍有时间完成重试和控制报文

逐个锚点做 TWR 已占满大部分信道时间

AoA 需要采集多个天线通道并做校准,本身不会增加信道容量

需要的结果

先获得标签到各锚点的距离,再计算坐标

由锚点网络或服务器集中计算大量标签的位置

需要知道目标来自哪个方向,或同时使用距离和方向定位

团队要完成的开发

希望调用模块已有命令直接获得距离或坐标

能开发锚点校时、时间戳回传和定位计算

能设计多天线阵列,校准各通道相位差,并验证可测方向范围

现场主要风险

标签耗电、逐个轮询耗时、多个设备同时发射

锚点时钟仍有误差、时间戳回传不及时、锚点失去同步

反射路径、外壳影响天线、安装朝向错误、方向判断混淆

如果现场没有给锚点校时的线缆、无线协议或主时钟,而逐个测距仍能满足标签数量和更新率,TWR 更容易实施。如果按前面的公式计算后,TWR 每秒已占用接近整整一秒的信道时间,而团队又能持续校准锚点时钟并在服务器计算位置,再评估 TDoA。

需要知道目标来自哪个方向、从门的哪一侧通过,或只用一个锚点判断目标相对位置时,可以把 AoA 与 ToF 组合。如果只需要用多个锚点计算平面坐标,就没有必要再增加多天线阵列及其相位校准工作。

8. NiceRF 模块能直接完成什么

芯片能够记录收发时间或测量天线间相位差,不表示装有这颗芯片的模块已经能直接返回距离、角度或坐标。选型时要查看模块实际开放了哪些接口和命令。

思为无线 UWB650 的测距误差在 ±10 cm 以内,并支持 SS-TWR、DS-TWR 和定位。定位命令可输入 3 至 8 个锚点地址,并通过 UART 返回坐标、距离和信号强度。基本配置使用 3 个锚点和 1 个标签做二维定位,或使用 4 个锚点和 1 个标签做三维定位。

图 3. UWB650模块框图,包括 MCU、DW3000、射频收发链路、ESD 和天线连接。

UWB650Pro 同样支持 SS-TWR、DS-TWR 和模块内定位,测距误差在 ±10 cm 以内。与 UWB650 相比,它的主要差别是外置 50 Ω 天线接口和更低的休眠电流,适合需要自行选择天线或关注电池待机的嵌入式设备。

UWB653Pro 把相近的测距、定位和数据功能做成 USB 设备,适合连接电脑和上位机快速验证。

UWB3000F00UWB3000F27 是 SPI 接口的 UWB 收发模块,可用于 TWR 和 TDoA 系统。模块可以收发报文并记录每帧的收发时刻,但项目仍要确定由谁校准锚点时钟、由谁收集这些时间戳,以及在哪台设备上计算标签坐标。

参考资料