CCC标准——PHY

news2024/11/30 2:29:33

1.介绍

UWB物理层使用基于频带受限脉冲的脉冲无线电信号波形。UWB物理层主要用于测距,但也可以用于数据通信。在CCC标准中,物理层的具体定义依然基于IEEE 802.15.4z标准中的HRP UWB PHY,支持更高的脉冲重复频率。

对于增强测距设备(Enhanced ranging devices, ERDEV)的安全性的提升的关键在于引入了STS技术。STS包含在IEEE 802.15.4z规定的PPDU格式中,分为4种模式,不同配置下STS在PPDU中的位置有所不同。
在这里插入图片描述
在IEEE标准中定义了相对灵活的UWB PHY。其灵活性通过调整参数来实现,如前导码(SYNC)长度、前导码编码、帧分割符(SFD)长度与编码,脉冲重复频率以及数据率等。

而在CCC的物理层规范中,并不要求实现所有的参数和模式,根据汽车数字钥匙的特定应用场景需求进行了规范。

对于链路两端的ERDEV,应预先协商用于安全测距会话的具体参数。协商参数可以在上层完成或通过BLE。

2.UWB PHY框图

框图与IEEE 802.15.4z HRP UWB PHY定义一致,PHR使用SECDED编码、Payload使用RS编码。

PHR bit
SECDED编码
对称卷积编码
Payload bit
RS编码
Symbol Mapper
Preamble Insertion
脉冲成形
RF

对应的在接收端,将根据不同的类型进行处理:

RF
Pulse Shaper
同步
数据检测
卷积解码器
SECDED解码器
PHR
RS解码器
Payload

3.UWB包格式

在CCC中规范中,包类型仅包含两种(IEEE 802.15.4z中为4种):STS Packet type 3(SP3)、STS Packet type 0(SP0)。

对于SP3,通过确定性随机位生成器DRBG STS引擎生成4096 bits加密码,用于创建STS波形(二元脉冲编码),同时没有PHR段也没有数据段。

SYNC
SFD
STS

由于SP3是不包含数据信息的,因此,用于UWB测距的相关分组、时隙信息、配置消息等应该是提前同步到各设备。(SP3为测距数据帧,仅用于安全测距,收发设备上记录各自高精度时间戳即可,具体是哪个设备发送的,通过SP0来定义。)

SP0包含SYNC、SFD、PHR、PSDU组成。

SYNC
SFD
PHR
PSDU

配置信息可以通过BLE链路,也可以通过SP0数据帧来进行。在CCC中,推荐使用BLE链路,通过带外通道来同步,可以减少UWB信道的暂用,同时也可以降低整机的功耗(当前UWB收发功率依然远高于BLE)。

SP3旨在用于安全测距交换,针对已知设备,因此发送和接收设备之间需要相同的/已知的STS,以保证连接设备的正常工作。

在CCC中,所有测距会话中的包,使用的平均PRF不低于62.4 MHz。也就是说,IEEE 802.15.4a中支持的15.6 MHz等设备、参数不能应用于ERDEV。

4.UWB帧元素

在CCC中对于物理层支持的配置比较有限,仅支持下表所示配置内容:
在这里插入图片描述
可以看到,CCC PHY的相关限制要求比较高,对于STS段的时间长度也进行了明确的规定,与FiRa PHY中的限制相似,对于SP3帧也限定为1段且长度为64个Symbols,相应的整个传输时间会比较好估计,同时对于设备实现上可以降低设备实现的难度(可以简化设计)。

4.1 BPRF SYNC

SYNC段用于负责接收机算法相关的AGC设置、定时捕获、粗略/精准频率恢复、数据包分组与帧同步实现。

在IEEE的标准中强制要求支持SYNC长度16、64、1024、4096个Symbols长度,而在CCC规范中仅要求支持64个符号的短前导码。

对于CCC定义的ERDEV应支持长度为127的三元编码,每个前导码为{-1 0 1}构成的序列,对于BPRF模式下,支持9-12的编码,对于127长度的三元编码,可以基于其完美的自相关特性得到较好的同步效果。

在本规范中,ERDEV应当在CH5与CH9工作,需要支持前导码编码:9、10、11、12。对于13-16、21-24为可选序列。
在这里插入图片描述

4.2 BPRF SFD

SFD增加到UWB帧中用于建立接收机的帧时序。
在CCC规范中,仅支持长度为8的SFD。三元编码SFD为[0 +1 0 -1 +1 0 0 -1],为了提高性能,设备应该支持二元序列[-1 -1 -1 +1 -1 -1 +1 -1]。

4.3 STS

为防止注入信号能量攻击,STS提供AES生成的测距波形以防止攻击欺骗。基于DRBG的STS能够低于各种类型的距离攻击,如Brute force attack, Cicada attack, 前导码注入工具和前导码EDLC。STS的位映射到脉冲如下:

  • Bit 1 映射负脉冲
  • Bit 0 映射正脉冲

对于BPRF模式(64 MHz PRF),一个脉冲对应8个chips(展开因子为8)。

4.4 BPRF PHR

Bits:0-12-891011-1213-18
数据率帧长度RangingReserved前导码长度SECDED

包含了PSDU段的数据率,当前帧前导码的长度,以及payload的长度。附加了6bit的奇偶校验位,用于进一步保护PHR不受传播信道错误的影响。
对于PRF 64MHz,PHR数据率为850 Kbps。

关于SECDED相关值的构成关于如下:
在这里插入图片描述

4.5 标准兼容数据段

g0
g1
PSDU
对称RS
对称卷积编码
BPM-BPSK
三元输出

标准数据段应按照如下构成:

  • 使用增加了48奇偶位的对称R-S块(Reed-Solomon)对PSDU进行编码。
  • 使用对称卷积编码器对RS编码输出进行编码。如果调制的Viterbi数量被定义为1,那么卷积编码器将被旁路。
  • 使用BPM-BPSK对编码块进行扩频和调制。

5.脉冲形状组合

兼容发射机应该在传统的对称根升余弦脉冲和Precursor-Free Pulse(无前体脉冲)之间选择。
在CCC-PHY中,对UWB脉冲的形状规范有相对更多的兼容性,相关脉冲形状的参数定义如下。

5.1 对称根升余弦函数 - PulseShape 0x0

r ( t ) = 4 β π T p c o s [ ( 1 + β ) π t / T p ] + s i n [ ( 1 − β ) π t / T p ] 4 β ( t / T p ) 1 − ( 4 β t / T p ) 2 r(t)=\frac{4\beta}{\pi \sqrt{T_p}} \frac{cos[(1+\beta)\pi t/T_p] + \frac{sin[(1-\beta)\pi t/T_p]}{4\beta(t/T_p)}}{1-(4\beta t/T_p)^2} r(t)=πTp 4β1(4βt/Tp)2cos[(1+β)πt/Tp]+4β(t/Tp)sin[(1β)πt/Tp]

β \beta β = 滚降系数,0.45 ± 0.05
T p T_p Tp = 脉冲周期,为chip旁路的导数(1/499.2MHz ≈ 2ns)

以下为Pyhon实现的最小相位脉冲波形,包括脉冲形状0x0的有限脉冲响应(FIR)样本,使用0.45的β值,每个chip采用32倍过采样,总跨度8个chip。

def min_phase(firseq, fft_pts):
"""
A function to convert a FIR impulse response to min-phase
A function that calculates the minimum-phase equivalent of a 
FIR impulse response based on a Discrete Hilbert Transform
applied in the frequency domain.
"""
# Recommended fft_pts >= 32768
# For guidelines on the required number of FFT points, see:
# N. Damera-Venkata, B. L. Evans and S. R. McCaslin,
# "Design of optimal minimum-phase digital FIR filters using
# discrete Hilbert transforms," in IEEE Transactions on Signal
# Processing, vol. 48, no. 5, pp. 1491-1495, May 2000.
max_phase = np.real(np.fft.ifft( \
    np.exp(hilbert(np.real(np.log(np.fft.fft( \
    firseq, fft_pts)))))))
tmp_min_phase = max_phase[::-1] # reverse max phase
return tmp_min_phase[0:len(firseq)] # maintain length

5.2 无前体脉冲 - PulseShape 0x1

一般来说,“无前体”是指脉冲的特性,即单调的将上升到最大峰,也表示器主瓣是第一个峰值。

5.2.1 Precuursor-Free Pulse - PulseShape 0x2

脉冲波形0x2为脉冲波形0x1的一种特殊情况,通过使用相关方法将脉冲形状转化为最小相位。

如果发送机选择无前体脉冲,建议尽量使用脉冲波形2(最小相位)。

6. 测距Marker

在IEEE标准中定义RMARKER,支持进行时间戳测量。RMARKER与STS包的位置如下图:
在这里插入图片描述

7. UWB RF标准

7.1 工作频段与信道分配

在CCC规范中,ERDEV应该工作在高频段,CH5和CH9。
CH5中心频率6489.6 MHz,CH9中心频率为7987.2 MHz。

7.2 频率源要求

RF中心频率和符号时钟频率应该来自相同的参考时钟(clk_ref),该时钟通常为晶体振荡器(XO)。时钟和所有发送、接收机活动的时钟与相同的公共clk_ref绑定。

clk_ref的要求

  • 对于移动设备而言,clk_ref的偏差应该在±10ppm以内。
  • 对于车辆端,clk_ref的偏差应该在±15ppm以内。

参考文献:

  1. IEEE 802.15-4z-2020 - IEEE Standard for Low-Rate Wireless Networks, Amendment 1: Enhanced Ultra Wideband (UWB) Physical Layers (PHYs) and Associated Ranging Techniques, June 2020。
  2. Car Connectivity Consortium Digital Key Release 3, Technical Specification, Version 1.1.0。

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

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

相关文章

华为云云耀云服务器L实例评测|云耀云服务器L实例搭建个人镜像站

华为云云耀云服务器L实例评测|云耀云服务器L实例搭建个人镜像站 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Apache介绍2.1 Apache简介2.2 Apache特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、远程登录华为云…

Springboot对MVC、tomcat扩展配置

Springboot在web层的开发基本都是采用Springmvc框架技术,但是Springmvc中的某些配置在boot是没有的,我们就应该根据自己的需求进行对mvc扩展配置 Springboot1.x版本如何配置 通过注解Configuration一个类,继承webmvcconfigureradapter&#…

AutoAnimate - 无需任何配置,一行代码自动为元素添加优雅的过渡动画,可以搭配 Vue / React 和 Sevelt 使用

这个动画库只要一行代码就可以自动在我们的组件中添过渡动画,为什么这么省事高效呢? AutoAnimate 是一个无需任何配置,自动为我们开发的 Web 项目添加平滑过渡动画的 JavaScript 工具库。AutoAnimate 和之前推荐的一些 js 动画库相比&#x…

贪婪的互联网电视让用户忍无可忍,广电总局出手了

广电总局要求电视需要在今年底前实现开机就看电视,开机广告、关机广告将不再被允许,这对于饱受互联网电视无孔不入的广告困扰的消费者来说无疑是一大利好,他们早已无法忍受越来越多的广告。 一、贪婪的互联网电视 互联网电视企业曾以羊毛出在…

Java下的序列化和反序列化(写出和读入)

代码如下: public class MyWork {public static void main(String[] args) throws IOException, ClassNotFoundException {//序列化File f new File("testFile/testObject.txt");ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(…

【聊天系统的优化】RPC方式的优化

RPC方式的优化 聊天系统的中RPC的选择Jsonprotobufmsgpack 聊天系统的中RPC的选择 在RPC方式中,常用的三种方式:Json,protobuf,Msgback 设定一个简单的加和服务,客户端发送一个list给服务端,需要将list的…

<Xcode> Xcode IOS无开发者账号打包和分发

关于flutter我们前边聊到的初入门、数据解析、适配、安卓打包、ios端的开发和黑苹果环境部署,但是对于苹果的打包和分发,我只是给大家了一个链接,作为一个顶级好男人,我认为这样是对大家的不负责任,那么这篇就主要是针…

Centos 7分区失败,进入 dracut 页面,恢复操作

1. 问题场景: 分区失败,重启了虚拟机,导致系统进入 dracut 页面。开机显示 直接回车,等待重启失败的页面 自动进入了 dracut 模式(救援)。 2. 临时解决进入系统 查了一下:如果出现 “dracut” 提示、进入 dracut…

【分布式计算】三、虚拟化 Virtualization

1.什么是虚拟化 1.1.非虚拟化 我们首先来认识什么是非虚拟化   1.一台机器、一个操作系统、几个应用程序   2.应用程序可能会相互影响。   3.机器利用率较低,正常情况下低于25%。 关于X86平台: 1.服务器基础设施利用率低(10-18%&#…

【网络协议】IP

当连接多个异构的局域网形成强烈需求时,用户不满足于仅在一个局域网内进行通信,他们希望通过更高一层协议最终实现异构网络之间的连接。既然需要通过更高一层的协议将多个局域网进行互联,那么这个协议就必须为不同的局域网环境定义统一的寻址…

《C和指针》读书笔记(第十四章 预处理器)

目录 0 简介1 预定义符号2 #define2.1 宏2.2 #define替换2.3 宏与函数2.4 带副作用的宏参数2.5 命名约定2.6 #undef2.7 命令行定义 3 条件编译3.1 是否被定义3.2 嵌套指令 4 文件包含4.1 函数库文件包含4.2 本地文件包含4.3 嵌套文件包含 5 其他指令6 总结 0 简介 编译一个C程…

Leetcode 662. 二叉树最大宽度

文章目录 题目代码&#xff08;9.30 首刷看解析&#xff09; 题目 Leetcode 662. 二叉树最大宽度 代码&#xff08;9.30 首刷看解析&#xff09; class Solution { public:int widthOfBinaryTree(TreeNode* root) {unsigned long long res 1;using pr pair<TreeNode*, u…

数据集笔记:芝加哥共享单车OD数据

2013年到2022年3月&#xff0c;芝加哥共享单车OD数据 数据地址&#xff1a;Divvy Data (divvybikes.com)

使用python脚本的时间盲注完整步骤

文章目录 一、获取数据库名称长度二、获取数据库名称三、获取表名总长度四、获取表名五、获取指定表列名总长度六、获取指定表列名七、获取指定表指定列的表内数据总长度八、获取指定表指定列的表内数据 一、获取数据库名称长度 测试环境是bwapp靶场 SQL Injection - Blind - …

【考研数学】高等数学第七模块 —— 曲线积分与曲面积分 | 2. 对坐标的曲线积分(第二类积分)

文章目录 一、曲线积分1.2 对坐标的曲线积分&#xff08;第二类曲线积分&#xff09;1.2.1 问题产生 —— 做功问题1.2.2 对坐标的曲线积分的定义&#xff08;了解&#xff09;1.2.3 对坐标的曲线积分的性质1.2.4 二维空间对坐标的曲线积分计算法1. 定积分法2. 二重积分法&…

YOLOv7改进:结合CotNet Transformer结构

1.简介 京东AI研究院提出的一种新的注意力结构。将CoT Block代替了ResNet结构中的3x3卷积&#xff0c;在分类检测分割等任务效果都出类拔萃 论文&#xff1a;Contextual Transformer Networks for Visual Recognition 论文地址&#xff1a;https://arxiv.org/abs/2107.12292 有…

C进阶--数据的存储

⚙ 1. 数据类型介绍 1.1基本内置类型 ⭕ 整形&#xff1a; char(char又叫短整型)unsigned charsigned charshortunsigned short[int]signed short [int]intunsigned intsigned intlongunsigned long [int]signed long [int] ⭕ 浮点数&#xff1a; float&#xff08;单精度浮…

Linux下C语言操作网卡的几个代码实例?特别实用

前面写了一篇关于网络相关的文章&#xff1a;如何获取当前可用网口。 《简简单单教你如何用C语言列举当前所有网口&#xff01;》 那么如何使用C语言直接操作网口&#xff1f; 比如读写IP地址、读写MAC地址等。 一、原理 主要通过系统用socket()、ioctl()、实现 int sock…

基于arduino的土壤湿度检测

1.总体设计框图 本浇花系统总体上分为硬件和软件两大组成部分。硬件部分包括Arduino UNO开发板、温湿度传感器、通信模块、浇水执行系统和液晶显示等。软件部分包括Android客户端。系统结构如图1所示 本浇花系统总体上分为硬件和软件两大组成部分。硬件部分包括Arduino UN…

LeetCode算法题---第2天

注:大佬解答来自LetCode官方题解 80.删除有序数组的重复项Ⅱ 1.题目 2.个人解答 var removeDuplicates function (nums) {let res [];for (let index 0; index < nums.length; index) {let num 0;if (res.includes(nums[index])) {for (let i 0; i < res.length; …