LTE随机接入(很全)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PRACH结构
PRACH格式
对于格式1到3,频域间隔1.25k,占用864个子载波(ZC序列长度839,剩余25个子载波两边保护)。
格式4,频域讲7.5k,占用144个子载波(ZC序列139,剩余5个两边保护)。
时频位置
对于TDD ,格式有4种,和TDD 上下行帧划分和prach-ConfigIndex 有关,见211表Table
5.7.1-3。
prach-ConfigIndex 确定了四元结构体),,,(210RA RA RA RA t t t f ,
决定了prach 发送的时频位置。
在211表Table 5.7.1-4中配置。
其中RA f 是频率资源索引。
2,1,00=RA
t 分别表示资源是否在所有的无线帧,所有的偶数无线帧,所有的奇数无线帧上重现。
1,01
=RA t 表示随机接入资源
是否位于一个无线帧的前半帧或者后半帧。
2
RA t 表示前导码开始的上行子帧号,其计数方式为在连续两个下行到上行的转换点间的第一个上行子帧作为0进行计数。
但对于前导码格式4,2RA t 表示为(*)。
序列组产生
每个基站下有64个preamble 序列,怎么产生呢?
1、 由逻辑根序列号RACH_ROOT_SEQUENCE 查表Table 5.7.2-4得到物理根序列号。
2、 用zeroCorrelationZoneConfig 以及highSpeedFlag (如果为高速,则是限制级)查211
表格Table 5.7.2-2得到循环位移N CS ;
3、 用循环位移N CS 与根序列,得到64个preamble 序列。
1个根序列可能无法生产64
个preamle 序列,则取下一个根序列继续生成,直到得到64个preamble 。
普通速度模式下(非限制集),preamble 的循环位移时等间隔的,一个根序列能生成
ZC CS N N ⎢⎥⎣⎦,ZC N 是长度序列长度为839(格式4为139)。
高速模式下(限制集)循环位移非等间隔。
高速模式下,原根序列和生成好的序列相关,峰值会出现三个,同步时
需要合并三个窗口能量做估计。
MAC 层处理
流程
触发条件
1、 RRC 信令触发。
包括切换,初始入网,idle 醒来需要做随机接入。
此时没有C-RNTI,msg3
在CCCH 中发送,在msg4中回携带msg3的内容作为UE 标识让UE 知道是否该msg4是
针对自己的。
2、 UE MAC 层触发:此时已经有了C-RNTI ,不是为了入网而是为了2种情况:a 、UE 自己
发现好久没有调整ul timing 了需要重新调整;b 、没有SR 资源但需要BSR
3、 PDCCH DCI formart 1A 触发:基站发现UE 的ul timing 老不对了,可能是“Timing Advance
Command MAC Control Element ”老调整不好了(该方式时相对值调整),基站复位一下
UE 的timing 调整参数(随机接入的timing 调整时绝对值调整,做完后应当复位一下相
对值参数,以后用MAC 控制元素相对值调整) 。
基站通过1个特殊的DCI format 1a
告知UE 开始随机接入,该DCI 并不分配下行带宽,只是指示随机接入。
A 、 RNTI 用C-RNTI 加扰;
B 、 字段“Localized/Distributed VRB assignment flag ”设置为0
C 、 Resource block assignment – ⎡⎤
)2/)1((log DL RB DL RB 2+N N bits 设置为全1 D 、 Preamble Index – 6 bits
E 、 PRACH Mask Index – 4 bits
F 、 剩下的bits 全填0。
按照是否竞争,又分Contention based 和Non-contention based 。
非竞争的消息如果Preamble
Index (码索引)填为全0则表示使用竞争的。
如果Preamble Index 不为0,但PRACH Mask Index
(时频资源索引)为0也是可以的,说明码资源基站单独分配UE 了,但时频资源UE 还是
要自己竞争(感觉这样做很无聊,一般实现应该是都一起分配了吧)。
发送Preamble
准备
先必须得到一些PRACH 和RACH 的配置参数,才能发起随机接入。
1、 确定时频资源。
prach-ConfigIndex
2、 确定码资源。
先从RACH_ROOT_SEQUENCE 查表确定根序列,zeroCorrelationZoneConfig
以及highSpeedFlag 确定了循环位移,则可以从根序列确定64个preamble 序列。
把这
64个序列取一部分(RRC 配置numberOfRA-Preambles ),取的这部分又分为2组(组A
和组B ),RRC 配置了numberOfRA-Preambles ,则组B 大小为numberOfRA-Preambles -
numberOfRA-Preambles 。
3、 确定功率资源。
组B 用来传大数据的msg3,但由于RB 多了多功率有要求。
计算组B 传
输的功率不能大于最大功率,用到参数deltaPreambleMsg3。
4、 确定RAR 响应窗口ra-ResponseWindowSize ;
5、 每次preamble 不成功后重发增加的功率。
powerRampingStep
6、 Preamble 最大重传此时。
preambleTransMax
7、 初始功率。
preambleInitialReceivedTargetPower
8、 Preamble 功率偏移。
DELTA_PREAMBLE
9、 MSG3的HARQ 重传次数。
maxHARQ-Msg3Tx
10、 发送组B 的preamble 需要用到的功率参数messagePowerOffsetGroupB
11、 等待msg4成功完成的定时器mac-ContentionResolutionTimer 。
参数得到后,清空msg3 buff ,设置preamble 传输次数为1
(PREAMBLE_TRANSMISSION_COUNTER=1),设置backoff 参数为0,选择随机接入资源。
注明:如果已经开始了随机接入,基站又指示开始新的一个,UE 选哪个由UE 厂家自己
决定。
RRC配置参数
此外还要用到几个参数用来算功率与路损的,MAC和PHY用
P-Max,终端最大发送功率,msg3发送功率的最大值。
如果基站sib中配置了就用基站的,否则用36101中规定的23dbm(不像wimax每个终端的能力可以不一样,lte是基站告诉UE而不像wimax相反)。
referenceSignalPower 基站RS发送功率,用来算路损,发送msg3
betaOffset-CQI-Index:CQI在PUSCH中传输时,占的总资源比例,在基站指定的随机接入中如果上报CQI就会用到,既用来决定msg3的CQI 占用的RE数,也会用来做msg3的功控。
deltaMCS-Enabled :msg3功控时,是否需要针对不同调制方式做修正。
资源选择
步骤1:选取码资源
RRC如果配置了指定的资源,则用RRC配置的,参数ra-PreambleIndex为码索引,ra-PRACH-MaskIndex为时频位置。
当RRC配置了指定的资源(ra-PreambleIndex不全为0),则选择指定的资源。
如果RRC没有配置指定的资源,则
如果MSG3没有传输过:
如果组B存在,且需要传输的MSG3大于messageSizeGroupA,则看组B要求
的功率是否满足,如果满足则随机选取组B的码发送。
判断条件为:P CMAX–
preambleInitialReceivedTargetPower–deltaPreambleMsg3–
messagePowerOffsetGroupB>0
如果MSG3传输过,现在重传,则选取码组时,和上次一样。
在组B或组A随机选一个。
步骤2:选取时频资源
协议容许指定码资源但不指定时频资源。
但不容许指定时频资源但不知道码资源。
A、如果非竞争接入,PRACH Mask Index= ra-PreambleIndex,否则PRACH Mask Index=0
B、参考参数prach-ConfigIndex与PRACH Mask Index, ra-PreambleIndex,选取时频资源
如果指定了ra-PreambleIndexd(码资源)但没指定时频资源PRACH Mask
Index,则随机选择一个时频资源。
如果码资源没有指定,则随机选择1个时频资源,再在该资源后面连续2
帧再选2个资源,最后在这3个资源中几率均等的选取一个。
功率选择
PREAMBLE_RECEIVED_TARGET_POWER = preambleInitialReceivedTargetPower+ DELTA_PREAMBLE + (PREAMBLE_TRANSMISSION_COUNTER –1) *
powerRampingStep;
可见,发码的时候是不用协议中功控公式的,不需要估计路损等参数,指示从目标功率开始从最小的一次次往上抬功率。
RAR
监听窗口
UE第n帧发完RA后,在n+3到n+3+ ra-ResponseWindowSize监听基站的RAR响应。
ra-ResponseWindowSize最大为10,如果更大会引起其他传输的误解。
RAR消息类容
RA-RNTI
RAR对应的PDCCH中CRC用RA-RNTI加扰,RA-RNTI= 1 + t_id+10*f_id。
t_id为子帧索引,f_id 为子帧内的第几个时频资源。
可见,UE只能解出自己发送preamble的时频资源的RAR。
RAR消息头
针对同一个RA-RNTI(时频资源),可能基站能解出多个码的preamble,也可能一个也解不出来。
基站应当针对所有解出的preamble回一个大RAR消息,该消息包含若干子RAR消息体(每个消息体对应1个RAPID子头,RAPID是preamble的码索引),每个消息体针对不同的preamble 码回的。
但backoff参数只有一个在MAC 子头中。
基站必须在一个MAC包中回所有同一RA-RNTI 的RAR,不然会扰乱UE的时序,后面会讲。
RAR消息体
Oct 1Oct 2
Oct 3
Oct 4
Oct 5Oct 6
Timing advance command :时频调整,绝对值调整,实际调整量为该IE*16个Ts
Temporary C-RNTI :临时分配的RNTI ,传MSG3时用在传输信道加扰用。
UL Grant 如下:
- Hopping flag – 1 bit 是否跳频
- Fixed size resource block assignment – 10 bits 转换后可以得到RIV
- Truncated modulation and coding scheme – 4 bits 调制编码率,213中表Table 8.6.1-1的前16行
- TPC command for scheduled PUSCH – 3 bits 相对功率(实际发送MSG3时功控公式中参数
()f i 为该值加上(PREAMBLE_TRANSMISSION_COUNTER – 1) * powerRampingStep )。
见213表Table 6.2-1;
- UL delay – 1 bit 为0表示是n+k 个子帧传输MSG3,为1是表示n+k 个子帧后再等下次机会传输MSG3。
其中n 是收到MSG2的当前帧,k 查321表Table 5.1.1.1-1得到。
- CSI request – 1 bit 对于竞争的随机接入没有意义,否则表示CQI
“Fixed size resource block assignment ”转换如下:
1、 如果带宽小于等于44RB ,则“resource block assignment ”最低位的b 个bits 当作DCI format
0中的RIV 。
其中b 的长度为()()⎡⎤2/1log UL RB UL RB 2+⋅=N N b 。
2、 如果带宽大于44RB ,先确定跳频比特长度hopping bits N UL_hop 。
如果使用了跳频,带宽
大于49RB 的带宽N UL_hop =2,否则为1;如果没有用跳频,N UL_hop =0。
设置
()()⎡⎤⎪⎭
⎫ ⎝⎛-+⋅=102/1log UL RB UL RB 2N N b ,在“resource block assignment ”中N UL_hop 个bits 后(从高位开始数),加入b 个0。
组成新的数据当作RIV 。
MAC处理
1、查表321表Table 7.2-1,设置backoff参数,
2、如果preamble的码索引就是终端发出的preamble,则
a、认为接收RAR成功
b、给PHY调整timing
c、设置功率到PHY preambleInitialReceivedTargetPower,
(PREAMBLE_TRANSMISSION_COUNTER – 1) * powerRampingStep),用于msg3的功控。
d、设置msg3的带宽分配到PHY(需要解析一下,看是在mac解析还是在phy解析,
见前面“消息体”描述)
e、如果基站指定了码索引ra-PreambleIndex,则认为随机接入完成了,否则: <1>保存
Temporary C-RNTI,msg3要加扰用<2>如果是第一次收到rar,且msg3不是RRC消息(RRC消息在CCCH上传),则生成msg3时在MAC的控制元素中带上C-RNTI(此时只能是SR资源不可用或者时频太久没有调整,触发随机接入)
3、如果RAR消息头中没有UE自己的preamble索引RAPID,或者在监听窗口没有收到RAR
消息,处理一样(213里面说处理是不一样的,和MAC矛盾),MAC的处理见下。
A、发送此时加1. PREAMBLE_TRANSMISSION_COUNTER+1
B、如果达到最大preamble发送次数,通知高层
C、如果MAC自己发起的随机接入(SR触发或时偏调整触发),则在0和backoff值中
随机选取一个,等到时间结束在发preamble
D、重新选择资源发送preamble。
下面说下物理层的描述,和MAC描述有冲突。
1、第N子帧收到了对应RA-RNTI的响应,且preamle index是自己,则说明nodeB收到了
自己的发送请求,则调整timing保存Temporary C-RNTI, 准备在N+6帧发送MSG3(TDD 在第6帧开始的第一个上行子帧发送);
2、第N子帧收到了对应RA-RNTI的响应,且preamle index不是自己。
则说明自己发送的
preamble基站没有收到,则在第N+5帧内调整功率重发preamble(见213 6.1.1)。
和MAC层描述的退避矛盾。
物理描述是有一定道理的,因为假设基站针对一个RA-RNTI在一条大消息中回所有的preamble码字的RAR 。
如果没有本UE的但有别的UE的,说明其他UE已经检测出来了下面进行msg3和msg4流程了,不会再发码,因此本UE赶快发码也不会和别人冲突。
但细想一下,有可能出现这种情况:比如有10个UE在同一个时频位置发送了preamble(RA-RNTI相同),基站可能只检测出2个preamble(可能还
检测错了),如果UE不退避直接发送,那么还有至少还有8个UE要发送很可能再次碰撞。
因此这种情况建议还是按照MAC层规定退避。
3、过了RAR接收窗口还没收到对应RA-RNTI响应,则在第N+4帧内调整功率重发preamble
(见213 6.1.1)。
和MAC层描述的退避矛盾。
这里PHY描述有道理的,基站收到东西后不管有没有收到都应该回RAR,没有检测出来码但检测到信号了就只发个backoff。
但RAR都没发说明UE功率太小了,赶快加大功率发了根本不需要退避。
针对MAC和PHY描述不一致,实现建议:
1、eNodeB在针对一个RA-RNTI回RAR时,把针对该RA-RNTI的所有preamble码字的RAR
都在一条消息中带下来。
只要检测到信号,都回RAR。
2、UE如果收到针对自己RA-RNTI的RAR,但如果没有针对自己preamlbe的响应,则退避。
3、UE如果在接收窗口没有收到任何针对自己RA-RNTI的RAR,则直接在N+4帧内重新发码,
不需要退避了。
上面描述都是321中说的,自己补充几点:
1、timing值在RAR时是绝对值,而以后的MAC信息元素调整是相对值,随机接入完成后timing值应当复位。
如果随机接入过程中(MSG4下来之前)收到了MAC信息元素的timing 调整,厂家自己决定怎么做,可以忽略该调整;
2、Temporary C-RNTI需要保存用来后续msg3加扰;
3、UL Grant的翻译工作如果MAC层做的话,需要转换成一般的DCI format 0格式。
4、如果重新发送preamble,且没有收到backoff参数,自己选取默认的backoff参数。
MSG3
传输方式
用HARQ,最大重传次数是RRC配置的maxHARQ-Msg3Tx。
用的资源在RAR中的UL Grant中描述,描述了时频位置,跳频,功控参数。
传输时机
收到RAR后第6帧(36213中描述),如果第6帧不是上行帧,则等到第一个上行帧传输。
时频位置
收到RAR 后第6帧(36213中描述),如果第6帧不是上行帧,则等到第一个上行帧传输。
发送功率
PUSCH CMAX 10PUSCH 102()min{,10log (())310log ((21))(PREAMBLE _TRANSMISSION _COUNTER 1) }
S MPR K PUSCH offset msg P i P M i preambleInitialReceivedTargetPower deltaPreambleMsg PL powerRampingStep βδ⋅=+
++
+-+-⨯+
我把msg3的特定参数带入到了协议中的功控公式即上式。
如果是在组B 发送码,对应于组A 的功率偏移messagePowerOffsetGroupB ,体现在10PUSCH 10log (())M i 中,因为分的RB 数目多了。
在初始发码的时候只是粗略估计一下组B 的msg3多需要多少功率,而在RAR 之后,就可以精确计算而不需要那个粗略的参数了。
CMAX P :
UE 最大发送冲率如果基站sib 中配置了就用基站的,否则用36101中规定的23dbm (不像wimax 每个终端的能力可以不一样,lte 是基站告诉UE 而不像wimax 相反)。
3preambleInitialReceivedTargetPower deltaPreambleMsg +为RRC 配置,分别是preamble 期望接收功率与“MSG3相对preamble 的偏移功率”。
10PUSCH 10log (())M i :RB 个数
PL :路损
1010log ((21)S MPR K PUSCH offset
β⋅-:调制方式补偿与CQI 信息补偿。
(PREAMBLE _TRANSMISSION _COUNTER 1) powerRampingStep -⨯最后
preamlbe 相对第一次preamble 传输抬升的功率。
2msg δ:RAR 消息中的TPC 字段,相当于闭环功控基站调整参数。
内容
1、 传输信道用Temporary C-RNTI 加扰;
2、 Msg3的最大bits 数目,在RRC 配置中的messageSizeGroupA 规定。
3、 如果是RRC 层触发的随机接入,则逻辑信道为CCCH ,传输RRC 信令,TM 方式,携带一个UE 标识。
MAC 还必须保存该CCCH 的消息(RRCConnectionRequest 消息),用作msg4时的比对判断是否msg4是给自己的。
如果是MAC 层自己触发的随机接入,至少携带一个C-RNTI (此时已经有C-RNTI ,在MAC 控制元素中携带该C-RNTI 而不是Temporary C-RNTI )在MAC 控制元素中,也可以携带
BSR等。
4、每发送完msg3(包括重传),应该起定时器mac-ContentionResolutionTimer监听msg4。
可见,eNodeB不能通过传输信道的Temporary C-RNTI识别UE,而应该通过解出MAC信息元素或者RRC消息后才知道是哪个UE。
MSG4(Contention Resolution)
Msg4意义
不同UE可能选择了相同的时频资源,相同的码资源(Preamble index),则RAR消息中RA-RNTI和RAPID都相同,多个终端可能同时发送msg3。
如果同时发送了,则基站无法解出msg3来,也有一点可能基站能解出1个UE的msg3(比如基站和某个UE功率差得实在太大,该UE的信号基站无法收到但基站的信号他能收到,而另外一个UE信号很好且在相同资源发了相同的preamble)。
所以UE需要比对msg4看是否是针对自己的,如果是自己的才知道没有冲突。
Msg4形式与内容
Msg4的意思是竞争解决,可能是多种形式。
1、如果msg3是RRC信令(mac传输CCCH SDU),则Msg4的PDCCH用Temporary C-RNTI
加扰,msg4中应当携带48bits的MAC控制元素“UE Contention Resolution Identity”,该控制元素就是msg3的SDU。
UE比较如果该控制元素和自己保存的msg3的SDU 相等,则是自己的msg3被基站正确接收了,竞争解决完成。
2、如果msg3携带C-RNTI,且是UE自己发起的随机接入(可能是UE自己timing定时
器超时发起,或者没有SR资源需要发送BSR),则基站直接针对C-RNTI(非Temporary C-RNTI)分配一个上行PDCCH DCI format 0。
3、如果msg3携带C-RNTI,且基站发送PDCCH DCI format 1a触发随机接入,则基站针
对该C-RNTI发送下行数据分配(PDCCH用C-RNTI加扰)。
UE对Msg4的处理
参考上一节可判断竞争解决是否完成。
如果竞争完成了,对于msg3中携带MAC控制元素C-RNTI的情况,则停止定时器mac-ContentionResolutionTimer,丢弃Temporary C-RNTI,随机接入完成。
如果竞争完成了,对于msg3中携带CCCH SDU的情况,则停止定时器mac-ContentionResolutionTimer,Temporary C-RNTI升级为C-RNTI, 随机接入完成。
如果mac-ContentionResolutionTimer超时,则任务竞争解决失败。
如果任务竞争解决失败,则情况msg3的HARQ缓存,增加PREAMBLE_TRANSMISSION_COUNTER,如果preamble传输次数达到最大,则随机接入失败。
否则在backoff窗口内选择一个资源重新开始preamble发送。
与wimax对比。