通信人家园
标题:
MAC再学习
[查看完整版帖子]
[打印本页]
时间:
2011-12-15 12:57
作者:
纪伯伦
标题:
MAC再学习
SR
流程
在每一个
TTI
做如下判断,如果条件同时满足,则发起
SR
,并且将
sr counter+1
。
1、
有上行
pending
数据
2、
有
PUCCH
资源
3、
SR counter
小于
dsr-transMax
否则不发起
SR
。
SR
取消条件,
1
或者
2
。
1、
有
RA
发起。
2、
有
UL SCH
的新传发生
.
RA
发起的条件:
1、
counter
达到最大次数
2、
invalid pucch resource(RRC
释放
)
BSR
在每一个TTI判断,如果有上行pending数据,根据PDCP和RLC data avalable判断,并且当前的UL资源不足时发送BSR报告。
可以把BSR和SR的判断条件放在一起,区别是BSR有至少2个byte的ul资源而SR是一点资源都没有。
有BSR发起的时候,SR应该被取消。
BSR只申请当前最高优先级的任务。
上行
harq
先从简单的
FDD
来理解,首先
10ms
对应
10
个
subframe
,对于
FDD
由于上下行在频域上是分开的,所以上下行可以同时在同一帧上,也就是说
10
个
subframe
每一个都既可以是上行,也可以是下行。这样在实际计算发送时机的时候就方便了许多。
0
1
2
3
4
5
6
7
8
9
1ms
假设程序处理时间是恒定不变的,并且假设从空口到程序内部处理的时延加起来一共是
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
的
table 8-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
数组,里面保存着在哪一帧发送了多大的数据,这个数据的内容是什么,这个数据是否有反馈,这个数据已经是第几次传输,它的冗余版本是多少。这样重传的时候直接从
harq buffer
里取数据,收到
ack
把
harq
清除。
Harq
采用的是一种叫什么
wait
的等待机制,一直到数据收到
ack
或者数据被释放,之前这个
harq
都被占用。
FDD
最多有
8
个
harq
,就是说最多可以存着
8
个数据等待反馈。
TDD
的
harq
数看
table8-1
。为什么不定义的多一点?因为没有这个必要,刚才我们已经分析了信号好的情况下,最少
4
个最多
X
个子帧(需要算)总会收到反馈,那时
harq
肯定会被清除,所以
harq
只要定义满足能循环使用就可以了。
Harq id
是标识
buffer index
的,用于指示当前传输的是哪个
harq buffer
里的数据。
Harq id
的计算是一个模最大
harq
进程数的运算,并且隔一段时间会出现循环。
时间:
2011-12-20 15:05
作者:
sun14521452
学习了
时间:
2011-12-21 22:17
作者:
llhcj1002
楼主所说的HARQ进程号是8个吗?怎么理解存在8个数据等待反馈呢?
时间:
2011-12-22 12:42
作者:
纪伯伦
标题:
harq进程就是一个缓存buffer
harq就是buffer,FDD有8个buffer,TDD需要根据上下行配比。我发送的消息,如果对方收到,就会给ack,如果解码失败就会给nack,如果没反应,也认为对方没收到。这时就会从buffer中取出数据重传。如果资源无限大,可以有10个,100个buffer也没关系。但其实数据从发送到反馈的时间是很快的,8个buffer不一定都是满的,因为发出去就立即收到反馈了,极端情况8个buffer都是满的。这时如果有上行数据需要发送,就只能把原来的数据丢弃了。因为最多只能有8个(FDD)
时间:
2011-12-22 21:45
作者:
llhcj1002
建议楼主再多分享点关于MAC协议的东东。。。:)
时间:
2011-12-29 08:08
作者:
crasky
学习了,感谢楼主:)
时间:
2012-1-1 12:59
作者:
火羽
TD?
时间:
2012-1-6 16:47
作者:
xiedanshine
不懂
通信人家园 (https://www.txrjy.com/)
Powered by C114