随机接入过程.docx
《随机接入过程.docx》由会员分享,可在线阅读,更多相关《随机接入过程.docx(28页珍藏版)》请在冰豆网上搜索。
随机接入过程
一、随机接入过程简介
UE通过随机接入过程(RandomAccessProcedure)与cell建立连接并取得上行同步。
只有取得上行同步,UE才能进行上行传输。
随机接入的主要目的:
1)获得上行同步;2)为UE分配一个唯一的标识C-RNTI。
随机接入过程通常由以下6类事件之一触发:
(见36.300的10.1.5节)
1) 初始接入时建立无线连接(UE从RRC_IDLE态到RRC_CONNECTED态);
2)RRC连接重建过程(RRCConnectionRe-establishmentprocedure);
3) 切换(handover);
4)RRC_CONNECTED态下,下行数据到达(此时需要回复ACK/NACK)时,上行处于“不同步”状态;
5)RRC_CONNECTED态下,上行数据到达(例:
需要上报测量报告或发送用户数据)时,上行处于“不同步”状态或没有可用的PUCCH资源用于SR传输(此时允许上行同步的UE使用RACH来替代SR);
6)RRC_CONNECTED态下,为了定位UE,需要timingadvance。
随机接入过程还有一个特殊的用途:
如果PUCCH上没有配置专用的SR资源时,随机接入还可作为一个SR来使用。
随机接入过程有两种不同的方式:
(1) 基于竞争(Contentionbased):
应用于之前介绍的前5种事件;
(2) 基于非竞争(Non-Contentionbased或Contention-Freebased):
只应用于之前介绍的 (3)、(4) 、(6)三种事件。
二、preamble介绍
随机接入过程的步骤一是传输randomaccesspreamble。
Preamble的主要作用是告诉eNodeB有一个随机接入请求,并使得eNodeB能估计其与UE之间的传输时延,以便eNodeB校准uplinktiming并将校准信息通过timingadvancecommand告知UE。
Preamble在PRACH上传输。
eNodeB会通过广播系统信息SIB-2来通知所有的UE,允许在哪些时频资源上传输preamble。
(由prach-ConfigIndex和prach-FreqOffset字段决定,详见36.211的5.7节)
每个小区有64个可用的preamble序列,UE会选择其中一个(或由eNodeB指定)在PRACH上传输。
这些序列可以分成两部分,一部分用于基于竞争的随机接入,另一部分用于基于非竞争的随机接入。
用于基于竞争的随机接入的preamble序列又可分为两组:
groupA和groupB(groupB可能不存在)。
这些配置eNodeB是通过RACH-ConfigCommon(SIB-2)下发的。
图:
randomaccesspreambles
分组groupA和groupB的原因是为了加入一定的先验信息,以便eNodeB在RAR中给Msg3分配适当的上行资源。
如果UE接入时估计后续的Msg3可能比较大(大于messageSizeGroupA),并且路径损耗pathloss小于
– preambleInitialReceivedTargetPower – deltaPreambleMsg3 –messagePowerOffsetGroupB,则使用groupB中的preamble;否则使用groupA中的preamble。
这样eNodeB就能够根据收到的preamble知道该preamble所属的group,从而了解Msg3的大致资源需求。
如果不分组,就应采用较高的grant配置,可能损失一些上行效率。
(关于preamble的选择:
详见36.321的5.1.2节)
GroupA/B中的preamble序列本身并没有太大区别,只有它们的划分才是有意义的,用于告诉eNodeB后续的资源需求。
如果UE进行的是基于非竞争的随机接入(例如非竞争下的handover),使用的preamble是由eNodeB直接指定的(见36.331的RACH-ConfigDedicated)。
为了避免冲突,此时使用的preamble是除groupA和groupB外的预留preamble。
简单地说:
eNodeB通过广播SIB-2发送RACH-ConfigCommon,告诉UEpreamble的分组、Msg3大小的阈值、功率配置等。
UE发起随机接入时,根据可能的Msg3大小以及pathloss等,选择合适的preamble。
三、PRACH时频资源介绍
在LTE中,提到信道的时频资源时,通常都会涉及时域(systemframe、subframe、slot、symbol、周期)、频域(起始RB、所占的RB数,是否跳频)、循环移位(cyclicshift)等。
PRACH用于传输randomaccesspreamble。
通常eNodeB不会在预留给随机接入的RB上调度其它上行数据。
某小区可用的PRACH时频资源是由SIB-2的prach-ConfigIndex和prach-FrequencyOffset字段决定的。
一旦这两个字段决定了,对接入该小区的所有UE而言,preamble的格式(format)和可选的PRACH时频资源就固定了。
图:
指定PRACH时频资源的RRC信令
每个preamble在频域上占用6个连续RB的带宽,这正好等于LTE支持的最小上行带宽。
因此,不管小区的传输带宽有多大,都可以使用相同的RApreamble结构。
小结:
频域上占6个连续的RB。
preamble在时域上的长度取决于配置。
(如下表所示,见36.211的5.7.1节)
图:
不同的preamble格式
从上图可以看出,不同格式的preamble在时域上所占的连续子帧数是不一样的,format0占1个子帧,format1和format2占2个子帧,format3占3个子帧。
不同的preamble可能有不同CP(cyclicprefix,循环前缀)。
CP越大,对延迟的容忍度就越大,相应的,小区就可以支持更大的覆盖范围。
上行timing的不确定性正比于小区半径,每1km有大约6.7μs的传输延迟(6.7μs/km)。
以preambleformat0为例,CP长度为0.1ms,因此允许的最大小区半径为15km(0.1*1000 /6.7 ≈ 15km )。
对于TDD,还支持额外的preamble配置:
format4。
该配置只用于特殊子帧的UpPTS字段,且只支持长度为
或
的UpPTS字段(见36.211的Table4.2-1)。
由于CP的长度明显小于前面介绍的format0~3,format4只支持覆盖范围很小的小区。
小结:
时域上占的连续的subframe数:
1、2、3、UpPTS;占据子帧内的所有slot和所有symbol。
配置时需要考虑小区的覆盖范围以及资源的使用(preamble越大,可用于传输上行数据的资源就越少)。
前面已经介绍了preamble在时域和频域上所占的资源大小,接下来我们来讨论preamble在时域和频域上的位置。
对FDD而言,只支持preambleformat0~3,且每个子帧至多有一个PRACH资源,即多个RA请求只在时域上存在复用。
36.211的Table5.7.1-2指定了format以及允许传输preamble的子帧配置,这是通过prach-ConfigIndex来指定的。
假如UE接收到的prach-ConfigIndex配置为12,则该UE可以选择任意(any)系统帧的(0,2,4,6,8)这5个子帧中的某一个来传输format0的preamble。
假如UE接收到的prach-ConfigIndex配置为18,则该UE只能选择在偶数(even)系统帧的子帧 7来传输format1的preamble。
对FDD而言,preamble在频域上的起始RB(
)等于prach-FrequencyOffset指定的值(用
表示,且满足条件
)。
对TDD而言,每个子帧可以有多个PRACH资源,这是因为TDD中每个系统帧的上行子帧数更少,从而要求每个子帧发送更多的RA请求。
在TDD中,每个10ms的系统帧内至多可发送6个RA请求。
(见36.211的5.7.1-3的
)
对TDD而言,preamble在时域上的配置也是通过prach-ConfigIndex来指定的,且对应的表为36.211的Table5.7.1-3和Table5.7.1-4。
其中
表示UE在一个10ms的系统帧内有多少次随机接入的机会。
在协议中没有介绍,在网上也看到过说这个字段没有用处的,但其出处应该是ZTE的提案《Time&FrequencyLocationMappingforTDDPRACH》,有兴趣的大家可以去研究一下,顺便也能够了解36.211的Table5.7.1-3和Table5.7.1-4是如何通过计算得来的。
对TDD而言,Table5.7.1-4指定了preamble的时频位置。
四元组
唯一指定一个特定的随机接入资源。
指定了preamble可以选择在哪些系统帧上发送(0:
所有帧;1:
偶数帧;2:
奇数帧)。
指定preamble是位于前半帧还是后半帧(0:
前半帧;1:
后半帧)。
指定preamble起始的上行子帧号,该子帧号位于两个连续的downlink-to-uplinkswitchpoint之间,且从0开始计数(见下图)。
format4是个例外,其
标记为(*)。
图:
PRACH的时域资源配置(preambleformat0~3、TDDConfiguration1)
对于format4而言,其起始子帧是特殊帧,无
配置。
这样,通过prach-ConfigIndex指定的PRACHconfigurationindex,UE就得到了可能的
、
、
配置,从而知道可以在哪些子帧上传输preamble。
对于TDD而言,preamble在频域上的起始RB是由prach-ConfigIndex和prach-FrequencyOffset确定的。
通过prach-ConfigIndex查表Table5.7.1-4得到
(频域的偏移,单位是6个RB),通过prach-FrequencyOffset可以得到
,再通过如下公式,可以得到format0~3的preamble在频域上的起始RB:
从上面的公式可以看出,为了保证单载波的频域资源连续性,PRACH的资源分布在上行带宽的两端上(“低高频位置交错”)。
起始位置由
确定,一般紧挨着PUCCH资源的位置。
公式中的数字6是为了保证preamble在频域占6个连续的RB。
对于format4而言,起始RB的计算公式如下:
其中
是系统帧号,
是该系统帧内DLtoULswitchpoint的个数。
小结:
对于FDD而言,通过prach-ConfigIndex查表Table5.7.1-2得到preambleformat以及可以用于传输preamble的系统帧和子帧号,从而确定可选的时域资源。
通过prach-FrequencyOffset得到在频域上的起始RB,从而确定频域资源(FDD在某个子帧上只有一个频域资源,因此是固定的)。
对于TDD而言,通过prach-ConfigIndex查表Table5.7.1-3和Table5.7.1-4得到preambleformat以及可以用于四元组
,其中
、
、
确定时域上可用于传输preamble的系统帧和子帧号,从而确定可选的时域资源。
通过prach-FrequencyOffset得到
,并与
共同确定了可选的频域资源(TDD在某个子帧上可能存在多个频域资源,所以是可选择的)。
UE选择这些时频资源中的哪一个,是由UE的实现决定的。
对于第一次发起随机接入(而不是因为接入失败而发起的preamble重发),个人觉得可以选用时域上最接近的子帧,而频域上随机选择一个资源进行传输preamble。
对于由接入失败而发起的preamble重发,其时域资源(timing)的选择有点特殊,这会在后续的博客中予以介绍。
简单地说:
eNodeB通过广播SIB-2发送prach-ConfigIndex和prach-FrequencyOffset,从而确定该小区可用于传输preamble的时频资源集合。
UE发起随机接入时,从中选择一个资源发送preamble。
因为eNodeB不知道UE会在哪个时频资源上发送preamble,所以会在指示的所有preamble时频资源上检测并接收preamble。
四、随机接入过程
本章节主要介绍随机接入过程的4个步骤。
而在下一章节中,我会以信令流程图的方式将之前介绍过的6种触发随机接入过程的事件与这4个步骤结合起来。
言归正传,先奉上几幅图,然后介绍随机接入过程的4个步骤:
图:
基于竞争的随机接入过程
图:
基于非竞争的随机接入过程
图:
RACH-ConfigCommon
步骤一:
UE发送preamble
UE发送randomaccesspreamble给eNodeB,以告诉eNodeB有一个随机接入请求,同时使得eNodeB能估计其与UE之间的传输时延并以此校准uplinktiming。
触发随机接入过程的方式有以下3种(具体会在下一章节介绍):
1)PDCCHorder触发:
eNodeB通过特殊的DCIformat1A 告诉UE需要重新发起随机接入,并告诉UE应该使用的PreambleIndex和PRACHMaskIndex;
2)MACsublayer触发:
UE自己选择preamble发起接入;
3)上层触发:
如初始接入,RRC连接重建,handover等。
UE要成功发送preamble,需要:
1)选择preambleindex;2)选择用于发送preamble的PRACH资源;3)确定对应的RA-RNTI; 4)确定目标接收功率PREAMBLE_RECEIVED_TARGET_POWER。
1、选择preambleindex
与基于非竞争的随机接入中的preambleindex由eNodeB指定不同,基于竞争的随机接入,其preambleindex是由UE随机选择的。
UE首先要确定选择的是groupA还是groupB中的preamble。
如果存在preamblegroupB,且msg3的大小大于messageSizeGroupA,且pathloss小于
–preambleInitialReceivedTargetPower - deltaPreambleMsg3 –messagePowerOffsetGroupB,则选择groupB;否则选择groupA。
如果之前发送过msg3且接入失败,则再次接入尝试时使用的preamble应该与第一次发送msg3时对应的preamble属于相同的group。
确定了group之后,UE从该group中随机选择一个preamble并将PRACHMaskIndex设置为0。
而对于基于非竞争的随机接入而言,eNodeB通过为UE分配一个专用的preambleindex来避免冲突的发生并指定一个PRACHMaskIndex。
eNodeB分配preambleindex和PRACHMaskIndex的方式有两种:
1)通过RACH-ConfigDedicated的ra-PreambleIndex和ra-PRACH-MaskIndex字段设置(Handover过程);2)在PDCCHorder触发的随机接入中,通过DCIformat1A的PreambleIndex和PRACHMaskIndex字段来设置(下行数据到达或定位)。
按理说,既然要使用基于非竞争的随机接入过程,eNodeB分配的preambleindex就不应该为0(0是用于基于竞争的随机接入的。
个人认为此时不应使用groupA和groupB的任一preamble,但协议中只针对0做了特别说明)。
但如果eNodeB分配了0值,则实际的preambleindex交由UE按照基于竞争的随机接入方式选择preamble(个人认为这种情况主要针对eNodeB已经没有可用的非竞争preamble,或eNodeB配置时根本没有为非竞争的随机接入预留preamble的场景)。
2、选择用于发送preamble的PRACH资源
基于prach-ConfigIndex、PRACHMaskIndex以及物理层的timing限制,UE会先确定下一个包含PRACH的可用子帧。
prach-ConfigIndex指定了时域上可用的PRACH资源。
PRACHMaskIndex定义了某个UE可以在系统帧内的哪些PRACH上发送preamble(见36.321的Table7.3-1,值为0表示所有可用的PRACH资源)。
在基于非竞争的随机接入中,eNodeB可以通过该mask直接指定UE在某个特定的PRACH上发送preamble,从而保证不会与其它UE发生冲突。
以ra-PRACH-MaskIndex =3为例,查36.321的Table7.3.1可知,对应PRACHResourceIndex2,即preamble应该在系统帧内的第三个PRACH资源发送。
PRACHResourceIndex是一个系统帧内的PRACH资源的编号,从0开始并以PRACH资源在36.211的Table5.7.1-2和Table5.7.1-4中出现的先后来排序。
(以prach-ConfigIndex =12为例,如果是FDD,查36.211的Table5.7.1-2可知,只在子帧0,2,4,6,8上存在PRACH资源,则PRACHResourceIndex2对应子帧4上的PARCH资源;如果是TDD,且UL/DLconfiguration为1,查36.211的Table5.7.1-4可知, PRACHResourceIndex2对应四元组(0,0,1,0)上的PARCH资源)
PRACHMaskIndex可以为0,这说明eNodeB只为UE分配了preamble,但PRACH资源还需UE自己选择。
物理层的timing限制在36.213的6.1.1中定义:
如果UE在子帧n接收到一个RARMACPDU,但对应TB中没有一个响应与其发送的preamble对应,则UE应该准备好在不迟于子帧n+5的时间内重新发送preamble。
如果UE在子帧n没有接收到一个RARMACPDU,其中子帧n为RAR窗口的最后一个子帧,则UE应该准备好在不迟于子帧n+4的时间内重新发送preamble。
如果随机接入过程是由PDCCHorder在子帧n触发,则UE将在子帧n+
算起,第一个有可用PRACH的子帧中发送,其中
≧ 6。
至此,已经选定PRACH所在的子帧,接下来,我们开始选择频域上的位置。
在TDD模式且PRACHMaskIndex为0的情况下:
如果eNodeB指定了ra-PreambleIndex且其值不为0,则在之前确定的子帧上随机选择一个PRACH;否则在之前确定的子帧及其后续的两个子帧(共3个子帧)内随机选择一个PRACH。
如果是FDD模式或PRACHMaskIndex不为0,则根据PRACHMaskIndex选择一个PRACH。
3、确定对应的RA-RNTI
preamble的时频位置决定了RA-RNTI的值,UE发送了preamble之后,会在RAR时间窗内根据这个RA-RNTI值来监听对应的PDCCH。
RA-RNTI的计算会在步骤二中介绍。
4、确定目标接收功率PREAMBLE_RECEIVED_TARGET_POWER
preamble的目标接收功率PREAMBLE_RECEIVED_TARGET_POWER通过下面的公式计算(见36.321的5.1.3节):
preambleInitialReceivedTargetPower +DELTA_PREAMBLE+(PREAMBLE_TRANSMISSION_COUNTER–1)* powerRampingStep
其中preambleInitialReceivedTargetPower是eNodeB期待接收到的preamble的初始功率。
DELTA_PREAMBLE与preambleformat相关,其值见36.321的的Table7.6-1。
而powerRampingStep是每次接入失败后,下次接入时提升的发射功率。
而preamble的实际发射功率
的计算公式为
其中,
是UE在PCell的子帧i上所配置的最大输出功率,
是UE通过测量PCell的Cell-specific参考信号得到的下行路径损耗。
步骤二:
eNodeB发送RandomAccessResponse
UE发送了preamble之后,将在RAR时间窗(RAResponsewindow)内监听PDCCH,以接收对应RA-RNTI的RAR。
如果在此RAR时间窗内没有接收到eNodeB回复的RAR,则认为此次随机接入过程失败。
RAR时间窗起始于发送preamble的子帧(如果preamble在时域上跨多个子帧,则以最后一个子帧计算) +3个子帧,并持续ra-ResponseWindowSize个子帧。
图:
RAresponsewindow
与preamble相关联的RA-RNTI通过如下公式计算:
RA-RNTI=1+t_id+10*f_id
其中,t_id是发送preamble的PRACH所在的第一个子帧号(0 ≦ t_id <10),f_id是在该子帧发送preamble的PRACH在频域上的索引(0 ≦ f_id < 6)。
对于FDD而言,每个子帧只有一个PRACH资源,因此f_id固定为0。
(RA-RNTI的计算见36.321的5.1.4节)
某个UE发送的preamble时频位置是固定的,eNodeB在解码preamble时,也获得了该preamble时频位置,进而知道了RAR中需要使用的RA