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

说明

在由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_lighttof

tof=RaRbDaDbRa+Rb+Da+Db

Ra=resp_rxpoll_tx

Rb=final_rxresp_tx

Da=final_txresp_rx

Db=resp_txpoll_rx

代码分析

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

增加Discovery阶段的DS方案

事实上,以上例程中的流程只是单纯的测距,一般的实际使用场景中会添加配对流程

首先为了更好的对应到使用场景,我们把之前的定义的角色名换一下:
initiator->Tag
responder->Anchor
Tag我们定义为标签,Anchor我们定义为锚点。

发现阶段的流程如下:
最初,Tag处于发现阶段,它定期发送一个包含它自己地址的Blink消息,并监听来自Anchor的测距流程发起响应(Ranging Init response)。如果Tag没有得到此响应,那么它在再次Blink前会睡眠一段时间(默认为1秒)。Anchor则一直启动接收,当它接收到Blink消息时,Anchor将向标Tag发送测距发起信息,随后Discovery阶段结束,转进到Ranging流程也就是前面讲的流程。

Discover阶段是重要的,它用于交换测距双方的地址信息并进行配对,当同一个场景中拥有多台设备时,他能很好的避免收发双方收到不该收到的数据。

数据帧说明

IEEE 802.15.4标准通用的数据帧格式如下,它包括7个Segment分别是:

1.Frame Control(FC):其中的DestAddrMode和SrcAddrMode比特位控制后续地址位的长度时2byte还是8byte
2.Sequence Number:根据标准规定,每发送一帧就累加256的模。
3.PAN ID:示例中所有的消息帧这里都是0xDECA,实际应用场景可以修改为用户自身需要的网络名
4.Destination Address:目标设备地址
5.Source Address:自身设备地址
6.Ranging Message:数据段,不定长,由用户决定。该帧中包含测距数据的部分一般称为有效载荷
7.FCS:CRC校验位

对于上述提及的Discover阶段和Ranging阶段用到的帧示例如下:

其中的各类型帧中数据段的内容如下:

Blink帧用于发送标签的Blink消息,不带任何测距信息,所以数据段长度为0,Blink帧总长12byte。

Poll message

Poll message由Tag发送,用于开启测距流程。数据为只有一个byte,内容为0x61,是message identifies用于表明信息类型,然后不带有任何时间戳数据。

Response message

Response message由anchor发送,用于响应tag之前发的poll message,数据段有5个byte,第一个byte为message identifies,剩余四个byte为时间戳数据

Final message

和Response message类似,只是再多4个byte,一共带有两个时间戳数据,共九个byte

Ranging Initiation message

配对响应信息,一个byte用于表明信息类型,两个byte用于对端地址配置,两个byte用于后续ranging流程的延时时间配置,一个五个byte

posted on   不回本不改名  阅读(1210)  评论(5编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示