CCC联盟——UWB MAC(二)

news2024/11/18 6:20:30

在上一篇文章中对CCC联盟UWB MAC框架进行了介绍,在本文中,将MAC层的时间网格进行简单介绍。

2、MAC时间网格(Time Grid)

DK UWB测距协议属于一对多(One to Many, O2M)测距协议。发起者,每次发送4帧,接收N帧(响应者数量)。示例中为一个协调器,7个Responder在一个测距轮(Ranging Round)中的工作示意。
在这里插入图片描述

当前的标准中,主要支持两种类型的UWB帧:

  • 数据帧(SP0帧):数据帧由前导码(SYNC)、帧起始分隔符(SFD)、物理报头(PHR)字段和物理服务数据单元(PSDU)字段组成。此类帧,在标准中仅负责发送包含在PSDU字段中的数据,不参与飞行时间(ToF)计算。此改进主要出发点在于使用已知前导码,在时间戳的获取上,可能会受到其他干扰设备的攻击,进而导致测距的不安全,这也是在IEEE 802.15.4z协议中重点增加的部分。
  • 测距帧(SP3帧):由SYNC、SFD字段和加扰时间戳序列(STS)字段组成。这种帧仅负责通过STS字段获取时间戳,用于飞行时间的计算,不传输任何数据,在一定程度上也可以减少测距帧的长度。

流程说明
1)协调器首先通过发送Pre-Poll帧(SP0),将当前RAN中的相关信息发送,响应者收到之后,根据给定时间发送应答。即Pre-POLL帧在测距中起到同步信息、控制的作用。
2)紧接着,协调器发送POLL帧(SP3),POLL帧用于测距使用,获取时间戳信息(发送以及被接收时间戳)。
3)Responder根据协调器Pre-POLL帧信息,按照对应的时序依次发送应答帧(Response帧);
4)所有应答器回传之后,协调器依次发送FINAL帧(SP3),以及Final_Data帧(SP0),将测距中使用的时间戳信息均在Final_Data中进行传输。

SP3测距帧仅用于时间戳的测量,仅仅由前导码以及STS组成,整体耗时较短,对于控制整个测距的时隙非常方便。

2.1 关于测距块

在DK UWB测距协议中,整体时间网格按照块的方式进行组织,每个测距块周期为: T B l o c k k T_{Block}^k TBlockk
每个测距块被划分为 N R o u n d k N_{Round}^k NRoundk个测距轮(Ranging Round,简写为RR),每个测距轮时间设置需要足够长( T R o u n d k T_{Round}^k TRoundk),以保证能够完成完整的测距交换。
T R o u n d k T_{Round}^k TRoundk的长度由具体的测距会话进行指定。

每个Ranging Round时隙数需要满足:
S L O T S _ P E R _ R R ≥ N U M B E R _ O F _ A N C H O R S + 4 SLOTS\_PER\_RR \geq NUMBER\_OF\_ANCHORS + 4 SLOTS_PER_RRNUMBER_OF_ANCHORS+4

提示:4为发起者的Pre-Poll、Poll、Final以及Final-Data所需的时隙总数。对于每个时隙的长度而言,要考虑最长帧的时长。
对于数据帧而言,Final-Data较为耗时,一个Final-Data最多支持10个应答器的时间戳信息。若Anchor数超过10,则需要一个或两个额外的Final-Data帧。

一个Ranging Round的长度可以计算为:
R A N G I N G _ S L O T _ L E N G T H ∗ S L O T S _ P E R _ R R RANGING\_SLOT\_LENGTH * SLOTS\_PER\_RR RANGING_SLOT_LENGTHSLOTS_PER_RR

需要注意,对于一个最小块时间而言,应该能够分为整数个测距轮(RR),而非小数或其他,没有空闲的时隙。
在这里插入图片描述

2.2 相关时间单位

  • T C h a p T_{Chap} TChap:MAC层协议的时间单元,MAC层协议中所有的持续时间(除了TPacket_Max)均为 T C h a p T_{Chap} TChap的整数倍。

T C h a p = 1 / 3 m s = 400 R S T U T_{Chap} = 1/3 ms = 400 RSTU TChap=1/3ms=400RSTU

每个RSTU定义为:416 / 499.2MHz ≈ 833.33ns。

在CCC的MAC层规范中,所有的时间基础单元均为400 RSTU。(与FiRa标准有所差异,FiRa中为1200 RSTU,即1ms为单位)

  • T B l o c k _ M i n T_{Block\_Min} TBlock_Min,最小的测距块周期,在CCC中设置为96ms。

T B l o c k _ M i n = 288 ∗ T C h a p = 96   m s T_{Block\_Min} = 288*T_{Chap}=96\,ms TBlock_Min=288TChap=96ms

  • 一个RAN包含一个发起者和k个响应设备。
  • 每个响应设备在RAN中最多分配一个活跃的测距会话。
  • 第k个测距会话,通过唯一的 U W B _ S e s s i o n _ I D k UWB\_Session\_ID^k UWB_Session_IDk识别, 在竞争谈判阶段(negotiation phase)设置。
  • 第k个测距会话的定义为相对于指定的时间参考:$ UWB_{time0} $。参考时钟由发起者基于其时钟基准定义。此时间基准定义了一系列连续测距块的开始。
  • 第k个测距会话的每个Ranging block的长度为: T B l o c k k = N R A N k ∗ T B l o c k _ M i n T_{Block}^k = N_{RAN}^k*T_{Block\_Min} TBlockk=NRANkTBlock_Min

N R A N k N_{RAN}^k NRANk是RAN乘数,是测距会话特定参数,用于控制给定RAN中相应会话的最大测距频率。
在一个会话中是一个需要指定的参数,用于控制指定RAN的最大的测距频率。

  • 连续 N S l o t _ p e r _ R o u n d k N^k_{Slot\_per\_Round} NSlot_per_Roundk个时隙构成了一个测距轮次(Ranging Round),周期为:

T R o u n d k = N S l o t _ p e r _ r o u n d k ∗ T S l o t k = N S l o t _ p e r _ r o u n d k ∗ N C h a p _ p e r _ S l o t k ∗ T C h a p T_{Round}^k = N^k_{Slot\_per\_round}*T^k_{Slot} = N^k_{Slot\_per\_round}*N^k_{Chap\_per\_Slot}*T_{Chap} TRoundk=NSlot_per_roundkTSlotk=NSlot_per_roundkNChap_per_SlotkTChap
每个测距轮的时隙数应大于或等于发起方和响应方设备之间的一次完整测距交换所需要的信息交换的数量。
注意:具体与实际执行的测距的方法有关系,在FiRa中定义了,SS-TWR、DS-TWR,以及基于SP1的SS-TWR、DS-TWR(non-deferred mode)。不同的测距流程,所需要的时隙数会有所区别。

  • 第k个测距会话的每个block被分为 N R o u n d k N^k_{Round} NRoundk个连续的测距轮(Ranging Round, RR)

T B l o c k k = N R o u n d k ∗ T R o u n d k T_{Block}^k = N_{Round}^k * T^k_{Round} TBlockk=NRoundkTRoundk

  • 在第k个测距会话的第(i+1)测距块的第(s+1)个测距轮的开始时间为:

U W B t i m e 0 k + i ∗ T B l o c k k + s ∗ T R o u n d k i = 0 , 1 , 2 , 3... s = 0 , 1 , 2 , . . . ( N R o u n d k − 1 ) UWB^k_{time0} + i*T^k_{Block}+s*T^k_{Round} \qquad i=0,1,2,3... \qquad s=0,1,2,...(N^k_{Round}-1) UWBtime0k+iTBlockk+sTRoundki=0,1,2,3...s=0,1,2,...(NRoundk1)

  • 每个测距会话(k=1,2, …, K)被分配了一个伪随机跳频序列(hopping sequence)

H k = S 0 k , S 1 k , . . . , S i k w i t h 0 ≤ S i k ≤ ( N R o u n d k − 1 ) H^k = {S_0^k, S_1^k, ..., S_i^k} \quad with 0 \leq S_i^k \leq (N^k_{Round} -1) Hk=S0k,S1k,...,Sikwith0Sik(NRoundk1)

k表示每个测距会话的序号, S i k S_i^k Sik表示测距块i中开始的测距轮的索引。在多个会话中出现无法接受等情况时,将根据hopping序列进行跳频(通过跳到不同的测距轮,以进行规避冲突),由于跳频序列在协商阶段均获得,所以通过一定测距时间,可以保证所有的设备又都跳到正确的测距轮,进行正常的测距。
具体的跳变规则,根据连续跳变或自适应跳变,按照特定的序列进行。
跳变序列与跳变模式和跳变标志一起用于计算当前测距块中的测距循环索引。

整个MAC时间网格示意图如下所示:

在这里插入图片描述

对于每一个测距会话参数的设计考虑上,首先需要保证能够完成车辆与DK的测距。也就是能够保证Responder数量,以及车辆的数量。
另外,从图上也可以看到,当前CCC支持的一些参数的范围:

  • N C h a p _ p e r _ S l o t = 3 , 4 , 6 , 8 , 9 , 12 , 24 NChap\_per\_Slot = 3,4,6,8,9,12,24 NChap_per_Slot=3,4,6,8,9,12,24
  • N S l o t _ p e r _ R o u n d k = 6 , 8 , 9 , 12 , 16 , 18 , 24 , 32 , 36 , 48 , 72 , 96 N^k_{Slot\_per\_Round} = 6,8,9,12,16,18,24,32,36,48,72,96 NSlot_per_Roundk=6,8,9,12,16,18,24,32,36,48,72,96
  • N R o u n d _ p e r _ 96 m s k N^k_{Round\_per\_96ms} NRound_per_96msk

持续更新,系列教程,收藏关注吧!

1、CCC联盟——UWB PHY
2、CCC联盟(一)——UWB MAC概述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1251231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈如何成为一名优秀教师

你是不是也有一个梦想,想要成为一位优秀的教师,让孩子们如沐春风,收获满满?那么,今天就让我来给你分享一下成为优秀教师的秘诀吧! 热爱教育,点燃激情 成为优秀教师,首先要有对教育的…

C语言 - Linux基础使用

Linux 1. Linux简介 Linux是操作系统 Linux中所有的程序与硬件设备对Linux系统而言都是一个文件或文件夹 1.1 Linux发行版本 发型版本的名称/版本有发行方决定 Red Hat Enterprise Linux 5/6/7Suse Linux Enterprise 12Debian Linux 7.8Ubuntu Linux 14.10/15.04 1.2 Red H…

Vue与UserEcharts、DataV的协同

文章目录 引言一、Vue.js简介二、ECharts和UserEcharts1.ECharts简介2.UserEcharts:Vue和ECharts的结合 三、DataV简介四、Vue与DataV的结合1.DataV的Vue插件2.Vue和DataV的数据交互 结论我是将军,我一直都在,。! 引言 接着上一篇…

基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码

基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于协作搜索算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于协作搜索优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

卧室装修干货|榻榻米设计的3要点。福州中宅装饰,福州装修

榻榻米布局 1️⃣传统式布局 在房间中央设置书桌和衣柜,两侧留出走道空间。这种布局适合房间面积适中的房间。 2️⃣靠窗布局 将书桌靠窗放置,衣柜则放在书桌对面,这种布局可以充分利用自然光线,同时也节省空间。 3️⃣高低床…

C语言—二维数组

一、二维数组的创建 int arr[3][4];char arr[3][5];double arr[2][4]; 数组创建:“[ ]”中要给一个常量,不能使用变量 二、二维数组的初始化 int arr[3][4]{1,2,3,4};int arr[3][4]{{1,2},{4,5}};int arr[][4]{{2,3},{4,5}}; 前面的为行&#xff0c…

MySQL 索引相关问题,建议搭建好环境,真实操作一下索引应用到的各种场景

文章目录 什么是 B-tree 和 Btree ?B-Tree 和 BTree的区别?MySQL 联合唯一索引是BTree,会带来什么原则?主键索引和单字段唯一索引有什么区别吗什么是 聚簇索引和非聚簇索引 ?创建一个三百万数据量的表格,方…

邮政快递查询,邮政快递单号查询,用表格导出查询好的物流信息

批量查询邮政快递单号的物流信息,以表格的形式导出查询好的物流信息。 所需工具: 一个【快递批量查询高手】软件 邮政快递单号若干 操作步骤: 步骤1:运行【快递批量查询高手】软件,并登录 步骤2:点击主界…

GNSS介绍

GNSS介绍 1. GNSS概述2 GNSS工原理3 GNSS的关键技术3.1 RTK技术3.2 惯性导航技术 4 GPS导航电文的格式4.1 第一数据块4.2 第二数据块4.3 第三数据块 5 NMEA语句5.1 GGA5.2 GSA5.3 GSV5.4 RMC5.5 GLL5.6 VTG 6 各导航系统不同频段的工作频率7 LTE,GNSS,WI…

C语言,通过数组实现循环队列

实现循环队列最难的地方就在于如何判空和判满,只要解决了这两点循环队列的设计就没有问题。接下来我们将会使用数组来实现循环队列。 接下来,为了模拟实现一个容量为4的循环队列,我们创建一个容量为4 1 的数组。 接下来我们将会对这个数组…

ACL权限

ACL权限 目录: 1. 什么是ACL 2. 操作步骤 1. 什么是ACL ACL是Access Control List的缩写,即访问控制列表 每个项目成员在有一个自己的项目目录,对自己的目录有完全权限 项目组中的成员对项目目录也有完全权限 其他人对项目目录没有…

Selenium技巧大揭秘:动态数据、分页和Cookie的获取利器

背景: ​ 昨天我们讲了讲关于seleium的一些基础操作,今天讲讲如何将seleium和爬虫结合起来,可以使用selenium获取网页的动态加载数据,可以使用selenium获得cookie,这两个是比较常用的。我将一一展开。 实战案例&…

SAP Smartforms打印报错Error in spool C call : spool overflow

处理方式: SAP打印时提示: Error in spool C call : spool overflow (假脱机请求溢出,通俗一点打印池已满) 解决办法: SE38 首先运行程序RSPO1041 再运行RSPO1043,话不多说上图。

2023-11-24 LeetCode每日一题(统计和小于目标的下标对数目)

2023-11-24每日一题 一、题目编号 2824. 统计和小于目标的下标对数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target &#xff0c;请你返回满足 0 < i < j < n 且 nums[i] nums[j] < targe…

千梦网创:我回来了

最近小半年将近有5个月的时间基本没有更新什么大型的课程内容&#xff0c;朋友圈除了晨记没有频繁更新一些公告或者是动态&#xff0c;直到目前为止&#xff0c;我也才算把手头所有的事情全部梳理好&#xff0c;正式恢复更新状态。 这小半年发生了很多事情&#xff0c;有快乐的…

【数字图像处理】均值滤波与中值滤波

在数字图像处理中,均值滤波和中值滤波是常见的空间域处理方法,可以用于过滤图像中的噪声。本文主要介绍数字图像均值滤波与中值滤波的基本原理,并记录在紫光同创 PGL22G FPGA 平台的布署与实现过程。 目录 1. 均值滤波与中值滤波 2. FPGA 布署与实现 2.1 功能与指标定义

NX二次开发UF_CURVE_ask_int_parms 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CURVE_ask_int_parms Defined in: uf_curve.h int UF_CURVE_ask_int_parms(tag_t int_curve_object, int * num_objects_set_1, tag_t * * object_set_1, int * num_objects_set_…

excel一个单元格换行方法

要是在同一个单元格内输入文字输入不下的话&#xff0c;我们是可以进行同一个单元格换行设置的&#xff0c;而且换行的方法也是有很多种&#xff0c;下面我们就一起来看一下有哪些方法吧。 excel一个单元格换行方法&#xff1a; 方法一&#xff1a; 1、我们可以直接按下alte…

2-10岁女童穿搭 I 看的见的时尚感

分享女儿的时尚穿搭—连帽加绒卫衣 简单易搭怎么穿都好看的卫衣 红色吸睛又显肤色&#xff0c;不挑人穿 面料亲肤柔软&#xff0c;保暖性也很棒 单穿内搭都能轻松打造时尚造型&#xff01;&#xff01;

bop数据合并到COCO

bop数据合并到COCO JSON转TXT重命名txt文件中类别信息的转换 JSON转TXT import json import os,globcategories [{"id": 12,"name": "OREO","supercategory": "icbin"},{"id": 16,"name": "Paper…