DL HARQ UCI in PUCCH — R16
我們知道NR有兩級重傳機制HARQ和ARQ。HARQ是MAC層的重傳機制,簡單說就是UE收到PDSCH之后,給網絡側回復一個HARQ-ACK或者HARQ-NACK,告知PDSCH是否成功接收。而ARQ是RLC層的重傳機制,可以保證一個AM PDU正確無誤傳輸到接收側。
HARQ使用的是停等協議來發送數據,并且多個線程并行傳輸,簡單理解就是比如在線程1上,網絡側發PDSCH,然后停下來等UE回復是否成功收到,然后繼續發下一個PDSCH,而類似線程1這樣的線程有很多在并行傳輸,線程2、線程3… 這里的線程就是HARQ ID。在調度PDSCH的DCI內,會攜帶HARQ相關的一些信息,比如HARQ ID、NDI等。UE通過HARQ反饋信息來告知網絡側是否成功接收,這個反饋信息可以承載在PUCCH內。PUCCH內傳輸的內容叫做UCI,UCI不只有HARQ feedback這一種信息。
上行控制信息(UCI)的類型即為其包含的內容,有HARQ-ACK,SR,LRR和CSI這四種。相比R15,多了一個LRR(link recovery request),簡單理解就是UE在監測到無線鏈路發生了問題時,可以通過LRR來進行鏈路恢復,這里暫時不對LRR做詳細介紹。而對于HARQ-ACK UCI,R16并無太大變化。
UE可以在一個slot內的不同symbol上傳輸至多2個PUCCH,當在一個slot內傳輸2個PUCCH時,且參數ackNackFeedbackMode = separate未提供,則至少其中1個PUCCH必須是format 0或format 2;如果提供了參數ackNackFeedbackMode = separate,則UE可以在一個slot內的不同symbol上傳輸至多2個包含HARQ-ACK信息的PUCCH。這個參數也是R16新添加的,用于指示一個slot內的2個(如果是2個的話)ACK/NACK反饋是采用聯合指示還是分開指示。
在進行HARQ-ACK反饋的時候,如果UCI的bit數大于等于360的話,則對應的CRC bit數為11,否則CRC的bit數根據38212中的公式確定。
下面具體介紹一下HARQ-ACK反饋的UCI,以及PUCCH的一些內容,其余UCI type(SR/LRR/CSI)相關的內容以及和HARQ-ACK反饋無關的PUCCH的內容這里暫時不做具體介紹。
1 PUCCH Resource
UE在收到PDSCH后想要在PUCCH內承載HARQ-ACK UCI,首先得有PUCCH資源可供使用。PUCCH資源有兩種配置方式,一種是小區級別的配置,另一種是UE dedicated的配置。
1.1 小區級別配置
小區級別的配置承載在SIB1內,在這個小區內完成駐留的UE都可以使用,一般用于UE完成RRC連接建立之前。通過參數pucch-ResourceCommon指示一個index,這個index指向下表的對應行,該行內的參數用于指示可供使用的PUCCH resourc set,包括PUCCH format、在slot內的起始symbol和所占symbol數量、PRB offset,和初始循環移位索引(該參數用于序列生成,從而達到多用戶復用的目的)。還可以看到此時的format只有0和1,因為此時RRC連接還沒有建立,UE需要反饋的內容很少,用format 0和1就足夠滿足需求了。
當UE此時要在PUCCH內傳輸HARQ-ACK UCI時,調度對應PDSCH的DCI內會指示PRI(PUCCH Resource Indicator),然后計算r
其中NCCE是對應CORESET內的CCE數量,nCCE是PDCCH的第一個CCE的index,因為此時沒有完成建立,所以一般是CORESET#0,△PRI是DCI內的PUCCH resource indicator。
對于具體的PUCCH所在的PRB index的確定,分為跳頻和不跳頻兩種情況,參數useInterlacePUCCH-PUSCH指示是否跳頻,可以分別描述如下:
1.2 UE級別配置
當完成RRC連接建立之后,網絡就可以為UE配置單獨的PUCCH資源。這種UE dedicated的資源通過PUCCH-Config內的PUCCH-ResourceSet IE配置。
一個PUCCH-ResourceSet內可以包含多個PUCCH-Resource,對應的參數會指示這個resource的起始PRB、是否跳頻、PUCCH format等。我們可以看到UE dedicated的PUCCH資源可以支持更多的format和更多的物理層資源可供使用。
除了資源以外,其他的一些相關參數也都在PUCCH-Config和BWP-UplinkDedicated內,如參數useInterlacePUCCH-PUSCH,其或配置在所有的UL BWP中或者任何UL BWP都不配置;還比如參數initialCyclicShift,nrofSymbols,startingSymbolIndex等,從名字中也不難看出其指示的含義;當配置了format 1時,還會指示參數timeDomainOCC,OCC即orthogonal cover code;當配置了format 2和3的時候,還會有參數nrofPRBs,和可能有的occ-Length以及occ-Index;當配置了format 4時,其一定含有參數occ-Length和occ-Index。這里不詳細列舉所有的參數,上面也只對resource相關的參數進行了簡單的概括,還有很多序列生成等相關的參數,感興趣的可以參考38211和38331。
如果高層側配置了多個resource set可供使用時,當UE進行UCI HARQ-ACK反饋的時候,會根據包含的信息bit O_“UCI” 的多少來決定使用哪個resource set:
- pucch-ResourceSetId = 0,當O_“UCI” ≤2且其中1或2 bit為HARQ-ACK信息,剩下的為SR時;
- pucch-ResourceSetId = 1,當〖2<O〗_“UCI” ≤N_2 (N_2 = maxPayloadSize);
- pucch-ResourceSetId = 2,當〖N_2<O〗_“UCI” ≤N_3 (N_3 = maxPayloadSize或1706;
- pucch-ResourceSetId = 3,當〖N_3<O〗_“UCI” ≤1706.
上面每種情況下的maxPayloadSize是對于當前resource set而言,即resource set 1的maxPayloadSize和resource set 2的maxPayloadSize大小是不同的(前提是resource set 1和2都配置了且都提供了參數maxPayloadSize)。
一種特殊的情形在于,當HARQ-ACK用于反饋SPS PDSCH 的接收時,UE使用PUCCH-AN-List中sps-PUCCH-AN-ResourceID所指示的PUCCH資源進行HARQ-ACK反饋。
2 PUCCH Formats
NR R16 PUCCH支持5種不同的格式,適用于不同的情形,比如信號的覆蓋,UCI type的組合等。按照時域上所占用的符號數量可以分為短格式和長格式兩種,如38211中表格所示。短格式占用1-2個符號,可以承載1-2bit信息,長格式占用4-14個符號,可承載大于2bit的信息。NR引入短格式PUCCH的目的是可以縮短HARQ-ACK反饋的時延,長格式仍然是考慮到持續時間長可以保證覆蓋。在考慮使用哪種格式的PUCCH時,UE會考慮PUCCH所占符號長度和UCI的bit數。
另外對于符號數和bit數相同的format 3和4,當PUCCH resource不包含orthogonal cover code,或在BWP-UplinkDedicated中提供了參數useInterlacePUCCH-PUSCH時,用format 3;當PUCCH resource包含orthogonal cover code且BWP-UplinkDedicated中參數useInterlacePUCCH-PUSCH未提供時,使用format 4。對于R15而言,format 3和format 4的區別只在于是否包含了OCC(orthogonal cover code)。
3 UE procedure for reporting HARQ-ACK
過程并不復雜,注意以下幾點就行。
如果未配置參數ackNackFeedbackMode = separate,UE在同一個slot內最多傳輸1個包含HARQ-ACK的PUCCH。
UE在反饋HARQ-ACK的時候,需要在接收到的PDSCH和反饋ACK的PUCCH之間有一個delay,這個delay為k個slot,這段時間用于UE來生成這個UCI。delay在接收DCI format 1_0調度的PDSCH時,由DCI中的PDSCH-to-HARQ_feedback timing indicator來指示,取值在范圍{1, 2, 3, 4, 5, 6, 7, 8}內;對于DCI format 1_1和DCI format 1_2,還有額外的參數dl-DataToUL-ACK, dl-DataToUL-ACK-r16, dl-DataToUL-ACKForDCIFormat1_2(當配置了dl-DataToUL-ACK-r16則忽略dl-DataToUL-ACK)提供一個list,再根據PDSCH-to-HARQ_feedback timing indicator按照下表規則進行指示,即此時DCI中的這個域指示的是使用list中的第幾個值,而不是直接指示delay的值。
另外,在TDD情況下,PUCCH的傳輸自然也受上下行配置的限制。
對于使用哪個PUCCH resource,在確定了PUCCH resource set之后,由DCI中的PUCCH resource indicator指示使用resource set中的第幾個resource,如果DCI中未指示PUCCH resource indicator,則默認使用第一個。
當PUCCH resource set中resource的數量大于8個時,UE根據下式確定resource index。
如果為配置參數SPS-PUCCH-AN-List 且UE需要傳輸無對應PDCCH的PDSCH的HARQ-ACK,則PUCCH resource由參數n1PUCCH-AN指示。
有時HARQ-ACK和其他UCI type會復用在同一個PUCCH內傳輸,此時會為UE配置參數simultaneousHARQ-ACK-CSI;否則UE會丟掉CSI,在PUCCH內只傳輸HARQ-ACK。此時只適用于PUCCH format 2、3和4,因為根據前面的描述,我們知道PUCCH format 0和1的bit數太少了。另外在PUCCH format 0和1的SR和HARQ-ACK復用的情況下,UE選擇只傳輸HARQ-ACK。
如果只提供了一個PUCCH resource set用于傳輸HARQ-ACK,則UE不希望配置simultaneousHARQ-ACK-CSI。
對于PUCCH format 1, 3, 4, 當配置了參數nrofSlots時,UE會在連續的若干個slot里重復同一個UCI,且UE不希望參數nrofSlots和subslotLengthForPUCCH同時配置。參數interslotFrequencyHopping會指示UE是否在這連續的多個slot內進行時隙間的PUCCH跳頻。如配置了跳頻,則偶數slot內的起始PRB為startingPRB,奇數slot內的起始PRB為secondHopPRB。
上面提到很多HARQ相關的參數,有的在信令中,有的在DCI中,這里將DCI中的HARQ相關的參數列舉如下(以DCI format 1_1為例)。
- HARQ process number – 4 bits,HARQ進程號,即HARQ ID;
- PUCCH resource indicator – 3 bits,指示用于HARQ-ACK的PUCCH resource;
- PDSCH-to-HARQ_feedback timing indicator – 0, 1, 2, or 3 bits,指示上述delay的大小;
- One-shot HARQ-ACK request – 0 or 1 bit,指示UE將全部的HARQ進行的feedback都上報;
- New data indicator – 1 bit,指示其為新傳還是重傳,用一個HARQ ID,NDI翻轉表示新傳;
- Redundancy version – 2 bit,指示冗余版本,即該次為第幾次重傳。
總結
HARQ-ACK碼本生成這里不做討論,上面的具體細節也暫時隱藏起來,一些特殊的情況也不做討論,我們可以將DL HARQ用幾句話簡單總結一下就是:UE收到DCI調度的PDSCH之后,為了讓網絡側知道是否接收成功,需要給網絡側一個HARQ反饋,這個反饋可以放在PUCCH內傳輸。HARQ相關的一些信息攜帶在調度PDSCH的DCI內,網絡側在拿到反饋之后,通過DCI當中的信息告知UE所傳輸PDSCH的HARQ ID、新傳還是重傳、第幾次重傳等信息。
總結
以上是生活随笔為你收集整理的DL HARQ UCI in PUCCH — R16的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G NR RLC:PDU Parame
- 下一篇: 5G NR Rel16 Measurem