天天看點

LTE-TDD HARQ(1)-上行HARQ時序

LTE-TDD的時序不同于LTE-FDD,并不是固定的n+4的關系,而是與上下行子幀配置UL/DL config參數相關,該參數由SIB1中的tdd-Config字段下發到UE。

LTE-TDD HARQ(1)-上行HARQ時序

(圖1)

1.上行HARQ時序需要考慮的地方

本文主要從時序方面分析上行HARQ過程,主要包括以下幾個時序:

(1)eNB收到RA/SR/BSR後配置設定UL_GRANT,UE使用該UL_GRANT在PUSCH中發送資料的時序;

(2)eNB在PHICH中發送NACK,UE接收PHICH的時序;

(3)UE執行上行重傳的同步時序。

下面從時序角度具體分析各個過程。

2.eNB排程ULSCH資源,UE使用配置設定的UL_GRANT發送UL_DATA的時序

這裡需要分兩種情況讨論:

(1)UE通過随機接入過程,向eNB發送MSG1(随機接入過程内容較多,以後專門另開博文介紹)。eNB在RAR中配置MSG3将要使用的UL_GRANT,後續UE在UL_GRANT指定的資源中發送MSG3。具體流程如下。

LTE-TDD HARQ(1)-上行HARQ時序

(圖2)

因為MSG1發出後的第3個子幀,UE才開始接收RAR,是以上圖中标注的下行時間是(>=t+3),具體時間需要依賴于eNB實際排程。RAR的格式如下圖所示。

LTE-TDD HARQ(1)-上行HARQ時序

(圖3)

其中UL_GRANT占用20個bits,具體内容是:

- Hopping flag – 1 bit

- Fixed size resource block assignment – 10 bits

- Truncated modulation and coding scheme – 4 bits

- TPC command for scheduled PUSCH – 3 bits

- UL delay – 1 bit

- CQI request – 1 bit

UL_delay字段表示MSG3使用哪個時刻的PUSCH資源。如果UL_delay=0,那麼MSG3将在(m+p)的第一個上行子幀發送,p>=6,如果UL_delay=1,那麼MSG3将在(m+p)的第一個上行子幀的下一個上行子幀發送。比如目前上下行子幀配置是1(2、3、7、8号子幀是上行子幀),RAR在1号子幀下發,那麼如果UL_delay=0,則MSG3将在(m+p)=(1+6)=7号子幀中發送;如果UL_delay=1,則MSG3将在(m+p)=(1+6)=7号子幀的下一個上行子幀,即8号子幀中發送。

LTE-TDD HARQ(1)-上行HARQ時序

(圖4)

(2)eNB收到SR/BSR後配置設定UL_GRANT。協定36213中Table8-2規定了其中一種時序關系(下圖。注:上行重傳也要用到這個表),這種關系可以簡單稱之為(n+k)的關系。

LTE-TDD HARQ(1)-上行HARQ時序

(圖5)

即:n表示下行攜帶UL_GRANT(DCI0)的子幀号,k表示子幀時延,也就是上圖中二維表格中的焦點值,(n+k)%10的值表示UE需要在哪個子幀的PUSCH上發送資料。比如上下行子幀配置1模式,eNB在1#子幀給UE下發了DCI0,UE将在(1+6)=7#子幀中上傳資料,而eNB也會在這個時刻點去解碼來自該UE的資料。 

特殊的,如果是上下行子幀配置0,除了支援(n+k)的關系外,還支援(n+7)的關系。因為上下行子幀配置0中有6個上行子幀,而下行子幀隻有4個,那麼如果按照(n+k)的規則,勢必會浪費2個上行子幀。是以這裡引入了一個新的規則,就是(n+7)的規則。

在上下行子幀配置0的情況下,一個DCI0的資源既可以在(n+k)中使用,也可以在(n+7)中使用。比如UE在0号子幀收到了DCI0,那麼UE和eNB怎麼協商這種對應關系?UE怎麼知道它目前是需要使用(n+k)的資源還是需要使用(n+7)的資源?既然這種關系是不确定的,是以就沒有辦法在協定中事先規定好,隻能通過唯一的途徑即DCI0來解決。是以,協定在DCI0中引入了一個叫UL_INDEX的字段。UL_INDEX字段隻有2個bits,具體含義是:

高比特(MSB)=1、低比特(LSB)=0,表示互動雙方需要使用(n+k)的規則;

高比特(MSB)=0、低比特(LSB)=1,表示互動雙方需要使用(n+7)的規則;

高比特(MSB)=1、低比特(LSB)=1,表示互動雙方同時需要使用(n+k)以及(n+7)的規則,此時就是1個DCI0同時排程2個PUSCH的資源。另外,正如下圖描繪的,SR/BSR到UL_GRANT(DCI0)之間的時延,協定并沒有明确說明,是以由eNB側的實作決定。

LTE-TDD HARQ(1)-上行HARQ時序

(圖6)

3.eNB在PHICH中發送NACK,UE接收PHICH的時序

eNB解碼資料之後,需要向UE回複ACK或NACK。這個ACK/NACK資訊被封裝在PHICH的特定位置(以後會有博文詳細介紹PHICH中怎麼回複ACK/NACK)。既然eNB要發送PHICH,UE要接收PHICH,那麼雙方就需要事先知道PHICH發送的時刻。這裡協定也給我們規定了這種時序關系,即(n+k)的關系。n是UE發送PUSCH資料的上行子幀号,k是二維表格中的焦點值,如下圖所示。需要說明的是,這裡不再有(n+7)的關系了。

LTE-TDD HARQ(1)-上行HARQ時序

(圖7)

以配置1為例,eNB在2#子幀收到了PUSCH資料後,需要在(2+4)=6#子幀下發PHICH(含ACK或NACK)。那麼,除了這個規則,UE和eNB之間的互動就沒有其它需要考慮的問題了嗎?不妨再看看配置0的情況。

對于配置0來說,就稍微複雜些。比如eNB在3#和4#上行子幀都收到了PUSCH資料,按照上面表格中的(n+k)規則,都需要在0#下發PHICH。也就是說,eNB需要在同個子幀發送兩個不同的PHICH序列,那麼UE怎麼來區分到底哪個是我3#子幀發送的應答,哪個是4#子幀發送的應答呢?畢竟eNB可能在3#子幀解碼資料失敗,而在4#子幀解碼資料成功,那麼兩個PHICH序列,其中1個攜帶的可能是NACK資訊,而另一個則是ACK資訊。

LTE-TDD HARQ(1)-上行HARQ時序

(圖8)

進一步分析子幀配置0會發現,這種2個不同PUSCH子幀對應同1個PHICH子幀的場景,隻出現在子幀3、4之間,以及子幀8、9之間,如上圖所示。基于此,在計算PHICH位置的時候,協定巧妙的引入一個參數I_PHICH。當PHICH是回報子幀4或子幀9的時候,I_PHICH等于1,否則等于0。由于這個I_PHICH參數是計算PHICH位置的(後面會有博文詳細介紹這個I_PHICH參數),不同的子幀和資源位置,能得到不同的PHICH序列,也就能區分指定的ACK/NACK資訊了。

總結如下:

(1)上下行子幀配置0

LTE-TDD HARQ(1)-上行HARQ時序

(圖9)

(2)上下行子幀配置1(其他配置的時序關系類似,不再給出)

LTE-TDD HARQ(1)-上行HARQ時序

(圖10)

4.UE執行上行重傳的同步時序

若eNB解碼PUSCH失敗,可能向UE回報NACK。如果UE解碼到了NACK且沒有達到HARQ最大次數,就需要重傳PUSCH資料。無論是自适應重傳還是非自适應重傳,上行都是執行同步時序,即重傳的時機與新傳的時機存在着固定的時序關系。那麼協定怎麼來規定PUSCH資料重傳的時機問題呢?

對于上下行子幀配置不等于0的場景,上行新傳與重傳的子幀号始終是相同的,比如UE在3#子幀新傳了某個資料,那麼重傳将會在下個系統幀的3#子幀進行,如下圖所示。

LTE-TDD HARQ(1)-上行HARQ時序

(圖11)

對于子幀配置0來說,UE可能會在0子幀(或5子幀)收到2個不同的PHICH序列,分别對應上一次3#、4#子幀(或8#、9#子幀)的PUSCH資料應答,如果兩個子幀的PUSCH資料都需要重傳,那麼就需要在不同子幀的PUSCH上分别重傳3#、4#子幀(或8#、9#子幀)的PUSCH資料。

協定36213規定了:

如果0、5子幀收到的PHICH,對應的I_PHICH參數=0(即分别對應3、8子幀的PUSCH資料應答),那麼就按照Table 8-2表,按(n+k)的時序重傳,n是下行PHICH子幀号,k是表格中的焦點值。

如果0、5子幀收到的PHICH,對應的I_PHICH參數=1(即分别對應4、9子幀的PUSCH資料應答),那麼就按照(n+7)的時序重傳,n是下行PHICH子幀号。

另外,如果是1、6子幀收到的PHICH,采用的也是(n+7)的時序重傳。下圖給出了0、6子幀PHICH與HARQ重傳的時序示意圖。從圖中可以得到,在上下行子幀配置0的情況下,上行重傳的子幀号是前次傳輸的子幀的下一個上行子幀。如圖中所示的,前次傳輸的子幀是4号子幀,那麼重傳的子幀号是4号子幀的下一個上行子幀,即7号子幀。

LTE-TDD HARQ(1)-上行HARQ時序

(圖12)

本段開頭提到,eNB解碼PUSCH失敗,可能傳回的是NACK,這裡意味着eNB也可能傳回ACK。這種場景比較特殊,如資源碰撞導緻。比如上下行子幀配置1,eNB在7#子幀有來自UE1的PUSCH資料,該PUSCH的PHICH需要在下個系統幀的1#下發。此時eNB可能有另一個UE2的MSG3資源需要排程。基于MSG3的(n+6)的規則,排程的是下個系統幀7#子幀的PUSCH資源,而這塊ULRB資源可能占用了UE1的非自适應重傳資源位置,如果此時UE1的PUSCH解碼失敗,且沒有其他的ULRB配置設定給UE1,那麼eNB必須向UE1發送ACK,以便阻止UE1的非自适應重傳,進而避免影響UE2的MSG3傳輸。

LTE-TDD HARQ(1)-上行HARQ時序

(圖13)

為了繼續讓該UE1重傳PUSCH,後續需要執行上行HARQ的自适應重傳過程。比如在1#給UE1下發DCI0(NDI不翻轉),重新在7#子幀配置設定PUSCH資源。

不用擔心eNB向UE回報ACK導緻PUSCH資料丢失的問題。因為協定36300中已經明确了(下表),如果UE隻是收到了ACK,是不會丢棄資料的。

LTE-TDD HARQ(1)-上行HARQ時序

(圖14)

5.後文

在我們實際測試中發現,Aeroflex公司生産的TM500儀器,并沒有很好的測試子幀配置0的流程。如果有該公司的同僚,希望可以私下交流下。

6.參考資料

(1)3GPP TS 36.213 V9.3.0 (2010-09) Physical layer procedures

(2)3GPP TS 36.321 V9.6.0 (2012-03) Medium Access Control (MAC) protocol specification

(3)3GPP TS 36.300 V9.10.0 (2012-12) Overall description

(4)3GPP TS 36.331 V9.18.0 (2014-06) Radio Resource Control (RRC)

(5)http://www.sharetechnote.com