随机接入流程 - 4 Step RA
Overview
隨機接入流程可以由以下事件觸發:
- 終端從RRC_IDLE狀態發起接入;
- RRC連接重建流程;
- 終端在RRC_CONNECTED狀態時有上下行數據業務,但是此時上行同步狀態為失步,此時由基站的PDCCH order發起;
- Scheduling Request無響應并超過最大發送次數,此時終端使用隨機接入流程來獲取UL grant;
- 在同步重配置(比如handover)時由RRC發起接入請求;
-
在添加SCell (CA場景)或者SN (NSA嘗盡)的時候建立時間同步;
-
請求除了MIB和SIB1之外的其他系統消息;
-
Beam failure recovery。
其中最常見的隨機接入場景就是終端在開機后進行小區搜索并在搜索到合適的小區后使用隨機接入來接入該小區。
在NR中支持兩種隨機接入方式:4-step RA和2-step RA,其中2-step RA是R16中新引入的,我們會在下一篇博文詳細介紹。
NR中的兩種隨機接入方式都支持基于競爭的隨機接入流程 (Contetion-based RA)和非競爭的隨機接入流程 (Contention-free RA),流程圖如下:
處于RRC_IDLE狀態的終端一旦發現一個小區就可能會發起隨機接入流程接入該小區,該隨機接入流程分作四步:
以上是基于競爭的隨機接入的流程,對于非競爭的隨機接入,則省去了競爭解決這一步,具體請看上圖中的圖(c)。
需要注意的是,我們將4-step中每一步的交互消息分別稱之為Msg1~Msg4,按照隨機接入觸發場景的不同,除了Msg1是用于傳輸preamble不變,Msg2/3/4所對應的消息是可能與用于小區接入的隨機接入流程中的Msg2/3/4有所不同的。比如在重建流程中,Msg2為RAR,而Msg3為“RRCReestablishmentRequest”消息,Msg4為“RRCReestablishment”消息。
下面我們來詳細介紹每一步流程 (這里我們以小區接入場景中的隨機接入流程作為示例)。
Msg1 - 隨機接入資源的選擇與發送
由于終端是從RRC_IDLE狀態接入小區并且使用的是基于競爭的隨機接入過程, 此時終端所需要的隨機接入資源指示只能從小區的系統廣播消息 - SIB1中獲取,主要參數包括preamble索引,preamble的SCS,preamble的發射功率以及PRACH資源在時頻域上的位置等。具體描述請看下表? (這里我只列出了主要參數,一些涉及到新功能的參數(比如IAB)沒有列出,此類參數會在對應新功能的博文中給出):
CBRA (基于競爭的隨機接入):
對于非競爭的隨機接入,主要用于重新取得上行同步 (比如由于上行失步使用PDCCH order發起的RA)或者切換過程中與target cell取得上行同步,此時終端早已與基站建立了RRC連接,因此不存在建立RRC連接,只要獲取到基站發送的RAR消息之后,使用其中的Timing advance命令進行上行同步后,隨機接入流程也就結束了,相關參數主要是在信令RRCReconfiguration中的信令參數Rach-ConfigDedicated給出:
CFRA (非競爭的隨機接入):
?下面我們會對以上表格中的關鍵參數做詳細解釋。
大家可能首先就會注意到'ssb-perRACH-OccasionAndCB-PreamblesPerSSB'這個參數,正如以上表格所做的解釋:這個參數表明了每個RACH occasion對應的SSB個數以及每個SSB對應的基于競爭的preamble的個數。
說到這里,大家肯定很疑惑,為什么要把SSB和PRACH occasion放在一起考慮?在LTE里面,UE讀取到相關小區的PSS,SSS,MIB之后,直接按照SIB的配置來發起隨機接入就行了,到了NR為什么SSB提供了PSS,SSS和MIB之后還需要把它和PRACH occasion一起做隨機接入資源選擇呢?要知道這個原因,我們需要從5G NR的Beam management說起,如果大家看過之前的博文'波束管理(Beam Management)',我們在里面提到過beam sweeping的概念,什么意思呢?因為5G NR都是高頻空口資源,路損大,抗干擾性弱,因此5G NR采用的是beamforming的massive MIMO傳輸方式,也就是說NR中基站傳輸的空口信息都是帶有方向性的,在一定方向上是一束窄波。這樣又帶來一個問題,既然是在某一個方向上的窄波,那么5G NR基站如何能做到像LTE基站一樣具有覆蓋一定范圍的穩定信號(比如120度的扇形區域)。5G NR引入了天線陣列的概念,也就是說可以使用天線陣列形成多個beamforming從而達到覆蓋指定區域的目的,既然有多個beam,那么終端就要找到一個最適合自己的beam(即上下行信號質量最好的beam)來做隨機接入。為了區別每一個beam,NR基站可以在每個波束上配置不同的SSB(這里牽涉到小區搜索終端用戶的算法過程,不再展開討論),這些SSB具有不同的索引,對應的PRACH occasion也是不同的。 很顯然,當UE搜索到一個適合自己的beam后,讀取該beam上的SSB(包含PSS,SSS,MIB)后,通過SSB所在的時頻域位置就可以知道該SSB的索引(請參考博文‘小區同步流程’),通過該SSB的索引就可以知道對應的PRACH occasion索引(因為PRACH occasion是時頻域相關的,因此對于不同的beam,對應的PRACH occasion是不可能相同的),從而在該索引對應的PRACH occasion(也就是在通過SSB索引選定的beam)上發起隨機接入流程。
現在我們知道了在NR中為什么要把SSB和PRACH occasion關聯在一起的原因了。
下一個問題就是:'ssb-perRACH-OccasionAndCB-PreamblesPerSSB'這個信令參數只給出了每個SSB相關聯的RACH occasion的個數和每個SSB相關聯的preamble個數,終端是如何知道在5ms周期內的每個SSB上對應的RACH occasion的具體時頻域位置以及可以使用的preamble索引呢?
首先,終端必須知道基站有多少個SSB在周期性發送。終端通過系統消息SIB1中的信令參數'ssb-PositionsInburst'來知曉基站有多少個周期性發送的SSB:
?下一步,終端需要知道每個SSB是如何關聯到PRACH occasion和preamble上的。在這方面,3GPP做了如下硬性規定:
在這里,我們必須把CBRA (基于競爭的隨機接入)和CFRA (非競爭的隨機接入)分開來進行詳細介紹,因為這兩種場景對于PRACH資源的選擇方式是不同的。
基于競爭的隨機接入過程中的RA資源選擇
從參數‘ssb-perRACH-OccasionAndCB-PreamblesPerSSB’我們知道了每個SSB可以關聯多少個PRACH occasion和多少個preambles。這里需要注意的是,對于一個特定的SSB,它所對應的PRACH occasion必須有效才有意義,有效是什么意思呢:
- 對于FDD,或者在補充上行 (SUL)上發送的PRACH occasion,所有的PRACH occasion均為有效;
- 對于TDD,對于一個SSB而言,時域上在這個SSB最后一個OFDM符號后至少?(該變量取值請參考下表, N.B.,對于preamble format B4,該變量數值為0)個OFDM符號后出現的PRACH occasion均為有效PRACH occasion;
?那么現在問題就清楚了,對于N個SSB關聯一個PRACH occasion的場景,無論還是N < 1,每個SSB都是從自己的最后一個OFDM符號之后的個符號開始匹配第一個PRACH occasion。如果,那么就意味著多個SSB關聯到同一個PRACH occasion,而這個PRACH occasion在時域上的位置必然是晚于所有這些SSB,并且距離時域上最晚的一個SSB至少個OFDM符號;如果N < 1,這意味著一個SSB關聯到多個PRACH occasion上,也就是說從該SSB最后一個?OFDM符號之后的個符號開始連續1/N個PRACH occasons都關聯到該SSB,以下是一個簡單的示意圖 (假設不存在頻分復用的RO,每個RO都是在時域上連續分布):
?通過閱讀博文‘小區同步流程’,我們知道在NR中,在SSB的5ms周期內,按照子載波間距的不同和所處頻段的不同,一個小區最大可以發送的SSB個數可以為4,8,64。結合我們以上提到的場景,如果對RO在時域上不做額外的定義,僅僅按照PRACH的配置周期(PRACH Confiuration Period)去關聯SSB和RO,就有可能出現以下兩種情況:1. 無法保證每個SSB都可以關聯到至少一個有效的RO;2. 每個SSB關聯到至少一個有效的RO后,還有剩余的RO沒有可關聯的SSB。
?為了解決我們提到的這兩種情況,3GPP又提出了association period這一概念,一個association period是PRACH配置周期的倍數,具體見下表:
? ? ? ? ? ? ? ? ? ? ?
?N.B. PRACH configuration Period指的是38.211 Table 6.3.3.2-3/4中第三列所指示‘x’,見上圖。
一個association period從系統幀0開始,其持續時長如Table8.1-1所示為PRACH配置周期的整數倍 ,最大為160ms。對于PRACH配置周期為10ms,20ms,40ms和80ms的場景,一個association period可以配置為對應PRACH配置周期的N倍(請參考以上Table 8.1-1)。此時N具體取哪個整數值由以下條件確定:對于某個特定的PRACH配置周期,如果其對應的association period可以取多個數值,則取其中滿足可以使得每個SSB至少可以映射到一個PRACH occasion這一條件的最小的一個。
需要注意的是,在一個association period之后,如果仍然存在沒有關聯到SSB的PRACH occasion(s),那么這個(些)PRACH occasion(s)不能用于隨機接入流程。
下面我們再說一下preamble的選擇。preamble的選擇過程和LTE中preamble的選擇過程非常相似。在NR中,每個小區最多支持64個preamble,這64個preamble被分為三個部分,如下圖所示:
在配置信令時,基站可以設置信令參數:numberOfRA-PreamblesGroupA,來確定group A中的preamble個數。終端根據待發送的Msg3消息的大小(ra-Msg3SizeGroupA)和路損大小 (messagePowerOffsetGroupB)來確定使用group A還是group B中的preamble來發起隨機接入:
當終端待發送的Msg3的長度大于信令參數ra-Msg3SizeGroupA指定的數值;并且,
pathloss < 當前小區隨機接入的最大發射功率PCMAX -?preambleReceivedTargetPower -?msg3-DeltaPreamble – messagePowerOffsetGroupB;
其中,
PCMAX = min {終端最大發射功率,preambleReceivedTargetPower + 終端對PRACH occasion相關聯的SSB上的DMRS測量得到的實際路損};
信令參數msg3-DeltaPreamble在SIB1中定義, 表征msg3傳輸功率和RACH preamble傳輸功率之間的偏移量。
那么,終端選擇使用group B中的preamble發起隨機接入;否則,終端選擇group A中的preamble發起隨機接入。
對于基于競爭的隨機接入,基站并不需要為終端指定preamble索引。因此,終端只需要知道和SSB相關聯的preamble范圍即可:
當個SSB關聯到一個PRACH occasion上時,每個SSB所關聯的R ()個preambles,其索引范圍為,其中由信令參數totalNumberOfRA-Preambles給出并且必須是N的整數倍;
當1個SSB關聯到1/N (N < 1)個PRACH occasion上時,每個SSB上的R個preamble的索引范圍為(0,R)。
N.B. 正是由于終端可以自主選擇preamble索引, 才會引起隨機接入過程中的競爭行為。
非競爭的隨機接入過程中的RA資源選擇
非競爭的隨機接入過程通過基站為每個終端指定不同的PRACH occasion和preamble索引,避免了競爭的出現。這個是與基于競爭的隨機接入過程的最大不同。我們先看一下相關信令參數:
?
?其中的csirs部分屬于Beam Failure Recovery,與本博文主題無關,我們先不關注。以上表格中的信令參數ssb-ResourceList給出了隨機接入所需要的SSB(由SSB-Index指定)和preamble(由ra-PreambleIndex指定);信令參數ra-ssb-OccasionMaskIndex則給出了發送preamble所需的PRACH occasion (由PRACH occasion索引指定)。
看到這里大家肯定有個疑問:前面兩個都好理解,問題是最后一個,我怎么根據RO索引在時頻域上找到的PRACH occasion資源?
這里我們就要再次提到在“基于競爭的隨機接入過程中的RA資源選擇”一節中提到association period,這里需要注意2點:
因此,對于終端而言,只要找到SSB所對應association period就可以借助38.211 Table6.3.3.2-2或者Table 6.3.3.2-3并利用PRACH occasion index找到對應的PRACH資源。
Preamble發射功率
任何一種隨機接入過程中的preamble發射功率的功控都是開環功控,也就是說終端無法通過任何來自基站的反饋來調整preamble發射功率。終端只能通過preamble是否發送成功來判斷是否要按照以下方法調整preamble發射功率:
其中,preambleTransMax對應信令參數preambleTransMax,preambleReceived TargetPower對應信令參數:preambleReceivedTargetPower;DELTA_PREAMBLE由下表給出:
?
?為PRACH資源的子載波間距,由信令參數msg1-SubcarrierSpacing給出。
隨機接入響應接收
終端一旦發出preamble,就會開啟一個Msg2消息等待窗口等待RAR消息的到來,在這個窗口期內終端收到的RAR均認為有效。RAR窗口的長度和起始時間見以下示意圖:
Msg2消息由PDSCH承載,對應的PDCCH由RA-RNTI加擾,RA-RNTI由以下公式計算得出:
下面我們看看RAR到底向終端傳遞了哪些信息。
我們首先看看RAR的MAC PDU組成。RAR MAC PDU由一個或多個MAC subPDUs和padding(可選)組成。
RAR的MAC subPDU有以下幾種:
從上圖我們可以了解到,RAR一共有3個MAC subPDU:
1. BI,全稱是Backoff Indicator,用于隨機接入失敗后終端等待重新發起隨機接入的回退時間,回退時間一般是取0~scalingFactorBI*BI之間的一個任意值,scalingFactorBI是一個信令參數,如下表。另外需要注意的是BI是一個4個bits長度的字段,表示的是一個索引值,它所表示的真實時間如下表:
?2. RAPID,全稱是Random Access Preamble ID,其實就是終端發起隨機接入使用的preamble的索引號。這個地方我們需要著重說一下,前面我們說過在基于競爭的隨機接入過程中將選擇preamble索引的權限交由每個終端獨立進行是造成終端之間存在競爭的主要原因。現在我們可以解釋一下了,對于基于競爭的隨機接入,基站還是需要盡量避免終端之間的競爭接入,因為這會導致終端接入時間過長。基站主要通過以下兩個步驟來規避:
? ? ? ? ?1. 終端使用不同的preamble索引來發起隨機接入;
? ? ? ? ?2. 在發送Msg2消息時,加擾使用的RA-RNTI不同;
第一步我們已經說過了,終端自己選擇preamble索引,這個在很大程度上就可能使得不同的終端使用相同的preamble索引來發起隨機接入。此時就需要步驟2來保證不會引發競爭,如果RA-RNTI不同的話,那么不同的終端使用不同RA-RNTI來監聽Msg2對應的PDCCH,就可以保證不會引發競爭。但是在極端情況下,如果每個終端的RA-RNTI也相同 (這個是有可能的,請參考我們上面說的RA-RNTI的計算公式),這樣就會造成多個終端共同去監聽同一個Msg2消息。然后在檢查其中的RAPID之后,如果這些終端的preamble索引也相同,這些終端就會認為這個Msg2消息是給自己的,然后就會使用該消息中的UL grant發起Msg3消息,而承載這些Msg3消息的PUSCH在時頻域上是完全重合的,這樣就造成了競爭。
3. MAC RAR,這個就是Msg2消息中最重要的部分,承載著以下主要信息:
- Timing Advance,即上行時間提前量,用于指示終端提前多少時間發送上行傳輸以保證上行數據達到基站后能保證和基站的上行空口時間一致。該時間提前量是基站物理層通過測量終端發送的preamble來得到的。
- Temporary C-RNTI,即TC-RNTI。當終端競爭成功后,將TC-RNTI直接升級為C-RNTI。
- UL-Grant,上行授權。因為終端還沒有和基站建立RRC連接也沒有進行上行同步,因此沒法通過Scheduling Request來向基站請求上行授權進行上行傳輸,只能通過在RAR消息中攜帶上行授權信息讓終端發送第一條上行消息Msg3,也就是RRCSetupRequest,RRC連接請求。
下面我們主要看看UL grant的組成:
對于RAR中的‘PUCHfrequency resource allocation’和‘PUSCH time resource allocation’字段,我們需要詳細解釋一下。
Msg3時域位置
RAR中的‘PUSCH time resource allocation’字段長度為4個bits,這4個bits對應的數值范圍為0~15,對應信令參數PUSCH-TimeDomainResourceAllocation在信令參數PUSCH-TimeDomainResourceAllocationList中的位置,數值0對應PUSCH-TimeDomainResourceAllocationList中的第一個PUSCH-TimeDomainResourceAllocation,數值1對應PUSCH-TimeDomainResourceAllocationList中的第二個PUSCH-TimeDomainResourceAllocation,以此類推。
同時開始符號S和持續的連續符號個數L的確定還受PUSCH映射類型影響:
Msg3頻域位置
在R16中對于上行PUSCH傳輸引入了交織 (interlace)的方式,這樣在傳輸Msg3資源的時候,也增加了對于交織方式的描述。下面我們來一一介紹。
非交織方式
Msg3頻域資源的分配方式是uplink resource allocation type 1(即連續PRB分配方式), 對于一個長度為的initial UL BWP來說,終端按照如下方式處理頻域信息:
- 如果,則DCI format 0_0中的‘Frequency domain resource assignment’字段長度為,最大長度為14個bits。如果UL grant中的‘Frequency hopping flag’字段的數值不為0,則存在跳頻。具體形式如下:
- 如果,則需要在原有的14個bits中再添加個bits,這些bits均取值為0:
Msg3的PUSCH傳輸資源在頻域上的位置則由以上公式中的RIV部分確定:
?當存在跳頻時,上面公式中提到的的長度以及對應的跳頻方式由下表確定:
交織方式?
在交織方式下,Msg3頻域資源的分配方式是uplink resource allocation type 2 ,終端按照如下方式處理頻域信息:
- 對于PUSCH SCS = 15 kHz的場景,DCI format 0_0中的‘Frequency domain resource assignment’字段長度為6 bits; 對于PUSCH SCS = 30 kHz的場景,DCI format 0_0中的‘Frequency domain resource assignment’字段長度為5?bits;
- 對于使用RAR UL grant提供的上行資源進行上行傳輸的Msg3消息,組成該上行資源的RB set僅有一個
DCI format 0_0中的'Frequency domain resource assignment'字段即為RIV信息:
- 對于PUSCH SCS = 15 kHz的場景
? ? ? ?
- 對于PUSCH SCS = 30 kHz的場景,RIV使用位圖的方式來指示UL grant所對應的上行資源的交織信息:
N.B.
1. 交織 (interlace)的概念是R16引入的,Uplink resource allocation type2使用的就是基于交織和RB set的分配方式,這個我們會在后面講上下行資源分配方式的時候詳細介紹。
2. 交織這個概念的引入主要是用于unlicensed spectrum上面,用于滿足OCB(Occupied Channel Bandwidth)的需求以及彌補由于PSD (Power Spectrum Density)限制造成終端上行發射功率受限的場景。
3. 我對于非授權頻譜共享這塊不打算仔細研究,因為這塊內容的市場主要是在北美。上面的內容我已經做了灰化處理,原因一是不打算深入研究,二是我再次校對的時候發現在“Frequency domain resource assignment”這塊的描述上有所遺漏,所以請大家略過這部分內容。如果以后我發現非授權共享頻譜需求場景很多,我會單獨開一篇博文來介紹。
對于非競爭的隨機接入過程而言,當接收到RAR之后,終端和基站取得上行同步,非競爭的隨機接入過程到此也就是結束了。而對于基于競爭的隨機接入過程而言,再下面就是極其重要的競爭解決流程。
競爭解決 (Msg3/Msg4)
終端在收到RAR,利用RAR消息中的Timing advance取得與基站的上行同步之后,就會使用RAR中攜帶的UL grant所指示的上行時頻域資源來發送Msg3,對于終端接入小區的隨機接入流程而言就是RRC消息:RRCSetupRequest。
首先我們來看看終端是如何知道基站指示其在哪個時刻發送Msg3的。在本文前面我們提到過終端如何從RAR消息中獲取到值的,據此我們就可以得到Msg3在時域上哪個時刻可以發送:
Msg3消息包含了一個長度為48個bits的競爭解決Id的MAC CE,如下:?
?同時Msg3還攜帶了RRCSetupRequest信令消息。
終端在發送了Msg3消息之后,同時會開啟ra-ContentionResolutionTimer定時器,在該定時器超時之前,終端都會持續監聽Msg4的PDCCH。如果該定時器超時,則終端認為競爭失敗,重新發起隨機接入流程。
在以接入小區為目的的隨機接入流程中,Msg3為第一條可以重傳的上行PUSCH傳輸,當Msg3傳輸失敗時,終端重傳Msg3消息,并重新啟動ra-ContentionResolutionTimer定時器。
基站在接收到終端發送的Msg3之后,會向某一個終端發送Msg4 (即RRCSetup消息,該消息對應的PDCCH使用RAR中指示的TC-RNTI加擾),并在承載msg4消息的PDSCH的MAC CE中攜帶該終端在Msg3中發送的競爭解決Id。處于競爭中的多個終端在接收到Msg4消息后,會將消息中的競爭解決Id取出來與自己Msg3中的競爭解決Id做對比,如果兩者相同,則該終端認為競爭解決成功,發送Msg5消息 (即RRCSetupComplete);否則,終端認為競爭失敗,重新發起隨機接入流程。
?
Reference
3GPP 38.214 Physical layer procedures for data
3GPP 38.331 Radio Resource Control (RRC) protocol specification
3GPP 38.133 Requirements for support of radio resource management
3GPP 38.213 Physical layer procedures for control
總結
以上是生活随笔為你收集整理的随机接入流程 - 4 Step RA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 开发 Flutter
- 下一篇: c语言编程第四版李丽娟课程,C语言程序设