NR PUCCH(四) UL data operation

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: UE 在connected mode 需要实时和网络进行上下行通信,在UE有UL data要发送但是没有UL grant时,就需要向网络端发送SR请求资源,网络收到SR就会在激活的BWP上发送 UL DCI给UE,UE 根据UL DCI 信息 获得UL grant ,然后在PUSCH对应的资源上就可以发送UL data给网络,最后网络端通过HARQ 过程指示是否有收到对应的data。这是UL data 的基本流程,下面通过实际log分别看下UL data operation的各个过程。

UE 在connected mode 需要实时和网络进行上下行通信,在UE有UL data要发送但是没有UL grant时,就需要向网络端发送SR请求资源,网络收到SR就会在激活的BWP上发送 UL DCI给UE,UE 根据UL DCI 信息 获得UL grant ,然后在PUSCH对应的资源上就可以发送UL data给网络,最后网络端通过HARQ 过程指示是否有收到对应的data。这是UL data 的基本流程,下面通过实际log分别看下UL data operation的各个过程。


UL data operation流程图如下。

6bee234d56fe4f528d7648dff4ae5aac.png

上图主要分为四个步骤:


SR: 向网络端发出请求, 要网络端提供上行资源。


UL grant: 网络端收到SR后提供给UE的上行资源, 包含RB, MCS, TBS, … 涉及时频域资源的分配。


PUSCH data: UE在PUSCH由UL grant指定的资源发出UL data。


PDCCH NDI: 网络端通过PDCCH的New Data Indicator (NDI)告诉UE,有无收到PUSCH data, 如果有正确收到, 则会翻转NDI的值, 0或1


UL/DL data operation中经常提及的几个参数代表的含义总结如下


K0:在PDCCH上收到DL DCI后需要去PDSCH 上接收DL data,K0代表DL grant与DL transmission 时间偏移,即DL DCI 的时隙和调度PDSCH 时隙的偏移间隔,需要结合DCI field Time domain resource assignment的value作为索引在PDSCH-TimeResourceAllocationList中找映射值,初始接入时要根据默认的PDSCH 时域资源分配表确定(参见NR PDSCH(一) 时域资源)。


K1:从PDSCH 上收到DL data后,UE 需要在PUCCH 上发送HARQ ACK/NACK消息给网络端,K1代表PDSCH 接收的slot n与 PUCCH 进行HARQ-ACK的 时隙偏移,根据DCI PDSCH-to-HARQ_feedback timing indicator field与RRC 层参数dl-DataToUL-ACK/dl-DataToUL-ACK-r16/dl-DataToUL-ACKForDCIFormat1_2确定(参见NR PUCCH(三) PUCCH resource 的配置与调用)。  


K2:从PDCCH 上收到UL grant,需要去PUSCH 上发送UL data。K2代表UL grant与UL transmission 时间偏移,即UL DCI 的时隙和调度PUSCH 时隙的偏移间隔 (后面PUSCH再具体说),需要结合DCI 中的Time domain resource assignment field 及RRC 层配置pusch-TimeDomainAllocationList确定,初始接入时和PDSCH一样有规定默认配置 。


Scheduling Request 会在RRC连接态,UE没有上行资源时,通过PUCCH resource发送。


根据RRC OTA中配置的SR资源 schedulingRequestID 0,可以确定mapping到PUCCH resource 是 pucch-ResourceId 16;PUCCH resource对应 PUCCH format 1 ,通过startingSymbolIndex 0 及nrofSymbols 14,可以确定PUCCH format 1占用14个符号也就是占满一个时隙,有enable时隙内跳频,StartingPRB 272, secondHopPRB 5是跳频相关的参数。

8b0ca9ee1b8b4a31a9d3c12c64d98074.png

PUCCH format 1一个时隙内对应时频域示图如下:

03ae5f757532498897a70b7f6d8ac244.png

SR发送周期及偏移periodicityAndOffset sl40 : 38 ,即每40个时隙 传一次,要在第39个时隙传输SR(index 0~39)。


从log中看到UE 在frame 573 slot 18 用PUCCH format 1 发送了SR,根据38.213 9.2.4中确定SR发送时机的公式,可知frame 573 slot 18满足公式,确实是可以发送SR(SCS=30khz N_frame_slot =20),计算过程如下。PUCCH power control暂时先忽略,后面具体讲述时再举例。

a7c22b43e2f64f8a91effa06a2eb1667.png

SR发送时机内容参见NR PUCCH(一)


UE 在frame 574 slot 5收到了UL grant  DCI 0_1,带有MCS RB等信息,UE通过DCI  Time domain resource assignment field结合pusch-TimeDomainAllocationList,确定K2,Q log中需要根据Symbol Alloc Index确定 Time domain resource assignment ,Symbol Alloc Index=Time domain resource assignment=0 。

9239d3c9599147e4a0bddbe36cca483d.png

有时候pusch-ConfigCommon和pusch-Config 都会包含 pusch-TimeDomainAllocationList,这时候要根据38.214 Table 6.1.2.1.1-1确定要用哪个pusch-TimeDomainAllocationList;目前所看的log对应的就是最后一项,所以要以pusch-Config 中的pusch-TimeDomainAllocationList为准。

90db8572a345480aa1eca30f9d6ad22b.png

pusch-Config 中的pusch-TimeDomainAllocationList如下

ea41dd1ba6c94e4fb440fdec4631a4f6.png

根据Time domain resource assignment 确定mappingType为 type B, K2 =3 即UE需要在frame 574  slot 8对应的资源上发送PUSCH data。startSymbolAndLength =27 对应S=0  L=14,如下log中 在frame 574  slot 8 对应的资源上发送了PUSCH data,其中Start symbol=0,symbol number =14 正好对应S=0  L=14。

4456e50ef17e407e8639d61c4fcce763.png

再看下频域分配,UE支持基于DCI的BWP change 时BWP indicator才有效,其bits由RRC层配置的BWP数量决定(不考虑initial BWP,DL/UL的描述时一样的,这里截的是DL部分),如果n_BWP=n_BWP,RRC+1(n_BWP,RRC<=3),这时候按照BWP id由小到大得顺序,根据BWP ind确定;假设这里除了initial BWP外,还配置其他了4个BWP,那这时候要采用Table 7.3.1.1.2-1确定BWP id,BWP ind为Bandwidth part indicator field 取值为1,代表用的是RRC配置的BWP-id=2 的BWP,RA type =1.UL RB分配 start RB 为144,RB number为4。

538649b8c1bd4abdb43b0dd2577676de.png

fd390ab8170b4ed18697090526126799.png

最后一步,PUSCH data发送出去了,如何确定网络端是否有收到呢?我们知道UE 收到DL data 后可以在PUCCH 上发送HARQ-ACK.NACK通知网络端,而UL data发送给网络端后,主要是通过网络再次下发 UL DCI 的HARQ process number和New data indicator (NDI) field 来确定网络端是否有收到UE 的UL data。


在同样的HARQ process上NDI有toggle (由1翻转为0,或由0翻转为1), 代表网络端有收到PUSCH data 即ACK。


New data transmission: 相同HARQ ID 及NDI toggled;


Data retransmission: 相同HARQ ID 及NDI没有toggled。


这份log中 在frame 574 slot 5上收到HARQ id 0 的DCI 0_1 NDI=0 RV= 0,之后在frame 574 slot 15上收到了HARQ id 0 DCI 0_1 NDI =0,RV=2;最后在frame 575 slot 5上收到HARQ id 0 的DCI 0_1 , RV= 0,NDI=1 ,NDI 翻转 说明 网络端有收到对应的data,即最后这次进行的是new data传输。

c449eabcffc14753ae4f87c9a2c18d44.png

上面的log对应的R15版本的内容,其他未提及的内容后面会在PUSCH/HARQ/CSI等部分再说。

相关文章
|
6月前
|
XML C# 数据格式
The data at the root level is invalid. Line 1, position 1.
The data at the root level is invalid. Line 1, position 1.
107 0
|
6月前
What value should kernel parameter AIO-MAX-NR be set to ?
What value should kernel parameter AIO-MAX-NR be set to ?
60 0
|
6月前
|
存储
tracker_query_storage fail, error no: 28, error info: No space left on device
tracker_query_storage fail, error no: 28, error info: No space left on device
159 0
NR PDSCH(六) DL data operation
NR中,网络端会根据UE业务动态的调整BWP,进而改变频域资源范围;不同的BWP会配置CORESET/Searchspace确定不同的时频域资源,让UE在对应的资源上进行盲检接收DCI;通过DCI获得调度信息后,再去PDSCH对应的时域资源和频域资源上 decode data。
成功解决absl.flags._exceptions.UnrecognizedFlagError: Unknown command line flag 'data_format'
成功解决absl.flags._exceptions.UnrecognizedFlagError: Unknown command line flag 'data_format'
|
安全 API
Read-only dynamic data
lwn文章翻译,原文[链接](https://lwn.net/Articles/750215/) ## 简介 本文主要讲述的是一种动态内存的只读保护机制。 ## 原文 内核开发者可以对想保护的数据设置为read-only权限,借助于MMU来避免恶意攻击者的篡改。kernel目前已经支持只读内存保护,但这些内存必须在操作系统自举完成前被初始化,所以局限性很大。Igor Stoppa的
979 0