通信测试
|
 测试动态 测试科技 测试产品 
您现在的位置:首页泰尔测试测试科技
TD-SCDMA测试仪中Iub接口实现RLC层信令解码
龚珏 雒江涛 张治中
2010-03-23 00:00:00 来源:[重庆邮电学院学报]

摘要 为了更精确地完成TD-SCDMA测试仪中相关信令的解码测试工作,对TD-SCDMA系统的Uu接口RLC层信令在Iub接口实现的解码进行了深入分析和研究,给出了RLC层的信令消息结构和流程,提出了RLC解码的一种算法,并且应用到TD-SCDMA测试仪中,经调试并实际测试后,得到了预期的良好效果。经过再改进,完全可以满足市场需要。

0、引言

  TD-SCDMA系统作为第三代移动通信系统的主流标准之一,受到了全球研究学者、移动通信运营厂商和广大用户的密切关注,具有广阔的发展前景[1]。TD-SCDMA于2000年5月在土耳其召开的国际电联2000年全会上被批准为国际电联的正式标准后,经过几年的发展,无论在形式上还是在实质上,都已在国际上被广大运营商、设备制造商所认可和接收。TD-SCDMA系统综合了4种多址方式:TDMA,FDMA,CDMA和SDMA,采用了6大关键技术:智能天线、联合检测、接力切换、上行同步及动态信道分配和软件无线电。通过这些技术[2-7]极大地降低了系统的干扰,扩大了系统的容量,提高了频谱的利用率,同时也节省了系统的成本开支。在中国,用TD-SCDMA标准组建第三代移动通信运营网的呼声更是越来越高。TD-SCDMA网络的大规模建设已经迫在眉睫。作为组网的重要支撑技术的测试仪的开发显得异常重要。

  针对这种情况,重庆邮电大学在对TD-SCDMA技术充分研究的基础上,研制出了具有自主知识产权的TD-SCDMA移动通信网络测试仪,完善了TD-SCDMA产业链,并形成系列产品并推向市场。TD-SCDMA网络测试仪提供了强大的分析、统计和处理功能,支持UMTS R99,R4,R5等多种版本网络的信令及业务分析,提供协议解码、通用指标统计、呼损分析、呼叫追踪、多接口关联分析以及协议仿真测试等功能,是移动无线网、接入网及SS #7网络设备研发、网络组建、网络维护、网络优化、网络安全、运营决策及增值应用的实用工具。

1、Iub接口RLC层消息

  TD-SCDMA系统中Node B和RNC(无线网络控制)的接口,即Iub接口[3],用来传输RNC和Node-B之间的信令和无线接口的数据,它的协议栈是典型的三平面表示法[4]:无线网络层、传输网络层和物理层。无线网络层由控制平面的NBAP和用户平面的帧协议(FP)组成;传输网络层目前采用ATM传输;物理层可以使用E1\T1\STM-1等多种接口,目前常用的是E1和STM-1。Iub接口主要功能为:Iub传输资源管理、Node-B的管理与维护、系统信息管理、公共信道业务管理、专用信道业务管理、共享信道业务管理、定时与同步管理、数据传输等。Iub接口在网络中的位置相当于GSM中的Abis接口。在现行的第三代移动通信系统标准中,Iub接口没有象Iur接口和Iu接口一样做成完全开放的接口。

  在协议祯(FP)[8]传输的RRC消息数据被添加了MAC头、RLC头,还有可能被分段或者串接等,因而对于信令数据而言,只有除去了MAC头、RLC头,并经过组装(有分段的情况)后才能成为完整的RRC层信令数据,进行解码或者进一步处理。由于其层次多,数据复杂,已成为测试仪开发中的一个难点。其中连接RRC(或者PDCP,BMC)和MAC层的RLC层的数据更是类别众多,结构多变,相当复杂。

  RLC[9]层在MAC[10]之上,在RRC(或者PDCP层,BMC层)之下,进行相对独立的管理和控制。RLC子层所支持的功能如下[9]:①工程分段和重组,在发送端执行将不同长度的高层PDU分段,使之成为较小的RLC PDU,并在接收端进行重组,RLC单元的大小可以根据实际的传输格式集进行调整;②串接,当一个RLC SDU的内容不能填满一个RLC PDU时,下一个RLC SDU的第一段可能放在该RLC PDU中与前一个RLC SDU的最后一段连接在一起;③填充,当连接不适当且要发送的剩余数据不能填满一个完整的RLC PDU时,RLC PDU的剩余数据域将用填充比特填满;④用户数据传输,该功能用于在RLC业务用户之间的数据传输,RLC支持确认、非确认、透明的数据传输,QoS的设置控制用户数据的传输;⑤纠错,该功能与物理层采用编码等方式降低误码率不同,RLC子层的确认传输方式利用重传机制提供纠错功能,例如选择重发、返回N、停止等待自动重传请求;⑥高层PDU的顺序传递,在确认模式下进行数据传输时,该功能保证递交到RLC的高层PDU的发送顺序,若高层要求提供无顺序的传递服务,RLC将不使用该功能;⑦重复检测,该功能在接收端检测接收到的RLC PDU是否重复接收,确保送到高层的PDU只递交一次;⑧流量控制,该功能允许RLC接收端控制对等发送端RLC信息发送的速率;⑨序列号检查,该功能用于非确认传输模式,保证重组PDU的完整性并提供一个检测恶化的RLC SDU的机制,将抛弃恶化的RLC SDU;⑩协议错误检侧和恢复,该功能用于在RLC协议操作中检测错误并进行恢复;⑾加密,该功能阻止未经允许的数据用在RLC层的非透明模式中;⑿轮询,该功能用于RLC发送端请求RLC接收端回复一个状态报告;⒀状态传输,为了通知RLC发送端PDU是否接收到,一个RLC接收端将使用该功能传送一个状态报告;⒁SDU的抛弃,该功能允许RLC的发送端释放缓冲区中的一个RLC SDU;⒂暂停/继续功能,该功能用于暂停和继续数据的传输;⒃重建功能,该功能用于重建一个确认和非确认模式的RLC实体;⒄高层数据分段或连接成为固定长度的分组,第三代移动通信系统能够传输不同性质、不同速率的多种业务,而在物理层传输的数据包的长度是相对固定的,RLC层根据物理层的数据传输格式,将来自高层的大小不等的数据包(SDU)分段或连接成为固定长度的分组(RLC PDU)。

图1 RLC子层的总体模型

Fig 1 Overall model of RLC

  RLC层消息利用透明模式(TM)、非确认模式(UM)和确认模式(AM)等3种数据传输方式,为不同类型的业务提供不同的传输通道。其中,AM传输方式以一套较复杂的机制提供数据的可靠传输,并且使高层可以通过对AM实体参数的不同配置,获得更高级别的QoS控制;非确认模式的RLC实体和透明模式的RLC实体即可作为发送RLC实体也可以作为接收RLC实体。发送RLC实体发送RLC PDUs,接收RLC实体接收RLC PDUs,而确认模式的RLC实体则由发送端发送RLC PDUs的AM实体和接收端接收RLC PDUs的AM实体组成。RLC子层的总体模型如图1所示。

2、RLC层消息解码关键原理

  对于RLC层的解码,主要考虑下面几种功能对解码所具有的普遍性影响:①RLC层支持分段和重组功能,在发送端将根据RRC建立时候的传输格式集等的指示对高层PDU分段,使之成为较小的PDU,并在接收端重组、解码时考虑到一条逻辑信道中的传输数据是在一个高层PDU依次传输,而需要对其重组;②RLC层支持串接功能,当一个RLC SDU的内容不能填满一个RLC PDU时,下一个RLC SDU的第一段可能放在该RLC PDU中,与前一个RLC SDU的最后一段连接在一起,解码时将依靠解出的LI(长度指示)的内容来具体分析串接数据的结构,并对其进行处理;③RLC具有填充功能,解码时也可以依据LI来做出判断处理。此外,其他功能造成的解码问题由于不具有普遍性,我们只是在解码中对具体问题具体分析。

  RLC层为高层(RRC,PDCP,BMC)[11]提供的数据传输服务有3种模式:透明模式、非确认模式和确认模式。他们的传输的消息结构如图2所示。

图2 RLC PDU格式

Fix.2 RLC PDU format

  图2给出了RLC PDU的3种传输模式中所包含的各个字段,这些字段都是解码程序模块设计及实际运行需要的,下面对部分关键的RLC头包含的字段做出如下解释[9]:①D/C字段,占用1 bit,对于数据PDU,D/C字段值为1;②SN字段,在UM PDU中占用7 bit,在AM PDU中占用12 bit,表示PDU传输的序列号;③HE,E字段,指示下一字段是要传输的数据还是RLC头中的长度指示,其中HE占用2 bit,E占用1 bit;④P字段,轮询比特;用于请求对等端发送状态报告,0表示不请求状态报告,1表示请求状态报告,占用1 bit;⑤LI字段,是长度指示字段[9],该字段在解码函数模块中非常重要,其字段提取的正确性是解码能否成功的保证。

  长度指示用来指示在PDU中每个RLC SDU结尾的最后一个八位组。除了保留专用目的的预定义值外,长度指示为:从RLC头的末尾直到一个RLC SDU片断最后一个八位组之间的八位组数目,包括在他们涉及的PDU中。长度指示大小为7 bit或者15 bit,其长度指示大小由上行和下行独立决定。对于UM和AM PDUs,长度指示值不能超过(PDU的值—RLC头)指示的值。涉及相同PDU的长度指示万一重发也不重新安排,和他们涉及的RLC SDUs有相同的顺序。

  (1)对AM模式的长度指示。如果AM PDU大小模式≤126 octets,则用7 bit长度指示,否则使用15 bit长度指示。对于一个RLC实体,长度指示的大小总是和所有的AM PDUs相同。其他具体意义和UM模式相似。

  (2)对于UM模式的长度指示。如果最大UM PDU大小模式≤125 octets,则使用7 bit长度指示,否则使用15 bit长度指示。在“最大UM PDU大小”模式中,长度指示的大小都和所有的UM PDUs相同。如果RLC SDU开始于RLC PDU的开头,并且RLC PDU在上行链路传输,而且在先前的RLC PDU中,指示的RLC SDU尾部恰好在最末端,或者是一个八比特组的“长度指示”(仅当15 bit长度指示被使用)不存在。此时,如果使用7 bit长度指示,长度指示值为111 1100;如果使用15 bit长度指示,值为111 1111 1111 1100。

  (3)在下行链路的情况。①如果使用7 bit长度指示,接收端将会准备收到值为111 1100的长度指示;当值为111 1100的长度指示存在和当它不存在时,接收端会根据接收到的UMD PDU更新VR(US),如果VR(US)更新的步骤不等于1(例如一个或者多个UMD PDUs没收到),则丢弃拥有这个片断的SDU或者是在这个没收到的UMD PDUs中的指示到这个SDUs的尾端的长度指示。②如果使用15 bit的长度指示,接收端将准备接收到的值为111 1111 1111 1100的长度指示;当值为111 1111 1111 1100的长度指示存在和不存在的时候,接收端会根据接收到的UM PDU更新VR(US),如果VR(US)更新的步骤不等于1(例如一个或者多个UM PDUs没收到),则丢弃拥有这个片断的SDU,或者在这个没收到的UM PDUs中的指示到这个SDUs的尾端的长度指示。上述2种情况中,RLC SDU片断的末端恰好是PDU的末端,这就没有对RLC SDU的长度指示。③如果用7 bit长度指示,值为000 0000的长度指示将用在下一个PDU的第一个长度指示上。④如果用15 bit长度指示,值为000 0000 0000 0000的长度指示将用在下一个PDU的第一个长度指示上。这种情况,若一个PDU包含一个15 bit长度指示指示一个RLC SDU末端,而PDU只剩下一个八位组,则PDU最后一个八位组将由发送端填充,并由接收端忽略,没有长度指示指示这个额外的填充,并且PDU最后一个八位组不填充到下一个SDU数据的初始八位组。

  在以上情况下,PDU中使用15 bit长度指示,一个RLC SDU的最后一个片断是一个刚好填充PDU的短八位组,即,①如果下一个PDU用15 bit长度指示,值为111 1111 1111 1011的长度指示将用在下一个PDU的第一个长度指示上,当前PDU的剩余一个八位组将被发送端填充,被接收端忽略,而且没有指示额外填充的长度指示;②如果下一个PDU使用7 bit的长度指示,RLC配置为UM模式,值为000 0000的长度指示将用在下个PDU的第一个长度指示上,并且传输前,它的序列号将会增加2。

  如果RLC PDU使用7 bit的长度指示,在RLC PDU中最后一个RLC SDU的末端有一个或者多个填充八位组,则用PDU最后的值为111 1111的长度指示值来指示存在的填充。同样,如果RLC PDU使用15 bit长度指示,在RLC PDU中最后一个RLC SDU的末端由一个或者多个填充八位组,则用PDU最后的值为111 1111 1111 1111的长度指示值来指示存在的填充(注意:在长度指示指示的存在RLC PDU内含的填充后,填充的长度可以为0)。

  如果长度指示在等待发送,而没有用到RLC SDU,一个由这个长度指示、适当填充长度指示和填充组成的RLC PDU将会被传输。

  长度指示预定义值用来指示填充。长度指示为7 bit和15 bit情况的保留值在表1和表2中列出,仅有预定义长度指示值能指示填充空间,这些值仅用于其他对PDU的长度指示值之后。

表1 长度指示为7 bit情况的保留值

Tab.1 Retention value when LI denotes 7 bits

表2 长度指示为15 bit情况的保留值

Tab.2 Retention value when LI denotes 15 bits

  状态PDUs能够在AMD PDU中使用部分或者全部填充空间被捎带。一个预定义长度指示值将用来指示捎带状态PDU,这个长度指示值代替了填充长度指示,捎带状态PDU直接附加在PDU数据之后。当只有部分填充空间被使用时,捎带状态PDU的尾端有一个SUFI域NO_MORE或者ACK指示,所以没有额外长度指示来显示这里还有填充。

  如果配置了外在信令的SDU丢弃,则一个AMD PDU能包含最大数字为15的长度指示来指示对应的的15个PDU,AMD PDU剩余空间将填充或者是捎带状态PDU。不同的模式有不同的SDU传输结构,所以将根据模式的不同采用不同的解码方法如下。

  (1)透明模式,在一个TTI中传输且仅传输一个上层SDU,且本层SUD传输时不添加RLC头结构,对于本层的SDU来说,它只是上层PDU的部分或者全部数据,因此方法比较简单,只需要将其在TTI中传输的数据按照传输顺序串接起来就可以形成一个完整的上层PDU数据,可直接供上层使用或者上层解码使用。

  (2)非确认模式,发送端通过UM-SAP从高层接收SDU后,将根据UM参数指示进行SDU分段或者串接,然后添加RLC层控制信息头,进行传输。解码程序中将先解出RLC层控制信息头的信息,然后根据头信息中的LI等信息进行分析研究,对后面的PDU数据进行分段(如果传输时候有串接情况)和串接(如果传输时候有分段情况)处理。

  (3)确认模式的数据PDU传输的情况,从解码的角度来看,其传输方法也和非确认模式类似(控制信息头稍有不同,解码时指针的移动大小稍不同;数据最后可能有捎带状态PDU,可对其采用确认模式的、控制PDU的解码方法),也可以采用确认模式的方法进行解码,确认模式的控制PDU解出PDU头信息后,采用循环的方法对若干个超域(SUFI)进行解码。

3、RLC层消息解码算法分析

  我们主要对TM模式、UM模式、AM模式的解码算法进行分析,其各个算法流程如图3,图4,图5所示。

图3 RLC层TM消息解码算法流程图

Fig.3 Arithmetic for RLC TM decode

图4 RLC层UM消息解码算法流程图

Fig.4 Arithmetic for RLC UM decode

图5 RLC层AM消息解码算法流程图

Fig.5 Arithmetic for RLC AM decode

  (1)对于TM模式传输的消息解码,其算法相对简单,解码时候只需要根据一个TTI指示的接口函数做出判断,将同一个TTI的消息片断按照接收次序组装起来,是一个完整上层消息,可送入上层解码。

  (2)对于UM模式传输的消息解码,首先判断PDU的长度,然后指针从头开始,按照消息结构提出PDU消息头的各个特征片断(如SN,LI等)的数据,并用一个数据结构存储其值,同时指针根据特征片断的长度向后移动,消息头解码结束后,根据消息头中LI和指针的继续移动,对SDU或者SDU片断进行处理,分别进行组装或者提取后,形成完整的上层SDU送入上层。对于SUD片断,需要数据结构对其暂时存贮,我们可使用容器或者链表等进行处理。

  (3)对于AM模式传输的消息解码,首先指针指向第一比特,判断是数据PDU还是控制PDU,如果是数据PDU,可参照UM模式解码算法,需要注意的是PDU的填充可能有捎带状态PDU,可将其数据提取出来,按照控制PDU的算法进行处理;如果是控制PDU,可使指针按照消息结构各个特征片断的长度进行移动,并解码,需要注意的是,控制PDU中的SUFI可能有多个,我们可使用循环处理的方法进行处理。

相关文章
· TD-SCDMA网络无线利用率提升
· TD-SCDMA该被打入冷宫吗
· TD专利长期免费成活雷锋 曾与高通谈判遭拒
· TD-SCDMA用户数突破2亿
· 中国移动TD-SCDMA网络累计总投资超1500亿
· 摆脱路径依赖束缚 F频段新建模式性能更优
泰尔网版权与免责声明:
①凡本网注明“来源:泰尔网”的所有作品,版权均属于泰尔网,未经本网授权不得转载、摘编或利用其它方式使用上述作品。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:泰尔网”。违反上述声明者,本网将追究其相关法律责任。
② 凡本网注明“来源:XXX(非泰尔网)”的作品,均转载自其它媒体,转载目的在于科学研究和传播交流更多资讯,不代表本网赞同其观点和对其真实性负责。
③ 如因作品版权和其它问题需要同本网联系的,请在30日内进行。 联系信箱:cttl@catr.cn
5月4日,工业和信息化部公布了《通信工程建设项目招标投标管...
2014年世界电信和信息社会日的主题是“宽带促进可持续发展”...
 ·
 ·
 ·
 ·
 ·
 ·
热点专题
泰尔数据
中国通信标准化协会    电信终端测试技术协会    信息名址服务管理中心    工信部电信经济专家委员会   
中国下一代互联网示范工程专家委员会    中国通信企业协会通信网络安全委员会    中国通信企业协会增值服务专业委员会    云计算发展与政策论坛   
Copyright©2008-2014 cttl.cn All Right Reserved. 京ICP证080582 京公网安备11010802010351号 网站声明