zoukankan      html  css  js  c++  java
  • 随机接入过程解析

    一:举例——一个完整的随机接入过程

     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中,有五种情况,需要触发随机接入过程,描述如下:

    1. 在RRC_IDLE态下,进行RRC连接建立请求。

    2. 进行RRC连接重建请求。(RRC重建有5种原因,前面博文有描述。无线链路失败、切换失败、完整性保护失败、RRC重配置失败,mobility from E-UTRA失败)

    3. 切换过程中,通过随机接入获取与目标小区的上行同步。

    4. 在RRC_CONNECTED态下,当有上行数据需要发送时,但却没有可用的PUCCH SR资源时,此时UE需要通过随机接入请求获得上行的调度资源授权;或在RRC_CONNECTED态下,当有上行数据需要发送时,而上行处于失步状态(定时器TimeAlignmentTimer超时),那么需要通过随机接入过程,进行上行同步并请求上行调度资源授权。

    5. 在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参数见下图:

    限于篇幅和时间关系,春天工作室 关于随机接入过程的讨论和分享,今天就到此为止,欢迎指正、勘误和探讨。

  • 相关阅读:
    20155204 实验3《敏捷开发与XP实践》实验报告
    20155204 2016-2017-2 《Java程序设计》第10周学习总结
    20155204 2016-2017-2 《Java程序设计》第9周学习总结
    实验二 面向对象的程序设计
    20155204 2016-2017-2 《Java程序设计》第8周学习总结
    20155204 2016-2017-2 《Java程序设计》第7周学习总结
    20155204 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
    20155204 2016-2017-2 《Java程序设计》第6周学习总结
    # 20155204 2016-2017-2 《Java程序设计》第五周学习总结
    20155204 2016-2017-2 《Java程序设计》第4周学习总结
  • 原文地址:https://www.cnblogs.com/xcnpeng/p/7445733.html
Copyright © 2011-2022 走看看