TOF方案在DW1000上的实现(四):DS-TWR方案

发布时间 2023-04-01 12:00:27作者: 不回本不改名

说明

在由DW1000芯片的制造原厂提供的示例代码中,同样提供了DS-TWR方案的实现示例:
Example 5a: double-sided two-way ranging (DS TWR) initiator
Example 5b: double-sided two-way ranging respond
该示例以C代码形式,演示了一个简单的双边双向测距的实现过程,本质上双边双向测距和单边单向测距没有太大的不同。
DS比SS方案多发了一次数据,并且测距结果变为了由responded来计算。

流程

测距流程如下,其中有六个关键的时间参数
poll_tx:initiator发送第一帧数据的时间点
poll_rx:responder接收第一帧数据的时间点
resp_tx:responder发送第二帧数据的时间点
resp_rx:initiator接收第二帧数据的时间点
final_tx:initiator发送第三帧数据的时间点
final_rx:responder接收第三章数据的时间点

通过三次收发数据,便算出两个设备之间的距离,公式如下:

\[distance = speed\_of\_light * tof\\ \]

代码分析

DS和SS代码类似,上一个博客已经对SS方案代码流程分析过一遍,这里就不作过多分析了

\[tof = \frac{Ra * Rb -Da * Db}{Ra + Rb +Da + Db}\\ \]

\[Ra = resp\_rx - poll\_tx \]

\[Rb = final\_rx - resp\_tx \]

\[Da = final\_tx - resp\_rx \]

\[Db = resp\_tx - poll\_rx \]