一 引言
给合实例,详细说明NR里UE随机接入的过程,重点关注所使用的资源的信息,方便以后调查和处理随机接入的故障。
二 接入总体过程
三 分步骤详解
-
UE获取系统消息
对于接入来说,最重要的部分是SIB1里关于rach的配置:
rach-ConfigCommon: setup (1)
setup
rach-ConfigGeneric
prach-ConfigurationIndex: 98
msg1-FDM: one (0)
msg1-FrequencyStart: 16
zeroCorrelationZoneConfig: 13
preambleReceivedTargetPower: -108 dBm
preambleTransMax: n10 (6)
powerRampingStep: dB6 (3)
ra-ResponseWindow: sl20 (5)
ssb-perRACH-OccasionAndCB-PreamblesPerSSB: one (3)
one: n40 (9)
ra-ContentionResolutionTimer: sf64 (7)
rsrp-ThresholdSSB: -120dBm <= SS-RSRP < -119dBm (37)
prach-RootSequenceIndex: l139 (1)
l139: 0
msg1-SubcarrierSpacing: kHz30 (1)
restrictedSetConfig: unrestrictedSet (0)
模2余1的sfn, 9号slot
这个表里面假定子载波间隔是15khz,而实际上使用的是30 khz。所以实际的时隙应该是18, 19slot。
根据规范
where
- is given by the parameter "starting symbol" in Tables 6.3.3.2-2 to 6.3.3.2-4;
- is the PRACH transmission occasion within the PRACH slot, numbered in increasing order from 0 to within a RACH slot where is given Tables 6.3.3.2-2 to 6.3.3.2-4 for and fixed to 1 for ;
- is given by Tables 6.3.3.2-2 to 6.3.3.2-4;
- is given by
- if , then
- if and either of "Number of PRACH slots within a subframe" in Tables 6.3.3.2-2 to 6.3.3.2-3 or "Number of PRACH slots within a 60 kHz slot" in Table 6.3.3.2-4 is equal to 1, then
- otherwise,
看信令,msg1-SubcarrierSpacing: kHz30 (1),所以,l∈14,18,22
所以PRACH使用的是奇数帧的19号时隙
2. UE发送Preamble
gNB log显示在sfn 727 slot 19收到了preamble,preamble id为12。
3.基站发送DCI,这个DCI是用RA-RNTI来扰码的。RA-RNTI是根据preamble的位置计算出来的一个值,UE和gNB计算的结果必须是一致的。
RA-RNTI = 1 + s_id + 14 × t_id + 14 × 80 × f_id + 14 × 80 × 8 × ul_carrier_id
- s_id is the index of the first OFDM symbol of the PRACH occasion (0 ≤ s_id < 14)
- t_id is the index of the first slot of the PRACH occasion in a system frame (0 ≤ t_id < 80), where the subcarrier spacing to determine t_id is based on the value of μ specified in clause 5.3.2 in TS 38.211
- f_id is the index of the PRACH occasion in the frequency domain (0 ≤ f_id < 8)
- ul_carrier_id is the UL carrier used for Random Access Preamble transmission (0 for NUL carrier, and 1 for SUL carrier)
s_id是prach的符号位置。当前配置下,s_id有3个取值,分别是0,4,8。
t_id是prach所在的slot的编号,当前配置下为19。
f_id 是频域的编号,当前配置下为0
ul_carrier_id是载波的id,我们是单载波系统,所以值为0。
所以,RA-RNTI = 1 + s_id + 14*19,它的取值只能是267,271,275。
从基站数据看,基站计算的值是271。
DCI里指示了MSG2的频域和时域资源,MCS。
频域资源位置的计算要知道initial BWP的位置。根据SIB1里读到的信息,initial BWP的RIV为13034,根据RIV的公式,
计算出BWP的start是109,length是48。(协议里定义)
由于BWP size是48,那么DCI里表示上行频域资源的bit数应该是log(2, 48*49/2), 10.20,向上取整是11位。
MSG2里表示MSG3的RIV是95,再用RIV公式计算(这里NBWPsize=48),使用的RIV, start是0, length是48,这是把整个BWP都用上了,即prb 109到prb 156。
时域资源指示如何解析呢?NR里关于时域资源的分配用的查表法,一般会在SIB1里的initial BWP里定义时域资源分配的几种组合(时隙偏置、起始位置、长度),后面实际使用时,可以在DCI里给个索引就可以了。
看SIB1的内容:
pdsch-ConfigCommon: setup (1)
setup
pdsch-TimeDomainAllocationList: 6 items
Item 0
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 40
Item 1
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 54
Item 2
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 96
Item 3
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 53
Item 4
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 67
Item 5
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 100
这个表里有6项,所在DCI里表示时域资源是bit数应该是3位。
这里值为0,即为表中的第一项:
PDSCH-TimeDomainResourceAllocation
k0: 0
mappingType: typeA (0)
startSymbolAndLength: 40
k0=0,表示PDSCH就在本时隙。
startSymbolAndLength=40,根据SLIV的公式:
if then
else
where, and
SLIV=40,算出来S=1,L=13。即从第2个符号到第14个符号。(0是第一个符号)
4.UE根据DCI的指示在指定的时域和频域资源去解调PDSCH,就得到了MSG2,也叫RAR, random access response。
由于BWP size是48,那么DCI里表示上行频域资源的bit数应该是log(48*49/2,2),算出来10.20,向上取整是11位。
MSG2里表示MSG3的RIV是110,再用RIV公式计算(这里NBWPsize=48),使用的RIV, start是14, length是3,换算到BWP上,即prb 123到prb 125。
UE收到MSG2以后,要核对preamble ID是否与自己发的一致,如果一致,就认为MSG2是发给自己的,按照里面的信息,设置TC-RNTI,在指定的资源位置发送MSG3。如果UE一直没有收到MSG2,RAR window(ra-ResponseWindow: sl20 (5))超时以后仍没有收到,那么这次接入尝试就认为是失败了,UE会提高功率(powerRampingStep: dB6 (3)),重新发送preamble,最大尝试次数是preambleTransMax: n10 (6)。
在本例中,UE在sfn 727 slot 19发送的preamble,在sfn 728 slot 3接收到MSG2,preamble ID一致,也在有效的RAR window内。接下来UE就要发送MSG3了。
5. UE发送MSG3。由于MSG3使用的频域和时域资源已经由MSG2指定,所以gNB不会再发送DCI来调度MSG3。
UE会使用新的TC-RNTI,13620。
在MAC层,MSG3的lcid是52, CCCH。没有RLC,PDCP包头。原始码流是0x1e92856cad26。
6. gNB收到MSG3后,会给UE下发MSG4,为了告诉UE如何解调MSG4,会先发一条DCI。这条DCI用TC-RNTI扰码。
这里提供了MSG4使用的频域和时域资源,MCS等。还指定了PUCCH资源。此时UE没有收到MSG4,它所使用的PUCCH是公共的PUCCH,是在SIB1里定义的。
查SIB1里的pucch配置:
pucch-ConfigCommon: setup (1)
setup
pucch-ResourceCommon: 15
pucch-GroupHopping: neither (0)
hoppingId: 274
p0-nominal: -86 dBm
根据38.213 table 9.2.1-1,15对应的资源如下
Index |
PUCCH format |
First symbol |
Number of symbols |
PRB offset |
Set of initial CS indexes |
15 |
1 |
0 |
14 |
|
{0, 3, 6, 9} |
前面计算过,BWP size=48, start prb=109,所以PUCCH频域资源是prb 121, 符号位是0-14。而pucch所在的sfn, slot由PDSCH-to-HARQ_feedback timing indicator: 6来确定。
根据38.213,
For DCI format 1_0, the PDSCH-to-HARQ-timing-indicator field values map to {1, 2, 3, 4, 5, 6, 7, 8}. 6对应7个slot。
MSG4是在sfn 730 slot 1收到的,pucch应该发在sfn 730 slot 8。
7. UE根据DCI的指示去接收MSG4
MSG4有一个特殊的MAC包,lcid=0x3e, Contention Resolution,里面填的是MSG3的原始码流,用于让UE确认这是针对自己MSG3的回应,用于解决冲突。
MSG4的MAC包头里lcid是0,CCCH,同样没有RLC, PDCP包头。
8. UE接收到MSG4以后,在DCI指定的pucch上发送ACK。表示成功解调到了MSG4。
9. UE按照MSG4的指示配置无线资源,然后监听PDCCH,看看是否有关于自己的上行调度。本例中在sfn 732 slot 6收到的DCI:
MSG4中定义了dedicated BWP,是100M带宽。MSG5是要发在dedicated BWP上(Bandwidth Part Incicator: 1)。
频域资源2900,用RIV公式计算,start=170,length=11。
时域资源0,查dedicated BWP的上行时域配置: pusch-ConfigCommon: setup (1)
setup
pusch-TimeDomainAllocationList: 11 items
Item 0
PUSCH-TimeDomainResourceAllocation
k2: 2
mappingType: typeB (1)
startSymbolAndLength: 27
用SLIV公式计算,27代表start=0,length=14。
K2=2,DCI是sfn 732 slot 6,所以在sfn 732 slot 8发送MSG5。
10.UE在sfn 732 slot 8发送MSG5。
MAC层的lcid是1,从这条消息开始,有了RLC包头,这是上行第一个包,序列号=0。