MAC层程序设计文档

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MAC层程序设计文档
清华大学微波与数字通信实验室
Jan. 19 2002
1.概述 (2)
1.1.项目背景 (2)
1.2.术语和缩写词 (2)
1.3.参考资料 (3)
2.MAC层介绍 (5)
2.1.MAC子层功能 (5)
2.1.1.基本功能 (5)
2.1.2.功能与信道映射的关系 (5)
2.2.与外部接口关系 (6)
2.2.1.MAC层的下部接口 (7)
2.2.2.MAC层的上部接口 (8)
2.2.3.传输信道与逻辑信道的映射关系 (9)
2.2.4.对MAC的控制接口 (9)
2.3.MAC子系统结构 (9)
2.3.1.MAC-C结构 (10)
2.3.2.MAC-D结构 (11)
2.4.MAC层数据帧结构 (12)
2.4.1.TCTF字段 (12)
2.4.2.C/T字段 (13)
2.4.3.UE-ID字段 (14)
2.4.4.UE-ID类型字段 (15)
3.MAC层实现方案 (16)
3.1MAC子系统的结构 (16)
3.2实现中的主要数据结构 (17)
3.3RRC的配置原语 (20)
3.4设计中对TFC的处理 (20)
3.4.1 CTFC到TFCS的转换 (20)
3.4.2 选择TFI的算法 (22)
4. MAC实现中用到的任务介绍 (24)
4.1任务CCCH_RACH (24)
4.2任务DCCH_RACH (25)
4.3任务DCCH_DCH (26)
4.4任务BCH_BCCH (27)
4.5任务PCH_PCCH (28)
4.6任务FACH_CCCH (28)
4.7任务FACH_DCCH (29)
4.8任务DCH_DCCH (30)
1.概述
第三代移动通信系统与以往的移动通信系统相比,最明显的特征就是它能提供多媒体业务,这些业务既有高实时性、低吞吐量的语音业务,又有高吞吐量、低实时性的数据业务,还有对实时性和吞吐量要求都很高的视频点播业务。

而这些灵活、多样的功能是由复杂的3GPP协议栈实现的。

MAC层是3GPP协议栈的重要组成部分,无线资源管理和控制的主要执行实体。

1.1.项目背景
本设计是国家863计划第三代移动通信系统移动台项目的一部分。

MAC层的设计是依据3GPP中关于UMTS WCDMA的有关文件,结合C3G具体情况制定出来的。

本设计采用Telelogic公司的TelelogicTau4.0工具,所设计的程序与我们常用的C语言编写的程序有很大的区别,它的优点是实现协议方便、简洁,不需要人为处理缓冲区,不需要人为给消息定义ID等等;缺点是由于过多的使用Task 使程序的效率降低。

1.2.术语和缩写词
ASC Access Service Class
BCCH Broadcast Control Channel
BCH Broadcast Channel
C- Control-
CCCH Common Control Channel
CPCH Common Packet Channel (UL)
DCCH Dedicated Control Channel
DCH Dedicated Channel
DL Downlink
DSCH Downlink Shared Channel
DTCH Dedicated Traffic Channel
FACH Forward Link Access Channel
FDD Frequency Division Duplex
L1 Layer 1 (physical layer)
L2 Layer 2 (data link layer)
L3 Layer 3 (network layer)
MAC Medium Access Control
PCCH Paging Control Channel
PCH Paging Channel
PDU Protocol Data Unit
PHY Physical layer
PhyCH Physical Channels
RACH Random Access Channel
RLC Radio Link Control
RNC Radio Network Controller
RNS Radio Network Subsystem
RNTI Radio Network Temporary Identity
RRC Radio Resource Control
SAP Service Access Point
SDU Service Data Unit
SRNC Serving Radio Network Controller
SRNS Serving Radio Network Subsystem
TDD Time Division Duplex
TFCI Transport Format Combination Indicator
TFI Transport Format Indicator
U- User-
UE User Equipment
UL Uplink
UMTS Universal Mobile Telecommunications System
UTRA UMTS Terrestrial Radio Access
UTRAN UMTS Terrestrial Radio Access Network
1.3.参考资料
●3GPP TS25.301v3.6.0: Radio Interface Protocol Architecture
●3GPP TS25.302v3.7.0: Layer 1 General requirements
●3GPP TS25.303v3.6.0: UE States and Procedures in Connected Mode
●3GPP TS25.304v3.5.0: UE Procedures in Idle Mode
●3GPP TS25.321v3.6.0: MAC Protocol Specification
●3GPP TS25.322v3.5.0: Description of RLC protocol
●3GPP TS25.331v3.5.0: Description of RRC protocol
●3GPP TS25.401v3.5.0: UTRAN Overall Description
●3GPP TS25.415v3.5.0: UTRAN Iu Interface: CN-UTRAN User Plane
Protocol
●3GPP TS25.425v3.2.0: Iur User Plane Protocols for common transport
channal Data Streams
●3GPP TS25.427v3.3.0: Iub/Iur User Plane Protocols for DCH Data Streams 3GPP TS25.931v3.2.0: UTRAN Functions, Examples on Signalling Procedures
●《WCDMA空中接口协议v2.2》C3G总体组
●《WCDMA系统业务复用规范》
2.MAC层介绍
MAC子层是3GPP协议栈的数据链路层(L2)的一个子层,其主要功能是按照RRC对无线资源的配置实现无线资源控制。

2.1.MAC子层功能
2.1.1.基本功能
完成逻辑信道和传输信道之间的映射
根据瞬时源速率,为每个传输信道选择相应的传输格式
同一个UE的数据流的优先级处理
通过动态分配的方法,在UEs之间做优先级处理
在FACH上,几个用户的数据流的优先级处理
公共传输信道上UEs的身份识别
高层PDUs到公用传输信道上传输块的复用/公用传输信道上传输块到高层PDUs的解复用
高层PDUs到专用传输信道上传输块集的复用/专用传输信道上传输块集到高层PDUs的解复用
业务量监视
动态传输信道类型切换
RLC透明数据的加密/解密
2.1.2.功能与信道映射的关系
表2.1:功能与信道映射的关系
2.2.与外部接口关系
无线接口分为三个协议层:
∙物理层(L1),
∙数据链路层(L2),
∙网络层(L3)。

其中,L2分为以下子层:媒体接入控制子层(MAC),无线链路控制子层(RLC),分组数据集中协议子层(PDCP)和广播/多点传送控制子层(BMC)。

L3又分为几个子层,其中的最低层,即与L2连接并终止在UTRAN的子层,记作无线资源控制层(RRC)。

RRC层处于控制平面,在需要时向用户平面的L2层和L1层发出控制原语。

图2.1:MAC层的外部接口关系
2.2.1.MAC层的下部接口
MAC(Medium Access Control)层位于数据链路层的最低层,直接与Iur/Iub 接口用户平面(或L1)相连,其接口定义为传输信道,分为公用传输信道和专用传输信道。

公用传输信道是由一个小区所有UEs所公用的,有如下类型:
∙随机接入信道RACH(Random Access Channel)
只在上行链路存在。

用于相对少量数据的传输,例如初始接入或非实时
专用控制或通信时的数据。

∙前向接入信道FACH(Forward Access Channel)
只在下行链路存在。

用于传输相对少量数据。

∙寻呼信道PCH(Paging Channel )
只在下行链路存在。

用于广播发送控制信息到整个小区,信息类型有寻
呼和通知。

另一个用处是UTRAN 的BCCH信息变化的通知。

专用传输信道是由某个UE专用的,有如下类型:
∙专用信道DCH(Dedicated Channel)
在上行和下行链路中都存在。

传输块(TB)相当于一个MAC PDU,是L1层和MAC层交换的基本单元, L1层为每个传输块加上CRC校验。

在同一时刻,使用同一传输信道,在L1层和MAC层间交换的一组传输块就是传输块集(TBS)。

在一个传输块集中的传输块应该是等长的。

传输时间间隔(TTI)定义为传输块集的到达间隔时间。

它等于在无线接口上物理层传送传输块集的周期。

它经常是最小交织周期(如10ms,一个无线帧的长度)的整数倍。

MAC每个TTI传递一个传输块集到物理层。

传输格式(TF)定义为由L1层提供给MAC层(反之亦然)的用于在传输时间间隔中,在传输信道上传递传输块集的格式。

传输格式包含两部分:动态部分(Dynamic part)和半静态部分(Semi-static part)。

动态部分的属性:
●传输块大小
●传输块集大小
半静态部分的属性:
●传输时间间隔
●应用的纠错方案
纠错类型,Turbo码,卷积码或无信道编码
编码速率
静态速率匹配参数
上行Puncturing界限
●CRC的大小
某个传输信道有关的一组传输格式定义为传输格式集。

一个传输格式集中所
有传输格式的半静态部分都是相同的。

动态部分的两个属性有效地组成了传输信道上的瞬时位速率。

传输信道上的变位速率(根据映射到传输信道上服务的类型),通过改变每个传输时间间隔中下面各项中的一项:
1.只改变传输块集大小;
2.传输块大小和传输块集大小都改变。

几个传输信道可以在L1层复用,对于每个传输信道,存在一个传输格式列表(传输格式集)来使用。

然而,在给定的某一时刻,不是所有组合都可以提交给L1,而是只有一个子集,即传输格式组合(TFC)。

在CCTrCH 上的一组传输格式组合定义为传输格式组合集(TFCS)。

传输格式组合集是由MAC层来控制。

然而,传输格式组合集的分配是由L3层完成的。

当把数据映射到L1层时,MAC 在给定的TFCS的不同的传输格式组合中选择。

由于传输格式组合中只有动态部分不同,所以实际上MAC只控制动态部分。

传输格式指示(TFI)是在一个TFS中某个TF的标记。

它用于MAC和L1层间通信,并且在每次两层间的传输信道上交换传输块集都使用。

2.2.2.MAC层的上部接口
MAC层邻近上层是L2层的RLC层,其接口定义为逻辑信道,用于传送PDU。

逻辑信道按传输数据的类型分为控制信道和业务信道。

以下的控制信道只用于传输控制平面的信息:
∙广播控制信道BCCH(Broadcast Control Channel )
下行信道。

用于广播系统控制信息。

∙寻呼控制信道PCCH(Paging Control Channel )
下行信道。

传送寻呼信息。

此信道用于当网络不清楚UE的小区位置,或
者UE处在小区连接状态时(利用UE休眠模式程序)。

∙公用控制信道CCCH(Common Control Channel)
双向信道。

用于在网络和UEs间传送控制信息。

此信道由与网络没有RRC 连接的UEs 所共用。

∙专用控制信道DCCH(Dedicated Control Channel)
点到点的双向信道。

传送在UE和网络之间的专用控制信息。

这个信道通过RRC连接建立程序建立。

以下的业务信道仅用于传输用户平面的信息:
∙专用业务信道DTCH(Dedicated Traffic Channel)
点到点信道,由每个UE 专用,用于传送用户信息。

DTCH存在于上行和下行均可。

∙公用业务信道CTCH(Common Traffic Channel)
一点到多点单向信道(仅有下行)。

用于为所有或一组指定的UEs传送专用用户信息。

2.2.
3. 传输信道与逻辑信道的映射关系
如下图,其中向下箭头表示下行,向上箭头表示上行。

PCH
RACH
DCH
PCCH- SAP DCCH- SAP
CCCH- SAP
BCCH- SAP
DTCH- SAP
Transport Channels
MAC SAPs
CPCH
(FDD only)
CTCH- SAP
图2.2:传输信道与逻辑信道的映射关系
2.2.4. 对MAC 的控制接口
对MAC 层的控制主要来源于L3层的RRC 层,因此与RRC 层也有直接联系,这些控制都是通过原语实现的。

RRC 对MAC 的控制包括公用和专用两种,既可以配置小区,也可以配置UE 。

原语类型有:小区建立,公用信道增加,公用信道删除,小区删除,UE 建立,UE 重配置,UE 删除等。

MAC 层根据这些原语,修改、维护MAC 层等公用、专用上下文表。

2.3. MAC 子系统结构
MAC 层可以分为公用信道处理模块(MAC-C )、专用信道处理模块(MAC-D )和配置原语处理模块(MAC-MSG )。

在MAC 层中只有一个MAC-MSG 实体,每个小区对应一个MAC-C 实体,每个UE 对应一个MAC-D 实体。

MAC-C 实体之间是独立的,MAC-D 之间也是独立的,而MAC-MSG 与MAC-C 、MAC-D 之间都有联系。

图中的圆圈代表业务接入点。

FACH Iur or local
FACH PCH
图2.3:MAC 层内部结构
2.3.1. MAC-C 结构
MAC-C 控制公用传输信道、公用逻辑信道的接入,以及来自/发给MAC-D 的专用数据。

RACH
CPCH (FDD only )
图2.4:MAC-C 内部结构
下行时,RLC 层通过公用逻辑信道将SDU 发给MAC-C ,MAC-C 根据不同的逻辑信道类型,进行不同的处理。

通过加TCTF 头,使对等MAC 层识别逻辑
信道。

还有根据优先级的不同,对不同的逻辑信道进行优先级处理,最后选择TFC和TF。

处理完毕后,通过传输信道将数据送给底层。

如果有数据从MAC-D 来,则为数据加UE-ID头,使UE侧的MAC-C可以识别出该数据包是否是发给自己的。

另外还要加TCTF头来标明此数据是要送给MAC-D的。

上行时,MAC-C从传输信道(RACH)得到数据。

通过分析UE侧MAC-C 加的TCTF头和UE-ID头,决定数据的去向。

2.3.2.MAC-D结构
MAC-D控制专用传输信道、专用逻辑信道的接入,以及来自/发给MAC-C 的专用数据。

图2.5:MAC-D内部结构
下行时,MAC-D从DCCH/DTCH逻辑信道接收数据,根据RRC的配置决定映射的传输信道类型。

如果是公用传输信道,则加C/T头用以区分逻辑信道,再将数据送到MAC-C;如果是专用传输信道,根据需要进行加密、加C/T头处理,优先级处理,通过DCH送到低层。

上行时,分析C/T头决定数据应该映射到的逻辑信道ID,根据需要进行解密处理;如果数据来自MAC-C,则处理C/T头,将数据送到对应的逻辑信道。

2.4.MAC层数据帧结构
按照3GPP协议规定,MAC PDU(Protocol Data Unit)包括MAC SDU(Service Data Unit)和MAC header。

MAC SDU长度和MAC头的长度都是变长的,SDU 的长度决定于RLC PDU长度,MAC头取决于逻辑信道类型。

MAC头共有4种,参见下图。

用于对等层区分数据的映射信道。

图2.6:MAC PDU
注:对于C3G规范中对3GPP协议的修改,下文都有注明。

2.4.1.TCTF字段
TCTF(Target Channel Type Field)字段是个标志位,提供FACH和RACH 传输信道上逻辑信道等级的识别,即它所承载的是BCCH, CCCH, CTCH, SHCCH 还是专用逻辑信道。

注意:FDD模式下,FACH信道TCTF字段的长度是2bits还是8bits依赖于2个最重要位的数值。

表2.2:FACH上目标信道类型字段的编码(FDD)
表2.3:RACH上目标信道类型字段的编码
注:为了符合C3G的要求,实现时TCTF改为一个字节。

编码定义如下:
表2.4:TCTF编码(C3G)
2.4.2.C/T字段
C/T 字段在多个逻辑信道由同一个传输信道承载时,提供逻辑信道的识别。

C/T 字段还用于在DCH上以及在FACH和RACH信道上传输用户数据时,对逻辑信道类型的识别。

C/T 字段的大小固定为4 bits,既用于公用传输信道,又适用于专用传输信道。

表2.5:C/T字段的结构
在UE状态表中,MultiNum为复用的标志字段,代表复用的逻辑信道个数。

当MultiNum=0(缺省值),说明此传输信道没有使用;当MultiNum=1时,说明没有复用,逻辑信道与传输信道一一对应;当MultiNum>1时,说明有复用。

注:C3G规范中没有定义C/T字段。

2.4.
3.UE-ID字段
UE-Id字段用于对UE在公用传输信道上的识别。

在MAC层使用的UE-Id类型定义如下:
●U-RNTI(UTRAN无线网络临时身份识别符),是RNC ID和S-RNTI的
组合。

S-RNTI是SRNC标识UE的临时标识符,在SRNC中是唯一的。

当DCCH映射到公用传输信道上时,MAC头使用U-RNTI。

●C-RNTI(小区无线网络临时身份识别符),是CRNC 标识UE的临时标
识符,CRNTI在一个CELL中是唯一的。

DTCH(也可能是DCCH)映
射到公用信道时使用C-RNTI。

由MAC层使用的UE Id是通过MAC控制SAP配置的。

MAC头中UE Id 字段的长度见下表:
表2.6:UE Id 字段的长度
注:C3G规范中要求,UE-ID字段采用一个字节的S-RNTI。

2.4.4.UE-ID类型字段
UE-Id类型字段用来保证在MAC头中UE-Id字段的正确译码。

当专用逻辑信道数据映射到公用传输信道时,MAC-C需要在MAC帧中加入UE-ID 字段和UE-ID类型字段,以便UE对等层收到数据时分辨是否是发给自己的数据。

MAC在加UE-ID头时可以选择使用C-RNTI或者U-RNTI,UE-ID类型字段是为了让对等层可以区分出何种UE-ID。

表2.7:UE Id类型字段的定义
注:C3G没有定义UE ID字段。

3.MAC层实现方案
首先要明确的一点是所谓提供的服务或接口,就是提供被调用的函数或Task,它不应该被上、下层的概念所限制。

因为MAC与L1、RLC有接口,所以下行:MAC为RLC提供接口调用,L1为MAC提供接口调用;上行:MAC 为L1提供接口调用,RLC为MAC提供接口调用。

MAC与RLC之间的接口是通过逻辑信道标识;而MAC与L1之间的接口是通过传输信道标识。

MAC的功能表现在它对数据的处理上,而UE对多种类型业务的支持很大程度上体现在它对上行数据的处理上,更具体的说,是通过MAC对TFC的选择来实现的。

下行方向,MAC要做的处理就是分析MAC帧头,即根据传输信道ID,对MAC数据包的帧头进行分析,提取数据并交给相应的RLC实体。

在上行方向上MAC的所要做的工作就复杂许多,①根据RRC的RB配置,更新TFCS、逻辑信道的优先级等参数,②根据TFCS、逻辑信道的优先级和RLC的缓冲区状态选择合适TFC。

3.1 MAC子系统的结构
MAC子层的功能可以分为数据处理功能,控制功能两部分。

数据处理功能,按方向划分,可分为上行模块DL_Module和下行模块UL_Module。

DL_Module 实现从传输信道到逻辑信道的映射;UL_Module实现从逻辑信道到传输信道的映射。

如下是功能示意图:
控制功能包括①根据RRC的RB配置,更新TFCS、逻辑信道的优先级等参数,和②根据TFCS、逻辑信道的优先级和RLC的缓冲区状态选择合适TFC。

根据实时性要求,①由函数实现,②由Task实现。

在每10ms发生一次的中断里,设置一个TFC选择函数,它根据参考参数,为每一个RLC Task选择一组TF对应的参数,并通过消息发送给相应的RLC Task。

3.2实现中的主要数据结构
newtype TF_str struct
TFIndex integer;
/* 1..31 represent 1..31 respectly, 0 represent 32 */ TrchBlocksNum integer;
/* range from 1 to 512 */
TrchBlockSize integer;
/* range from 1 to 4992 */
TTI integer;
endnewtype;
newtype TFList_array ARRAY(Integer,TF_str);
endnewtype;
newtype Octet_array ARRAY(integer,octet_string);
endnewtype;
newtype TFS_str struct
TrchIdentity integer;/* 1: 16 */
ChannelCodingType integer; /* 0: 2 */
/* represents NoCoding, Convolutional,Turbo respectively */ CodingRate integer; /* 0: 1 */
/* represents 1/2, 1/3 */
RateMatchAttrib integer;
/* 1..255 represent 1..255 respectly,
and 0 represent 256 */
CRCSize integer;
TFNum integer;
tflist TFList_array;
endnewtype;
/* CRCSize:
"1" represents that the size of CRC equals to 0.
"2" represents that the size of CRC equals to 8.
"3" represents that the size of CRC equals to 12.
"4" represents that the size of CRC equals to 16.
"5" represents that the size of CRC equals to 24.
"1" represents that TTI is 10 ms
"2" represents that TTI is 20 ms.
"3" represents that TTI is 40 ms.
"4" represents that TTI is 80 ms.
"5" represents that TTI is dynamic */
newtype TFC_Str struct
tfcindex integer;/* 0:1023 */
trch1tfindex integer;/* 0: 15 */
trch2tfindex integer;/* 0: 15 */
trch3tfindex integer;/* 0: 15 */
trch4tfindex integer;/* 0: 15 */
trch5tfindex integer;/* 0: 15 */
trch6tfindex integer;/* 0: 15 */
trch7tfindex integer;/* 0: 15 */
trch8tfindex integer;/* 0: 15 */
choicegainfactors integer; /* 0: 1 */
/* represent fixed ,flexible respectively */
gainfactorbc integer;/* 0:15 */
gainfactorbd integer;/* 0:3 */
referencedtfcid integer; /* 0:3 */
poweroffppm integer;
/* 1:16 represent from -5 to 10 */
endnewtype;
newtype TFCSList_arr ARRAY(integer,TFC_Str)
endnewtype;
newtype TFCS_Str struct
fixedorflexible integer; /* 0: 1 */
/* represent SigGainFactors,ComGainFactors respectively */ puncturinglimit integer;/* 1:16 */
/* 1: 16 represents 0.40: 1.00 , the step = 0.04 */ tfcnum integer;/* 0:1023 */
tfchnum integer;/* 0:31 */
tfclist TFCSList_arr;
endnewtype;
newtype List_str struct
Quantity integer;/* 1: 9 */
ID1 integer;/* 0: 9 */
ID2 integer;/* 0: 9 */
ID3 integer;/* 0: 9 */
ID4 integer;/* 0: 9 */
ID5 integer;/* 0: 9 */
ID6 integer;/* 0: 9 */
ID7 integer;/* 0: 9 */
ID8 integer;/* 0: 9 */
ID9 integer;/* 0: 9 */
endnewtype;
newtype RB_mapping_info struct
TrchNum integer; /*1:9 */
UlTrchNum integer;
LCH_List List_str;
TrCH_List List_str;
endnewtype;
newtype ASC_str struct
ASCindex integer;/* 0: NumASC */
Pi Real; /* 0: 1 */
endnewtype;
newtype ASC_array array( integer,ASC_str)
endnewtype;
/* RACH control Parameters need to be defined by ourselves */
newtype RACHControlPara_str struct
Mmax integer;
NBOImax integer;
NBOImin integer;
ASCNum integer;
ASC ASC_array;
endnewtype;
3.3RRC的配置原语
CMAC_CONFIG_UEIE,
CMAC_RELEASE,
DEL_CHANNEL,
ADD_CHANNEL,
CMAC_CONFIG_RB,
CMAC_CONFIG_RACH,
CMAC_CONFIG_FACH,
CMAC_CONFIG_PCH,
CMAC_CONFIG_DCH,
CMAC_CONFIG_ULDPCH,
CMAC_CONFIG_DLDPCH,
CMAC_CONFIG_PRACH,
CMAC_CONFIG_SCCPCH,
CMAC_CONFIG_RACH_Para;
RACH_Failure_Ind;
3.4 设计中对TFC的处理
MAC能够实时地修改TFC对3G系统支持有各种QOS要求的类业务,起着决定性的作用。

MAC应该能够根据RRC配置的TFCS、逻辑信道的优先级和RLC 的缓冲区状态选择合适TFC。

3.4.1 CTFC到TFCS的转换
在3GPP协议中,RNC发送给UE的RRC的TFCS的表示方式有两种,一种是以显式的方式表示,另一种就是用CTFC表示。

CTFC(Calculated Transport Format Combination)是TFC(Transport Format Combination)信令的一个高效表达形式。

设I为传输TFC中所包含的传输信道的个数。

每条传输信道
Trch
i (i=1,2,…,I)具有L
i
个传输格式,即传输格式指示TFI
i
可以取L
i
个值,
TFI
i ∈{0,1,2,…,L
i
-1}。

定义P
i
=∏-
=
1
i
j
i
L,这里i=1,2,…,I,并且L0=1。


TFC(TFI1, TFI2, …, TFI I)为传输格式组合,其中TrCH1的传输格式为TFI1,TrCH2的传输格式为TFI2,等等。

对应的CTFC(TFI1, TFI2, …, TFI I)可以计算如下:
i I
i i I P TFI TFI TFI TFI CTFC ⋅=∑=1
21),,,( 。

(1)
那么接受到了CTFC ,能否得到对应的TFI i 呢?经过证明,是可以做到的。

将式(1)变形,可以得到:
TFI I =⎪⎭

⎝⎛⋅-∑-=1
11I i i i I P TFI CTFC P (2)
需要注意的是:TFI i 最大值只能取到L i -1,而P i =∏-=1
i j i L 。

这样,假设所有1到I -1个TFI i 都取最大值,即L i -1,不失一般性,取所有
信道的L i 都相同,为L 。

∑-=⋅1
1
I i i i
P TFI
=∑-=⋅-11
)1(I i i P L =(L -1)∑-=-1
1
1I i i L (3)
式(3)中的∑-=-11
1I i i L 为一个等比数列,利用求和公式,可以得到:
∑-=-1
1
1
I i i L
=1
11---L L I ……………………………………………(4) 所以,式(3)变成:
∑-=⋅1
1
I i i i
P TFI
=11--I L (5)
而P I =L
1
-I ,因此,式(2)中⎪⎭

⎝⎛⋅∑-=111I i i i I P TFI P 的部分一定小于1。

这样,就推导出了计算TFI I 的公式,即:
TFI I =()⎥⎦

⎢⎣⎢CTFC P I 1, (6)
其中⎣⎦代表结果下取整。

类似地,可以得到其他TFI i 的值:
TFI i =⎥⎦⎥
⎢⎣⎢⎪⎭⎫ ⎝
⎛⋅-∑+I i i i i P TFI CTFC P 11, (7)
式(7)即为TFI
的一般表达式。

i
不相等的情况。

可以证明,公式(7)同样适用于L
i
3.4.2 选择TFI的算法
1. 说明
选择TFI的过程也就是处理信道优先级的过程。

几条逻辑信道可以映射到同一条传输信道上,在专用信道状态表中的Trans_Channel_DL_Attr结构体中,这几条逻辑信道的ID按优先级的顺序排序,即高优先级的信道在前,低优先级的信道在后。

处理时,根据逻辑信道优先级、RLC缓冲区状态,选择出一条信道。

此时,传输信道的优先级也就是该逻辑信道的优先级。

再将这些传输信道按照优先级排序。

然后,根据TFCS中所定各条传输信道的传输格式,再次按照优先级、RLC缓冲区状态指示描述的PDU大小和个数进行选择,原则是:保证优先级高的信道的PDUs尽量都能发送出去,优先级低的信道可以只发送部分PDUs甚至不发送,留待下一个TTI发送。

最终将满足条件的数据及TFI发送到底层。

公用信道和专用信道的解决办法类似,区别有:TB大小的计算不同、信道优先级可以指定。

2. 处理过程
1.首先初始化allowtfci1[],设TFCS有notfc个TFC,则将allowtfci1[]中前notfc
项初始化为allowtfci1[i]=i,剩余的赋为MAX_TFCS;
2.初始化trch[],将该TFC的传输信道属性赋给trch[]。

3.逐个信道调用get_d_tf(sotb,ue,trid,seq)函数获得tfi_head;
4.在get_d_tf()函数中,首先初始化First[],将tfi和tfci赋为缺省的最大值,num
和size赋为-1;
5.将TFS中所有TB SIZE与sotb相同的TF选出,存入First[],同时计数器cnt
累加;
6.如果循环结束时,cnt仍为0,则说明TB SIZE与sotb没有相同的,返回-2
退出;否则,按照TB NUM的降序排列First[];
7.比较trch[seq].nopdu和First[]中TB NUM,得到First[]中TB NUM最接近并
且小于trch[seq].nopdu的数组下表;
8.如果到最后只得到了-1的缺省值,说明没有合适的个数,返回-1;否则,
就得到了合适的TFI,将TFCS中包含此信道TFI的TFCI存到allowtfci1[]中,返回TFI,结束。

选择TFI的主流程
4. MAC实现中用到的任务介绍
DL_Module和UL_Module中包含的Task如下表:
4.1 任务CCCH_RACH
方向:上行
处理过程描述:
在目前的简化协议中,只有当发送第一条信令,即RRC Setup REQ时,
使用该任务。

在处理中,MAC需要加上CCCH到RACH映射的TCTF
值,另外还需要按照简化协议约定,在填充标志字节设置数据有效标志。

主要处理流程图如下:
4.2 任务DCCH_RACH
方向:上行
处理过程描述:
此时UE必须已经获得RNC分配的SRNTI,在公用信道RACH上,RNC
需要根据UE的SRNTI值判断是那一个UE发送的此条信令。

在处理中,
MAC需要加上DCCH到RACH映射的TCTF值,另外还需要按照简化
协议约定,在填充标志字节设置数据有效标志。

主要处理流程图如下:
4.3 任务DCCH_DCH
方向:上行
处理过程描述:
此时RNC已经给该UE分配了专用资源,所以设置任何MAC Header。

另外,按照简化协议约定,在填充标志字节设置数据有效标志。

主要处理流程图如下:
4.4任务BCH_BCCH
方向:下行
处理过程描述:
广播信息在MAC层是透传的,MAC直接将L1提交的数据发送给RLC
即可。

主要处理流程图如下:
4.5任务PCH_PCCH
方向:下行
处理过程描述:
与广播信息相似,寻呼信息也是在MAC层是透传的,MAC直接将L1
提交的数据发送给RLC即可。

按照目前的简化协议,MAC需要识别该
数据包是否是填充数据包,如果是则屏弃之,
主要处理流程图如下:
4.6任务FACH_CCCH
方向:下行
处理过程描述:
这里,MAC需要做两次判断,第一次判断此包数据是否是填充数据包,
如果是则丢弃并返回,否则进行第二次判断,判断是否该UE的数据包,
如果是,则提取数据发送给RLC。

主要处理流程图如下:
4.7任务FACH_DCCH
方向:下行
处理过程描述:
这里,MAC首先要判断此包数据是否是填充数据包,如果是则丢弃并返
回,否则提取数据发送给RLC。

主要处理流程图如下:
MAC层程序设计方案第30 页共
4.8任务DCH_DCCH
方向:下行
处理过程描述:
此时RNC已经为UE分配了专用资源,所以此种情况下没有Mac Header。

但按照目前的简化协议,还需要判断此包数据是否是填充数据包,如果
是则丢弃并返回,否则提取数据发送给RLC。

主要处理流程图如下:
李云洲2002年01月。

相关文档
最新文档