RA流程RA-RNTI=1+t_id+10*f_id竞争解决:成功条件二种:1、PDCCH包含C-RNTI(切换)与UE的matchMAC发起:pdcch包含c-rnti且有新传的上行ulgrantPDCCHorder:pdcch包含c-rnti2、DL-SCH包含UECONTENSIONRESOLUTIONIDENTIYCE与UE的match每一次harq重传都要重新启动竞争解决定时器,包括第一次msg3启动。每一次发送完msg3都要监视PDCCH竞争解决失败后需要重新发起preamble如果竞争解决失败:1、flushmsg3buffer2、PREAMBLE_TRANSMISSION_COUNTER+13、Backofftime之后重新发起RA4、通知RRCRA失败(如果T300,T301,T304,T311没有在运行,则认为radiolinkfailue)T300msg3T301发完重建消息T304切换T311重建流程开始驻留小区成功SR流程在每一个TTI做如下判断,如果条件同时满足,则发起SR,并且将srcounter+1。1、有上行pending数据2、有PUCCH资源3、SRcounter小于dsr-transMax否则不发起SR。SR取消条件,1或者2。1、有RA发起。2、有ULSCH的新传发生.RA发起的条件:1、counter达到最大次数2、invalidpucchresource(RRC释放)BSR在每一个TTI判断,如果有上行pending数据,根据PDCP和RLCdataavalable判断,并且当前的UL资源不足时发送BSR报告。可以把BSR和SR的判断条件放在一起,区别是BSR有至少2个byte的ul资源而SR是一点资源都没有。有BSR发起的时候,SR应该被取消。BSR只申请当前最高优先级的任务。单LC下:多出来的grantsizeLClength128Padding结构LClength128Padding结构1头padding头padding2ShortbsrShortbsr3头padding+shortBSR头padding+shortBSR4LongBSRLongBSR5头padding+longBSR头padding+longBSR6LongBSR+尾padding2个头padding+longBSR7LongBSR+尾paddingLongBSR+尾paddingPHR首先需要明确,PHR的发起是在PUSCH,当满足PUSCH发送条件时才进行PHR的判断。发起PHR的条件有3条,满足其中任何一条即可:1、prohibttimer曾经溢出,并且路损跟上一次发送PHR时的路损相比变化量〉RRC配置的pathchange2、periodictimer溢出3、收到RRC重配消息,里面包含phrconfig,第一次发送pusch时需要包含PHR。每次发送PHR后重新启动periodic和prohibittimer上行harq先从简单的FDD来理解,首先10ms对应10个subframe,对于FDD由于上下行在频域上是分开的,所以上下行可以同时在同一帧上,也就是说10个subframe每一个都既可以是上行,也可以是下行。这样在实际计算发送时机的时候就方便了许多。01234567891ms假设程序处理时间是恒定不变的,并且假设从空口到程序内部处理的时延加起来一共是2ms,从下行PDCCH给MAC资源,到MAC组包把消息从PUSCH发走是个双向过程,也就是2*2=4ms。那么如果我们需要在子帧4发送一条消息,MAC就要在子帧2给物理层,PDCCH最迟必须在子帧0收到上行调度。于是就是这样的流程,0收到PDCCH,4发送PUSCH。FDD固定偏移了4个TTI的处理时间。同理,1的PDCCH对应5的PUSCH,每一个都是提前4个subframe给上行调度。反馈,根据上面的假设,发上去的数据,从发送到收到对方反馈也应该是4ms的时间。所以4发送的数据,ack/nack会在8收到,5发送的数据的ack/nack在9收到。所以,实际上,对于收到的上行授权,只要延迟4个子帧发送。对于收到的反馈,其实是前面4个子帧的反馈。对于一个下行的TTI要么收到的是下行数据,要么是上行授权,要么是反馈,也不会有别的东西。但是对于TDD,简单的加4和减4,算出来的不一定是上行子帧。于是协议给了一张表,36.213的table8-2。根据上下行配比,比如配比0,0上收到的PDCCH对应的PUSCH在4,对于1上收到的PDCCH对应的PUSCH在1+6=7。子帧4和子帧7是上行帧。反馈同理,协议在36.213的table8.3-1也给出了一张表n收到的PDCCH其实是n-k的PUSCH。这两张表给出来是有道理的,可以用笔算一下,不同的配比下,充分利用每一个上行和下行,也保证每一个上行都有至少一个下行与它对应。Bunding那里还没看懂。若想查在某个上行帧发送的PUSCH,其ack应该在哪个帧收到,就要看table9.1.2-1。因为并不是所有10个子帧都能用来做上行,所以上行的harq就不需要FDD那么多。Harq可以看成一个buffer数组,里面保存着在哪一帧发送了多大的数据,这个数据的内容是什么,这个数据是否有反馈,这个数据已经是第几次传输,它的冗余版本是多少。这样重传的时候直接从harqbuffer里取数据,收到ack把harq清除。Harq采用的是一种叫什么wait的等待机制,一直到数据收到ack或者数据被释放,之前这个harq都被占用。FDD最多有8个harq,就是说最多可以存着8个数据等待反馈。TDD的harq数看table8-1。为什么不定义的多一点?因为没有这个必要,刚才我们已经分析了信号好的情况下,最少4个最多X个子帧(需要算)总会收到反馈,那时harq肯定会被清除,所以harq只要定义满足能循环使用就可以了。Harqid是标识bufferindex的,用于指示当前传输的是哪个harqbuffer里的数据。Harqid的计算是一个模最大harq进程数的运算,并且隔一段时间会出现循环。发送ACK/NACK的条件:以下情况不需要发送反馈:1、temporaryCRNTI或竞争未解决2、广播harq3、TAtimer未启动或已经超时所以CRNTI生效时开始发送ack/nack,当RRC连接释放的时候,CRNTI也失效。PUSCHHoping有2种:type1和type2,type2这种关心N_sbPUSCHhoping由DCI0调度。DCI0的构成有:Flagforformat:0代表DCI01代表DCI1AHopingflagFH=1时hoping使能。当有PDCCH时,hoping由下面的因素决定:1、SPS2、RARDRXOnduration是inactivity的下述情况认为是activetime,此时需要监视PDCCH1、ondurationtimer,rx-inactivitytimer,rx-retransmissiontimer,ac-contentionresolutiontimer运行。2、srpending3、ulharq中有数据4、RAR之后还没有PDCCH的新传在非activetime内部需要上报CQI/PMI?RI和SRS。在activetime内可选,新传之后最多可以有4个子帧不用报告CQI/PMI?RI和SRSHarqrtttimer启动时机:PDCCH有dlassignmentDrx-inactivity启动时机:PDCCH指示新传。停止:收到macceDrx-retransmissiontimer启动:RTT超时停止:PDCCH有DLassignmentOndurationtimer启动:IftheShortDRXCycleisusedand[(SFN*10)+subframenumber]modulo(shortDRX-Cycle)=(drxStartOffset)modulo(shortDRX-Cycle);oriftheLongDRXCycleisusedand[(SFN*10)+subframenumber]modulo(longDRX-Cycle)=drxStartOffset停止:收到macceRIUEcategory1transmissionmode3/4时RI=1周期CQI在PUCCH上和PUSCH上报告。非周期CQI只在PUSCH上报,非周期优先级高于周期。PUCCHreportingtype:Type1:CQIfeedbackforsub-bandType2:widebandCQI&&PMIfeedbackType3:RIType4:widebandCQIDCIformatDCI0PUSCHDCI1PDSCHDCI1Apdsch或者PDCCHorder的RachDCI1Cbcch,pchandRAR(forp-rntiandra-rntiuseDCI1c,RV=1)MCS下行p-rnti,ra-rnti,si-rnti固定式Qm=2,其他情况才使用下表。MCSModulation0-9QPSK10-1616QAM17-2864qam29-31retransmission上行MCSModulation0-10QPSK11-2016QAM21-2864qam29-31retransmission资源分配RAType2:1a.1b.1c.1d没有RAheader资源type2有集中式和分布式两种分配方式Type0/Type1:1,2,2a由一个bit决定是type0还是type1当RB个数小于10个的时候,使用type0并且没有RA头。Format1A:用于pdsch或者PDCCHorder的Rach,有集中式和分布式两种。Format0和format1a由一个bit区别。Format1cbcch,pch,rar传输块每一个PDCPSDU最多不超过5000octetsSRS上行参考信号有:DM(解调)RS和S(探测)RS两种。SRS用于确定信道质量,进行频选调度。上行链路RS与数据符号时分复用。UE在同一个子帧发送SRS时,可以通过频分多址和码分多址复用。SRS在RRC配置的SRS发送子帧的最后一个SC-OFDM符号发送,该小区的所有IE都不得在配置的符号进行PUSCH的传输,这样就有了1/14的探测开销。SRS和DMRS不在一个符号中。特殊子帧发送SRS时,使用最后一个或2个符号。当PUCCH和SRS冲突的时候,PUCCH要shorten。PUSCHDM占据每个slot的7个sc-fdma最中间的那个,即第四个符号。SRS有单个发的,也有周期发的,来自不同探测带宽UE的SRS可以重叠。在LTE中,RPF=2,表明信号在已分配的探测带宽内,以每个一个的方式占据子载波。LTE可同时支持高达4个SRS的带宽,支持的最小探测带宽为4rb。问:如何知道UE中的SIM卡是2G还是3GSIM卡?答:看IMSI就知道了。UEconnectionstate收到rrcconnectionsetup进入rrcconnection状态切换的时候,ue处于connection状态上行mutiplexing原则:1、在ulgrant允许的基础上尽可能多的传数。2、兼顾LC,避免可着一个逻辑信道传,而低优先级信道永远无法传,所以使用了令牌桶算法。BJ初始化为0,并且每个TTI加上PBR,BJ不能超过桶的size.Step1:所有BJ0的LC,按照优先级递减组包。BJ不能大于桶大小,否则传的数据最大就是桶大小PBR*BSD(BucketSizeDuration)。当PBR无穷大的时候,必须把这个LC的数据传完才会考虑比它优先级底的逻辑信道。Step2:BJ减去步骤1里面的数据包的大小。Step3:如果前两步执行完还有ulgrant的话,不管BJ,把剩下的数据按照LC优先级组包。上面的话看起来很晦涩,换一种方式来理解。用小学进出水管的办法理解令牌桶。假设有一个容积为V的水桶,有一个进