首页 > 其他分享 >ble cs技术(一):基本原理和流程

ble cs技术(一):基本原理和流程

时间:2024-12-07 14:23:14浏览次数:3  
标签:sub sequence 基本原理 cs step mode ble event

说明

​ channel sounding是蓝牙6.0的新出的功能,虽然说是新出,但是大家都说核心的技术其实还是以前那套tof方案和aoa方案用于定位应用,只不过SIG将其进行统一打包,至于这套东西真正是怎么样的,我还真没研究过。

​ 由于工作和兴趣原因,需要对这套东西进行研究,故打算开几篇博客来记录下研究的新的笔记。万事开头难,第一步就是入门了,关于入门,最好的方法莫过于阅读SIG的入门介绍文章,文章连接如下:

Bluetooth® Channel Sounding: A Technical Overview | Bluetooth® Technology Website

​ 该文章由SIG官方发布,支持中文,对CS技术进行了一个比较好的介绍,这里我只对核心部分进行分析,读这篇文章前最好先看下原文。

测距原理

​ 关于测距原理,CS主要使用PBR和RTT两种方法,对于这两种方法的说明,原文给出了清晰的介绍,这里参考原文2.2.2即可,这里做下简要的总结

  • 基于相位的测距(PBR):通过发送频率不同的恒定信号,根据接收时相位差变化情况来进行测距,但由于信号有周期性问题,会出现距离模糊问题(就是距离超出波长就会有重复结果的问题),但除此之外精度受其他因素影响较少。
  • 回程定时 (RTT):通过发包和收包的时间变化情况,来进行测距,即最常见的飞行时间,这个方法缺点以前研究uwb的tof也说过,只能算大致距离,精度受影响因素较多。

Channel sounding便是利用将两种测距方案结合,通过rtt测出大致距离以此解决pbr距离模糊的问题,实现高精度定位

CS 基本架构

​ 如原文所说,其实CS虽然是用于测距,但是实现流程跟常规通信交互是一致,本质还是通信双方相互发包,在数据交互过程完成RTT和PBR过程。

​ 为了更好的研究CS,需要从宏观的角度对cs的流程有一定的认识才能对细节进行进一步分析,因此我们就先着重于分析这CS套交互流程(procedure)是怎么样的,对其有一个起码的认识,这样就算初步的入门了。

procedure

​ cs procedure跟我们BLE ASL数据交互的procedure流程类似,在BLE连接里,数据交互发生在每个connection event中,每个connection event间隔一定的connection interval(原文3.4.1)。类似的的,每个cs数据包交互都发生在每个cs event中。

event、subevent和step

​ 在event中,会对再进步细分为subevent和step,最后以step为最小单位来进行数据包的交互,为什么要如此细分我们先不管,只需要知道一次tx/rx的包交互便称为一个step。

cs_sync包

​ 在step中进交换的包称为cs_sync包,结构如下:

包中每段的说明如下:

​ preamble:前导码,和LE中的preamble类似,用于给modular进行调谐和设置增益,固定。根据PHY是用1M还是2M和access address的lsb是0还是1有四种固定选择

​ access address:访问地址,本质作用是类似UWB TOF中的Ranging maker存在,用于作为记录包发送和接收的时间记录锚点。他的生成比较复杂,后面再单独分析。

​ trailer:这部分为4bit,有“0101”和”1010“两种选择,具体选哪个取决于上面access addressmsb是0还是1而决定,具体作用与调制解调相关。

​ Sounding/random sequence:这部分序列作用于access address类似,rtt提供了多种toa时间戳确定方法,具体用哪一种需要可以根据相关配置进行选择。这部分也相对复杂,后面再单独分析

​ 用于进行定位的cs_sync包跟以前我们用于通信的ASL包差异最大的便是他没有数据段,不需要传数据,他的作用就是为了rtt应用而存在,所以cs_sync包内容中最关键的就是access address和最后的sequence,因为这两部分与rtt技术中的时间戳息息相关。

cs_tone

​ cs_tone本质上不能算数据包,他只是一个持续固定时间,频率固定的正弦波信号。但它有确确实实是tx/rx交互的一部分内容,关于他的作用与以前的aoa技术一致,这里就不错重复说明,这里相当于sig把以前的aoa技术进行了复用。

step mode

​ 现在我们重新回到step的分析来,前面说过一次tx/rx的交互便称为一个step,交互的内容可以是数据包cs_sync,也可以是恒音信号cs_tone,甚至同时交换数据包和恒音,因此很自然而言的需要对不同的交互内容进行应该区别,于是我们以step mode来进行划分

mode-0

​ mode-0的说明这里原文讲的比较好,总结下就是initiator发送一个cs_sync包,reflector同时返回cs_sync包和cs_tone。这个模式主要用于对双方设备的信号误差进行误差检测计算和补偿校准,用于提高测距和测角的精度。

mode-1

​ 只发送和接收cs_sync的情况,主要用于rtt测距

mode-2

​ 只发送和接收ct_tone的情况,主要用于pbr测角

mode-3

​ cs_sync和cs_tone都会发送和接收的情况,相当于测距测角同时做,这个模式不是必须的,主要看设备支不支持,毕竟其实mode1和2都能做到。

​ 至此对step的情况我们有了一个基本的认识,现在,我们返回到上一层sub event中

mode sequencing

​ 前面说过,每个procedure包含多个event,每个event包含多个sub event,sub event有包含多个step。那么sub event本质就是一串step的序列,称为step sequence,而组成step sequence的这些step的我们知道有四种mode,也就是四种类型。那么他们的排序是怎么样的呢?这个sig做出了规定。

​ 在原文3.8中给出了很清晰的解释,总结下来就是:

  1. 每个sub event都是以一个或多个(1-3可选)的mode 0 step作为开始

  2. 上述mode 0 step结束后,紧接着的是连续的数个main mode step,数量是随机选择的,范围在 Min_Main_Mode_Steps 至 Max_Main_Mode_Steps 之间(含)。

  3. main mode step结束后,紧跟的是数量固定为一个的sub mode step。

  4. sequence的边界并不局限于subevent,也就是说类似如下图的结果,第一个step sequence结束后,sub event还没有结束(用户可能配置一个sub event支持step比较多),还进行了一个mode 2 step,这个step是作为第二个sequence的开头存在,第二个sequence是横跨sub event1 和 sub event2存在的。sub event要以mode 0的step作为开始,但是main/sub step sequence并不需要。

  5. main mode和sub mode的组合要限制,具体看3.8.2

​ 上述中,main mode step的数量是从配置参数max和min中随机选的,但用户也可以使用主模式重复配置(Main_Mode_Repetition ),使能这个配置后,每次进行的main step mode不再随机变化,而是固定重复。

​ 关于step sequence中main mode的选择,和sub mode的搭配,需要与实际测距测角的性能考虑,这里后续再进行具体深入研究。

event和step sequence

​ 再回过头来看,sub event可以说只是处于通信时的一些资源性能考虑对step sequence进行了拆分并补充上用于提高精度的mode 0,如果我们把这些subevent和mode 0去掉,本质上每个event进行的动作就是一些重复的main/sub step sequence。只是这些sequence里面的main mode数量随机或者固定(Main_Mode_Repetition )罢了。

event结束后的上层交互

每次subevent结束后,控制器需要向上层返回测距结果

其中Step_Data中包含了测距实际数据(TOF数据或相位数据)

小结

​ 那么通过上述的分析,对于cs的procedure我们就有了一个基本的认识。但是还有很多细节的东西我们还没有分析,比如cs procedure中每个step的信道怎么样的,会变化吗?access address要如何选择?比如进入procedure前,相关的初始化和配置流程是怎么样的?如何保证安全问题?等等,这些问题就需要再另外再分析了。

标签:sub,sequence,基本原理,cs,step,mode,ble,event
From: https://www.cnblogs.com/simpleGao/p/18592125

相关文章

  • ble cs技术(二):DRBG和hr1
    DeterministicRandomBitGenerator(DRBG)介绍​ DRBG,是个很重要的东西。需要先作为基础进行分析研究,不然后面对CS其他内容进行具体研究时会有影响。DRBG翻译过来叫做确定性随机比特生成器。​ 这个随机数生成怎么会有确定性呢,简单来说DRBG需要通过输入一些入参才能生成随机......
  • 133. 大学生HTML5期末大作业 ―【迪士尼影视网页】 Web前端网页制作 html5+css3+js
    目录一、更多推荐二、网页简介三、网页文件四、网页效果五、代码展示1.html2.CSS3.JS六、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强七、更多推荐一、更多推荐欢迎来到我的CSDN主页!Web前端网页制作、大学生期末大作业、课程设计、毕业设计、......
  • 探索CSS中的背景图片属性,让你的网页更加美观
    导语:在网页设计中,背景图片的运用能够丰富页面视觉效果,提升用户体验。本文将详细介绍CSS中背景图片的相关属性,帮助大家更好地掌握这一技能。一、背景图片基本属性1、background-image该属性用于设置元素的背景图片。语法如下:background-image:url('图片路径');2、backg......
  • 大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS (1)
    文章目录......
  • vxe-table 实现指定列默认是隐藏,点击重置自动还原状态
    vxe-table实现控制指定列默认隐藏,重置自定义列后还能自动还原,有个需求需要将某一列默认是隐藏的,但是可以通过自定义列设置显示,当点击自定义的重置按钮时,还能回复到默认的状态,实现也是非常简单的。通过visible参数设置默认为不显示就可以了。官网:https://vxetable.cn/通过vi......
  • Stable Diffusion核心网络结构——VAE
    本文详细介绍SD模型的三部件之一——VAE,阐述VAE在SD模型中的作用和完整的架构。目录传统VAEStableDiffusion核心网络结构SD模型整体架构初识VAE模型【1】StableDiffusion中VAE的核心作用【2】StableDiffusion中VAE的高阶作用【3】StableDiffusion中VAE模型的完......
  • 使用css如何设置背景虚化?
    CSS本身无法直接实现背景虚化(模糊)效果。你需要结合其他技术,最常见的是使用backdrop-filter属性,但它有浏览器兼容性问题。以下列出几种实现背景虚化的方法,并分析其优缺点:1.backdrop-filter属性:这是最直接的CSS方法,但兼容性较差,主要支持较新版本的Safari和Chrome。.blu......
  • 使用css画一个3D饼图的效果
    <!DOCTYPEhtml><html><head><title>3DPieChartwithCSS</title><style>body{background-color:#f0f0f0;display:flex;justify-content:center;align-items:center;min-height:100vh;}.pie-chart{wi......
  • 为什么说css的选择器一般不要超过三级?
    CSS选择器一般建议不要超过三层,主要基于以下几个原因:性能问题:浏览器渲染页面时,需要根据CSS选择器来匹配对应的HTML元素。选择器层级越深,浏览器需要进行的计算就越多,尤其是在大型DOM树中,过深的层级会导致性能下降,影响页面渲染速度,造成卡顿。浏览器需要从右往左进行匹......
  • 举例说明with属性的fill-available有什么应用场景?
    fill-available在width或height属性中与grid布局或flexbox布局一起使用时,可以创建一些有趣的布局效果。它本质上是让元素填满可用空间,与stretch类似,但在某些情况下表现不同。以下是一些fill-available的应用场景:1.Grid布局中的等高列:假设你有一个网格布局,希望......