系统消息的发送和接收
Overview
在上篇博文“小区同步流程”中我们介绍了终端通过读取候选SSB获取了候选小区下行系统帧的10ms边界,完成了下行同步流程。同时我们也提到了此时终端只知道候选SSB的时频域位置信息,对于小区的其他信息一无所知。为了完成终端在候选小区驻留的目的,终端还需要通过发起随机接入流程和候选小区进行上行同步,而随机接入所需要的相关参数(e.g., preamble信息,PRACH信息等)都需要从系统消息中获取,这其中包括了小区级别的配置信息。
- SIB1作为必须发送的系统消息(由基站主动发送),也叫做Remaing Minimum System Information(RMSI, 剩余最小系统信息)。SIB1包含了小区级别的配置信息,包括随机接入所需要的配置信息。
- 其余SIB消息属于非必需消息,也就是说除了SIB1基站必须周期性发送之外,其他的系统消息基站可以像LTE系统一样主动周期性发送;也可以不周期性发送除SIB1外的其他系统消息,将主动权交给终端,一个特定的终端需要什么类型的系统消息,就主动向基站发送请求消息以获取该系统消息,这也被称作按需发送的系统消息(on demand SIBs)。按需发送系统消息的出现省去了周期性发送各种不同周期系统消息的流程,避免了NR系统的时频域资源的浪费。
MIB
所不同的是SIB1中的“ssb-PeriodicityServingCell”用于指示当前小区的SSB周期,而"ReconfigurationWithSync"中的“ssb-PeriodicityServingCell”用于指示切换流程中的目标小区的SSB周期。
RMSI (SIB1)
SIB1在时频域上的资源位置
这也就是说,终端从IE:pdcch-ConfigSIB1的4个MSB中获取对应Type0-PDCCH公共搜索空间对应的CORESET 0的RB个数和symbol个数以及CORESET 0在频域上与对应SSB的相对关系,具体对应关系请参考3GPP 38.213 Table 13-1至13-10;同时终端从IE:pdcch-ConfigSIB1的4个LSB中确定Type0-PDCCH公共搜索空间search space 0,具体对应关系请参考Table 13-11至13-15。
我们现在对以上表格的一些概念解释一下。
从Table 13-1至13-10可以知道,针对SSB和CORESET在时频域上的复用引入了一个新的概念:SS/PBCH block and CORESET multiplexing pattern,一共有3种:SS/PBCH block and CORESET multiplexing pattern 1、SS/PBCH block and CORESET multiplexing pattern 2和SS/PBCH block and CORESET multiplexing pattern 3。不同的pattern决定了终端监听Type0-PDCCH公共搜索空间方式的不同。
对于SS/PBCH block and CORESET multiplexing pattern 1,终端在从slot 开始的两个连续的slot上监听Type0-PDCCH公共搜索空间上的PDCCH;对于索引为i的SSB,slot 要满足以下条件:
当时,所在的系统帧为偶数系统帧;
其中,
- 以上公式中slot 和中的CORESET的第一个OFDM符号的索引由Table 13-11和13-12最后一列“First symbol Index”给出;
对于SS/PBCH block and CORESET multiplexing pattern 2和3,终端在一个slot上监听Type0-PDCCH公共搜索空间上的PDCCH,Type0-PDCCH公共搜索空间的周期等于SSB的周期。
由于searchSpaceZero = 0,因此可知Index = 0,从而得到O=0, M = 1。因此对应的和如下:
计算可知CORESET 0所在的系统帧为偶数系统帧,CORESET 0的第一个symbol索引为0;这样我们就得到了对应的CORESET和SSB在时域上的位置如下图所示:
接下来我们需要知道Type0-PDCCH公共搜索空间相关联的PDCCH occasion在频域上的位置:
根据前置条件我们应该查阅Table 13-2中index = 0的这一行,得到:
从该表我们知道PDCCH occasion所在系统帧和slot满足:
;
也就是说PDCCH occasion与索引为i的SSB处于相同的系统帧上的同一个slot上。
CORESET 0的第一个OFDM符号索引为:0,1,6,7;对应的SSB索引分别为:
i = 4k,i = 4k + 1,i = 4k + 2,i = 4k + 3;k = 0,1,...,15
在本例中,当SSB子载波间距SCS = 120 kHz时,SSB索引i和第一个符号索引的对照关系如下图:
在博文“小区同步流程”中,我们已经计算出SSB中心频点位置为3488.16 MHz,底部频点位置为:3484.56 MHz。下面我们一步一步来得出其他信息:
1. 通过信令参数offsetToCarrier = 0,我们可以知道PointA的位置和initial DL BWP的下边界(也就是序号最小的子载波)相同;
2. 因为MIB里面表示的ssb-SubcarrierOffset = 0,我们同时认为在本例中PBCH payload中代表最高位 = 0;这意味着SSB的载波0与initial DL BWP中的CRB 的载波0在频域上的位置相同,因此我们根据信令参数:offsetToPointA = 24就可以得到PointA在频域上的位置为:3484.56 MHz - 24 x 12 x 15 kHz = 3480.24 MHz;
3. 通过信令参数:locationAndBandwidth = 13750和CarrierBandwidth = 51;我们可以得到initial DL BWP的CRB起始位置=0,也就是说PointA在频域上的位置就是initial DL BWP在频域上的起始位置,以及CRB0 = 0;
4. 通过信令参数:subcarrierSpacing = 30 kHz和CarrierBandwidth = 51,我们可以知道initial DL BWP的中心频点位置:3480.24 MHz + (51 x 30 kHz x 12)/2 = 3489.42 MHz
这样终端就获取到了所接入小区的initial DL BWP的频域信息。
SIB1的传输周期
SIB1以160ms为周期发送,对于SS/PBCH block and CORESET multiplexing pattern 1,SIB1在160ms周期内每20ms重复传输一次;对于SS/PBCH block and CORESET multiplexing pattern 2和3,SIB1DE 重复传输周期与SSB相同。
其它系统消息
周期性发送
其他系统消息使用RRC信令周期性发送的流程与LTE类似,分为以下几个部分:
1. 在SIB1的信令IE:SI-SchedulingInfo中给出需要周期性发送的SIB信息,包括SIB消息的类型、发送周期等。详细内容请看以下表格:
当信令参数:si-BroadcastStatus设置为'broadcasting'时,对应的由SIB-TypeInfo->type指定的SIB消息由基站周期性发送。信令参数:si-Periodicity指定了SIB消息的发送周期。信令参数si-WindowLength指定了终端接收SIB消息的时间窗口。
2. 基站按照信令参数schedulingInfoList中配置的SIB信息来确定发送对应SIB消息的时间窗口,这里类似于LTE系统,NR也为SIB消息定义了一个SI-window,所有的SIB消息SI-window长度相同。每个SIB消息与一个SI-window相关联,并且不同SIB消息的SI-window在时域上不能重叠,每个SIB消息周期性地在对应的SI-window中传输。一个SI-window在时域上的位置确定如下:
3. 基站按照步骤2中的每个需要周期性发送的SIB消息,在其对应的si-window中周期性传输,相同周期的SIB消息可以在同一个PDSCH中传输。
按需发送
对于终端而言,首先需要知道哪些SIB消息是需要自己主动发起请求流程来获取的,这仍然是通过SIB1中的SI-SchedulingInfo来实现:
可以看出,终端在成功接收到SIB1之后就可以得知后续有哪些SIB消息是可以周期性接收,哪些是需要自己主动请求才能获取。既然是终端发起请求,那么就需要有上行资源预留给终端。但是终端在读取系统消息的时候只完成了和基站的下行同步,还没有完成(或者说开始)上行同步流程,更谈不上预留上行资源给终端使用了。
针对这种场景,NR设计了使用随机接入的前导序列来作为上行资源传输终端的SIB请求消息。由于preamble消息不能携带RRC信令,因此NR系统是利用为每种on-demannd SIB消息定义了不同的随机接入资源来区分不同的SystemInformationRequest消息,如下:
N.B.
1. 随机接入相关的参数我们不在这里详细解释,相关内容放在下篇博文‘随机接入流程’中介绍。
2. 信令参数SI-RequestResources为每个不同的SIB消息定义了不同的preamble索引和RA occasion。终端针对不同的SIB消息使用不同的preamble索引和RA occasion,基站根据接收到的preamble索引以及其所在的RA occasion来判断终端请求的是哪一个具体的SIB。
下面我们来说一下on-demand SIB信令流程,有以下两种场景:
2. MSG3-based SI Request
在本场景中,终端可以借用基于竞争的随机接入流程来发起on-demand SI请求:
- 终端发起随机接入,所用的preamble index由终端自己选择。
- 基站根据接收到的preamble,发送RAR消息给对应的终端。
- 终端使用RAR中基站提供的上行资源来发送Msg3,这个消息里面携带的是RRCSystemInfoRequest信令而不是rrcSetupRequest信令。
- 基站发送Msg4(也就是对应Msg3的HARQ-ACK消息)并发送终端请求的SIB消息。
需要注意的是,Msg3-based SI消息请求流程虽然使得基站不用特意为on-demand SI request流程保留preamble以及相应的随机接入资源,达到了节省上行时频域资源的目的。但是这样就引入了竞争机制,如果发起SI request的终端和别的发起基于竞争的终端使用了相同的preamble和PRACH 资源,这就导致它们都会去接收使用相同RA-RNTI加扰的RAR,从而引入了竞争接入的机制,一旦竞争接入失败,本次on-demand SI request流程就宣告失败,发起SI request的终端就不得不再次发起同一流程。
系统消息的发送和接收相关推荐
- PC微信逆向:发送与接收消息的分析与代码实现
文章目录 定位微信的消息接收函数 定位消息接收函数的相关思路 定位消息内容的地址 分析接收消息函数 好友消息 群消息 总结 代码实现 定位微信的消息发送函数 定位消息发送函数的相关思路 过滤当前聊天窗 ...
- python 网络编程之Socket通信案例消息发送与接收
背景 网络编程是python编程中的一项基本技术.本文将实现一个简单的Socket通信案例消息发送与接收 正文 在python中的socket编程的大致流程图如上所示 我们来首先编写客户端的代码: # ...
- mfc 开启指定服务器,用MFC实现消息的发送和接收(含服务器)
<用MFC实现消息的发送和接收(含服务器)>由会员分享,可在线阅读,更多相关<用MFC实现消息的发送和接收(含服务器)(33页珍藏版)>请在人人文库网上搜索. 1.精品好资料学 ...
- ROS 用 roboware实现节点信息发送和接收
在ros下实现节点编程,实现一个节点发送消息,另一个节点接收.实现方式有多种,可以直接在命令窗口创建工作空间包以及节点,用catkin_make进行编译,添加.bash路径,然后执行rosrun p ...
- Android Java使用JavaMail API发送和接收邮件的代码示例
JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的j ...
- 超声波传感器特性测量:发送与接收传感器之间的差异
简 介: 本文针对超声波传感器的测量方法,探讨了使用NanoVNA测量过程, 对比发射和接收传感器在特性方面的不同. 对于整个过程编写了APPLE脚本. 关键词: 超声波传感器,发送,接收,NanoV ...
- Android中发送和接收短信
在做Android开发中经常要用到短信的发送和短信的接收,调用Android提供的api实现起来很简单,今天要用到这个功能研究了一下顺便写下来加强一下记忆. 1.首先创建一个Android Proje ...
- python接收邮件内容启动程序_Python实现发送与接收邮件的方法详解
本文实例讲述了Python实现发送与接收邮件的方法.分享给大家供大家参考,具体如下: 一.发送邮件 这里实现给网易邮箱发送邮件功能: import smtplib import tkinter cla ...
- python socket发送组播数据_python3通过udp实现组播数据的发送和接收操作
本文主要通过对海康摄像头进行抓包,模拟发送了udp包,并抓取摄像头返回的数据包,解析并提取相关信息. 通过抓包发现,海康摄像头发送.接收数据使用udp协议,后来比较发现,使用python模拟起来比较简 ...
最新文章
- ExtAspNet应用技巧(三) - 302与Asp.Net Ajax
- Error querying database.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:invalid character
- pythoncharm安装时出错误_python01:pycharm中安装包时所遇到的问题
- SAP 电商云 Spartacus UI 的持续集成 - Continous integration
- #苹果maccmsv10# redis memcached 缓存的若干问题解决
- LVM的创建扩展缩减与删除
- OpenShift 4 - Fedora CoreOS (1) - 最简安装
- java 限流熔断_SpringCloud-Alibaba-Sentinel服务降级,热点限流,服务熔断
- linux 安装servlet环境_linux下一键搭建LAMP环境安装网站全教程
- 做测试开发半年涨薪20W入职名企大厂,这位90后凭什么?
- Web安全入门笔记-XSS
- 飞利浦 f718 java 微信_第一次使用飞利浦F718手机感觉怎么样及优缺点
- 【_ 記 】topjui 多文件上传 (代码)
- java resourcebundle_Java ResourceBundle.getBundle如何加载属性文件?
- Linux Ruby安装
- 【Python基础教程】while循环用法详解
- 方舟同步服务器信息,方舟服务器备份和数据库备份
- word排版案例报告_文章为什么要排版?如何排版?这篇文章告诉你真相
- Getting Started and Beyond|云原生应用负载均衡选型指南
- 学习opengl之为立方体六个面贴上不同的纹理图片
热门文章
- 截至2015年工作中接触集成过的硬件设备整理记录
- here is no getter for property named 解决方案及问题分析
- 漫步凸分析十一——分离定理
- 大学物理磁场相关公式
- matlab中leg的用法,LEG引擎变量操作指南详解
- 线上展厅vr展厅虚拟解说 广州商迪
- linux文件2的权限,2_Linux_文件和权限处理命令
- FileInclude
- 关于 ‘else‘ without a previous ‘if‘错误
- gem意思_gem是什么意思中文翻译