我是靠谱客的博主 欣慰马里奥,最近开发中收集的这篇文章主要介绍第三章 LTE MAC协议解读 --- MAC 格式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://blog.sina.com.cn/s/blog_5eba1ad10100gwj8.html

3.3 MAC格式(协议数据单元,格式与参数)

3.3.1 概述

MAC PDU是八位对齐的比特流,最高位第一行的最左边比特,最低位在最后一行的最右边的比特;MAC SDU也是八位对齐的比特流,而MAC PDU里面的参数也是按照相同的顺序,高位在左边,低位在右边的顺序。

3.3.2 MAC PDU(DL-SCH和UL-SCH,除了透明MAC和随机接入响应)

MAC PDU具有一个头部,零个或多个SDU,零个或多个控制单元,可能还有填充位。

MAC头部与MACSDU都是可变长度的。

一个MAC PDU头部,MAC PDU头部可能有一个或多个子头部(subheader),每一个对应一个SDU、控制信息单元(control element)或者填充位。

一个普通MAC PDU子头部由六个域(R/R/E/LCID/F/L)组成,但是对于最后一个子头部、固定长度的MAC控制信息单元以及填充位对应的子头部,它们只包含四个域(R/R/E/LCID)

图3.3.2-1: R/R/E/LCID/F/L MAC 子头部

图3.3.2-2: R/R/E/LCID MAC 子头部

MAC PDU子头部的顺序跟MAC SDU,MAC控制信息单元以及填充部分出现的顺序是相应的。

MAC控制信息单元处于任何MAC SDU的前面。

填充部分一般放在MAC PDU的最后面,不过如果只有一个字节或者两个字节的填充部分时,它就放在MAC PDU的最前面。填充部分的内容可以是任何值,因为接收方会直接忽略掉这里面的内容。

对于一个UE,每次一个传输块只能携带一个MAC PDU,当然它也告诉我们,如果有两个传输块时,可以携带两个PDU(这就是当使用空间复用的传输方式时)。

图3.3.2-3: 具有头部、控制信息单元、SDUs以及填充部分的MAC PDU例子

MAC头部是可变长的,它包含以下参数:

  • LCID:用于指示逻辑信道、控制消息类型或者填充域;

  • L:指示SDU或者控制消息的长度,除了最后一个子头以及固定长度的控制消息对应的字头,每一个子头都有一个L域,它的长度由F域指示;

  • F:如果SDU或者控制消息的长度大于128byte,那么设置F=1,否则设为0,通过F的值,我们就可以知道对应的L值的大小了,也就是知道这个内容(MAC SDU或者控制消息单元的长度了);

  • E:指示MAC 头部是否有多个域,当E=1时,意味着接下来存在另外一组R/R/E/LCID 域,如果是0,那么接下来就是payload了;

  • R: 预留比特位,设为“0”

      3.3.3 控制信息单元

  •        由于MAC存在多个控制信息单元,这里为了节约篇幅,只对几个重要的控制信息单元进行说明。

    3.3.3.1缓冲状态报告控制信息单元(BSR)

    这个控制信息单元,对于上行调度是至关重要的,作为eNB分配给UE资源的一个凭据,UE有多少数据要发送就是通过它来告诉eNB的,BSR有两种:

  • 短BSR和截断BSR格式:一个LCG ID(逻辑信道标识)域以及对应的缓冲区大小域,eNB收到这个消息后,就知道对应的UE的这个上行逻辑信道组有多少业务数据要发送,由于eNB是对一个逻辑信道组分配资源,那么就意味着这些资源可以被这个组的逻辑信道共享,每一个逻辑信道能够获得多少资源这就取决于UE的调度了,因此UE必须按照业务属性来分配资源,否则无法保证对应的业务的服务质量(QoS)如图3.3.3-1所示;
  • 长BSR格式:四个缓冲区大小域,对应于LCG IDs #0 到#3,如图3.3.3-2所示

   

图3.3.3-1: 短BSR以及截断BSR MAC控制信息单元

图3.3.3-2: 长BSR控制信息单元

BSR格式可以通过MAC PDU字头部中LCID域来指示,如下表3.3.3-1所示:

表3.3.3-1 UL-SCH的LCID值

 

Index

LCID values

00000

CCCH

00001-01010

逻辑信道标识

01011-11001

预留

11010

功率预留报告(PHR)

11011

C-RNTI

11100

截断BSR

11101

短BSR

11110

长BSR

11111

填充

LCG ID 域和缓冲区大小定义如下:

  • LCG ID: 逻辑信道组标识域指示了上报的缓冲区状态对于的逻辑信道组,它的长度为两个比特,也就意味着系统只设置了4个逻辑信道组;

  • 缓冲区大小: 它指示了在构造了这个BSR控制信息单元之后的逻辑信道组内所有逻辑信道总的可以发送的数据量,数据量大小的单位是字节数。它应该包含在RLC层以及PDCP层可以传输的数据,这里的含义是指应该包含从PDCP发送到RLC的业务数据部分以及由RLC产生的RLC控制信息部分,我们可以参考【3】和【4】;值得注意的是这里不包含RLC以及MAC的头部信息所要占用的字节数,因此我们在给这个逻辑信道组分配资源的时候需要考虑到这一点,可以适当的多分配一点,这样就可以减少BSR的数量,从而也就节约了空口资源。这个域由六个比特位来指示,如表3.2所示,MAC层对不同的缓冲大小区间进行了量化,量化成为64个等级(可以用六比特表示),因此只需要传索引值而不是实际的大小,这样可以节约控制信息的长度。

      Table 6.1.3.1-1: BSR承载的缓冲区大小水平

索引

缓冲区大小 (BS) [字节]

索引

缓冲区大小 (BS) [字节]

0

BS = 0

32

1132 < BS <= 1326

1

0 < BS <= 10

33

1326 < BS <= 1552

2

10 < BS <= 12

34

1552 < BS <= 1817

3

12 < BS <= 14

35

1817 < BS <= 2127

4

14 < BS <= 17

36

2127 < BS <= 2490

5

17 < BS <= 19

37

2490 < BS <= 2915

6

19 < BS <= 22

38

2915 < BS <= 3413

7

22 < BS <= 26

39

3413 < BS <= 3995

8

26 < BS <= 31

40

3995 < BS <= 4677

9

31 < BS <= 36

41

4677 < BS <= 5476

10

36 < BS <= 42

42

5476 < BS <= 6411

11

42 < BS <= 49

43

6411 < BS <= 7505

12

49 < BS <= 57

44

7505 < BS <= 8787

13

57 < BS <= 67

45

8787 < BS <= 10287

14

67 < BS <= 78

46

10287 < BS <= 12043

15

78 < BS <= 91

47

12043 < BS <= 14099

16

91 < BS <= 107

48

14099 < BS <= 16507

17

107 < BS <= 125

49

16507 < BS <= 19325

18

125 < BS <= 146

50

19325 < BS <= 22624

19

146 < BS <= 171

51

22624 < BS <= 26487

20

171 < BS <= 200

52

26487 < BS <= 31009

21

200 < BS <= 234

53

31009 < BS <= 36304

22

234 < BS <= 274

54

36304 < BS <= 42502

23

274 < BS <= 321

55

42502 < BS <= 49759

24

321 < BS <= 376

56

49759 < BS <= 58255

25

376 < BS <= 440

57

58255 < BS <= 68201

26

440 < BS <= 515

58

68201 < BS <= 79846

27

515 < BS <= 603

59

79846 < BS <= 93479

28

603 < BS <= 706

60

93479 < BS <= 109439

29

706 < BS <= 826

61

109439 < BS <= 128125

30

826 < BS <= 967

62

128125 < BS <= 150000

31

967 < BS <=1132

63

BS > 150000

 

3.3.3.1 MAC PDU RAR (随机接入响应)

随机接入响应对于的PDU遵循MAC PDU的规则,只是里面的内容有所不同而已,它可以包含多个随机接入响应

除了BACKOFF对应的子头部外,每一个子头部对应于一个RAR消息,如果存在BACKOFF指示,那么它对应的子头部要放在第一个MAC子头部的位置上,并且只能出现一次。一个RAR的PDU其实可以不包含RAR消息,而只是包含一个BACKOFF指示信息,如图3.3.3-4所示。

一个MAC PDU 子头部由三个头部域组成(E/T/RAPID),如图图3.3.3-1 所示。

但是对于BACKOFF 指示的子头部包含五个域(E/T/R/R/BI)如图图3.3.3-2 所示。

A MAC RAR 包含四个域R/Timing Advance Command/UL Grant/Temporary C-RNTI图3.3.3-3

最后也可能存在填充,这个是隐含的,跟通常的填充规则不同,通过传输块大小减去MAC头部大小以及RAR大小就可以推断出来。

图3.3.3-1: E/T/RAPID MAC 子头部

图3.3.3-2: E/T/R/R/BI MAC 字头部

 图3.3.3-3: MAC RAR

图3.3.3-4: 含有头部与多个RAR的MAC PDU的例子

3.3.3.2     RAR消息的MAC头部

RAR消息对应的MAC头部是可变长度的,定义如下

  • E: 扩展域用于指示MAC头部还有其它域(例如其它RAR消息对于的子头部),如果E被置为“1”,也就是说随后至少还有一个(E/T/RAPID)域,否则,就指示随后是RAR消息或者填充部分,这里我们会发现对于RAR的填充部分它是紧随MAC头部的;
  • T: 类型域,用于指示这个MAC子头部包含的是随机接入ID(前导序列ID)还是BACKOFF指示,T置为“0”,也就是说这个子头部包含的是BI值, 如果是“1”,就意味着在这个子头部出现的是随机接入前导ID域;
  • R: 预留比特,置为"0";
  • BI: BACKOFF指示,通常是在小区过载的情况下,指示UE延后发送随机接入过程。4比特位表示;
  • RAPID: 随机接入前导与指示发送的随机接入前导序列,6比特位表示。

6.2.3   RAR消息内容

MAC RAR消息大小是固定的,包含如下域:

-     R: 预留比特,置为“0”;

-     Timing Advance Command: The Timing Advance Command field indicates the index value TA (0, 1, 2… 1282) used to control the amount of timing adjustment that UE has to apply (see subclause 4.2.3 of [2]). 11比特位表示;

-     UL Grant: The UpLink Grant field indicates the resources to be used on the uplink (see subclause 6.2 of [2]). 20比特位表示;

-     Temporary C-RNTI: The Temporary C-RNTI field indicates the temporary identity that is used by the UE during Random Access. The size of the Temporary C-RNTI field is 16 bits.

 

 

最后

以上就是欣慰马里奥为你收集整理的第三章 LTE MAC协议解读 --- MAC 格式的全部内容,希望文章能够帮你解决第三章 LTE MAC协议解读 --- MAC 格式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(386)

评论列表共有 0 条评论

立即
投稿
返回
顶部