LTE-TDD HARQ(1)-上行HARQ时序
LTE-TDD的时序不同于LTE-FDD,并不是固定的n+4的关系,而是与上下行子帧配置UL/DL config参数相关,该参数由SIB1中的tdd-Config字段下发到UE。
(图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。具体流程如下。
(图2)
因为MSG1发出后的第3个子帧,UE才开始接收RAR,因此上图中标注的下行时间是(>=t+3),具体时间需要依赖于eNB实际调度。RAR的格式如下图所示。
(图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号子帧中发送。
(图4)
(2)eNB收到SR/BSR后分配UL_GRANT。协议36213中Table8-2规定了其中一种时序关系(下图。注:上行重传也要用到这个表),这种关系可以简单称之为(n+k)的关系。
(图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侧的实现决定。
(图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)的关系了。
(图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信息。
(图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
(图9)
(2)上下行子帧配置1(其他配置的时序关系类似,不再给出)
(图10)
4.UE执行上行重传的同步时序
若eNB解码PUSCH失败,可能向UE反馈NACK。如果UE解码到了NACK且没有达到HARQ最大次数,就需要重传PUSCH数据。无论是自适应重传还是非自适应重传,上行都是执行同步时序,即重传的时机与新传的时机存在着固定的时序关系。那么协议怎么来规定PUSCH数据重传的时机问题呢?
对于上下行子帧配置不等于0的场景,上行新传与重传的子帧号始终是相同的,比如UE在3#子帧新传了某个数据,那么重传将会在下个系统帧的3#子帧进行,如下图所示。
(图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号子帧。
(图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传输。
(图13)
为了继续让该UE1重传PUSCH,后续需要执行上行HARQ的自适应重传过程。比如在1#给UE1下发DCI0(NDI不翻转),重新在7#子帧分配PUSCH资源。
不用担心eNB向UE反馈ACK导致PUSCH数据丢失的问题。因为协议36300中已经明确了(下表),如果UE只是收到了ACK,是不会丢弃数据的。
(图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
LTE-TDD HARQ(1)-上行HARQ时序相关推荐
- ShareTechnote系列LTE(15):HARQ
HARQ HARQ(hybrid ARQ)是一个非常复杂的过程,这里仅简要描述. 先考虑一下术语.什么是H-ARQ?为什么用"Hybrid "这个词? ARQ代表自动重复请求,Hy ...
- LTE:信道质量,HARQ的比较
SRS VS. CQI CQI用来衡量下行信道质量,UE汇报CQI,可以是全带宽,子带,或者由高层配置.有1-15从低到高数值的选择.CQI为0时候表示没有资源分配. SRS用来衡量上行信道质量,是可 ...
- LTE TDD的特殊子帧
http://www.mscbsc.com/askpro/question49421 LTE TDD中,帧的长度是10s,分成10个长度为1s的子帧.上行和下行的数据在同一个帧内不同的子帧上传输.LT ...
- LTE TDD在未来4G技术标准中的位置
摘要: 国际电联(ITU)无线电通信部门(ITU-R)正在征集IMT-Advanced标准的建议,IMT-Advanced是ITU对于4G的称呼.虽然该标准的技术要求尚未确定下来,但WiWax.LTE ...
- 5G NR中的HARQ机制 CBG传输
NR和LTE一样都有两级重传机制:MAC层的HARQ机制和RLC层的ARQ机制.丢失或出错数据的重传主要是由MAC层的HARQ机制处理,并由RLC的ARQ进行补充.MAC层的HARQ机制能够提供快速重 ...
- LTE 的一些基础知识 【转】
原文出处:https://www.txrjy.com/thread-1013259-1-2.html 查看: 4860|回复: 0 [原理资料] 自己学习LTE的一些笔记 [复制链接] xuzefen ...
- LTE MAC HARQ--01
参考: India LTE ARQ and HARQ (Part1)| LTE ARQ and HARQ (Part2) 前言: 这里面主要基于ARQ&HARQ ,讨论的Error De ...
- DM368开发 -- 华为3G/4G模块移植
一.模块介绍 用的是华为 ME909s-821 Mini PCIe. 模块介绍,参看: ME909s-821 Mini PCIe 规格参数 其他模块,参看:华为全系列模块 产品介绍 ME909s-82 ...
- 无线通信网络学习之LTE关键技术之HARQ(20141217)
今天我们来一起了解一下LTE中运用到的一个关键技术HARQ(混合自动重传技术) 由于信息在信道传输的过程中,会产生信息丢失,所以为了保持信息的完整性,务必需要重传信息至所有的信息都完成接收为止. 首先 ...
最新文章
- 【北京-知春路】这10家互联网公司值得你加入
- 微信十年,张小龙下一步要干什么?
- hbase windows安装
- “相对论“ 2019-07-10
- ubuntu下qt的常见错误
- 全民超神VS王者荣耀:从角色养成到账户养成
- Party at Hali-Bula UVA - 1220(树形dp)
- python中文编码正则_python的unicode编码问题(以正则表达式为例)
- sed 第n行后加入_【高新课堂】第一百三十九期Liunx运维17个实用技巧
- 这是一个无效的源路径/url
- MacOS上禁用自动启动Adobe Creative Cloud
- Node.js连接数据库等操作
- WP 手机Lumia 820 锁屏密码的POJI研究
- iOS面试 第三方库
- PM_24 项目管理成熟度模型(了解)、26 知识产权与标准规范、收尾管理
- 沉睡者IT - 月赚几千的创业项目思路,抖音文案号网赚项目
- led的伏安特性曲线 matlab实现_小灯泡伏安特性曲线实验报告
- 【推荐】两大APP与云账户红包SDK集成详情及Demon分享v
- 腾讯游戏10大经典案例(二):天堂等于天下
- 强迫症患者之黑苹果优化(启动画面、CPU重命名、显示真实主板、开启12代CPU全核心)
热门文章
- Python小项目——银行记账系统
- 物理CPU-Core-逻辑CPU -超线程
- FL studio 20中那些“花里胡哨”的效果器(一)
- 风险价值法(VAR)
- 24Bit LVDS中的JEIDA和VESA标准差异
- Android 自定义控件,模仿小米秒表样式的时钟,完整代码注解
- 永劫无间为啥显示连接服务器失败,永劫无间服务器故障原因-永劫无间服务器连接失败解决方法_游戏369...
- bootstrap 图标glyphicons图标符号不正常显示解决办法
- pojo、vo、dto、entity都是什么
- 我的互联网方法论周鸿祎