LTE协议栈中ASN1模块的设计与实现

上传人:z****2 文档编号:209888104 上传时间:2023-05-15 格式:DOCX 页数:10 大小:20.74KB
收藏 版权申诉 举报 下载
LTE协议栈中ASN1模块的设计与实现_第1页
第1页 / 共10页
LTE协议栈中ASN1模块的设计与实现_第2页
第2页 / 共10页
LTE协议栈中ASN1模块的设计与实现_第3页
第3页 / 共10页
资源描述:

《LTE协议栈中ASN1模块的设计与实现》由会员分享,可在线阅读,更多相关《LTE协议栈中ASN1模块的设计与实现(10页珍藏版)》请在装配图网上搜索。

1、LTE协议栈中ASN.1模块的设计与实现李小文;冉靖【摘 要】It is necessary to realize the Abstract Syntax Notation One(ASN. 1) for Radio Resource Control(RRC) in development of Long Term Evolution(LTE) protocol, but the efficiency of traditional method is low. Aiming at this problem, this paper proposes a novel design method o

2、f ASN.1 encode/decode module to meet the requirement of LTE protocol stack. The method adopts modular design, simplifies function call and improves code efficiency. It realizes and tests ASN. 1 encode/decode module in TD-LTE wireless comprehensive measurement instrument. Testing the functions of thi

3、s module, it proves the effect of module to encode and decode in RRC information of LTE protocol stack. It is practically useful and owns promotional value.%开发长期演进(LTE)协议必须 实现针对无线资源控制(RRC)消息的ASN.1编解码模块,但传统的ASN.1编解码方 案函数调用频繁,编码效率较低为此,分析LTE协议栈的软件需求,提出一种ASN.1 编解码模块设计与实现方案.该方案采用模块化设计,从而简化函数调用、提高编码 效率在TD

4、-LTE无线综合测试仪的协议栈软件中实现并进行测试,结果表明,该方案 可实现对RRC消息的编解码.【期刊名称】 计算机工程【年(卷),期】 2011(037)008【总页数】4页(P252-255)关键词】长期演进协议栈;抽象语法记号;压缩编码规则;无线资源控制 【作 者】李小文;冉靖【作者单位】熏庆邮电大学计算机科学与技术学院,重庆,400065;熏庆邮电大学计 算机科学与技术学院,重庆,400065【正文语种】中文【中图分类】TP302.11 概述在“移动通信宽带化”的趋势下,为对抗WIMAX(World interoperability forMicrowave Access)等无线接入

5、技术的市场挑战,3GPP(3rd Generation Partnership Project)组织在十几年超3G研究的技术储备基础上研发出了长期演 进(Long Term Evolution, LTE)技术。LTE能提供比以往所有移动通信更高的数据 传输率,它支持各类数据的传输,整合了广域网覆盖,并提供对移动设备的无缝连 接。LTE的性能目标是在20 MHz频谱带宽下提供下行100 Mb/s、上行50Mb/s的峰值速率。与前一代移动通信系统相比,LTE的频谱利用率有了显著提高, 并设计了新的无线网络架构用来简化操作和降低成本1。在LTE系统中,进行通信的设备是由不同的厂商生产的,其硬件结构、

6、软件结构 以及数据结构等均不相同。因此,在通信过程中,不同类型的设备对同一数据的理 解会出现二义性。为解决该问题,LTE协议在设计时使用了抽象语法记号 (Abstract Syntax Notation One, ASN.1)。ASN.1 是 ISO 组织为解决不同类型终 端或开放系统之间应用数据信息的交换而提出的,它以一种高度抽象的形式来表示 数据结构信息,用它描述的信息独立于任何应用环境,不会引起二义性的解释。LTE协议栈中,ASN.1用来描述空中接口(Uu)的层3中无线资源控制(Radio Resource Control, RRC)消息2,RRC主要实现广播、寻呼、RRC连接管理、 R

7、B控制、移动性功能、终端的测量和测量上报控制等功能,在LTE协议栈中非常 重要。如何高效地实现RRC消息的编解码,成为LTE协议栈重点解决的问题。 本文针对LTE协议栈,设计一种新的ASN.1编解码模块实现方案,并在TD-LTE 无线综合测试仪的协议栈软件上对其进行了实现和测试。2 ASN.1数据类型及编码规则ASN.1标准可分为抽象语法和传送语法3。抽象语法规定ASN.1怎样对数据类型 进行描述;传送语法规定数据类型的值在传输时使用何种编码规则。在ASN.1中,一个数据类型就是一个值的集合。一个给定的ASN.1类型的值是该 类型集合里的一个元素。ASN.1有2种数据类型,基本类型是ASN.1

8、描述数据结 构的基础;结构类型是由基本类型和其他结构类型组合而形成的复杂类型。结构类 型中有可选成员,可选成员可能有默认值4。在 LTE 中使用的基本类型有 BIT STRING. INTEGER. NULL、OCTET STRING、 BOOLEAN、ENUMERATED。ASN.1标准定义了 5个结构类型,在LTE中使用 到的只有 3 个:CHOICE , SEQUENCE 和 SEQUENCE OF。ASN.1标准定义了 5种编码规则:基本编码规则(Basic Encoding Rules, BER), 规范编码规则(Canonical Encoding Rules, CER),分布式编

9、码规则 (Distinguished Encoding Rules,DER),压缩编码规则(Packed Encoding Rules, PER) , XML编码规则(XML Encoding Rules, XER),这5种编码规则各有特点, 在实际应用时,根据具体的需求进行选择5。3 ASN.1编解码模块设计3.1 设计目标根据ASN.1应用过程和LTE协议栈的要求,设计的ASN.1编解码模块应达到如下目标:(1) 满足LTE协议栈对实时性的要求;(2) 向高层同时提供编码和解码2个接口函数;(3)使用结构化设计,但子函数层应 尽可能少;(4)出现异常情况时,要提供异常信息,并进行日志记录,

10、便于调试。3.2 编码规则的选取在ASN.1的5种编码规则中,基本的非对齐模式的PER在编码时冗余最小、编码 最紧凑、效率最高。本文设计的ASN.1编解码模块将选用基本的非对齐模式的 PER作为编码规则,原因如下:PER省略对类型标识符的编码,提高编码效率。PER省略长度编码。(3) PER调整数值范围,可以节省大量编码,对于一切有下界的数值简化编程。(4) 经非对齐模式的PER编码后的比特无须进行8位组对齐,能使编码更紧凑。PER 编码的结构如图 1 所示,为 “PLC”v optional Preamble, optional Length, optional Contents , PLC

11、中每个域都不再是8位组串而是比特串,且 每个域都是可选的。Preamble只出现在结构类型中,用来记录结构类型中是否有 扩展、可选成员或缺省值;Length用来记录Contents的具体长度,其单位根据 具体类型而变化;对于Contents,若数据是基本类型,则直接编码,若数据是结 构类型,则进行嵌套编码。PER对各个类型的详细编码规则参照ITU-T的X.691 标准。图1 PER编码结构3.3 详细设计ASN.1在一种高度抽象的层次上来表示数据结构信息,各种应用程序无法直接对 其进行操作和使用。因此,在实际应用中,需要先将ASN.1描述的数据结构翻译 转换成具体语言(如C、C+、Java等)

12、的数据结构表示形式,然后通过相应的ASN.1编码函数生成能在通信介质上传输的二进制码流。整个过程如图2所示。图2 ASN.1应用过程传统的ASN.1编解码模块包括ASN.1数据结构、ASN.1编解码函数、ASN.1 基 本类型编解码库、其他辅助函数。先将ASN.1抽象描述转换为相应语言的数据结 构,再根据数据结构编写ASN.1编解码函数,最后编解码函数调用基本类型编解 码库来实现对数据的编解码功能。该方案简单易实现,但编解码效率低,每调用一 次基本类型编解码库都需要重新计算编解码比特个数,增加了额外开销。并且,该 方案的函数调用过多,也降低了程序效率。在分析传统方案优缺点的基础上,本文设计了一

13、种新的ASN.1编解码模块方案, 如图3所示。该方案包含有内存管理模块、比特流处理模块、辅助模块以及核心 模块,采用了高效的C语言作为实现语言。新的ASN.1编解码模块方案简化了调 用过程,提高了程序效率,更适合于LTE协议栈软件的开发和应用。图3 ASN.1编解码模块结构3.3.1 内存管理模块由于RRC消息的数据结构中存在大量的指针,解码过程中对其赋值就需要频繁地 申请内存。若使用C语言提供的内存管理函数,会造成系统开销大、易生成碎片 等问题。因此,需要设计专门的内存管理模块。内存管理模块的设计基于“多次申请,一次释放”的原则,使用一个数组作为 ASN.1编解码模块的专用内存区,并用一个偏

14、移变量指向当前可用的内存,提供 3个函数,分别是初始化函数、内存分配函数以及内存释放函数。解码过程中所需 要的内存均在专用内存区中按顺序申请,待完成一次解码或编码任务后统一释放内 存,开销仅为O(1)。3.3.2 比特流处理模块应用于LTE协议栈软件的ASN.1编解码模块选用非对齐模式的PER,比特是编解 码过程中的基本单位。在编解码中,经常需要对字节中的某些比特进行特定的操作, 而C语言中缺乏能直接利用的库函数。所以,需要专用的比特流处理模块来进行 比特的获取、添加等操作。比特流处理模块定义了“从比特流中取得比特串函数 GETSTREAMFROMSTREAM(source, pos, len

15、, target)” 和“向比特流中添加比 特串函数 SETBITSTREAMFROMSTREAM(target, pos, len, source)” 来实现比 特操作。3.3.3 辅助模块辅助模块包含程序跟踪和异常处理2个部分。ASN.1编解码模块代码庞大,函数 之间层层调用,如何调试检错成为突出的问题。程序跟踪模块负责在程序运行时,将阶段数据导出到运行日志中,以备实时检错。 异常处理则解决编解码过程中难以预料的一些问题,比如数据越界、返回值错误等。3.3.4 核心模块核心模块负责实现对 RRC 消息的编解码功能,并向高层提供编码和解码 2 个接口。 RRC消息的ASN.1抽象描述是嵌套型

16、的,因此,它转换成的C语言数据结构和实 现的编解码函数也是嵌套型的。每个转换后的C语言数据结构都有一个对应的编 解码函数或宏,负责对结构中所有成员进行编解码,在实现编解码函数时计算出所 需的编解码比特个数。若某个成员是由其他自定义数据结构定义,则直接调用其对 应的编解码函数。每调用一个编解码函数,都要存储其编码或解码结果。当所有函 数返回时,编解码过程结束。4 ASN.1编解码模块的实现与测试本文针对使用LTE协议栈软件的TD-LTE无线综合测试仪,实现了 ASN.1编解码 模块并对其进行测试。4.1 ASN.1编解码模块的实现模块的编解码功能分2步实现:将RRC消息的ASN.1抽象描述翻译转

17、换为C 语言数据结构,转换规则见表1 (2)根据C语言数据结构为每一个对象实现编解 码函数。表1 ASN.1类型转换规则ASN.1类型C数据类型NULL char BOOLEAN charBIT STRING struct bitstring_nameunsigned short length;unsigned short *value; bitstring_name;OCTET STRING struct octetstring_nameunsigned short length;unsigned short *value; octetstring_name;INTEGER unsigned

18、 short ENUMERATED enum variable_namemember_01 = 0,member_02 =1, . variable_name;SEQUENCE struct sequence_name类型 member_01;类 型 member_02;.sequence_name;SEQUENCE OF struct sequenceof_namestruct sequenceof_name *next;sequenceof_name value;*sequenceof_name;CHOICE struct choice_nameunsigned short choice;

19、#define member_011#define member_022.union类型 member_01; 类型 member_02;. choice_union; choice_name;自定义类型 typedef 自定义 类型新类型名自定义类型变量名完成数据结构的转换后,再实现对应的编解码。RRC消息数据结构的编解码分为 3个部分:协议数据单元(Protocol Data Unit, PDU)的编解码,简单基本信息单 元的编解码以及复杂基本信息单元的编解码。其中,PDU和复杂基本信息单元的 编解码使用函数的方式实现;简单基本信息单元的编解码使用宏的方式实现,以减 少进出函数的开销。编解

20、码函数及宏的编写要严格遵守X.691标准。下面以CounterCheckResponse为例来说明数据结构的转换及编解码实现过程。CounterCheckResponse是一个复杂基本信息单元,其ASN.1描述如下:在对复杂基本信息单元实现编码时,需要从上至下为每一个数据结构成员编码。 rrc_TransactionIdentifier是由其他数据类型所定义的成员,对它的编码直接调用 编码函数 Encode_RRC_TransactionIdentifier(BitS, bitP-os, target)实现; criticalExtensions是一个 choice类型,包含2个成员,先使用一

21、比特对其选 择值(choice_num )进行编码,再根据选择值,对被选中的成员进行编码。本例选 择 counterCheck Response_r8,则调用 Encode_CounterC- heckResponse_r8_IEs(in, bitPos, out)进行编码。4.2 ASN.1编解码模块的测试设计并实现的ASN.1编解码模块是否符合PER标准,能否正确对RRC消息实现 编解码都需要进行测试。整个测试以RRC消息的PDU为单位进行。测试方法如 下:使用成熟的商业软件OSS Nokalva公司的ASN.1 Tools为PDU赋值并生成符 合PER的二进制编码(数据A,即测试用例)。

22、(2) 使用本文实现的ASN.1编解码模块对数据A进行解码,重新得到PDU的值(数 据B)。再次使用ASN.1编解码模块对数据B进行编码,得到二进制编码(数据C)。通 过对比数据A和数据C的差异就能迅速判断编解码的正误。该方法简单、高效,测试通过则能证明按照该方案实现的ASN.1编解码模块符合 PER标准,避免了个人在理解标准时可能出现的差错。实现的ASN.1编解码模块以3GPP.TS 36.331 V9.0.0中RRC消息的ASN.1抽象 描述为基础。在测试时,以该协议的RRC消息的PDU为单位赋予不同的值,得 到若干测试用例,这些测试用例覆盖PDU的所有数据分支及边界值。3GPP.TS 3

23、6.331 V9.0.0的RRC消息共15个PDU,如表2所示。通过赋值得到474个测试用例,使用上述用例对ASN.1编解码模块进行测试, 474个用例均成功通过。以DL_CCCH_Message的一个测试为例,测试过程及结 果见图4。表2 PDU测试用例PDU名 测试用例个数BCCH_BCH_Message 6BCCH_DL_SCH_Message 36 PCCH_Message 8 DL_CCCH_Message 68 DL_DCCH_Message 122 UL_CCCH_Message 16 UL_DCCH_Message 112UECapabilityInformation 10 U

24、E_EUTRA_Capability 8 VarMeasConfig 14 VarMeasReportList 6 VarShortMAC_Input 6 HandoverCommand 10 HandoverPreparationInformation 42 UERadioAccessCapabilityInformation 10合计 474图4 ASN.1编解码模块的测试过程及结果4.3 性能分析新的ASN.1编解码模块设计方案,增添了内存管理模块和比特流处理模块,提高 了编码效率;核心模块中采用嵌套设计的编解码函数和宏来代替传统的基本类型编 解码库,简化了函数调用。以文献2中RRC消息

25、的编解码为例,设定运行环境为Visual C+ 6.0,计算解 码开始到编码结束时所需时间,ASN.1编解码模块的编解码性能如表3所示。可 见,本文所设计的ASN.1编解码模块单个比特的编解码时间均在微秒级,完全满 足LTE协议栈对实时性的要求。且编解码单个比特耗费时间与待编解码的比特总 数呈反比,在编解码比特数目较多的情况下,能保持更高的效率。表3编解码性能比特数/个编解码用时/ms 56 25.3264 32.8512 34.3109635.82952 35.95224 35.88464 36.35 结束语ASN.1 编解码模块在 LTE 协议栈软件中非常重要,是实现整个 LTE 协议栈的

26、基础, 也是各类LTE终端能正常通信的保证。本文所设计并实现的ASN.1编解码模块目 前已正常运行于D-LTE无线综合测试仪的协议栈软件中,并取得了良好效果。同 时,该ASN.1编解码模块方案也不限于LTE协议栈,同样适合于其他使用ASN.1 的领域。参考文献1 Dahlman A D, Furuskar E, Jading Y, et al.LTE: The Evolution of Mobile BroadbandJ.IEEE Communications Magazine, 2009,47(4): 44-51.2 3GPP.TS 36.331 V9.0.0-2009 Evolved Un

27、iversal Terrestrial Radio Access(E-UTRA); Radio Resource Control(RRC); Protocol SpecificationS.2009.3 李小文,李贵勇,陈贤亮,等第三代移动通信系统、信令及实现M.北京:人民邮 电出版社, 2003.4 ITU-T.ITU-T Recommendation X.680-2002 Abstract Syntax Notation One(ASN.1): Specification of Basic NotationS.2002.高正宪,涂亚庆,李中学.PKI和RBAC授权数字证书的设计与实现J.计算机工程, 2008, 34(2): 117-119.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!