随机接入过程解析
一:举例——一个完整的随机接入过程
http://www.360doc.com/content/17/0828/20/46887361_682852152.shtml
先简要分析一个随机接入的例子,本例是用高通工具QCAT来说明,一次随机接入过程如下图所示:
从协议栈的工作机制来做一个简要解释:
UE的NAS层的MM子层,需要发起一次业务请求serviceRequest。因为NAS的MM层需要干活了,所以调用其下层的功能。于是,AS层的RRC层,开始工作并为NAS的MM提供服务。注意,规范中经常的一种描述是“上层调用下层的功能、下层给上一层提供服务”。
第二条信令,我们看到,RRC层封装了RRC CONNECTION REQUEST的包,并传递给其下层PDCP/RLC/MAC去进一步处理。PDCP/RLC层因与随机过程接入基本无关,故在QCAT的filter中已将其过滤。
于是,MAC层,开始组织并触发随机接入过程,于是我们顺次看到了MSG1/MSG2/MSG3,并在MSG4中竞争成功并解决冲突(contention resolution)。
后面其他的信令这里不解释。
很明显,,这是从UE角度来看的、一次完整的随机接入过程。 通过调用随机接入过程,RRC层也完成了从一次从idle到connected的状态转换,并最终为MM层传递NAS信令Servicerequest至MME。
再看下时间: 如果从139到210定义这次时间,大概是71ms。 即可以认为,UE花了大约70ms,完成了一次从空闲态到连接态的RRC状态转换。 大家应该还记得LTE在25.913规范中的约定,LTE UE连接态到空闲态的迁徙时长不得超过100ms。
为了让大家看清楚里面的码流,顺次截图如下
1. LTE NAS EMM Plain OTAOutgoing Message -- Service Request Msg (MM层的消息)
2. LTE RRC OTA Packet -- UL_CCCH (RRC层的消息,RRC CONREQ,注意里面有ue-identity这个IE)
3. LTE Random Access Request (MSG1) Report (注意里面的RA-RNTI)
4. LTE Random AccessResponse (MSG2) Report (注意里面的Temp-C-RNTI)
5. LTE UE Identification Message (MSG3)Report
6. LTE Contention Resolution Message (MSG4) Report (注意 contentionresult=Pass)
7. LTE RRC OTA Packet -- DL_CCCH (rrcConnectionSetup)
8. LTE RRC OTA Packet -- UL_DCCH(rrcConnectionSetupComplete)
这些截图具体里面涉及到的参数太多,限于篇幅,此处不能一一详述。
二:随机接入过程的流程解析
在LTE中,有五种情况,需要触发随机接入过程,描述如下:
-
在RRC_IDLE态下,进行RRC连接建立请求。
-
进行RRC连接重建请求。(RRC重建有5种原因,前面博文有描述。无线链路失败、切换失败、完整性保护失败、RRC重配置失败,mobility from E-UTRA失败)
-
切换过程中,通过随机接入获取与目标小区的上行同步。
-
在RRC_CONNECTED态下,当有上行数据需要发送时,但却没有可用的PUCCH SR资源时,此时UE需要通过随机接入请求获得上行的调度资源授权;或在RRC_CONNECTED态下,当有上行数据需要发送时,而上行处于失步状态(定时器TimeAlignmentTimer超时),那么需要通过随机接入过程,进行上行同步并请求上行调度资源授权。
-
在RRC_CONNECTED态下,当有下行数据需要发送时,而上行处于失步状态(定时器TimeAlignmentTimer超时),此时由网络通过下发PDCCH order、从而触发随机接入。
每个小区中的UE可通过公共信令(比如SIB2中的RACH-ConfigCommon)或专用信令(比如RRC重配置中的RACH-ConfigDedicated)等这些方式,获得的RACH配置及随机接入相关参数。UE生成最多64个Preamble,而这64个Preamble又被分为2组,因此随机接入过程也被分为2种,即大家熟知的,基于竞争的随机接入和非竞争的随机接入。
1. 基于竞争(contention based)的随机接入:由UE自行选择前导(preamble)序列,存在冲突的可能,需进行竞争解决(contention resolutioon)。
2. 基于非竞争(contention free)的随机接入:由网络侧eNodeB指定前导preamble,因为基站在某个时刻唯一指定前导序列所以不存在冲突,无需进行竞争解决。比如上面列举的第3/5两种情况,可以采用无竞争的随机接入。
竞争的和无竞争的随机接入过程如下图所示:
随机接入的具体步骤解释
第一步:随机接入前导发送
确定前导序列
若eNodeB指定随机接入前导,则采用该分配的前导;否则由UE进行前导选择:根据Msg 3消息长度进行随机接入序列组(A组或B组)选择,然后在所选择的序列组中,按等概率原则随机选择一个前导序列号。
根据eNodeB指示的根ZC序列号、循环移位配置、是否采用restricted set(仅FDD)、以及前导序列号,进行ZC序列的选择和循环移位的计算。
PRACH资源选择和发射功率计算
根据PRACH配置、PRACH Mask索引、以及PRACH的相关定时约束,按等概率随机原则,选择一个PRACH资源进行前导发送。
根据eNodeB指示的PRACH期望接收功率、前导格式和前导发送计数,进行PRACH开环发射功率计算和power ramping过程。可参考36.213.
第二步:随机接入响应接收
在由eNodeB指示长度的搜索时间窗口内,进行PDCCH监测及盲检,注意此时PDCCH的DCI的CRC部分,是用RA-RNTI来加扰的。
根据前导发送的子帧号和频率索引来计算RA-RNTI(取值范围1~60)
eNodeB采用DCI Format 1A或1C发送该PDCCH
DCI的格式大家可参考其他文档,后面再专文解释
若UE盲检到一个由RA-RNTI加扰的PDCCH,则根据该PDCCH所含的下行调度信息,接收同一TTI(1ms)内的PDSCH信道。
此时,PDSCH携带了随机接入响应RAR的MAC PDU。
提取MAC PDU包含BI MAC子头(若存在的话),用于更新Backoff值。
在RAR中读取与发送前导相匹配的RAPIDMAC子头和对应的MAC RAR。
对该MAC RAR进行解码,提取TA命令、20-bit的上行授权(UL grant,也称为随机接入响应授权)和Temporary C-RNTI。
若是非竞争的,则随机接入过程成功结束;若是竞争的则设定Temporary C-RNTI,并进行UL grant解码,准备进行Msg 3发送。
倘若UE未检测到任何一个由RA-RNTI加扰的PDCCH,或者对应随机接入响应中并没有与发送前导相匹配的RAPID MAC子头,则退回第一步,进行一次新的前导发送尝试。
若是基于竞争的,基于Backoff值加入一个随机延迟后,再进行一次新的前导发送尝试
将前导发送计数器加1,并相应的调整前导发送功率(power ramping的过程也可参考36.213)
若前导发送次数达到最大限定次数,则认为该次随机接入过程失败,并向高层(RRC层)指示随机接入失败。
MAC PDU及MAC RAR结构如下图所示。
第三步:Msg 3发送
根据eNodeB指示的相关功控参数、路损估计、PUSCH发送所占RB数等等,计算Msg 3的开环发射功率;
根据随机接入响应授权,按指定的资源和格式在PUSCH上进行Msg 3发送;
采用Temporary C-RNTI(第二步中收到的)进行加扰;
Msg 3中包含了用于竞争解决的信息;
在由RRC连接建立/重建触发的随机接入中,在CCCHSDU中包含了UE Identity
其它情况(切换、上/下行数据待传输)触发的随机接入中,在C-RNTI MAC控制信元中包含了UE的C-RNTI
Msg 3会采用上行HARQ来提高接收可靠性
采用上行HARQ来提高Msg 3的接收质量。可采用非自适应重传、或自适应重传,直到竞争解决成功、或达到Msg 3最大重传次数为止。
eNodeB通过TemporaryC-RNTI的上行授权,来指示Msg 3的自适应重传,无论UE是否已经被分配了一个C-RNTI,且无论NDI(新数指示)值是什么。
第四步:竞争解决(MSG4)
每次Msg 3新传输/重传后,启动或重新启动竞争解决定时器mac-ContentionResolutionTimer。
竞争解决情形一:在由RRC连接建立/重建触发的随机接入中,在CCCHSDU中包含了UE Identity。
检测由TemporaryC-RNTI加扰的PDCCH,并根据该下行分配将对应的PDSCH进行解码(MSG4)。
若该PDSCH解码OK,检查UEContention Resolution Identity MAC控制信元中所含内容是否与Msg 3发送的CCCH SDU携带的UEIdentity相匹配,若匹配,竞争通过。
若竞争解决通过,UE将TemporaryC-RNTI升级为C-RNTI 。
竞争解决情形二:其它情况(切换、上/下行数据待传输)触发的随机接入中,在C-RNTI MAC控制信元中包含了UE的C-RNTI 。
若随机接入过程由UE发起,检测由C-RNTI加扰的PDCCH上行授权。
若随机接入过程由eNodeB发起(PDCCHorder),检测由C-RNTI加扰的PDCCH。
若竞争解决成功,丢弃TemporaryC-RNTI 。
竞争解决中的下行HARQ过程
eNodeB发送用于竞争解决的PDSCH时,也采用HARQ过程来提高该PDSCH接收可靠性。
仅竞争解决成功的UE反馈ACK,否则(PDSCH未成功译码、或PDSCH成功译码但竞争解决失败)不反馈任何ACK/NACK。这样做,能防止由于PUCCH ACK/NACK信道上的冲突而导致ACK/NACK接收质量恶化。
若竞争解决失败,或竞争解决定时器超时,则认为竞争解决失败,退回第一步进行一次新的前导发送尝试
若是基于竞争的,基于Backoff值加入一个随机延迟后,再进行一次新的前导发送尝试。功率ramping。
若前导发送次数达到最大限定次数,则认为该次随机接入过程失败,并向高层RRC指示本次随机接入失败。
一次随机接入过程示意图如下(这是找到的最好的图了):
三:几点解释:
1. 关于UE-identity,只有两种可能,S-TMSI或randomvalue。RandoVaule的空间、协议定义是2的40次方。即如果UE有S-TMSI就使用S-TMSI;若没有S-TMSI,那么在MSG3中,会在0到2^40-1中选择一个随机数,作为MSG3中的UE-Identity IE。 UE-identity是用来解决冲突的唯一判据。
2. 关于前文提到的TimeAlignmentTime定时器的解释,在TS36.331中的描述摘录如下,此定时器通过公共信令或专用信令传递到UE:
– TimeAlignmentTimer
The IE TimeAlignmentTimer is used to control how long the UE is considereduplink time aligned. Corresponds to the Timer for time alignment inTS 36.321 [6]. Value in number of sub-frames. Value sf500 corresponds to500 sub-frames, sf750 corresponds to 750 sub-frames and so on. In this releaseof the specification, uplink time alignment is common for all serving cells.
TimeAlignmentTimer informationelement
-- ASN1START
TimeAlignmentTimer ::= ENUMERATED {
sf500, sf750, sf1280, sf1920, sf2560, sf5120,
sf10240, infinity}
-- ASN1STOP
关于TimeAlignmentTime的解释,在TS 36.321中的描述摘录如下:
5.2 Maintenance of Uplink Time Alignment
The UE has aconfigurable timer timeAlignmentTimer which is used to control how long the UE is considered uplink timealigned [8].
The UE shall:
- when a Timing Advance Command MAC control element is received:
- apply the Timing Advance Command;
- start or restart timeAlignmentTimer.
- when a TimingAdvance Command is received in a Random AccessResponse message:
- if the Random Access Preamble was not selected by UE MAC:
- apply the Timing Advance Command;
- start or restart timeAlignmentTimer.
- else, if the timeAlignmentTimer is not running:
- apply the Timing Advance Command;
- start timeAlignmentTimer;
- when the contention resolution isconsidered not successful as described in subclause 5.1.5, stop timeAlignmentTimer.
- else:
- ignore the received Timing Advance Command.
- when timeAlignmentTimerexpires:
- flush all HARQ buffers;
- notifyRRC torelease PUCCH/SRS;
- clearany configured downlink assignments and uplink grants.
The UE shall notperform any uplink transmission except the Random Access Preamble transmissionwhen timeAlignmentTimer is notrunning.
3. 信令中关于RACH及随机接入参数的IE定义
– RACH-ConfigDedicated
The IE RACH-ConfigDedicated is used to specify thededicated random access parameters.
RACH-ConfigDedicated informationelement
-- ASN1START
RACH-ConfigDedicated::= SEQUENCE {
ra-PreambleIndex INTEGER(0..63),
ra-PRACH-MaskIndex INTEGER(0..15)
}
-- ASN1STOP
– RACH-ConfigCommon
The IE RACH-ConfigCommon is used to specify thegeneric random access parameters.
RACH-ConfigCommon information element
-- ASN1START
RACH-ConfigCommon ::= SEQUENCE {
preambleInfo SEQUENCE{
numberOfRA-Preambles ENUMERATED{
n4, n8, n12, n16 ,n20,n24, n28,
n32, n36, n40, n44, n48,n52, n56,
n60, n64},
preamblesGroupAConfig SEQUENCE{
sizeOfRA-PreamblesGroupA ENUMERATED{
n4, n8, n12, n16,n20, n24, n28,
n32, n36, n40, n44,n48, n52, n56,
n60},
messageSizeGroupA ENUMERATED{b56, b144, b208, b256},
messagePowerOffsetGroupB ENUMERATED{
minusinfinity, dB0,dB5, dB8, dB10, dB12,
dB15, dB18},
...
} OPTIONAL --Need OP
},
powerRampingParameters SEQUENCE{
powerRampingStep ENUMERATED{dB0, dB2,dB4, dB6},
preambleInitialReceivedTargetPower ENUMERATED {
dBm-120, dBm-118,dBm-116, dBm-114, dBm-112,
dBm-110, dBm-108,dBm-106, dBm-104, dBm-102,
dBm-100, dBm-98, dBm-96,dBm-94,
dBm-92, dBm-90}
},
ra-SupervisionInfo SEQUENCE{
preambleTransMax ENUMERATED{
n3, n4, n5, n6, n7, n8, n10, n20, n50,
n100, n200},
ra-ResponseWindowSize ENUMERATED{
sf2, sf3, sf4, sf5, sf6,sf7,
sf8, sf10},
mac-ContentionResolutionTimer ENUMERATED {
sf8,sf16, sf24, sf32, sf40, sf48,
sf56,sf64}
},
maxHARQ-Msg3Tx INTEGER(1..8),
...
}
-- ASN1STOP
最后,SIB2中下发的关于RACH的相关参数见下图:
而切换的时候,基站传递到UE的专用的RACH参数见下图:
限于篇幅和时间关系,春天工作室 关于随机接入过程的讨论和分享,今天就到此为止,欢迎指正、勘误和探讨。