在 LTE 中,UE 需要获取小区的 MIB、SIB1 和 SIB2,才可以接入小区。在 NR 中,协议将 MIB 以外“必备”的 SIB 称为 RMSI —— Remaining Minimum System Information(在R15中,RMSI等同于SIB1),即 UE 获取小区的 MIB、RMSI ,才可以接入小区。下面开始寻找 MIB 和 RMSI 之旅。系统信息分两种,MIB 和 SIB。PBCH 最终承载的只是 MIB,而 SIB 在物理层都走在 PDSCH。
###1 获取 PCI
由于 PBCH 和其他信道都是使用 PCI(Physical Cell Identifier,物理小区 ID) 进行加扰的,所以在小区搜索的第一步就是获取 PCI 信息。
PCI 的信息,需要从 PSS(Primary Synchronization Signal,主同步信号)和 SSS(Secondary Synchronization Signal,辅同步信号)中获取:N_cell_ID = 3 x N_(1)_ID + N_(2)_ID,而 PSS、SSS、PBCH(Physical Broadcast Channel,物理广播信道)捆绑在一起,形成固定的样式,称为 SS/PBCH Block,即 SSB。因此,获取 PCI 的第一步就是找到 SSB。
1.1 寻找 SSB
在 NR 中,SSB 的位置不是固定的,NR 的频率范围也大幅增加,UE 不可能按照信道栅格来搜索 SSB;NR 引入了同步栅格和同步信道的概念,同步栅格的间隔远大于信道栅格。同步信道使用 GSCN( Global Synchronization Channel Number,全局同步信道号)进行识别。SSB 参考频率和 GSCN 有如下对应关系:
这里,小区搜索到了信号,对应的也就知道了频率,查询上表,也就可以推算出范围 SSB 的搜索范围。(欢迎拍砖,这一段话是我个人理解,不一定正确。)
SSB 由 PSS、SSS、PBCH 构成,固定样式如下(图中左边竖轴的 47 应为 48,192 应为191),PSS 位于 SSB 的第一个时隙的中间,占用序号为 56 ~ 182 的共计 127 个 SC,序号为 120 的 SC 的中心频率,就是 SSB 的 GCSN 对应的参考频率:
1.1.1 PSS(获取 PCI 信息中的 N_(2)_ID)
PSS 占用 127 个SC,是一个伪随机序列。序列生成的步骤如下:
第一步:得到一个初始序列。x(0)~x(7) 初值固定为0、1、1、0、1、1、1;由 x(i + 7) = (x(i + 4) + x(i)) mod 2 可得出一个长度为 127 的固定序列。
第二步:对初始序列进行循环移位。N_(2)_ID 取值为 {0,1,2},将 127 个 SC 平分成 3 段,每段的 SC 序号则为0,43(⌈127/3⌉ x 1,⌈⌉ 代表向上取整) 和 86(⌈127/3⌉ x 2)。故知晓初始序列移位的 SC 数,即可得到 N_(2)_ID。
第三步:BPSK(Binary Phase Shift Keying,二进制相移键控)调制。输入 0 ,输出 +1;输入 1,输出 -1。
由上可知,当 UE 检测出固定的 PSS 序列(只有 3 种可能)后,根据得到的 PSS 序列和 初始序列相比较,便可知循环移位的 SC 数,即得到了 N_(2)_ID。
1.1.2 SSS(获取 PCI 信息中的 N_(1)_ID)
和 PSS 有一些类似,PSS 使用一个初始序列生成伪随机序列,SSS 使用两个初始序列,在循环移位时分别根据 N_(1)_ID 和 N_(2)_ID 进行移位,在 BPSK 调制时,合并成一个伪随机序列。
此时,我们从 PSS 中已得知 N_(2)_ID,结合 SSS 序列,便可以推算出 N_(1)_ID。
到此,PCI(N_cell_ID = 3 x N_(1)_ID + N_(2)_ID)也就可以算出来了。
2 获取 DM-RS 和 SSB Index
####2.1 获取 DM-RS
DM-RS(Demodulation Reference Signal,解调参考信号)是在 PBCH 进行传输的。在频域上,各个 DM-RS 间隔 4 个SC,初始偏移为 v(v = N_cell_ID mod 4)。
2.2 识别 SSB Index
基站在 5 ms 周期内,可以发送的 SSB 最大次数为L:在FR1中,3GHz 以上频段 L 为 8,3GHz 以下频段 L 为 4(经过 CM 努力,在 TDD 中,2.4GHz 以上 L 也可以为 8),在 FR2 中,L 为 64。SSB Index 用于区分不同 “时刻” 的 SSB。这里我理解的 SSB Index 为波束 ID?
协议中定义了 5 种 SSB Pattern(SSB分布样式),来确定各个 SSB 占用的时域资源分布情况。同时,结合 1.1 中的表,可以确定对于大部分确定的频带来说,只支持一种 SSB Pattern,确定了频带,也就确定了 SSB Pattern。对于部分支持两种 SSB SCS 的频带,在 UE 检出 PSS 后,倒推出当前使用的 SSB SCS(个人理解:PSS 固定使用 127 个 SC,当确定了 PSS 序列、PSS 的频率范围,也就可以计算出 SSB SCS),由此再确定 SSB Pattern。
SSB Index 和 SSB 在 SSB Pattern 的位置对应,但不是基站实际发送 SSB 的序号(基站不一定按照最大数量发送 SSB)。UE 通过 PBCH 的 DM-RS,结合 PBCH 额外编码信息可以获得 SSB 。
$\overline{i}{SSB}$ 即为 SSB Index,$i{SSB}$ 为 UE 由 $N^{cell}{ID}$ 生成 8 个序列对 DM-RS 确定的。上图中,如果 L = 4,$i{SSB}$ 为 2 位(bit),在 $i_{SSB}$ 前加上半帧标识(nhf、$\overline{a}{\overline{A}+4}$ )就是 $\overline{i}{SSB}$;如果 L= 8,$i_{SSB}$ 为3位,正好和 $\overline{i}{SSB}$ 对应;如果 L = 64,$i{SSB}$ 为6位,低3位和 $\overline{i}{SSB}$ 对应,高 3 位从 PBCH 额外编码信息 $\overline{a}{\overline{A}+5}$、$\overline{a}{\overline{A}+6}$、$\overline{a}{\overline{A}+7}$ 获得。
由此,UE 获得了 SSB Index。
2.3 PBCH 额外编码和 MIB
2.3.1 PBCH 额外编码
- 如果 L = 4 or 8, $\overline{a}{\overline{A}+5}$ 为 $k{SSB}$的最高位(此时$\overline{a}{\overline{A}+6}$ 和 $\overline{a}{\overline{A}+7}$ 保留)。
- $\overline{a}_{\overline{A}+4}$ 为半帧标识(half frame),指示 SSB 在前半帧还是后半帧。
- $\overline{a}\overline{A}$ 、 $\overline{a}{\overline{A}+1}$ 、 $\overline{a}{\overline{A}+2}$ 、 $\overline{a}{\overline{A}+3}$ 指示 SSB 所在帧的 SFN(System Frame Number,系统帧号)的低 4 位。
####2.3.2 MIB
PBCH 承载 MIB 信息。
System Frame Number:SFN 的高 6 位,和 PBCH 额外编码的 4 位( $\overline{a}\overline{A}$ 、 $\overline{a}{\overline{A}+1}$ 、 $\overline{a}{\overline{A}+2}$ 、 $\overline{a}{\overline{A}+3}$ )构成完整的 SFN(10位)。
Cell Barred:在 SA 场景中是否允许 UE 接入(对 EN-DC 场景接入 NR 没有影响)
Intra Freq Reselection:表示是否允许 UE 同频重选。
Sub Carrier Spacing Common:表示 RMSI(SIB1)、随机接入的 MSG2 / MSG4、SI-message 使用的SCS,又称为 RMSI SCS。
SSB Subcarrier Offset、PDCCH Config SIB1:CORESET 0 相关。
DMRS Type A Position:和 PDSCH 默认资源分配有关。
###3 获取 COREST 0
UE找到 CORESET 0,才能在 PDSCH 接收 RMSI。
####3.1 Point A 和 获取 CRB_SSB 位置
在 NR 中,为了描述各种资源的位置,在频域上,每个载波定义了一个参考点:Point A。Point A 的频率对应 CRB 0 的第一个 SC 的中心频率,SSB 相对于 Point A 的偏移分为两部分:RB 粒度的偏移(offsetToPointA)和 SC 粒度的偏移(参考 SCS,$k_{SSB}$)。
CRB_SSB(CRB 和 SSB 部分重合,且频率最小的 CRB,协议没有这样命名)和 CRB 0 之间的 RB 粒度偏移,单位是 CRB 对应的 RB(12 个 SC),数量记为 $N^{SSB}_{CRB}$,即 Frequency Info DL 的 offset To Point A。
SSB 和 CRB_SSB 之间的 SC 粒度偏移,记为 $k_{SSB}$,单位是 参考 SCS。
⚠️注意:上图中,有 4 种不同的 SCS!
由于 SSB 是按照 GSCN(同步栅格)分布的, CRB 是按照 NR ARFCN(信道栅格)分布的,并且 SSB 和 CRB 的 SCS 不一定相同。CRB_SSB 的 SCS 和 CRB 的 SCS 是相互独立的,由 MIB 的 Sub Carrier Spacing Common 确定(即 RMSI SCS)—— 取值 0 表示 60 kHz,取值 1 表示 120 kHz。参考SCS (SSB 相对于 CRB_SSB 的 SC 粒度偏移)的 SCS:在 FR1 中,SCS 固定为 15 kHz;在 FR2 中,SCS 由 MIB 的 Sub Carrier Spacing Common 确定 —— 取值 0 表示 60 kHz,取值 1 表示 120 kHz。
如前所述,UE 已知 SSB 的位置,由此可以反推 CRB_SSB 的位置。
3.2 RMSI 和 CORESET 0
和 LTE 相似,NR 的 SIB1 通过 PDSCH 发送,而 PDSCH 又需要 PDCCH 的 DCI 调度。因此,UE 应从 MIB 中获得调度 RMSI 的 PDCCH 信息,随后,UE(使用 SI-RNTI)在 PDCCH 进行盲检,根据调度(DCI 1_0)从 PDSCH 获得 RMSI。
3.2.1 Type 0 CSS
和 LTE 相似,NR 的 PDCCH 也包括公共搜索空间(Common Search Space)和 UE 专用搜索空间(Dedicated Search Space)。Type 0 CSS 就是专门用于 RMSI 调度的公共搜索空间。
和 LTE 不同的是,NR 引入了 CORESET(Control Resource Set,控制资源集)概念。CORESET 是 PDCCH 所在物理资源的集合。一个小区可以有多个 CORESET,以 CORESET ID 区分。CORESET 0 就是 Type 0 CSS 对应物理资源的集合。
#####3.2.2 异常 $k_{SSB}$
正常的 $k_{SSB}$ 在 FR1 的取值范围是 {0,1,……23},在 FR2 中的取值范围是{0,1,……11}。FR2 中 $k_{SSB}$ 只需要 4 位,从 MIB 的 ssb subcarrier offset 获得。FR1 中则需要 5 位,低 4 位同样从 MIB 的 ssb subcarrier offset 获得,最高位则从 PBCH 物理层额外编码( $\overline{a}_{\overline{A}+5}$ )获得。
可见, $k_{SSB}$ 并没有使用完上述所有资源($2^4 = 16,2^5 = 32$),在 FR1 中,如果 $k_{SSB}$ > 23,或在 FR2 中,如果 $k_{SSB}$ > 11,都属于异常 $k_{SSB}$ ,表示该 SSB 不存在 Type 0 CSS。
异常 $k_{SSB}$ 可以帮助 UE 快速找到 Cell Defining SSB。
#####3.2.2 寻找 Cell Defining SSB
UE 搜索 SSB,读取 MIB 后,下一个目标就是找到 CORESET 0,而 CORESET 0 的信息就在 MIB 里面。
和 COREST 0(RMSI)关联的 SSB,称为 Cell Defining SSB(小区定义 SSB)。除此以外,在频域的不同位置上,小区还可能定义多个测量 SSB —— 这些 SSB 不和 CORESET 0 关联,又或者说,不存在 Type 0 CSS。
如上图,异常 $k_{SSB}$ 为了让UE快点找到 Cell Defining SSB,异常 $k_{SSB}$ 还可以作为索引,结合 RMSI PDCCH Config(MIB 的 PDCCH Config SIB1),(间接的)指示下一个 SSB的 GSCN。UE 获得 N_offset_GSCN 后,即可结合当前 SSB 的 GSCN 推算下一个 SSB 的 GSCN: N_Reference_GSCN(当前SSB的GSCN)+ N_offset_GSCN(下一个 SSB 相对于当前SSB 的 GSCN 偏移)。例:在 FR1 中,如果 $k_{SSB}$ = 26(> 23),RMSI-PDCCH-Config = 255,则N_offset_GSCN = 768,对应 FR1表格中第三行的最后一项。
除了 $k_{SSB}$ = 30(FR1)和 $k_{SSB}$ = 14(FR2)保留,$k_{SSB}$ = 31(FR1)和$k_{SSB}$ = 15(FR2)表示在当前 SSB 的[ N_Reference_GSCN – N_start_GSCN , N_Reference_GSCN + N_end_GSCN ]内,都没有Cell Defining SSB。N_start_GSCN 对应 PDCCH Config SIB1 的高四位,而 N_end_GSCN 对应 PDCCH Config SIB1 的低四位。
3.2.4 获取 CORESET 0
UE 搜索 SSB,读取 MIB 后,就可以在 SSB 基础上,通过 CORESET 0 和 SSB 的相对关系找到 CORESET 0。
根据 SSB 和 CORESET 0 的分布,SSB 和 CORESET 0 的复用样式(Multiplexing Pattern)分为三种 —— Pattern 1 为时分复用(此时 CORESET 0 的频域长度总大于 SSB,频域范围包含 SSB),Pattern 2 和 Pattern 3 为频分复用(CORESET 0 在 SSB 同一系统帧)。
回顾 2.3.2 小节中,MIB 承载的参数 sub Carrier Spacing Common(RMSI SCS)、ssb Subcarrier Offset(kssb的低四位)和 PDCCH Config SIB1。
######3.2.4.1 PDCCH Config SIB1
PDCCH Config SIB1 由 8 位组成,将高 4 位和低 4 位拆开,可获得两个索引(Index),取值范围均为 0 ~ 15。使用高 4 位索引 查询 3GPP TS 38.213 表格 13-1 到 13-10,可获得频域索引,即 CORESET 0的复用样式、符号数量(时域长度)、RB数量(频域长度)和RB偏移(频域偏移),使用低 4 位索引查询 3GPP TS38.213 表格 13-11到 13-15,可获得时域索引,即 CORESET 0 的 SFN、时隙索引和起始符号等。
根据 MIB,可以获取 RMSI SCS,结合已获得的 SSB SCS、最小信道带宽(Minimum Channel Bandwidth),可以找到对应查询表格。
######3.2.4.2 频域寻找
频域上,根据 offset 从 SSB 找 CORESET 0,方法和找 Point A 相似,参考 3.1 节。Pattern 1 和 上述方式没有太大区别,Pattern 2 和 Pattern 3 如果 SSB SCS 和 RMSI SCS 不同,为了不影响(OFDM)子载波的正交性,会在 SSB 和 RMSI 中加一个 RB 作为保护间隔(GAP);SSB SCS 和 RMSI SCS 如果相同,不用加 GAP。例子如下图:
######3.2.4.3 时域寻找
- 时域上,Pattern 2 和 Pattern 3 中,CORESET 0 和 SSB 在同一系统帧的同一时隙,或相邻时隙(仅适用于Pattern 2),即 $SFN_C$ = $SF_{SSB,i}$,$n_C$ = $n_{SSB,i}$(同一时隙)或$n_C$ = $n_{SSB,i}-1$(相邻时隙)。UE 确定 CORESET 0 所在系统帧($SFN_C$)和时隙($n_C$)后,再根据 SSB Index(i)找到 CORESET 0 的起始符号(First Symbol Index)。
例,如上图:如果 SSB SCS 为 120 kHz,RMSI SCS 为 60 kHz,“频域索引” 为 8 ~ 11,CORESET 0 时域长度为 1,复用样式为 Pattern 2。可得$SFN_C$ = $SF_{SSB,i}$,$n_C$ = $n_{SSB,i}$,CORESET 0 在对应 SSB 所在系统帧的同一时隙。SSB SCS 为120 kHz,SSB Pattern 为 Case D —— 在 5 ms 周期内,SSB 的起始符号为 { 4 , 8 , 16 , 20 } + 28n,n = { 0 , 1 , 2 , 3 , 5 ,6 , 7 , 8 , 10 , 11 , 12 , 13 , 15 , 16 , 17 , 18 },L = 64。示图包含 2 个 SSB 时隙,对应 1 个 RMSI 时隙。对于 SSB Index 为 4k、4k + 1、4k + 2、4k + 3 的 SSB,CORESET 0 的起始符号分别为 { 0 , 1 , 6 , 7 } —— 都比SSB靠前。这里的 k,个人理解的是 SSB 和 对应的 RMSI 所在的时隙间隔,以 RMSI 的时隙为准;SSB 0 和 SSB 1 、CORESET 0 和 CORESET 1在同一个时隙中,SSB 2 和 SSB 3 、CORESET 2 和 CORESET 2 相差1个 RMSI 时隙。
- Pattern 1 的时域上,CORESET 0 时域表达式变得有点复杂:根据 3GPP TS 38.213 描述,对于 Pattern 1,UE 从时隙 n0 开始,连续监听 2 个时隙。
n0 表达式如上图所示,参数 M 和 O 可从表格 13-11(FR1)或 13-12(FR2)获得。
O 表示 SSB Index = 0 对应的 CORESET 0 相对于偶数帧起始位置的偏移,单位为 ms。由于 1 ms 包含 $2^μ$ 时隙,O x $2^μ$ 表示 O ms 包含的时隙数(方便后面数时隙)。在 FR1 中,O 取值可为 0、2、5、7;在 FR2 中,O 取值可为 0、2.5、5、7.5。后续提到的时隙序号,都指偏移O ms 之后的序号。O 指示第一个 SSB 对应的 CORESET 0,其他 SSB 对应的 CORESET 0 依次排在后面。
M 表示相邻两个 SSB 对应的 CORESET 0 的间隔,单位为时隙。
在表格中,O 和 M 之间还有一列,指示 1 个时隙包含的搜索空间数量,这里记为 N。
例,如上图:N = 2,M = 1/2,$N^{CORESET}{symbol}$ = 1,SSB INDEX 为偶数时,First Symbol Index 为 0,SSB INDEX 为奇数时,First Symbol Index为 $N^{CORESET}{symbol}$(1)。SSB INDEX = 0 / 1 的搜索空间的第 1、2 时隙,SSB INDEX = 2 / 3 的搜索空间为第 2、3 时隙 —— 1 个时隙包含2 个搜索空间(N =2),各使用不同的符号(符号 0 或符号 1)。SSB INDEX = 0 / 1 的搜索空间在同一时隙内,视为间隔 M = 1/2(时隙)。累计的搜索空间会向下取整(SSB 1 的移动搜索空间位1/2),如果不满 1,搜索空间不会往下移动。