LTE下行物理层传输机制(5)-DCI格式的选择和DCI1A

PDCCH信道传输的是与物理上下行共享信道(PUSCH、PDSCH)相关的控制信息,即DCI信息(Downlink Control Information),这些DCI信息包含了诸如RB资源分配信息、调制方式MCS、HARQ-ID等等若干相关内容。终端只有正确的解码到了DCI信息,才能正确的处理PDSCH数据或PUSCH数据。


不同的DCI信息,它的目的可以是不同的,比如,有针对下行RB资源进行分配的DCI,有针对上行RB资源进行分配的DCI,有针对上行功率控制进行调整的DCI,有特别针对下行双流空分复用的DCI。协议对这些DCI进行了分类,用不同的DCI格式进行区分。

在R9版本的协议中,总共定义了以下几种DCI:DCI0、DCI1、DCI1A、DCI1B、DCI1C、DCI1D、DCI2、DCI2A、DCI2B、DCI3、DCI3A。其中,DCI0、DCI3、DCI3A是与上行PUSCH或PUCCH相关的DCI类型,而DCI1、DCI1A、DCI1B、DCI1C、DCI1D、DCI2、DCI2A、DCI2B,是针对下行PDSCH的DCI类型

1. 不同场景下使用哪种DCI格式

DCI格式这么多,那么某个特定的PDCCH信道,需要采用哪种具体的DCI格式呢?

如果PDSCH是由SI-RNTI加扰,那么DCI格式可以使用DCI1A或DCI1C,具体由eNB侧的实现来决定使用哪种格式,如下表。从表格中也可以看到,这个时候的CCE仅分布在公共搜索空间,终端盲检的时候也只需要在公共空间进行。


如果PDSCH是由P-RNTI加扰,那么DCI格式可以使用DCI1A或DCI1C,如下表。


如果PDSCH是由RA-RNTI加扰,那么DCI格式可以使用DCI1A或DCI1C,如下表。


如果PDSCH是由TC-RNTI加扰,那么DCI格式可以使用DCI1A或DCI1,如下表。


如果PDSCH是由C-RNTI加扰,那么DCI格式需要综合当前终端的TM模式(transmissionMode参数)考虑,如下表。此时CCE的搜索空间也不再仅限于公共搜索空间了。

如果PDSCH是由SPS-RNTI加扰,那么DCI格式也需要综合当前终端的TM模式考虑,如下表。


2.不同RNTI的使用场景

上面提到了不同的RNTI,每种RNTI使用的场景如下表所示。比如当发送寻呼消息或SI变更通知消息这两种数据时,需要使用P-RNTI加扰PDSCH数据;当需要发送MSG3或需要进行冲突解决时,需要使用TC-RNTI加扰。


不同的RNTI,它的取值范围也不一样,如下表。


3.DCI码流的高低位问题

DCI码流是以比特bit)为基本单位进行传输的,这就意味着同一个字段(比如RB分配字段,MCS字段,NDI字段等等),可能会跨越多个字节,这就涉及到将多个bit拼接成一个完整字段时,必须需要知道的高低位问题。比如DCI中的某个字段占用了5个bit,其中有1个bit被分配在一个低字节中,而另外的4个bit被分配在一个高字节中,那么怎么将这5个bit成功的拼接成一个完整的字段,是需要明确的。

为了说明这个问题,协议首先约定,DCI码流中的所有字段,都依次映射到a0,a1,...,an比特中,第1个字段从a0开始映射,如下图所示,码流中的比特位依次从低字节向高字节填充。


其次,如果某个字段包括了多个bit位,则MSB对应着这个bit流的最低位。以上图为例,如果某个DCI的前12个bit的码流是二进制100111110111,则字段1的值=1,字段2的值=0,字段3的值=Bin(01111)=15,字段4的值=Bin(10111)=23。eNB侧在编码的时候,DCI的第一个字节的值=Bin(10011111)=0x9F,第二个字节的值=Bin(01110000)=0x70(假定a11以后的bit均为0)。

4.DCI1A格式中各字段的定义

本文将描述下行调度分配中用的较多的DCI1A格式。PDCCH信道承载的DCI1A格式的码流,它有2种作用:第一个作用,也是最常使用的作用,是承载当前子帧PDSCH的调度控制信息;第二个作用,就是网侧通过DCI1A发起PDCCH Order,触发非竞争随机接入过程。关于非竞争随机接入相关内容,请参考《LTE-TDD随机接入过程(6)-分场景描述竞争接入和非竞争接入的流程》。

如果DCI1A用做PDCCH Order,触发非竞争随机接入过程,那么此时该DCI各字段的bit位定义如下:

- DCI0/DCI1A格式指示位 – 1bit。当该bit值=0,表示当前的DCI格式是DCI0,当bit值=1,表示当前的DCI格式是DCI1A。

- 集中式或分布式的VRB分配指示位。– 1 bit。固定填0。

- RB资源分配字段  [log2(N_DL_RB*(N_DL_RB+1)/2) ]向上取整bits。有时候简写为RIV字段。所有bit位的值均固定填1。 比如:当前下行带宽是1.4MHz,那么N_DL_RB=6,所以[log2(N_DL_RB*(N_DL_RB+1)/2) ]向上取整=[log2(6*(6+1)/2)]向上取整=[log2(21)]向上取整=[4.39]向上取整=5。因此,该字段的5个bits均要固定填1。

- 前导码索引Preamble Index– 6 bits。这个参数由eNB侧的RRC配置,终端发起非竞争随机接入时,需要在PRACH中填写该前导码索引。

- PRACH掩码索引PRACH Mask Index – 4 bits。这个参数同样由eNB侧的RRC配置,决定了PRACH信道的位置,具体参考《LTE-TDD随机接入过程(4)-RIV的解析和Preamble资源的选择》。

- 其它剩余的bits位均填0。对于特定的下行带宽来说,DCI1A有着固定的bit长度,比如LTE-TDD制式且下行带宽=20MHz时,DCI1A的长度是31bits(具体计算过程见下文),那么当DCI1A用作PDCCH Order的时候,此时有效字段只用到了(1bit+1bit+13bits+6bits+4bits)=25bits,还有(31-25)=6bits没有用到,此时需要将末尾的6bits全部填0。

如果DCI1A不是用作非竞争接入,即不用作PDCCH Order,而是用作PDSCH的调度信息,那么此时该DCI各字段的bit位定义如下:

DCI0/DCI1A格式指示位 – 1bit。当该bit值=0,表示当前的DCI格式是DCI0,当bit值=1,表示当前的DCI格式是DCI1A。

集中式或分布式的VRB分配指示位。– 1 bit。如果是集中式的VRB分配则该bit位填0,若是分布式的VRB分配则该bit位填1。关于集中式和分布式的区别后面单独再详细介绍。

RB资源分配字段  [log2(N_DL_RB*(N_DL_RB+1)/2) ]向上取整bits,计算bit位的方式与PDCCH Order相同。需要说明的是,无论是集中式分配VRB还是分布式分配VRB,DCI1A只支持VRB连续分配的场景,因此此时RB资源分配会涉及到2个问题,第一是PDSCH数据占用的RB的起始位置在哪里,第二是占用的RB的长度是多少。要解决这两个问题,就需要在这一个RIV字段中同时编码这两个信息。协议是这么规定RIV的含义的:


比如某个PDSCH对应的VRB起始位置=4,RB长度=8,下行带宽是20MHz,那么公式中的L_CRBs=8,N_DL_RB=100,RB_start=4,此时:

L_CRBs-1=8-1=7,(N_DL_RB/2)向下取整=50>7。所以此时eNB填写的RIV=100×(8-1)+4=704。

- MCS字段 – 5bits。PDSCH中数据的编码调制方式。范围是0~28。

- HARQ-ID号 – 3 bits (FDD) , 4 bits(TDD)。因为FDD的HARQ个数固定是8个,所以3个bits就够用了。

- NDI指示 – 1 bit。终端根据NDI是否有反转,来判断当前的PDSCH数据是否是新传还是重传。如果反转了则表示是一次新传,而如果没有反转,则表示是一次重传。

- RV冗余版本 – 2 bits。如果是重传,一般是按照0、2、3、1、0的规律传输,但网侧在实际实现时,处于某些场景的考虑,可能不一定完全按照这个顺序。

- TPC command for PUCCH – 2 bits。这里需要区分2种场景:

(1)如果是RA-RNTI、P-RNTI、SI-RNTI加扰:此时2bit的TPC只使用LSB的这个bit位,若LSB=0,则表示N_1A_RB=2,若LSB=1,则表示N_1A_RB=3。但这里需要说明的是,这个N_1A_RB=2或3的意思不是说对应的PDSCH只能使用2个RB或3个RB。比如eNB下发SIB,LSB(TPC)=0,此时N_1A_PRB=2,但PDSCH使用的RB是根据前文描述的“RB资源分配字段”来解码的,即SIB可以使用4个RB或更多的RB。不过无论PDSCH使用的RB是多少个,根据36213-7.1.7.2.1表格查找到的TBS,必须要能在RB=2或RB=3的那一列TBS中能找到。举个例子:比如发送SIB的DCI1A中,解码RIV字段得到RB=4,解码MCS字段=1,解码TPC字段=3。根据RB和MCS字段,可以得到TBS=144bits,这个144bits应该也能够在表格的RB=3这一列中找到。实际查7.1.7.2.1表,可以发现144bits确实在RB=3这一列存在,且此时MCS=2。

(2)如果是CRNTI等其他RNTI加扰:那么这2bits就表示PUCCH信道的TPC调整值。2bit的范围是0~3,不同的值表示不同的功率调整值,具体如下表所示。如果终端解码到的TPC=1,则表示PUCCH的功率调整幅度=0dB,即下一次PUCCH信道的发送功率不调整;如果TPC=2,则表示下一次的PUCCH信道的发送功率向上调整1dB。


- DAI字段  – 2 bits。这个字段只在LTE-TDD中使用,在FDD中没有这个字段。对于TDD来说,这个DAI字段也只在上下行子帧配置是1~6的时候有效。我们知道,在空口中传输数据是很有可能丢失的,对于PDSCH或PUSCH来说,可以通过HARQ和ARQ来进行保证,但对于控制信道的DCI来说,是没有握手机制的,因此网侧在发出一次PDCCH之后,并不清楚终端有没有接收到这个DCI信息,或者说终端并不知道自己有没有漏掉DCI。那么引入这个DAI字段就可以用来判断是否有DCI的丢失,比如终端解码到了同个HARQ进程的2个DCI1A(没有其他的DCI),其中的DAI值分别是1和3,那么终端就可以知道,这个HARQ进程的DAI=2的那个DCI1A没有检测到,被丢失了。关于DAI的更详细的内容,在后续讲解下行HARQ应答的时候再具体讨论。

如果当前的下行带宽是20MHz,采用LTE-TDD制式,那么DCI1A的bit长度=(1+1+13+5+4+1+2+2+2)=31bits。

参考文献:
(1)3GPP TS 36.212 V9.4.0 (2011-09) Multiplexing and channel coding
(2)3GPP TS 36.213 V9.3.0 (2010-09) Physical layer procedures
(3)3GPP TS 36.321 V9.6.0 (2012-03) Medium Access Control (MAC) protocol specification


猜你喜欢

转载自blog.csdn.net/m_052148/article/details/51670920