说明
在由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 \] 标签:tx,resp,rx,TWR,DW1000,poll,TOF,DS,测距 From: https://www.cnblogs.com/simpleGao/p/17278373.html