DWM1000 超宽带TWR测距原理

1. TWR 测距简介

DWM1000 超宽带模块采用 TOF(Time of Flight,即飞行时间)测距方式。 其中算法为Two-Way Ranging (TWR), 是一种通过双向数据交换测量两个设备间距离的方法。其核心原理是通过计算无线电磁波的传输时间,推导出距离。电磁波的传播速度等同于光速,为 299,792.458 km/s(参见百度百科)。

TWR 测距分为两种模式:
1. Single-Sided Two-Way Ranging (SS-TWR):单向双边测距
2. Double-Sided Two-Way Ranging (DS-TWR):双向双边测距

然而,DW1000 内部具有超高速时钟(64Ghz),可以超高分别率读取电磁信号收发时间,但是光有高速时钟并不足以实现精确测距,还需要以下两个条件:
1. 发送数据到天线的精确时间:即何时将数据从设备传送到天线。
2. 接收到有效数据到天线的精确时间:即何时接收到信号。

理论上,所有满足以上两点的射频收发器都可以实现 TOF 测距。

DWM1000 还支持 延时发送(Delayed Send) 功能,可以用来精确控制数据的发送时间。虽然这功能可用可不用,但它可以减少一次数据传输。

2.SS-TWR 和 DS-TWR

SS-TWR 和 DS-TWR 都属于双边测距方法,能够计算两个模块之间的距离信息,而非位置信息。若需获取位置信息,还需要进一步运用高等数学计算。以下我们重点讨论 SS-TWR。 接下来,我们以官方基础例子为参考,简要介绍最简单的SS-TWR 测距方式,方便理解其原理。


3. 单向双边测距(SS-TWR)

descript

SS-TWR 模式下,存在两个设备,分别为 DeviceADeviceB。测距过程如下:
1. 时刻 A:DeviceA 发送一条信息,信号经过传播时间 ( T_{\text{prop}} ) 到达 DeviceB。
2. 时刻 B:DeviceB 接收到信号,经过一段延迟时间 ( T_{\text{reply}} ),在 时刻 C 发送一条回复给 DeviceA。
3. 时刻 D:DeviceA 接收到回复信号。

如果设备 A 和 B 的时钟可以完全同步,则可以简单地用 ( T_{\text{prop}} = B - A ) 来计算距离。但实际上,两者的时钟是独立运行的,并没有同步能力。

3.1正确的测距方法

由于设备 A 和 B 的时钟不同步,我们需要更复杂的测量方式来推导传播时间:
1. DeviceA 可通过内部寄存器记录 时刻 A时刻 D,两者差值即为 ( T_{\text{round}} )。
2. DeviceB 在回复信号中,包含自己记录的 时刻 B时刻 C,两者差值即为 ( T_{\text{reply}} )。
3. DeviceA 收到回复后,利用以下公式计算信号单程传播时间 ( T_{\text{flight}} ):
[ T_{\text{flight}} = \frac{T_{\text{round}} - T_{\text{reply}}}{2} ] 4. 最终,根据 ( T_{\text{flight}} ) 和电磁波的传播速度,推算出两设备间的距离。


3.2举例说明

假设你在中国,而你的兄弟在美国,你们各自拥有一台无线收发器,想用它测量两地之间的距离:
1. 你的兄弟在美东时间 08:10:00 按下发送键。你在北京时间 15:00:00 接收到信号。
2. 过了 2 分钟(15:02:00),你回复一条信息,并在其中注明了你接收信号和发送信号的时间(分别是 15:00:00 和 15:02:00)。
3. 你的兄弟在美东时间 08:13:00 接收到你的回复。

由于时差的存在,你们两人的时间戳并不同步,因此无法直接计算距离。但你兄弟可以利用时间间隔:他计算信号总传播时间为 1 分钟(3 分钟 - 2 分钟),并通过折半推导出两地间的距离。这一原理类似于 SS-TWR 的计算方式。


3.3误差来源与优化方法

1. 时钟频率偏差

descript

设备内部时钟的频率可能存在微小差异,例如:
- 高精度晶振:2 ppm 偏差(百万分之二)。
- 普通晶振:40 ppm 偏差(百万分之四十)。

假设光速为 30 cm/ns,2 ppm 的晶振每秒误差 3.8 ns,对应 1.14 m 的距离误差。而 40 ppm 的晶振误差会达到 20 倍,即超过 22 m。因此,高精度晶振对测距的准确性至关重要。

2. 延迟时间引入的误差

在 SS-TWR 中,DeviceB 的延迟时间 ( T_{\text{reply}} ) 会显著影响精度。例如:
- 假设晶振为 2 ppm,若 ( T_{\text{reply}} ) 为 5 ms,则可能引入超过 1 m 的误差。
- 为此,应尽量缩短 ( T_{\text{reply}} ),减少误差累积。

3. 环境干扰与噪声

测距过程中可能受到障碍物或多路径传播的影响,导致测量结果波动较大。为此,可以进行多次测量并取均值,这也是 DS-TWR 改善测距精度的关键手段。

4. 第三方模块的影响

DWM1000 模块的测距精度高度依赖于晶振质量。如果第三方模块在晶振性能上偷工减料,将导致误差不可补偿。例如:
- 2 ppm 的晶振可能引入 1 m 以内的误差;
- 而 40 ppm 的晶振误差可能高达 22 m。

因此,优质的第三方模块若采用高精度晶振,性价比甚至优于官方模块。


4.总结

DWM1000 模块的测距性能取决于 TOF 算法的实现质量、设备时钟频率的精度、延迟时间的优化以及外部环境的影响。通过使用高精度晶振、缩短延迟时间以及多次测量取均值,可以大幅提升测距的准确性。

5.附录. Double-Sided Two-Way Ranging(DS-TWR)

1.测距过程

相比 SS-TWR,DS-TWR 通过多次信号交互,进一步提高了测距精度。测距过程如下:
1. Step 1: 设备 A 在时间点 ( t_A ) 发送一条消息给设备 B。
2. Step 2: 设备 B 接收到消息后,在时间点 ( t_B ) 记录接收时间,并在延迟时间 ( T_{\text{reply1}} ) 后,回复一条消息给设备 A。该消息中包含 ( t_B )(接收时间戳)和 ( t_C )(发送时间戳)。
3. Step 3: 设备 A 在时间点 ( t_D ) 接收到设备 B 的回复,并在延迟时间 ( T_{\text{reply2}} ) 后,向设备 B 再次发送一条确认消息。
4. Step 4: 设备 B 在时间点 ( t_F ) 接收到设备 A 的确认消息。

通过两次往返的时间测量,DS-TWR 可更精确地计算信号的传播时间,同时降低延迟带来的误差影响。

2.DS-TWR 的优势

  1. 消除了单次测量中由于延迟时间 ( T_{\text{reply}} ) 不一致引入的误差。
  2. 多次数据交互可减小噪声、环境干扰对测距的影响。