Bluetooth Channel Sounding中关于CS Procedure的详细介绍

目录

BLE CS 过程定义:

BLE CS 过程的组成部分

开始一个BLE CS 过程

与BLE CS过程相关的参数设置



BLE CS 过程定义:

BLE 的CS特性包含一组LL层和空口协议的组合过程,该过程可以使得两个BLE 设备以紧密互锁的方式,在多个信道上交互RF信息(相位信息),这种交互过程被定义为BLE CS过程(Procedure)[Vol 1, Part A 9.1 Channel Sounding procedure]。

BLE CS 过程的组成部分

一个CS过程包含CS 事件(Event),子事件(Subevent)和步骤(Step)。

一个CS过程可以包含一个或者多个CS事件。而一个CS事件又可以包含一个或者多个子事件。在CS事件中又划分出子事件的主要目的一方面是为了避免在一个固定设备上占用较长的嵌入式物理资源,例如在子事件间隙BLE设备可以处理其他响应信息;另外一方面使得CS过程与需要硬件RF资源的其他技术可以共享共存。

一个CS子事件包含大于等于两个CS步骤。每个CS子事件的第一个CS步骤是为了该子事件后续步骤提供校准信息(主要是即时的频偏误差)。而每个CS步骤必须以T_FCS时间作为起始,该T_FCS时间主要用于两个BLE设备在规定的时间内完成跳频并稳定载波输出。

一个BLE CS过程中各个组成部分的层次机构如图1所示。

图 1 BLE CS过程中Procedure/Event/Subevent/Step层次结构图

开始一个BLE CS 过程

当BLE设备进入连接态,分别变为中心设备(Central role)和周边设备(Peripheral role)。而这两种设备都可以配置成CS过程中的Initiator设备或者reflector设备。BLE CS过程中Initiator还是reflector角色的设定,通过LE CS Create Config完成,具体参考Vol 4, Part E, 7.8.137 LE CS Create Config command。

此时中心或者周边设备都可以发起一个BLE CS 过程,仅需要任意设备在连接态发送LL_CS_REQ类型PDU。当然,前提条件是双方已经为BLE CS过程完成了相应的一些必要配置或者交互,例如已经完成CS Capability Exchange,CS Configuration,FAE table等,具体可以参考Vol 6, Part B 5.1.26 Channel Sounding Start procedure。

当BLE进入连接态后的Central设备,只要收到LL_CS_REQ或者LL_CS_RSP数据包,那么当该Central设备回复LL_CS_IND数据包后就直接进入BLE CS过程。并且当前BLE CS过程的第一个子事件的时间锚点(anchor point),就是包含LL_CS_IND数据包的连接事件。

与BLE CS过程相关的参数设置

BLE CS设备建立连接后,通过CS技术获得设备间的距离。标准中允许设备间运行多次CS过程,这样可以通过平均的方式获得跟高的定位进度,或者动态更新设备间的间距。

Bluetooth规范中,与BLE CS过程相关的用户可配置参数,主要是T_PROCEDURE_INTERVAL和N_PROCEDURE_COUNT,其中:

  1. T_PROCEDURE_INTERVAL:以包含LL_CS_IND数据包的连接事件作为锚点,规范BLE CS过程的间隔;需要注意的是BLE CS过程的间隔不是以绝对时间作为间隔,而是以连接间隔作为计数单位规范每个BLE CS 过程内拥有的连接间隔数量;
  2. N_PROCEDURE_COUNT:说明此次发起的BLE CS具体包含几次CS过程;
  3. Max_Procedure_Len: 说明了每个BLE CS过程的最大时间,也就是每次BLE CS过程的最大时间间隔;需要注意的是,该时间间隔不是每次BLE CS过程的实际运行时间长度。具体每次CS过程的具体运行时间长度,会在BLE CS过程中具体明确。

下图给出了T_PROCEDURE_INTERVAL=4和N_PROCEDURE_COUNT=4的时序图,每次BLE CS过程的时间长度,都需要小于设定的Max_Procedure_Len参数。

图 2 多次BLE CS过程示意

与BLE CS过程相关的三个参数,本地设备通过LE CS Set Procedure Parameters完成设置,然后通过LL_CS_REQ数据包对BLE CS双方设备完成约定。

本地设备通过LE CS Set Procedure Parameters设置具体BLE CS过程的参数如下图所示,其中包含Max_Procedure_Len,Min_Procedure_Interval,Max_Procedure_Interval和Max_Procedure_Count这四个参数。需要注意的是,BLE CS过程参数设置需要指定Config_ID,换句话说,BLE CS设备可以设定不同CS具体参数,并以Config_ID作为区分。实际BLE CS使用的具体哪个Config_ID的配置,可以在BLE CS使能时,具体明确Config_ID号即可。另外,上述参数仅代表当前用户希望实现BLE CS过程能够分配到的BLE CS过程间隔范围和BLE CS过程个数,实际当前Config_ID能够分配到的具体参数,由当前设备根据资源情况分配后确定。

图 3 LE CS Set Procedure Parameters中CS过程相关参数配置

当前BLE CS设备分配完成具体BLE CS过程相关参数后,通过LL_CS_REQ数据包完成BLE CS设备间的约定,如下图所示。

图 4 与BLE CS过程相关的参数约定

  1. Max_Procedure_Len:约定当前Config_ID下BLE CS过程最长占用时间,单位为625us,可以设置的时间范围为0.625ms~40.959375s;
  2. Procedure_Interval:约定当前Config_ID下BLE CS过程的间隔,以当前BLE CS双方连接态的连接间隔作为单位,可以设置的范围为0~65535。该参数对应图2中的T_PROCEDURE_INTERVAL。如果当前Config_ID下BLE CS过程仅运行一次,那么Procedure_Interval参数可以设置为0;
  3. Procedure_Count:约定当前Config_ID下BLE CS过程连续运行次数,可以设置的范围为0~65535。该参数对应图2中的N_PROCEDURE_COUNT。需要注意的是,如果该参数设置为0,那么当前Config_ID下的BLE CS过程将一直重复,直至BLE CS双方命令终止。

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

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

相关文章

人工智能专业就业方向与前景

随着产业结构升级的持续推进,未来行业领域对于人工智能专业人才的需求量会逐渐增加,一部分高校也开始陆续在本科阶段开设人工智能专业,以缓解人工智能领域人才缺口较大的问题。下面是小编整理的人工智能专业就业方向与前景,欢迎阅…

第五节——转移表(让你不再害怕指针)

文章目录 制作简易计算器什么是转移表?switch函数实现函数指针数组实现 制作简易计算器 要求:制作一个简易计算器,可以进行* / - 等功能运算。 什么是转移表? 指的就是通过函数指针数组的方式通过数组去调用里面的函数&#x…

儿童需要学习C++多久才能参加信息学奥赛的CSP-J比赛?

信息学奥赛(NOI)是国内编程竞赛领域的顶尖赛事,而对于初学者来说,参加NOI的第一步通常是通过CSP-J(全国青少年信息学奥林匹克联赛初赛),这也是面向青少年程序员的入门级竞赛。作为信息学奥赛的基…

DDR6 或将出炉 (含 LPDDR6, CAMM)

前记:目前DDR6 尚未问世,文中较多信息是“据说”,笔者也无法考证,请大家后期以JEDEC官方为准。 很多朋友可能还没用上DDR5,但不好意思的是,DDR6 可能马上就要出现了。 三星和海力士较早开始DDR6 的设计,预计2025年商业化。 DDR6 速度 来源: 半导体观察 DDR6的速度…

AcWing 662:点的坐标 ← 结构体 or 三目运算符

【题目来源】https://www.acwing.com/problem/content/664/【题目描述】 给定两个保留一位小数的浮点数 X,Y,用来表示一个点的横纵坐标。 请你判断该点在坐标系中的位置。 【输入格式】 共一行,包含两个浮点数 X,Y,表示点的横纵坐标。【输出格…

毕业设计 深度学习社交距离检测系统(源码+论文)

文章目录 0 前言1 项目运行效果2 设计原理3 相关技术3.1 YOLOV43.2 基于 DeepSort 算法的行人跟踪 4 最后 0 前言 🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,…

卷积层是如何学习到图像特征的?

你好啊,我是董董灿。 想搞懂这个问题,需要先了解我们所说的特征指的是什么?然后再了解卷积核是如何学到的特征。 我们一步步来。 1、我们先来理解图像的特征 对于一张原始图像而言,说原始图像是相对于经过卷积处理而言的。 对…

VL53L4CD液位监测(2)----液位检测

VL53L4CD液位监测.2--液位检测 概述视频教学样品申请完整代码下载硬件准备STSW-IMG039容器特性包含必要的头文件变量定义测距函数 Ranging()液位误差补偿函数 Liquidlevelmeasureerrorcomponsate()数据轮询函数 get_data_by_polling()演示 概述 液位检测在工业自动化、环境监测…

十大时间序列预测模型

目录 1. 自回归模型 原理 核心公式 推导过程: 完整案例 2. 移动平均模型 原理 核心公式 推导过程: 完整案例 3. 自回归移动平均模型 原理 核心公式 推导过程: 完整案例 4. 自回归积分移动平均模型 原理 核心公式 推导过程 完整案例 5. 季节性自回归积分…

LeetCode讲解篇之695. 岛屿的最大面积

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历二维矩阵,如果当前格子的元素为1进行深度优先搜索,将搜索过的格子置为0,防止重复访问,然后对继续深度优先搜索上下左右中为1的格子 题解代码 func maxAr…

【通信协议】一文学会异步、同步、串行、并行、单工、半双工、全双工(一)

通信方式详解:异步、同步、串行、并行、单工、半双工、全双工 引言一、通信方式分类概述二、串行通信与并行通信串行通信 (Serial Communication)并行通信 (Parallel Communication)串行与并行通信对比表 三、全双工、半双工、单工通信单工通信 (Simplex Communicat…

LLM+知识图谱新工具! iText2KG:使用大型语言模型构建增量知识图谱

iText2KG是一个基于大型语言模型的增量知识图谱构建工具,通过从文本文档中提取实体和关系来逐步构建知识图谱。该工具具有零样本学习能力,能够在无需特定训练的情况下,在多个领域中进行知识提取。它包括文档提炼、实体提取和关系提取模块&…

最新版IntelliJ IDEA 2024.2.3 创建SpringBoot项目(包含各种依赖的选择和功能)

创建SpringBoot项目 1 . 打开IDEA 选择新建项目 2. 基础项目创建 在顶端几个选项可以选择创建基本的java项目 填写项目名称,文件位置,选择构建工具 3. 下方选择springboot 选择构建的方式 三种方式虽然不同但是,基本功能都一致, Gradle-Groovy 是指使用 Groovy 语言编写…

Redis安装RedisBloom插件

Redis安装RedisBloom插件 1. 下载RedisBloom2. 安装RedisBloom3. Redis 安装RedisBloom4. 验证是否安装成功5. 其他安装方法5.1 使用 Docker 安装 RedisBloom5.2 通过 RedisStack 安装 RedisBloom 是一个 Redis 模块,它提供了一种高效的方式来存储和检索大数据集中的…

(笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第5关---XTuner 微调个人小助手认知

学员闯关手册:https://aicarrier.feishu.cn/wiki/ZcgkwqteZi9s4ZkYr0Gcayg1n1g?open_in_browsertrue 课程视频:https://www.bilibili.com/video/BV1tz421B72y/ 课程文档: https://github.com/InternLM/Tutorial/tree/camp3/docs/L1/XTuner 关…

2024.9月29日~10月6日 SSM框架项目-《电信资费管理系统》

一、数据库介绍: 1、account:帐务信息表 2、admin_info:管理员信息表 3、admin_role:管理员角色信息表 4、cost:资费信息表 5、privilege_info:权限信息表 6、role_info:角色信息表 7、role_pri…

使用frp将树莓派穿透到外网

引言 frp官网 最近买了一块树莓派 zero 2w,想要它可以进行远程访问,所以想到了frp这个方案进行穿透,后期会使用树莓派搭建音乐服务器,本人手机内存有点小,xxxx云音乐太占空间,有兴趣的话可以关注后续。 …

数据结构与算法——Java实现 30.合并多个有序链表 小顶堆实现

后来我们都走了很久,远到提及往事时, 总会加上once upon a time —— 24.10.6 23. 合并 K 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1&#xff1…

Maven安装使用

说明:Maven是Apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。一般来说,它帮助我们管理依赖、构建项目。本文介绍在Windows系统下安装Maven。 下载&安装&验证 下载 首先,在Maven官网(https:…

C++模版SFIANE应用踩的一个小坑

一天一个C大佬同事&#xff0c;突然截图过来一段代码&#xff1a;这写的啥呀&#xff0c;啰里吧嗦的&#xff0c;这个构造函数模板参数T1感觉是多余的呀 template<class T> class TestClass { public:TestClass(){}//函数1template<class T1 T, std::enable_if_t<…