LTE随机接入很全.docx
《LTE随机接入很全.docx》由会员分享,可在线阅读,更多相关《LTE随机接入很全.docx(16页珍藏版)》请在冰豆网上搜索。
LTE随机接入很全
PRACH结构
PRACH格式
对于格式1到3,频域间隔1.25k,占用864个子载波(ZC序列长度839,剩余25个子载波两边保护)。
格式4,频域讲7.5k,占用144个子载波(ZC序列139,剩余5个两边保护)。
时频位置
对于TDD,格式有4种,和TDD上下行帧划分和prach-ConfigIndex有关,见211表Table5.7.1-3。
prach-ConfigIndex确定了四元结构体
,决定了prach发送的时频位置。
在211表中配置。
其中
是频率资源索引。
分别表示资源是否在所有的无线帧,所有的偶数无线帧,所有的奇数无线帧上重现。
表示随机接入资源是否位于一个无线帧的前半帧或者后半帧。
表示前导码开始的上行子帧号,其计数方式为在连续两个下行到上行的转换点间的第一个上行子帧作为0进行计数。
但对于前导码格式4,
表示为(*)。
序列组产生
每个基站下有64个preamble序列,怎么产生呢?
1、由逻辑根序列号RACH_ROOT_SEQUENCE查表得到物理根序列号。
2、用zeroCorrelationZoneConfig以及highSpeedFlag(如果为高速,则是限制级)查211表格2得到循环位移NCS;
3、用循环位移NCS与根序列,得到64个preamble序列。
1个根序列可能无法生产64个preamle序列,则取下一个根序列继续生成,直到得到64个preamble。
普通速度模式下(非限制集),preamble的循环位移时等间隔的,一个根序列能生成
,
是长度序列长度为839(格式4为139)。
高速模式下(限制集)循环位移非等间隔。
高速模式下,原根序列和生成好的序列相关,峰值会出现三个,同步时需要合并三个窗口能量做估计。
MAC层处理
流程
触发条件
1、RRC信令触发。
包括切换,初始入网,idle醒来需要做随机接入。
此时没有C-RNTI,msg3在CCCH中发送,在msg4中回携带msg3的内容作为UE标识让UE知道是否该msg4是针对自己的。
2、UEMAC层触发:
此时已经有了C-RNTI,不是为了入网而是为了2种情况:
a、UE自己发现好久没有调整ultiming了需要重新调整;b、没有SR资源但需要BSR
3、PDCCHDCIformart1A触发:
基站发现UE的ultiming老不对了,可能是“TimingAdvanceCommandMACControlElement”老调整不好了(该方式时相对值调整),基站复位一下UE的timing调整参数(随机接入的timing调整时绝对值调整,做完后应当复位一下相对值参数,以后用MAC控制元素相对值调整)。
基站通过1个特殊的DCIformat1a告知UE开始随机接入,该DCI并不分配下行带宽,只是指示随机接入。
A、RNTI用C-RNTI加扰;
B、字段“Localized/DistributedVRBassignmentflag”设置为0
C、Resourceblockassignment–
bits设置为全1
D、PreambleIndex–6bits
E、PRACHMaskIndex–4bits
F、剩下的bits全填0。
按照是否竞争,又分Contentionbased和Non-contentionbased。
非竞争的消息如果PreambleIndex(码索引)填为全0则表示使用竞争的。
如果PreambleIndex不为0,但PRACHMaskIndex(时频资源索引)为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。
参数得到后,清空msg3buff,设置preamble传输次数为1(PREAMBLE_TRANSMISSION_COUNTER=1),设置backoff参数为0,选择随机接入资源。
注明:
如果已经开始了随机接入,基站又指示开始新的一个,UE选哪个由UE厂家自己决定。
RRC配置参数
PRACH-Configfielddescriptions
highSpeedFlag
产生序列时用,如果为高速,则用限制级的序列偏移。
prach-ConfigIndex
Parameter:
prach-ConfigurationIndex
确定时频位置时用,确定帧号、子帧号、时隙号,即确定时域位置。
prach-FreqOffset
Parameter:
prach-FrequencyOffset,ForTDDthevaluerangeisdependentonthevalueofprach-ConfigIndex.
确定时频位置时用,确定频域位置,相对顶部(或底部)多少个RB。
rootSequenceIndex
Parameter:
RACH_ROOT_SEQUENCE
根序列逻辑索引,产生序列时用,
zeroCorrelationZoneConfig
Parameter:
NCS
产生序列时用,觉得序列偏移。
mac-ContentionResolutionTimer
TimerforcontentionresolutioninTS36.321[6].Valueinsubframes.Valuesf8correspondsto8subframes,sf16correspondsto16subframesandsoon.
maxHARQ-Msg3Tx
MaximumnumberofMsg3HARQtransmissionsinTS36.321[6],usedforcontentionbasedrandomaccess.Valueisaninteger.
MSG3的最大HARQ传输次数
messagePowerOffsetGroupB
ThresholdforpreambleselectioninTS36.321[6].ValueindB.Valueminusinfinitycorrespondsto–infinity.ValuedB0correspondsto0dB,dB5correspondsto5dBandsoon.
用组B时,UE发送时功率需要大几个DB
messageSizeGroupA
ThresholdforpreambleselectioninTS36.321[6].Valueinbits.Valueb56correspondsto56bits,b144correspondsto144bitsandsoon.
用组A时,MSG3的最大的消息大小。
numberOfRA-Preambles
Numberofnon-dedicatedrandomaccesspreamblesinTS36.321[6].Valueisaninteger.Valuen4correspondsto4,n8correspondsto8andsoon.
Preamble总共的个数
powerRampingStep
PowerrampingfactorinTS36.321[6].ValueindB.ValuedB0correspondsto0dB,dB2correspondsto2dBandsoon.
UE重发preamble时,每次功率增加的步长
preambleInitialReceivedTargetPower
InitialpreamblepowerinTS36.321[6].ValueindBm.ValuedBm-120correspondsto-120dBm,dBm-118correspondsto-118dBmandsoon.
基站期望的目标功率
preamblesGroupAConfig
ProvidestheconfigurationforpreamblegroupinginTS36.321[6].Ifthefieldisnotsignalled,thesizeoftherandomaccesspreamblesgroupA[6]isequaltonumberOfRA-Preambles.
符合参数,包含sizeOfRA-PreamblesGroupA,messageSizeGroupA,messagePowerOffsetGroupB
如果没有该参数数目只有组A没有组B,组A的大小和RA组大小一样。
preambleTransMax
MaximumnumberofpreambletransmissioninTS36.321[6].Valueisaninteger.Valuen3correspondsto3,n4correspondsto4andsoon.
Preamble最大发送次数
ra-ResponseWindowSize
DurationoftheRAresponsewindowinTS36.321[6].Valueinsubframes.Valuesf2correspondsto2subframes,sf3correspondsto3subframesandsoon.
UE发送完preamble后,等待响应的窗口,如果窗口没有收到响应,认为基站没有收到。
窗口为“发送完preamble的最后一个子帧+3”到“发送完preamble的最后一个子帧+3+ra-ResponseWindowSize
”
ra-PRACH-MaskIndex
ExplicitlysignalledPRACHMaskIndexforRAResourceselectioninTS36.321[6].
非竞争时用,表明时频位置。
ra-PreambleIndex
ExplicitlysignalledRandomAccessPreambleforRAResourceselectioninTS36.321[6].
非竞争时用,表明UE发的码序列索引。
此外还要用到几个参数用来算功率与路损的,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的码发送。
判断条件为:
PCMAX–preambleInitialReceivedTargetPower–deltaPreambleMsg3–messagePowerOffsetGroupB>0
如果MSG3传输过,现在重传,则选取码组时,和上次一样。
在组B或组A随机选一个。
步骤2:
选取时频资源
协议容许指定码资源但不指定时频资源。
但不容许指定时频资源但不知道码资源。
A、如果非竞争接入,PRACHMaskIndex=ra-PreambleIndex,否则PRACHMaskIndex=0
B、参考参数prach-ConfigIndex与PRACHMaskIndex,ra-PreambleIndex,选取时频资源
如果指定了ra-PreambleIndexd(码资源)但没指定时频资源PRACHMaskIndex,则随机选择一个时频资源。
如果码资源没有指定,则随机选择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消息体
Timingadvancecommand:
时频调整,绝对值调整,实际调整量为该IE*16个Ts
TemporaryC-RNTI:
临时分配的RNTI,传MSG3时用在传输信道加扰用。
ULGrant如下:
-Hoppingflag–1bit是否跳频
-Fixedsizeresourceblockassignment–10bits转换后可以得到RIV
-Truncatedmodulationandcodingscheme–4bits调制编码率,213中表的前16行
-TPCcommandforscheduledPUSCH–3bits相对功率(实际发送MSG3时功控公式中参数
为该值加上(PREAMBLE_TRANSMISSION_COUNTER–1)*powerRampingStep)。
见213表Table6.2-1;
-ULdelay–1bit为0表示是n+k个子帧传输MSG3,为1是表示n+k个子帧后再等下次机会传输MSG3。
其中n是收到MSG2的当前帧,k查321表Table得到。
-CSIrequest–1bit对于竞争的随机接入没有意义,否则表示CQI
“Fixedsizeresourceblockassignment”转换如下:
1、如果带宽小于等于44RB,则“resourceblockassignment”最低位的b个bits当作DCIformat0中的RIV。
其中b的长度为
。
2、如果带宽大于44RB,先确定跳频比特长度hoppingbitsNUL_hop。
如果使用了跳频,带宽大于49RB的带宽NUL_hop=2,否则为1;如果没有用跳频,NUL_hop=0。
设置
,在“resourceblockassignment”中NUL_hop个bits后(从高位开始数),加入b个0。
组成新的数据当作RIV。
MAC处理
1、查表321表Table7.2-1,设置backoff参数,
2、如果preamble的码索引就是终端发出的preamble,则
a、认为接收RAR成功
b、给PHY调整timing
c、设置功率到PHYpreambleInitialReceivedTargetPower,(PREAMBLE_TRANSMISSION_COUNTER–1)*powerRampingStep),用于msg3的功控。
d、设置msg3的带宽分配到PHY(需要解析一下,看是在mac解析还是在phy解析,见前面“消息体”描述)
e、如果基站指定了码索引ra-PreambleIndex,则认为随机接入完成了,否则:
<1>保存TemporaryC-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的响应,且preamleindex是自己,则说明nodeB收到了自己的发送请求,则调整timing保存TemporaryC-RNTI,准备在N+6帧发送MSG3(TDD在第6帧开始的第一个上行子帧发送);
2、。
和MAC层描述的退避矛盾。
物理描述是有一定道理的,因为假设基站针对一个RA-RNTI在一条大消息中回所有的preamble码字的RAR。
如果没有本UE的但有别的UE的,说明其他UE已经检测出来了下面进行msg3和msg4流程了,不会再发码,因此本UE赶快发码也不会和别人冲突。
但细想一下,有可能出现这种情况:
比如有10个UE在同一个时频位置发送了preamble(RA-RNTI相同),基站可能只检测出2个preamble(可能还检测错了),如果UE不退避直接发送,那么还有至少还有8个UE要发送很可能再次碰撞。
因此这种情况建议还是按照MAC层规定退避。
3、过了RAR接收。
和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、TemporaryC-RNTI需要保存用来后续msg3加扰;
3、ULGrant的翻译工作如果MAC层做的话,需要转换成一般的DCIformat0格式。
4、如果重新发送preamble,且没有收到backoff参数,自己选取默认的backoff参数。
MSG3
传输方式
用HARQ,最大重传次数是RRC配置的maxHARQ-Msg3Tx。
用的资源在RAR中的ULGrant中描述,描述了时频位置,跳频,功控参数。
传输时机
收到RAR后第6帧(36213中描述),如果第6帧不是上行帧,则等到第一个上行帧传输。
时频位置
收到RAR后第6帧(36213中描述),如果第6帧不是上行帧,则等到第一个上行帧传输。
发送功率
我把msg3的特定参数带入到了协议中的功控公式即上式。
如果是在组B发送码,对应于组A的功率偏移messagePowerOffsetGroupB,体现在
中,因为分的RB数目多了。
在初始发码的时候只是粗略估计一下组B的msg3多需要多少功率,而在RAR之后,就可以精确计算而不需要那个粗略的参数了。
:
UE最大发送冲率如果基站sib中配置了就用基站的,否则用36101中规定的23dbm(不像wimax每个终端的能力可以不一样,lte是基站告诉UE而不像wimax相反)。
为RRC配置,分别是preamble