在移动通信系统中,随机接入是必不可少的,NR自然也是如此。UE完成下行同步后,还要完成随机接入,才可以和网络进一步交互。随机接入是相当综合和复杂的课题,引用孙老师的话:“看懂了随机接入,无线通信就学会了”。随机接入如此重要,自然是NR学习的重点。这里,我尝试对随机接入的知识进行整理,提供给和我一样的小白参考。
文章参考了3GPP文档(TS 38.300、TS 38.321、TS 38.213和TS 38.331),金辉的《深入理解LTE-A》,爱立信的《5G NR标准:下一代无线通信技术》,ShareTechnote的《RACH》,孙老师的《NR PRACH信道和随机接入流程简析 V2.0》和Haykey的《5G里的on-demand系统消息》。由于本人的理论水平有限,也没有无线专业的工作经历,文章难免存在错漏,欢迎各位专家批评和指正。
为什么要随机接入?
简单的说,是为了请求接入资源。随机接入是UE向网络发送的第一条消息,尽管在不同系统中,请求名字不一样,但作用是相似的。在GSM中,称为“Channel Request”;在CDMA中,称为“Access Probe”;在WCDMA和LTE中,称为“RACH”—— NR沿用了这个名字。RA是Random Access的缩写。从宏观的角度看,UE行为不可预知(比如说,UE什么“时候”会开机),对网络而言,请求具有一定的“随机性”(Random);从微观的角度看,网络又必须对UE行为做一些约束(比如说,UE在哪个“时隙”发送请求),否则系统复杂度会大幅提高。
在LTE和NR中,为了在Uu接口发送和接收业务数据(比如说,HTTP请求和HTTP响应),网络需要为UE建立DRB(Data Radio Bearer),承载用户面数据(User Plane Data)。为了建立DRB,网络又需要为UE建立SRB(Signaling Radio Bearer),承载控制面数据(Control Plane Data,RRC消息和NAS消息)。不过,这是高层(应用层)的视角。从底层(PDCP、RLC、MAC、PHY)的角度看,承载数据的逻辑信道(Logical Channel)需要映射到传输信道(Transport Channel)UL-SCH和DL-SCH,再映射到物理信道(Physical Channel)PUSCH和PDSCH —— 不过,UE使用PUSCH和PDSCH,是有前提条件的。
PUSCH和PDSCH都是共享信道(Sharing Channel),在大多数情况下,是动态分配给用户的(半静态调度长时间看也是动态的)。这意味着两件事:一、UE收到下行调度(Schedule)或上行授权(UL Grant),才可以在对应时频资源接收或发送数据;二、NR是多用户系统,网络和UE需要进行用户识别,才不会“张冠李戴”。如果UE处于RRC CONNECTED状态,使用C-RNTI(Cell Radio Network Temporary Identifier)监听PDCCH,从而获得PDSCH的信息。随机接入的作用之一,就是从网络获得UL Grant。同时,如果UE还没有C-RNTI,可以通过随机接入获得(准确的说是TC-RNTI,随后升级为C-RNTI)。
打个比方,随机接入(Random Access)就像学生(UE)发言前要先举手,如果老师(基站)没有点到你的名字(Random Access Response),你就别作妖了(这位同学你坐下~)。在后续交互中(RRC CONNECTED),老师用“临时学号”(C-RNTI)指代学生,如果学生还没有“临时学号”,会在点名时获得(但不一定是给你的)。学生没有固定教室(Cell),老师才有(和大学相似),学生每次换老师,会从新的老师获得新的“临时学号” —— “临时学号”(C-RNTI)只在老师(Cell)范围内有效。
除了上行授权,随机接入还有另一个作用:上行同步。在LTE和NR中,不同UE在时频上正交多址接入(Orthogonal Multiple Access),同一小区的不同UE上行传输互不干扰。为了保证上行的正交性,同一子帧上,不同UE(使用不同频域资源)发送的信号,到达基站的时间要求“基本对齐”,基站在CP(Cyclic Prefix)范围内接收到UE信号 —— 这需要通过TA(Timing Advance)实现。
基站发送的下行信号是对齐的,由于不同UE和基站的距离不同,信号在空中传输的时长不同,信号到达UE的时间也不同(示图中,UE1和UE2分别延迟t1和t2)。如果UE的上行子帧和下行子帧的timing是相同的,不同UE的上行信号到达基站的时间也不同(示图中,UE1和UE2分别延迟t1 x 2和t2 x 2),这就破坏了上行的正交性,需要进行对齐。UE行为无法预测,和谁对齐都不合适,基站说:还是向我看齐吧。
基站的上行子帧和下行子帧的timing是相同的,如果UE提前发送上行信号,消除传输时延的影响,就可以在实现上行信号对齐。这个时间提前量,称为TA,是UE上行子帧相对下行子帧的时间负偏移(Negative Offset)。显然,TA是UE粒度的参数 —— 不同UE和基站的距离不同,TA的取值也不同,UE离基站近一点,TA就小一点,UE离基站远一点,TA就大一点。
打个比方,你在西城上班,公司要求8:30~9:00打卡,住东城得7:30出门,住朝阳得7:00出门,住通州得06:30出门。如果在家手机能收到“河北欢迎您”,那大概得换家公司了。TA有一定的取值范围,实际上限制了小区的覆盖半径(通常这不是主要因素,其他因素包括功率、路损、Preamble保护间隔、Ncs等)。在随机接入中,基站需要根据UE的随机接入请求估算TA,这对请求的形式也提出了一些要求。
综上所述,在随机接入前,UE既没有上行授权(UL Grant),也没有上行同步(TA),如果是初始接入(比如说,用户开机),UE连C-RNTI都没有,自然和PUSCH无缘了。UE只能在PRACH发送随机接入,请求指示UL Grant和TA —— 这些信息都包含在基站返回UE的RAR(Random Access Response)中(LTE和NR格式略有不同)。RAR携带的UL Grant和TA,和DCI(Downlink Control Information)携带的UL Grant,或MAC CE(Timing Advance Command MAC Control Element)携带的TA,本质上没什么不同。
什么场景会触发随机接入?
根据3GPP TS 38.300描述,在NR中,在以下(示图)10种场景中会触发随机接入,白色的7种场景和LTE相同,黄色的3种场景为NR新增的场景,包括:Transition from RRC INACTIVE(从RRC INACTIVE状态返回RRC CONNECTED状态);Beam failure recovery(波束恢复);Request for other SI(UE请求其他系统信息)。上述新增场景和NR的新特性对应,包括RRC INACTIVE状态、(模拟)波束管理和on-demand SI(按需请求的SI)。总的来说,随机接入是一个MAC过程,同一时刻,一个MAC实体只有一个随机接入过程。随机接入可能由MAC子层、RRC子层或PDCCH Order触发,在SCell上的随机接入只能由PDCCH Order触发。
在初始接入(Initial access from RRC IDLE)中,UE当然需要随机接入。在UE随机接入前,网络对UE没有感知,UE驻留(Camping)在哪个小区,网络完全不知道。网络只要(也只能)周期性的广播参考信号(SSB),UE就可以完成下行同步(搜索PSS和SSS,解析PBCH和MIB)。所谓“敌在明,我在暗”,UE没必要周期性的发送请求(费电),只在有需求时(比如说,开机)触发随机接入。
RRC重建(RRC Connection Re-establishment procedure)和RRC恢复(Transition from RRC INACTIVE),和初始接入(Initial access from RRC IDLE)相似,UE可能和原来的gNB建立RRC连接,但gNB依然需要指示UL Grant和TA。特别是,UE可能在其他gNB覆盖区域进行RRC重建或RRC恢复,这和初始接入没什么区别 —— UE无法预先知道gNB是否变更。UE构造RRC消息(RRC SETUP REQUEST、RRC REESTABLISHMENT REQUEST、RRC RESUME REQUEST),向下逐层(PDCP、RLC、MAC)封装和发送,MAC实体接收后,由于没有上行资源(也没有上行同步),于是触发随机接入。
即使UE已经存在SRB(RRC CONNECTED)和DRB,也可能走投无路 —— 在LTE和NR中,如果UE没有上行数据需要传输,网络没必要为UE分配上行资源,但与此同时,网络也为UE提供请求上行资源的途径。如果UE处于RRC CONNECTED状态,且上行同步,可在PUCCH发送SR(Schedule Request)请求上行资源 —— 当然,用于SR的PUCCH资源也是网络预先配置的。
SR只是告知网络是否有需求(Yes or No),但没有描述需求大小。通常网络会分配足够发送BSR(Buffer Status Report)的资源,UE上报BSR后,网络再分配用于传输数据(Data)的资源(话说回来,UE使用UL Grant的资源发送BSR还是数据,网络又管不着)。如果上行数据到达,UE没有可用于SR的PUCCH资源(UL Data arrival during RRC CONNECTED when there are no PUCCH resources for SR available,基站可以不给SR配置PUCCH资源,让UE只能通过随机接入获取上行授权,但通常不会这么配置),或SR失败次数超过门限(SR failure),UE也会触发随机接入。
RRC是Uu控制面的“老大”,如果UE处于RRC CONNECTED状态,网络也可能通过RRC消息指示UE在目标小区(Target Cell)进行随机接入(Request by RRC upon synchronous reconfiguration),比如说,在Handover或SN Addition流程中,基站发送的RRC重配(RRC reconfiguration with Sync),具体可参考3GPP TS 38.300的9.2.3章节Mobility in RRC_CONNECTED。
除了上行授权,UE也可能为了上行同步触发随机接入。如果上行数据到达,且上行失步,UE的MAC实体触发随机接入,如果下行数据到达,且上行失步,基站通过PDCCH Order指示UE进行随机接入(DL or UL Data arrival during RRC CONNECTED when UL synchronisation status is “non-synchronized”)。
从TA实现机制来看,UE无法主动发现上行失步 —— UE按照指示的TA发送信号,信号在基站有没有对齐,UE怎么知道?实际上,UE只能从基站获知上行同步状态,UE维护一个TA定时器,每次从基站获得新的TA(Timing Advance Command MAC CE),都会重启TA定时器。如果TA定时器在运行,UE视为上行同步,如果TA定时器已超时,UE视为上行失步,此时只能在PRACH进行上行传输。
不过,TA定时器还有点小问题,如果定时器取值太小,发送TA的开销就太大,如果定时器取值太大,UE发现上行失步会滞后太多。可见,这是一个有点鸡肋的机制,基站可以通过RRC消息将TA定时器配置为无穷大(infinity),让UE干脆放弃治疗(定时器永远不会超时),通过其他方式恢复上行同步,比如RRC重建(参考春天老师朋友圈分享)。
另一个上行同步的场景,是Secondary TAG。如果UE配置了CA(Carrier Aggregation),不同载波单元的(上行)传输时延可能存在较大差异,使用同一个TA不太合理。为了解决这个问题,3GPP在R11引入TAG(Timing Advance Group)的概念 —— 使用同一小区作为定时参考(Timing Reference)的小区,都划入同一个TAG,使用相同的TA,和TAG Specific timer关联。TAG至少包含一个配置上行的小区,基站在添加SCell时将SCell映射到各个TAG。
包含PCell的TAG称为Primary TAG,其他TAG称为Secondary TAG。Primary TAG使用PCell作为定时参考,Secondary TAG使用组内任意一个激活的SCell作为定时参考,可参考3GPP TS 38.300的9.2.9章节Timing Advance。如果UE存在Secondary TAG,基站通过PDCCH order触发UE在SCell进行随机接入,获得对应的TA(to establish time alignment for a secondary TAG),具体细节以后再谈。
在NR中,除了上行授权和上行同步,还有两个原因会触发随机接入,且都和NR的新特性相关,一个是(模拟)波束管理,另一个是on-demand SI(按需请求的SI)。先说第一个,基站通过UE随机接入的时机(PRACH Occasion),可以获知UE在哪个SSB波束接收最好,在此基础上可进一步优化,提高传送速率。窄波束增益更高,但也容易受环境影响而性能劣化,相对于高层过程(比如由RLF触发RRC重建),波束恢复是开销较小,速度更快的方式。UE可利用随机接入进行波束恢复(相当于波束初始化),关键是如何进行波束检测。
参考3GPP TS 38.300的9.2.8章节Beam failure detection and recovery,UE通过参考信号(SSB或CSI-RS)进行波束检测,如果在定时器超时前,波束失败指示(Beam failure indication)次数达到门限,UE会上报波束失败。对于初始下行BWP,或包含和初始下行BWP关联的SSB的其他BWP,gNB可以配置为通过SSB波束检测,否则只能配置为通过CSI-RS波束检测。UE在PCell随机接入实现波束恢复,如果gNB为某些波束配置了特定的随机接入资源(RACH Preamble),UE优先使用这些资源。随机接入完成后,可视为波束恢复完成。
再说on-demand SI。在NR中,为了减少“always-on”信号的开销,只有MIB和SIB1(RMSI)会一直周期性广播,UE获取MIB和SIB1就可以接入小区(相应的,某些重要信息迁移到MIB和SIB1),其他SI(other SI)都不是必需的,UE可以按需请求(on-demand)。MIB和other SI都映射到BCCH,但MIB由BCH传输,other SI由DL-SCH传输。UE可通过SIB1获得other SI的调度信息。
参考3GPP TS 38.300的7.3.2章节Scheduling,如果UE处于RRC IDLE或RRC INACTIVE状态,可以通过随机接入请求other SI。SI Request可能包含在MSG1或MSG3中,取决于gNB是否配置请求SI的专用RACH Preamble。gNB响应SI Request后(MSG2或MSG4),会在一段时间内周期性广播UE请求的SI,UE使用SI-RNTI(System Information Radio Network Temporary Identifier)监听PDCCH,从对应的PDSCH获取other SI,具体细节以后再谈。