何苏勤,翟海超
(北京化工大学 信息科学与技术学院,北京100029)
为了提高无线移动传输速率,3GPP(the 3rdgeneration partnership project)启动了LTE(long term evolution)技术的研究与实施[1]。LTE也称为3.9G或准4G无线通信技术,它采用多天线和正交频分复用的技术,支持更高的移动速度和更高的带宽。LTE空中接口协议栈是运行于物理层之上的软件部分,其主要作用是为终端和基站之间的通信提供服务。现阶段LTE的研究和应用依然处于试验阶段,离大规模商用还有一定距离,且其关键技术多为大公司所掌握。但是,LTE的技术优点决定了它在将来必将得到广泛地推广和应用,而且也会得到小型无线通信设备厂商尤其是无线实时视频监控系统厂商的青睐和关注。然而在面向小型无线通信系统的设计和实现中,LTE空中接口标准协议栈显得过于庞大且存在部分冗余功能,因此对标准的接口协议栈进行精简和优化成为一种需求。针对这种问题,本文对标准协议做了简化并实现了该简化后的设计,最终在Xilinx Virtex-6开发板上验证了该设计的可行性和有效性。
LTE系统中存在3个子层,如图1所示,分别是:层1物理层(physical layer,PHY层)、层2数据链路层、层3无线资源控制层(radio resource control,RRC层)。其中,层2数据链路层又被划分为以下几个子层:媒体接入控制(media access control,MAC)子层、无线链路控制(radio link control,RLC)子层和分组数据汇聚协议(packet data convergence protocol,PDCP)子层[2]。
PHY层的主要功能是完成对数据的无线处理过程;数据链路层的主要任务是完成在发送或接收过程对数据的处理和控制;RRC层的主要功能是控制整个LTE系统的工作状态。本文主要阐述的是协议栈的主体即整个数据链路层对数据的处理过程及实现方法。
图1 协议栈的分层结构
最新的无线通信协议包括LTE协议都是支持全IP协议标准,并且使用标准的协议栈如TCP/IP协议栈[3],所以数据链路层中PDCP子层的主要功能是实现LTE系统对IP数据包的兼容,即完成对IP包的封装并组成本层的通信单元 PDCP协议数据单元(protocol data unit,PDU)[4]。RLC子层主要功能是对PDCP PDU进行分段和级联组成RLC PDU,以保证PDU的大小符合无线TB(transport block)帧的格式要求。MAC子层的功能是将不同信道的信息复用并添加相应的头部后组成MAC PDU,最后添加相应的CRC校验组成物理层的发送帧[5],并利用物理层的发送功能进行发送。
根据LTE协议栈层次的划分,在对协议栈的空中接口层2的实现时过程中,对整体的处理过程分为3个处理模块:PDCP模块、RLC模块、MAC模块,分别对应3个子层。
PDCP子层的主要功能是完成对IP数据封装,而在嵌入式程序开发中通常使用lwIP作为 TCP/IP协议栈[6-7]。lwIP协议中的采用的是pbuf结构。本文在进行PDCP子层的设计和实现时,引入了这个结构,以保证IP数据包的完整性。此外,为完成PDCP子层的发送端的功能,采用双缓冲队列,分别是处理缓冲队列和发送缓冲队列。其中,处理缓冲队列的主要作用是缓存将要进行处理的IP数据,队列结点定义为pdcp_sdu结点,如图2所示。发送缓冲队列的主要作用缓存封装好的SDU,待下层允许发送时再进行发送,该结点与缓冲队列结点定义类似,也是采用链表实现。
图2 处理缓冲队列结构定义
每当PDCP子层收到一个lwIP数据的pbuf结点时,都将生成一个pdcp_sdu结点,并将生成的sdu结点插入到处理缓冲队列尾部等待封装处理。而在对处理缓冲队列进行封装处理时,根据缓冲队列结点的sn值和pbuf结点生成发送队列结点pdcp_pdu,并插入到发送缓冲队列尾部。最后在允许发送时,通过调用下层函数将生成的PDU的有效数据进行发送。PDCP子层发送端的数据处理过程如图3所示。
图3 PDCP子层发送端数据处理流程
在接收端的PDCP的对等实体中,接收的数据是PDCP PDU,所以设计了一个由pdcp_pdu结点组成的队列来构成PDCP子层的接收窗口。图4给出了PDCP接收端处理流程图,其中最重要的部分是根据sn值进行窗口排序,并按照顺序提交[8]。尽管有RLC子层保证数据的有效传输,但是依然存在数据丢失的情况。如果确实有数据始终没有接收到,并且已经超时(通过定时器和中断控制器协同完成),则直接跳过等待数据并进入下一个编号为sn+1的pdu的接收或处理。
图4 PDCP子层接收端数据处理流程
相对于标准协议的设计,本文在设计PDCP子层时去除了健壮性头压缩(robust of header compress,ROHC)功能和加密功能。因为ROHC主要针对VoIP数据进行数据压缩[9],而在该系统中,没有VoIP数据且传输的IP数据包都比较大。而在数据包比较大时IP头压缩并不能带来明显的性能提升,反而消耗处理器资源,降低其性能。去除加密是因为此系统对安全性可以由TCP/IP网络保证。
RLC子层为上层提供可靠的传输服务,分为3种模式:透明模式(transparent mode,TM)、无确认模式(un-acknowledgement mode,UM)、确认模式(acknowledgement mode,AM)[10]。TM模式对数据不做任何处理,而UM模式的处理方式和AM模式类似且要简单,所以本文重点介绍AM的实现过程。
在设计实现RLC AM发送端时,依然采用双缓冲队列,分别是处理缓冲队列和发送缓冲队列。每次收到上层发送PDCP PDU的请求时,函数将PDCP PDU的有效数据放到处理缓冲队列中。RLC子层的处理函数将缓冲队列中的数据依次进行封装成大小一致的RLC PDU并放入到发送缓冲队列。在允许发送的时刻,RLC子层按照发送窗口的要求进行发送,而发送窗口只是利用了发送缓冲队列的一部分。
图5给出了RLC子层AM模式工作流程图,其中重传缓冲区是实现ARQ(自动重传请求)功能重要组成部分。ARQ功能的实现过程是RlcArq()处理函数根据收到来自接收端的状态报告[11],将发送窗口中没有得到确认的RLC PDU数据拷贝至重传缓冲区(实际为了节省内存在实现过程中只拷贝了指向相应的PDU指针)。在发送端将重传缓冲区中数据部分发送完成之后,需要及时将AMD PDU的轮询字段(Poll字段)置1,通知接收端对所接收的数据进行状态报告[12]。
图5 RLC子层AM模式数据发送流程
与RLC发送端一样,在RLC接收端,也设计了一个队列来实现接收窗口,它的大小和形式与发送端发送缓冲队列一致。通过调整接收指针来保证与发送端匹配工作完成数据接收。另外在接收到数据时会根据轮询字段的值,对是否生成状态报告进行判断。如果轮询字段为1且SN处于接收窗口内,就生成状态报告,发送给发送端。
MAC层一个重要功能是复用和解复用[13]。所谓复用即是将来自不同信道中的数据通过编码,封装到相应的MAC包中。图6给出MAC层的发送过程流程图。
在MAC层发送端,沿用了前面介绍的双缓冲队列。但如果发送的是RLC PDU,则它的大小和TB块大小相同,可以直接调用物理层功能进行发送。如果是其它信道的MAC业务数据单元(service data unit,SDU),需要先将其放入到缓冲队列中,然后根据按先后顺序封装到大小合适的MAC PDU中,再进行发送。
接收端的解复用恰恰是一个相反的过程,即根据MAC子头中的信息,恢复出原始数据,并将数据递放到缓冲队列中,利用分发函数将数据传递给相应的操作过程。
图6 MAC子层发送流程
硬件平台采用的是Xilinx公司的Virtex-6ML605FPGA开发板。图7给出了系统的硬件结构图。ML605开发板提供了高性能的FPGA,该芯片内部有MicroBlaze软核处理器,并提供了DDR3内存控制器、以太网控制器、串口控制器、中断控制器、定时器、Aurora等外围设备。其中在以太网部分,BSP(Board Support Package,板级支持包)中提供了lwIP的功能;Aurora是实现两块开发板互连通信的串行高速接口。图7中的LTE_TX和LTE_RX是LTE物理层的发送和接收链路知识产权(Intellectual Property,IP)核,其中LTE_TX发送链路完成对数据的编码、调制、映射与发送,而LTE_RX完成对数据的接收、解映射、解调与解码过程。
图7 系统硬件结构
本系统的测试以开发板上的网口作为UE的数据来源,调用网口的lwIP协议编写了一个上层的应用程序,以实现对网口数据的捕获和预处理;利用开发板提供的AURORA模块,并用两组SMA线将两块板上的TX、RX的N端和P端分别进行连接。系统测试框图如图8所示:在1号微机(PC1)和2号微机(PC2)上分别用VLC软件将视频进行编码发送和接收显示。
测试方案共两种,第一种是数据通过LTE物理层链路后用AURORA模块连接,在LTE链路采用不同的编码方式和不同发送速率下测试协议栈的处理速率;第二种是数据不通过LTE物理层链路而是直接利用AURORA模块发送到接收端,在不同发送速率下测试协议栈的处理速率。测试结果见表1。
表1 协议栈处理速率测试结果
从表1中可以看出,当LTE物理链路采用最高速度的64QAM编码,且发送速率为13Mbps时,通过LTE物理层时,测试结果是有TB溢出,说明此时传输速率是受限于物理层。而不通过LTE链路,直接用AURORA模块传送数据时,协议栈的速率最高可以达到15.5Mbps。由此也证明协议栈的速率是完全满足该系统LTE物理链路的收发速率要求。
本文以Virtex-6ML605的开发板为硬件环境,采用双缓冲机制,成功开发并实现了一个可以在MicroBlaze软核上正常工作的LTE空中接口协议栈。虽然经过精简,但是作为一个数据通信所依赖的协议,依然能够在保证速率的基础上为数据提供可靠的传输。最后通过对协议栈的测试实验,表明这种实现协议栈的方法是有效的,同时也表明该实现完全满足采用LTE技术的小型无线通信系统对于传输数据速率的要求。而在未来的通讯发展中,随着LTE技术的推广和应用,这种面向小型设备的LTE空中接口协议栈的研究和实现有很广泛的现实意义和应用前景。
[1]ZHAO Xunwei,LIN Hui,ZHANG Ming,et al.3GPP long term evolution:architecture and specification[M].Beijing:Post & Telecom Press,2010(in Chinese).[赵训威,林辉,张明,等.3GPP长期演进(LTE)系统架构与技术规范[M].北京:人民邮电出版社,2010.]
[2]3GPP TS 36.300V9.4.0.Evolved universal terrestrial radio access(E-UTRA)and evolved universal terrestrial radio access network(E-UTRAN);Overall description;Stage 2[S].
[3]Vijay T Raisinghani,Sridhar Iyer.Cross-layer design optimizations in wireless protocol stacks[J].Computer Communications,2004,27(8):720-724.
[4]ZHANG Xincheng,TIAN Tao,ZHOU Xiaojin,et al.LTE air-interface technology and performance[M].Beijng:Post & Telecom Press,2009(in Chinese).[张新程,田韬,周晓津,等.LTE空中接口技术与性能[M].北京:人民邮电出版社,2009.]
[5]Anna Larmo,Magnus Lindstrm,Michael Meyer,et al.The LTE link-layer design[J].IEEE Communications Magazine,2009,47(4):52-59.
[6]XILINX.lwIP 1.3.0Library(v3.00.a)[EB/OL].[2010-10-5/2012-03-15].http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_4/oslib_rm.pdf.
[7]Stephen MacMahon,Nan Zang,Anirudha Sarangi.Light-Weight IP(lwIP)application examples[EB/OL].[2011-04-21/2012-03-15].http://www.xilinx.com/support/documentation/application_notes/xapp1026.pdf.
[8]3GPP TS 36.323V9.0.0.Evolved universal terrestrial radio access(E-UTRA);Packet data convergence protocol(PDCP)specification[S].
[9]SUN Yuanxin,HANG Xiaofei,ZHANG Xuemei.Function of PDCP sublayer in LTE system[J].Modern Electronics Technique,2011,34(7):44-48(in Chinese).[孙远欣,杭小飞,张雪梅.LTE系统中PDCP子层功能研究[J].现代电子技术,2011,34(7):44-48.]
[10]3GPP TS36.322V9.2.0.Evolved universal terrestrial radio access(E-UTRA);Radio link control(RLC)protocol specification[S].
[11]Luis Alonso,Ramon Agusti.LTE,Optimization of wireless communication systems using cross-layer information[J].Signal Processing,2006,86(8):1755-1772.
[12]LI Zeyong,ZHAO Guohui.Research and implementation of RLC Layer in LTE protocol stack[J].Digital Communication,2012,38(1):48-51(in Chinese).[李责勇,赵国会.LTE协议栈RLC层的研究与实现[J].数字通信,2012,38(1):48-51.]
[13]3GPP TS36.321V9.2.0.Evolved universal terrestrial radio access(E-UTRA);Medium access control(MAC)protocol specification[S].