我们这个UWB项目,源于一个客户的项目中需要使用到精确定位。

我们考察过多种定位方式,除了UWB,还有蓝牙、Zigbee、Wifi等,最终我们选择使用UWB。其他的定位方式基本上是靠信号强度来判断距离远近,而信号强度除了距离对其影响之外,还有很多因素,所以定位效果不太理想。

UWB使用电波在空中的飞行时间来计算距离,当然会比较精确。

在项目初期,我们需要确定定位的模式。当初市面上能大量采购到的UWB芯片只有DecaWave的DW1000。定位模式有两种选择:TOF和TDOA。

TOF是指飞行时间。设备A向设备B发送一个数据包,这个数据包在空中飞行的时间。电波在空中飞行的时间与光速差不多,通过飞行时间,我们就可以确定两个设备之间的距离。如果有3个基站和1个标签,我们知道标签与3个基站之间的距离,我们就可以计算出标签的坐标了。

TDOA是指到达时间差。标签发出一个数据包,3个基站收到这个数据包,因为标签与各个基站之间的不等,收到数据包的时间会有差异(时间差),系统通过这几个时间差来计算标签的坐标。

DecaWave的例子代码中有大量的TOF例程。实际上,DecaWave销售的开发套件中就包含了完整的一个TOF定位应用程序,因为是用于演示的,所以在功能和规模方面有省略。

经过考察,我们最终决定使用TODA模式。

TDOA有很多优点,最大的一个优点是数据包交互少。只需要标签发出一个数据包,就可以定位了。而TOF,标签和每一个基站之间至少需要2个数据包交互,大部分设计可能会需要3~4个数据包交互。一旦标签多了,需要定位的区域多(基站数量多),就会导致很多UWB数据包在空中传播,这必然会导致通讯冲突的发生,也会影响到定位的速率、能容纳的标签数量。另外,标签通常会使用电池供电,如果使用TOF,一次定位最少也有6个数据包交互,这导致标签得花大量的时间处于工作状态,这对电量的消耗是一个考验。而TDOA的标签,大多数时间处于休眠状态,定期醒来发一个定位数据包后立即又进入休眠状态,非常节省电量。

之后的文章中,我们还会对TDOA的更多细节进行介绍。

版权所有

本站文章均为原创,版权属 Zhang Xiaolong 所有。

所有人可以转载,但必须注明出处以及作者信息。