LTE协议栈MAC层随机访问过程设计与实现
2011-10-12成程
成程
北京工业大学嵌入式系统重点实验室,北京,100124
LTE协议栈MAC层随机访问过程设计与实现
成程
北京工业大学嵌入式系统重点实验室,北京,100124
随机接入技术是LTE协议栈MAC层的功能中十分重要的一项技术。在LTE中,随机接入的主要目的是上行定时同步校正,用户功率调整和用户资源需求的申请。文章为了实现LTE协议栈MAC层随机访问过程,重点研究了MAC层协议,分别提出实现随机访问过程的方案和测试仿真平台的搭建方法。文章详细描述了随机接入的流程、有限自动状态机的设计原理以及具体实现方法,为了提高LTE协议栈的性能,文章提出了零拷贝技术。使用两台PC机做了仿真实验,得到了基于竞争模式下的随机访问过程实现的结果。
LTE;MAC;随机访问 ;零拷贝技术
引 言
LTE(Long Term Evolution)项目是3G的演进,是3G与4G技术之间的一个过渡,是3.9G的全球标准,它改进并增强了3G的空中接口技术。在LTE协议栈层次结构中,MAC(Media Access Control)层是LTE系统的主要组成部分之一。在MAC层中随机访问过程直接影响到系统的性能,本文在仔细研究随机访问过程的基础上设计并实现了该模块的功能,并且在系统设计上提出了增强性能的解决方案。
1 LTE MAC层随机访问研究
随机访问过程
当UE没有被分配上行无线资源但有数据要传输时候或者上行方向时间失同步时候进入随机访问过程。随机访问过程是FDD和TDD均有的过程,与小区的大小无关。如下的五个事件要执行随机访问过程:
1)来自LTE_RRC_IDLE的最初访问;
2)无线连接失败之后的初始访问;
3)需要随机访问的切换;
4)在RRC_CONNECTED期间,DL数据到达,并需要随机访问;
5)在RRC_CONNECTED期间,UL数据到达,并需要随机访问。
随机访问过程分成基于竞争的和基于非竞争的,基于竞争的应用于上述五种事件,基于非竞争的应用于切换和下行数据到达情况。
基于竞争随机访问:
①:上行随机访问前导。包括6-bit,其中5-bit是随机选择的ID,另1-bit是其他信息:请求资源控制块的大小或者CQI等。
②:下行随机访问相应。包括校时信息、初始RL授权信息和临时CRNTI。
③: Msg3。就初始访问来说包括48-bit 唯一UE标识和RRC建立连接的请求信息,使用HARQ。
④:竞争解决。包括UE标识和传输HARQ返回信息。
基于非竞争随机访问:
前导配置信息。eNB给UE分配的非竞争随机访问前导,6-bit。
①和②与基于竞争的随机访问过程大体相同。
初始随机访问过程:
(1)初始随机访问事件触发进入随机访问过程,因为初始随机访问是基于竞争的访问,所以UE端选择前导码、选择RACH信道发送前导码,打开定时器,随机访问状态由ra_idle变成ra_preamble_snd;
(2)若定时器超时则随机选择指定范围的延迟时间重新选择前导码并发送,重置定时器,随机访问状态由ra_preamble_snd变成ra_preamble_resnd;
(3)若接收线程接收到随机访问响应并且通过RA_RNTI判断出是自己信息之后,通知发送线程随机访问状态由ra_preamble_snd或者ra_preamble_resnd变成ra_rar_rcv.接收线程同时解码此随机访问响应;
(4)由于初始随机访问是基于竞争的所以解码后会通知发送线程将准备好的Msg3发送,打开定时器,随机访问状态由ra_rar_rcv变成cnt_ra_msg3_snd;
(5)若定时器超时或者HARQ模块提出重传信号则将Msg3信息重新发送,重置定时器,随机访问状态由cnt_ra_msg3_snd变成cnt_ra_msg3_resnd;
(6)若接收线程接收到竞争解决信息并且通过TEMP_C_RNTI判断出是自己信息之后,通知发送线程随机访问状态由cnt_ra_msg3_snd或者cnt_ra_msg3_resnd变成cnt_ra_resolut_rcv ,接受线程同时解码此竞争解决信息;
(7)若从竞争解决信息中找到自己48-bit唯一UE标识,随机访问状态由cnt_ra_resolut_rcv变成ra_success.若找到的UE标识不是自己的,随机访问状态由cnt_ra_resolut_rcv变成ra_fail.
(8)若随机访问状态是ra_fail则延迟指定的一段时间后重新进行前导码的选择过程回到步骤(1);
(9)若随机访问状态是ra_success则通知上层随机访问过程成功,并将TEMP_C_RNTI赋值给C_RNTI.
2 仿真平台搭建和提高性能设计方案
2.1 仿真平台搭建
图3-1 初始随机访问实体图
(1)采用socket通信方式来模拟物理层通信。考虑到UDP模式是不可靠传输,可以很好的模拟实际通信中信道条件不好的情况,所以socket 采用UDP模式。
(2)Transport Channel和Logic Channel的设计:参考“生产者消费者算法”,利用windows系统提供的信号量和互斥量机制将传输信道和逻辑信道设计成类似于消息队列的访问方式。可以实现socket线程和MAC层收发线程的访问同步。
2.2 提高性能设计方案:
(1)MAC层与上下层间采用零拷贝技术,即MAC层与上下层协议都处在同一个地址空间,因此数据传输可以利用传地址方式,从而减少了数据复制次数,一定程度上提高了软件执行效率。
(2)采用了内存池技术,通过对申请空间小而申请频繁的对象进行有效管理,减少内存碎片的产生,合理分配管理用户内存,从而减少系统中出现有效空间足够,而无法分配大块连续内存的情况。
(3)采用了线程池技术,当系统中有大量线程时,采用此技术可以有效减少线程创建和销毁的时间。
3 功能测试
上面图1是随机访问状态机中的初始访问实例,共有四个线程:用于模拟物理层发送的线程Sock_Phy_Send,用于模拟物理层接收的线程Sock_Phy_Recv,用于Mac层发送的线程Mac_Send,用于Mac层接收的Mac_Recv.具体流程如下:
(1)Mac_Send获得选取的前导码;
(2)Mac_Send将前导码封装成传输信道统一的结构单元并将它插入RACH信道;
(3)Sock_Phy_Send从RACH取出单元;
(4)Sock_Phy_Send将之发送到eNB;
(5)Sock_Phy_Recv收到eNB的信息;
(6)Sock_Phy_Recv从内存池获得内存块来存储收到的信息;
(7)Sock_Phy_Recv将此信息插入到DL_SCH中;
(8)Mac_Recv从DL_SCH中取得信息并解码
(9)Mac_Recv将状态改变信息通知Mac_Send;
(10)Mac_Send从CCCH中获得将要建立RRC连接的请求信息;
(11)Mac_Send获得48-bit的UE ID;
(12)Mac_Send将这些信息封装成传输信道统一的结构单元并将它插入UL_SCH;
(13)Sock_Phy_Send从UL_SCH取得单元;
(14)Sock_Phy_Send将之发送到eNB;
(15)Sock_Phy_Recv收到eNB的信息;
(16)Sock_Phy_Recv从内存池获得内存块来存储收到的信息;
(17)Sock_Phy_Recv将此信息插入到DL_SCH中;
(18)Mac_Recv从DL_SCH中取得信息并解码;
(19)Mac_Recv将状态改变信息通知Mac_Send;
(20)Mac_Send通知上层初始随机访问成功或者失败,要是失败则会推迟规定时间后重新进行随机访问。
4 总结与展望
文章对LTE 协议栈 MAC层随机访问过程进行深入分析,在此基础上设计了MAC层的整体架构并实现了初始接入的随机访问过程,重点研究的是基于竞争模式下的随机访问过程。该随机访问过程在仿真平台上得到了验证。有限自动状态机具有全面性和简单性特点,便于在多线程环境下实现。随机接入过程的实现对RRC层和物理层功能的实现具有重大意义。
[1]胡宏林,徐锦.3GPP LTE无线链路关键技术.北京:电子工业出版社.2008:207-221
[2]张克平.LTE-B3G/4G移动通信系统无线技术.北京:电子工业出版社.2008
[3]屈延文.软件行为学.北京:电子工业出版社.2004
[4]屈延文.信息化的科学梦.电子工业出版社.2006
[5]严蔚敏,吴伟民.数据结构(C语言版)
[6]冯晓芳.我国电话用户突破九亿
[7]孙定.改变未来的十三项移动技术
10.3969/j.issn.1001-8972.2011.04.039