DW1000的温度补偿及基站,标签天线延迟校准(三)

1 天线延迟的温度补偿

上篇文章说过,天线延迟会和温度有关,在不同温度下,天线延迟是不一样的,所以得根据温度变化情况进行补偿。
首先选定一个温度范围,一般来说,DW1000模块的工作温度是50~80℃。所以在50到80摄氏度之间选出多个温度进行测试延迟。
然后用MATLAB或者其他软件进行曲线拟合,得出延迟随温度变化的规律来进行补偿。
DW1000时钟频率为63.897GHz,(499.2MHz x 128),所以计数时间为15.65 皮秒(ps)假设在50℃是的延迟是0.0001ms,根据公式15.65 x n =0.0001ms,其中 n 是此时的天线延迟。多测几个不同的温度下的延迟,模拟出规律得到温度补偿系数。延迟随着温度升高在增加

float TempComp(float tem)
{
	u16 Ant_Delay_Sum_Buff,Tx_Ant_Delay_buff,Rx_Ant_Delay_buff;
	float CompValue;
	
	if(ifUwbTemValid(tem) == YES )  //判断是否在温度范围(-40 ~ 125摄氏度)
	{
		CompValue  =  (tem - UsingAntDelayAdjustBaseTem)*TEMP_COMP_FACTOR; //(当前温度-校准时的温度)* 温度补偿系数
		Ant_Delay_Sum_Buff = Ant_Delay_Sum + CompValue;  //当前总延迟 = 本来延迟 + 温度延迟
		Tx_Ant_Delay_buff = Ant_Delay_Sum_Buff*TX_DELAY_SCALE_IN_TOTAL;//发送延迟
		Rx_Ant_Delay_buff = Ant_Delay_Sum_Buff - Tx_Ant_Delay_buff; //接收延迟
		dwt_setrxantennadelay(Tx_Ant_Delay_buff);  
		dwt_settxantennadelay(Rx_Ant_Delay_buff);
		return CompValue;
	}
	else
		return 0;
	
}
	
2 标签天线延迟校准

如图所示,把两个基站放到相距4m的地方(理论上距离越长越好),然后把要校准的标签放于距离基站2m的地方(一定要放正中间,距离两个基站距离一样)。然后A0发送数据,分两条路(广播出去都能收到),第一条:A0 → A1(基站 A0 直接发给基站 A1) 第二条:A0 → T0 → A1(基站 A0 发给 标签 T0 ,标签 T0 收到后再转发给 基站 A1)。如果忽略 T0 的代码运行时间,那么基站 A1 收到这两条路时间应该是一样的。如果不一样则就是 T0 的天线延迟时间。
开始校准,A0 发送数据记下发送时间戳 Ta0, T0 收到 数据时间记下接收时间戳 Tt0,转发出去时记下发送时间戳 Tt1 ,A1 收到 A0直接发过来的数据记下接收时间戳 Ta1,收到 T0 转发的数据记下接收时间戳 Ta2。
如果没有天线延迟 则 Ta1 - Ta0 = Ta2 - Ta0 - (Tt1 - Tt0) 其中Tt1 - Tt0 就是 T0 从接收到转发数据这段时间的代码运行时间。
假设 T0 的天线延迟为 n,则 n = Ta2 - Ta0 - (Tt1 - Tt0) - Ta1 - Ta0 ,这样就得到了 T0 的天线延迟。初始化时设置一下天线延迟,T0 标签就校准好了。
这里的单位与用于系统时间和时间戳的单位相同,即499.2 MHz × 128,因此最低有效位约为15.65皮秒(即 n =1)。

3 基站天线延迟校准

基站校准需要用到一个已经校准好的标签

如图所示,A0 和 T0(已校准)放在相距4m的地方,然后进行测距,因为T0 已经 校准好,所以如果测量距离不是4m,那就是因为基站 A0 的天线延迟不对,所以根据天线延迟数值调大测距变小,调小测距变大去微调,当测量距离为4m时,基站A0 的天线延迟就校准好了。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值