汽车数字钥匙设计08:UWB测距之FinalData参数

21 篇文章 33 订阅

如之前文章描述,进行UWB测距时,手机(Initiator)与车端各锚点(Responders)需交互Pre-Poll、Poll、Response0-N、Final、Final-Data等信息。

其中Pre-PollFinal-Data是SP0数据帧,是带参数的。

Poll、Response0-N、Final是SP3数据帧,是不带参数的。

本文重点讲解下Final-Data携带的11个参数,具体如下表。

UWB MAC Message

UWB MAC Message ID

Patameters

Final_Data

2

UWB_Session_ID,

Ranging_Block,

Hop_Flag,

Round_Index,

Final_STS_Index,

Ranging_Timestamp_FINAL_TX,

Number_Ranging_Responders,

Responder_Index,

Ranging_Timestamp_Responder_l,

Ranging_Timestamp_Uncertainty_Responder_l,

Ranging_Status_Responder_l,

假设UWB测距芯片为NCJ29D5,为进行UWB测距,需结合一个主控MCU芯片,完成对UWB测距流程的控制。MCU与NCJ29D5之间采用SPI通信,如下图。双方采用UCI接口(可详见NCJ29D5 UCI说明文档)进行通信。

备注:前面4个参数,在Pre-Poll中也有包含。

参数1: UWB_Session_ID

参数名称

长度(bytes)

取值范围

描述

UWB_Session_ID

4

0 –0xFFFFFFFF

ID of the UWB ranging session.

该参数在Pre-Poll命令也有包含。我的理解是启动测距时,由主控MCU控制随机产生,通过UCI命令SESSION_INIT_CMD创建一个UWB测距session。后面关于该测距session的控制基本都得通过该session id来控制。

NCJ29D5可以同时建立多个测距session,此session id可用来区分不同的测距session,每一个session id对应的各自的UWB配置参数。

同一组UWB测距数据流,Pre-Poll和Final-Data的参数相同

参数2: Ranging_Block

参数名称

长度(bytes)

取值范围

描述

Ranging_Block

2

0 –0xFFFF

Index of current ranging Block

当前测距session的block索引。该参数在Pre-Poll命令也有包含

启动UWB测距时,要配置一个对应的Ranging session。

如下图每个Ranging session里可能会有多个Ranging Block,每个Ranging Block里可能会有多个Round。每一个Round对应的就是之前说一个UWB测距交互流程(Pre-Poll->Poll->Response0-N->Final->Final Data)。每个Round里会有多个Slot,用来“放置”Pre-Poll、Poll、Response0-N、Final、Final Data等UWB帧。

参数3: Round_Index

参数名称

长度(bytes)

取值范围

描述

Round_Index

2

0 –0xFFFF

The ranging round in which the ranging cycle

will be executed in the next ranging block.

该参数在Pre-Poll命令也有包含

Pre-Poll中原文中描述如下:

The ranging round index for the current ranging block as set from the ranging exchange in the previous ranging block.

Final-Data中原文中描述如下:

The ranging round in which the ranging cycle will be executed in the next ranging block.

这两个参数是匹配使用的。

Pre-Poll中表示:当前UWB测距采用哪个round_index进行UWB测距。

Final-Data中表示:下次UWB测距block采用哪个round_index进行UWB测距。

如上描述,每个Ranging block里可能有多个Round,该参数用于配置当前UWB测距的Round index信息。每次UWB测距的Round可能是静态不变的,也可能是动态变化的,具体详见下个参数Hop_Flag。

参数4: Hop_Flag

参数名称

长度(bytes)

取值范围

描述

Hop_Flag

1

0:No Hopping

1:Hopping

Hop Flag for next ranging Block

For no hopping configuration this field is always 0

For continuous hopping configuration this field is always 1

该参数在Pre-Poll命令也有包含

Pre-Poll中原文中描述如下:

Hop flag for current ranging block as set from the ranging exchange in the previous ranging block.

Final-Data中原文中描述如下:

Hop Flag for next ranging Block.

这两个参数是匹配使用的。

Pre-Poll中表示:当前UWB测距采用是否要hopping。

Final-Data中表示:下次UWB测距是否要hopping。

若Hop_Flag设置为0,则表示设置为“no hopping”,这表示initiator每次都会使用相同的ranging round来进行UWB测距。

若Hop_Flag设置为1,则表示设置为“hopping”,这表示initiator每次测距使用的的ranging round可能会变化。

Hopping方式又分为两种:

第一种,是continuous hopping,即每次测距使用不同的ranging round。

第二种,是adaptive hopping,如果Initiator认为该round是干净无干扰的,则不进行hopping;如果Initiator认为该round存在干扰,则进行hopping.

具体可详见CCC规范20.4章节,有专门描述了Hopping Flag的相关要求。

参数5: Final_STS_Index

参数名称

长度(bytes)

取值范围

描述

Final_STS_Index

4

0 –0xFFFFFFFF

STS index of the preceding Final message.

该在Pre-Poll命令也有类似的参数,名字叫Poll_STS_Index,而Final-Data中的参数叫Final_STS_Index。

之前说过一个UWB测距交互流程是:Pre-Poll->Poll->Response0-N->Final->Final Data

所以这两个参数的用途分别是:

1、在Pre-Poll数据帧中通过Poll_STS_Index参数,指示随后的Poll帧的STS_Index。

2、在Final-Data数据帧通过参数Final_STS_Index,指示之前的Final帧的STS_Index。

UWB数据帧有SP0帧和SP3帧,其中SP3帧中就有包含STS_Index字段,如下图:

STS_Index参数对于安全测距操作起着重要作用。

每个slot包含有一个SP3帧,无论该slot是否被使用,都需要对测距块中的每个slot进行变更。CCC中描述的基本规则是采用每个slot递增的方式,如下图:

具体可详见CCC规范20.6章节,有专门描述了STS index的相关要求。

参数6: Ranging_Timestamp_FINAL_TX

参数名称

长度(bytes)

取值范围

描述

Ranging_Timestamp_FINAL_TX

4

Range = 0 to 0XFFFFFFFF

Timestamp = N ×

1/128 × 1/499.2e6 sec

Time Range = 0 to 67.21 ms

Time difference between POLL and Final messages transmit times at the initiator.

我的理解是initiator端开始发送POLL到开始发送Final帧的时间间隔。

参数7: Number_Ranging_Responders

参数名称

长度(bytes)

取值范围

描述

Number_Ranging_Responders

1

0–255

Number of timestamps to follow in this message.

我的理解是用于指示接下来的参数中,有多少组Responder的参数。

接下来的参数,每4个 为一组锚点的时间戳参数。

即参数8(Responder_Index)、参数9(Ranging_Timestamp_Responder_l)、参数10(Ranging_Timestamp_Uncertainty_Responder_-l)、参数11(Ranging_Status_Responder_l)为一组锚点的时间戳参数.

参数8: Responder_Index

参数名称

长度(bytes)

取值范围

描述

Responder_Index

1

0–255

Index of Responder_l whose timestamp data is referred to in the

Ranging_Timestamp_Responder_l, Ranging_Timestamp_Uncertainty_Responder_l, and Ranging_Status_Responder_l fields

我的理解是用于指示接下来这组时间戳参数,是第几个锚点。

参数9: Ranging_Timestamp_Responder_l

参数名称

长度(bytes)

取值范围

描述

Ranging_Timestamp_Responder_l

4

Range = 0 to 0XFFFFFFFF

Timestamp=N ×

1/128 ×

1/499.2e6 sec

Time Range = 0 to 67.21 ms

Time difference between POLL and RESPONSE of Responder l, as received by the initiator.

我的理解是initiator端开始发送Poll到接收到锚点l(Responder_l)响应的时间间隔。

参数10: Ranging_Timestamp_Uncertainty_Responder_l

参数名称

长度(bytes)

取值范围

描述

Ranging_Timestamp_Uncertainty

_-Responder_l

1

See Section 6.9.1.7 in [IEEE 802.15-4z-2020]

Range of values from 1.5 cm–3.6 m at various confidences

该参数应该是用来补偿的一个参数。具体我翻阅了IEEE 802.15-4z-2020,但目前还不太理解。

参数11: Ranging_Status_Responder_l

参数名称

长度(bytes)

取值范围

描述

Ranging_Status_Responder_l

1

See Table 20-7

The status for the response frame from the responder. See the corresponding description for the ranging status in Table 20-7

该参数用来反馈当前锚点的测距状态,具体状态详见下表。

Ranging Status

Value

Description

Success

0x0

Successful receipt and transmission of a packet

Transaction overflow

0x1

RESPONSE SP3 frame from this responder cannot be processed by the device

Transaction expired

0x2

No RESPONSE SP3 frame was received from this responder

Incorrect frame

0x03

The RESPONSE SP3 frame received from this responder was not correct

Reserved

0x04-0xFF

Table 20-7: Ranging Status of a Responder

其他说明:

随后的参数12(Responder_Index)、参数13(Ranging_Timestamp_Responder_l)、参数14(Ranging_Timestamp_Uncertainty_Responder_-l)、参数15(Ranging_Status_Responder_l)为一组锚点的时间戳参数。

最终有几组参数,取决于共有几个锚点,即参数7(Number_Ranging_Responders)。

Final-Data数据帧最多带127字节的参数。正常时,最多可允许一个测距ranging round中有10个锚点。

但当NkChap_per_Slot= 24时,即每个slot为8ms,则一个测距ranging round中最多只能有7个锚点,否则加上前后POLL和Final数据帧,共超过9个数据帧,则其间隔将超过8个slot,即8*8ms=64ms。而参数6和参数7的时间戳最大值为67.21 ms。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第31章 用WebBroker使应用程序具有 Internet功能 1084 31.1 ISAPI、NSAPI和CGI—Web服务 器扩展 1085 31.1.1 公共网关接口 1085 31.1.2 ISAPI和NSAPI 1085 31.2 用Delphi创建Web应用程序 1086 31.2.1 TWebModule和TWeb- Dispatcher 1086 31.2.2 TWebRequest和TWeb- Response 1088 31.3 用HTML内容生成器建立动态网 页 1091 31.3.1 TPageProducer 1091 31.3.2 TDatasetTableProducer和 TQueryTableProducer 1092 31.4 使用cookie保存状态 1097 31.5 重定向到另一个Web站点 1099 31.6 从HTML表单中获取信息 1099 31.7 数据流 1101 31.8 总结 1104 第32章 MIDAS开发 1105 32.1 多层应用程序的结构 1105 32.2 多层体系结构的优点 1106 32.3 典型的MIDAS体系结构 1107 32.3.1 服务器 1107 32.3.2 客户 1109 32.4 用MIDAS建立应用程序 1110 32.4.1 设置服务器 1110 32.4.2 创建客户 1111 32.5 增强应用程序的更多选择 1115 32.5.1 客户优化技巧 1115 32.5.2 服务器端的技巧 1116 32.6 几个实例 1117 32.6.1 连接 1117 32.6.2 MIDAS的Web功能 1119 32.7 客户数据集的更多功能 1125 32.7.1 嵌套的数据集 1125 32.7.2 客户主/细连接 1125 32.7.3 两层应用程序 1130 32.8 部署MIDAS应用程序 1131 32.9 总结 1134 第五部分 快速开发数据库应用程序 第33章 货物管理程序:客户/服务器 开发 1135 33.1 设计后端 1135 33.1.1 定义域 1136 33.1.2 定义表 1137 33.1.3 定义生成器 1138 33.1.4 定义触发器 1138 33.1.5 定义存储过程 1139 33.1.6 授权 1141 33.2 集中数据库访问:业务规则 1141 33.2.1 登录和退出方法 1150 33.2.2 Customer表的方法 1151 33.2.3 Part表的方法 1152 33.2.4 Sales表的方法 1152 33.2.5 临时表的方法 1153 33.2.6 TDataModule操纵数据访问 组件的事件 1153 33.3 设计用户界面 1153 33.3.1 TMainForm:应用程序的主窗 体 1154 33.3.2 TCustomerForm:客户输入 1158 33.3.3 TPartsForm: 货物输入 1161 33.3.4 TSalesForm: 销售浏览 1165 33.3.5 TNewSalesForm: 销售输入 1165 33.3.6 CustomerSearch对话框 1169 33.4 总结 1173 第34章 客户跟踪系统:MIDAS开发 1174 34.1 设计服务器应用程序 1174 34.2 设计客户应用程序 1176 34.2.1 客户数据模块 1176 34.2.2 客户主窗体 1184 34.3 总结 1190 第35章 错误报告工具:桌面数据库 开发 1191 35.1 通用应用程序的需求 1191 35.1.1 为WWW做准备 1191 35.1.2 用户的数据输入和登录 1191 35.1.3 错误处理、浏览和过滤 1191 35.1.4 错误注解 1191 35.1.5 用户界面的功能 1192 35.2 数据模型 1192 35.3 开发数据模块 1192 35.3.1 应用程序初始化和登录 1201 35.3.2 生成Paradox关键值 1202 35.3.3 错误处理例程 1202 35.3.4 浏览/过滤错误 1202 35.3.5 增加用户 1202 35.3.6 加入注解 1204 35.4 开发用户界面 1205 35.4.1 主窗体 1205 35.4.2 用户界面的其他问题 1211 35.5 使应用程序具有Web功能 1211 35.6 总结 1211
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值