ASN.1编解码模块在LTE协议栈中的研究与应用

更新时间:2023-07-18 04:07:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

移动通信LTE资料

lWidebandnetworkl贲带网络

文章编号:1002—8692(2011)01---0070--04

口日匹亘耍雯亟圜

ASN.1编解码模块在LTE协议栈中的

研究与应用

李小文。冉靖

(重庆邮电大学计算机科学与技术学院,重庆400065)

【摘

要】ASN.1能实现异构系统之间的信息交换,用它描述的信息独立于任何应用环境,开发LTE协议栈软件必须设计并实现针

对RRC消息的ASN.1编解码模块。通过分析ASN.1类型及其编码规则,结合L1E协议栈软件需求,提出了应用于LTE协议栈软件的ASN.1编解码模块的设计方法.该方法采用模块化设计。通过对编解码模块的测试。证明了它对LTE协议栈中RRC消息的编解

码功能。该方法具有实际应用价值和推广价值。【关键词】LTE协议栈;ASN.1;PER;RRC【中图分类号】TN929.5;TP393.04

【文献标识码】A

ResearchandApplicationofASN.1Encode,Decode

LI

(College

Xiaowen,RANJing

Module

inLTEProtocolStaek

ofComputerScienceandTechnology,cbn明i鸭UniversityofPostsandTelecommunications,c}lon翻ing400065,China)

interchangein

heterogeneoussystems

module

is

【Abstract】InformationadoptsASN.1.ASN.1

developingmeet

information

is

independentof

anyapplication

typesand

environment.DesigningASN.1

encode/decode

of

ASN.1

necessaryinmodulethis

to

LTEprotocol

stack.Analyzing

ASN.1

encodingmethod

rules.aadopts

designmethod

encode/decode

thefunetions

is

of

therequirementofLTEprotocol

of

stackisand

pro畔d.ne

in

RRC

modular

design.Testing

stackis

module,theeffect

and

owns

modules

to

encodedecode

informationofLTEprotocol

protocol

proved.It

practicallyusefulpromotionalvalue.

【Keywords】LTE

stack;ASN.1;PER;RRC

引言

在通信系统中.通信设备是f}{不同的厂商生产,其

LTE协议栈结构

在移动通信觅带化的趋努-F.3GPP为了对抗WiMAX

硬件结构、软件结构以及数据结构等均不相同。因此,在通信过程中,不同类型的设备对同一数据的理解会出现二义性。为了实现异构设备间的顺利通信。ISOflTU—T组织于20世纪80年代制定了ASN.1标准。ASN.1是一种描述结构化信息的标记语言.包括抽象语法和传送语法。抽象语法规定ASN.1如何对数据类型进行描述;传

送语法规定数据类型的值在传输时使用何种编码规

(WorldInteroperabilityforMicrowaveAccess)等无线接人

技术.在B3G技术储备的基础卜研发出了IXE。经过

3GPP组织的努力.LTE的系统框架大部分完成。LTE控制面协议栈如图l所示。

:UE

::eNB::MME:

;[亟二H÷———+越j叵]:

则。使用ASN.1定义的数据结构。可以令被描述的信息独市于任何应用环境。不会凶为应用环境不同而引起二

义性的解释。

{[叵]H+[固;l:[亟[]十斗[固::

由于ASN.1能清楚简洁地表示协议中要传递的各种信息.它广泛应用于各类协议标准.如3GPP(3rd

eration

l—ll—I:[匝]÷_忙卫i:

;[巫二H_书]妇:;

Gen.

:[亘[]叶—[卫::

闻1

PartnershipPmject)的TD—SCDMA(TimeDivision

ITF柠制而协议转结构图

Synchronous

CDMA)系统11l和LTE系统。I.TE系统采用

ASN.1来描述窄中接口的层3的RRC消息。笔者针对

LTE协议栈层3中RRC消息数据结构使用ASN.1描述121。RRC层主要完成无线资源的控制和管理等功能,在LTE协议栈中非常重要。因此,设计并实现一个正确

LTE协议栈.设计了应用于I胍协议栈软件的ASN.1编

解码模块,并对其进行了实现和测试。

基金项目:国家科技重大专项{2009ZX03002--009)

万方数据70∥.皇诨毽曦洲年第,,卷第。…总第,,。期,

移动通信LTE资料

的、功能完善的ASN.1编解码模块对开发LTE协议栈软件起着至关重要的作用。

ASN.1编解码模块的设计与实现

2.1

ASN.1数据类型及编码规则

在ASN.1中。一个数据类犁就是一个值的集合。一

个给定的ASN.1类刭的值是该类型集合眼的一个元素。ASN.1有两种数据类型:简单类型和结构类型。简单类型是ASN.1描述数据结构的基础:结构类型是由基本类型和其他结构类剖组合而形成的复杂类型。结构类型中有叮选成员,其中可能有默认值。还叮以使用ASN.1的分配符(::=)为类型和值指定名字。这蝗名字叮以片j于定义其他类型或值J3l。

与RRC消息有关的基本类型有BITSTRING。IN—

TEGER。NUI.L。OCTET

STRING,BOOl。EAN,ENUMER.

ATED。ASN.1标准定义了5个结构类型,其中与RRC消

息有关的只有3个。分别是CHOICE,SEQUENCE和SEQUENCEOF。CHOICE类型选择其所有成员中的一个作为其值,相当于C语言中的UNION;SEQUENCE类型是一个或多个类型的有序集合。相当于C语言中的

STRUCT:SEQUENCEOF类型是某个给定类型}f{现0次或多次的有序集合.相当于C语言中的数组。

ASN.1标准定义了5种编码规则:BER(BasicEncod

ing

Rules),CER(CanonicalEncodingRules),DER(1)iain-

guishedEncodingRules),PER(PackedEncodingRules),

XER(XMI。EncodingRules)。其中PER在编码时冗余最小、编码最紧凑、效率最高[41。PER的编码结构如图2所示.可以分为基本的(Basic)和规范的(Canonical)两类.

每一类又可以分为对齐模式(Aligned)和非对齐模式

(Unaligned)两种。

图2PER编码结构图

lJTE协议栈软件ASN.1编解码模块选JfJ基本的非对齐模式PER作为编码规则。PER编码的结构为“IPIIL】

【C】''<optionalPreamble.optionalI七ngth,optionalContents

>.PLC中每个域都不冉是8位组串而是比特串.且每个域都是Lnr选的。Preamble只I叶J现在结构类型中.片j来记录结构类型中是否有扩展、可选成员或缺省值;I上n甜h用来记录Contents的具体长度.其单位根据具体类制而

变化:对于Contents.若数据足摹本类捌.则直接编码,若万方数据

Wide

bandnetworkI

赛带网络I

数据足结构类型.则是嵌套进行编码,此时Contents中也包含PLCi个部分。由于I七n对h町以省略(甚至Contents也I叮以省略),所以编解码双方必须知道抽象描述才能

正确编解码。文献【5I说明了PER对各个类型的详细编

码规则。

2.2

ASN.1编解码模块设计思想

ASN.1在一种高度抽象的层次卜来表示数据结构信

息,各种应厢程序无法直接对其进行操作和使用.需要先对使用ASN.1描述的数据结构进行翻译转换.转换成相应的编程语言(如C,C++,JAVA等)的数据结构表示形式,

之后成用程序就町以对其进行操作.写人棚应的值。然后

通过丰H应的ASN.1编码函数生成二进制码流.将码流通过通信介质进行传递。解码时,通过解码函数将二进制码流还原为相应编程语言的数据结构.应用程序就叮以从中读取相应的值。整个过程如图3所示。

Ash.I描述的数掂结构/

T:或软件转换HCif}奇描述的数掘结构

传输1.叫二进制码流—叫

编解码程序

图3

ASN.1应用过程

根据I胍协议栈软件需求。使JfI效牢较高的C语言

作为实现语言。ASN.1编解码模块采J}I结构化设计,但子函数层应尽可能少.提供编码和解码两个接口函数.在出现异常情况时。要提供异常信息,并能对程序运行进行跟踪。便于调试。

设计I,TE协议栈软件ASN.1编解码模块结构如图4所示。在实现时,先完成内存管理模块、比特流处理模块和辅助模块,最后完成核心模块。

图4

ASN.1编解码模块结构

2.3ASN.1编解码模块实现2.3.1

内存管理模块

ASN.1编解码模块使J}j自定义的内存管理函数.主要

2011年第35卷第0I期(总箐I35I期)

1it/".烹甥耩穆71

J●ll

J,,.』f¨r …,“

移动通信LTE资料

Wide

bandnetwork

I赛带网络

原因为:

1)RRC消息转换后的C语言数据结构中存在大量的指针.而在解码过程中对RRC消息进行赋值就需要频繁的申请内存。若使用C语言提供的内存管理函数,系统开销大。易生成碎片,不便于管理。

2)在解码过程中,有些字段的长度无法准确得出,比如未受约束的BITSTRING以及OCTETSTRING,需

要进行特殊的处理。

3)对RRC消息的赋值不仅存在于解码过程中,LTE协议栈高层也需要对RRC消息进行赋值,并将赋值的RRC消息交由编解码模块进行编码。因此,将内存管理作为一个独立的模块。并供LTE协议栈高层调用,可以保证数据的一致性。

内存管理模块的设计基于“多次申请,一次释放”的原则.使用一个数组作为ASN.1编解码模块的专用内存区.并用一个偏移变量指向当前可用的内存,提供3个函数。分别是初始化函数、内存分配函数以及内存释放函数。解码过程及LTE协议栈高层对RRC消息赋值所需要的内存均在专用内存区中按顺序申请,待完成一次解码任务或编码任务后统一释放内存,开销仅为D(1)。

2.3.2

比特流处理模块

LTE协议栈软件ASN.1编解码模块使用非对齐模

式的PER.比特是编解码过程中进行处理的基本单位。在编解码过程中。需要经常对某个字节中的某些比特进行特定的操作,而C语言中缺乏这样能直接利用的库函

数。所以,需要实现专用的比特流处理模块供核心模块调用。来进行比特的获取、添加等操作,以满足编解码规则的需求。

2.3.3

辅助模块

程序跟踪和异常处理构成了辅助模块。对程序进行跟踪.将程序运行数据输出到运行日志中,原因在于编

解码函数中层层调用.代码庞大,在调试时,如出现错

误。很难发现错误点。而采用对程序进行跟踪的方法能保存程序运行数据到运行日志中,在调试时出现错误可

以参考日志,及时发现错误点并进行修改;异常处理则解决编解码过程中难以预料的一些问题,比如数据越界、返同值错误等。2.3.4核心模块

核心模块完成对RRC消息的编解码。它分两步进行:首先将36.33l协议中ASN.1描述的RRC消息数据

结构转换为C语言数据结构,再根据数据结构实现编解码。转换过程可以采用手工转换或软件转换。软件转换

万方数据

e曦洲年第,s卷第。 期。总第ss-期,

可以使用商业公司推出的ASN.1编译软件,例如OSS

Nokalva公司的ASN.1ToolsforC编译器。此类编译软件

通用性较强,但价格昂贵,且代码冗余量大。因此,采用手工将ASN.1描述的RRC消息数据结构转换为C语言数据结构的方法.转换后的C语言数据结构代码量在

350kbyte左右。

ASN.1描述的RRC消息数据结构的嵌套导致转换后的C语言数据结构是嵌套的.因此实现的编解码函数也是嵌套的。任意一个转换后的C数据结构定义都有一个对应的编解码函数.其任务是按顺序编解码该数据结构中的每个成员。若其中某个成员是另一个C数据结构,则调用此C数据结构的编解码函数,否则直接在函数中完成该成员的编解码。每调用一个编解码函数,都会将编码或解码结果存储,当所有函数返回时,编解码过程结束。

在根据数据结构实现编解码时,需要区分RRC消息

数据结构的种类。不同种类的RRC消息数据结构在实现编解码时所使用的方法不一样。RRC消息数据结构分为

两类:PDU(PacketDataUnit)和基本信息单元。PDU中包

含基本信息单元,例如BCCH—BCH—Message就是一个PDU:基本信息单元又有简单和复杂之分,简单的基本信息单元是指由ASN.1基本类型所构成的RRC消息,复杂

的基本信息单元是指由ASN.1结构类型所构成的RRC

消息。因此,将RRC消息数据结构的编解码分为j部分:PDU的编解码、简单基本信息单元的编解码以及复杂基本信息单元的编解码。其中PDU和复杂基本信息单元的编解码使用函数的方式实现:简单基本信息单元的编解

码使用宏的方式实现。以减少进出函数的开销。各RRC

消息数据结构的编解码函数及宏的编写严格按照X.691标准进行。在实现编解码规则时需要完成的操作调用其余子模块实现。3

测试实现

由于编解码过程中的操作单位是比特,任何比特出

错都会导致整个ASN.1编解码模块不能正常运行。因此,LTE协议栈软件ASN.1编解码模块完成后,必须对其进

行测试.以保证程序的正确性,防止ASN.1编解码模块的

错误导致整个LTE协议栈软件无法正常运行。

以PDU为单位进行测试,测试流程如图5所示.其

步骤为:

1)给一个PDU赋值.使用第三方的ASN.1工具生

成浚PI)U的PER二进制编码.存储在数据A中:

2)将数据A作为输入.使用本文所实现的ASN.1解

72∥t电dt"视t。,]毽,r

移动通信LTE资料

Wide

码模块对其解码,将解码结果保存在数据B中;

3)将数据B作为输入。使用本文所实现的ASN.1编码模块对其编码。得到数据B的PER二进制编码,存

储在数据C中。

4)比较数据A与C,若两者完全一致.则证明ASN.1编解码模块正确地对该PDU单元进行了编解码。

bandnetworkl

贲带网络l

块,其中,内存管理模块和比特流处理模块优化了传统ASN.1编解码的流程,提高了编解码效率。将ASN.1编解

码模块应用于LTE协议栈软件。是实现TD—LTE无线综

合测试仪的一个重要步骤。笔者所设计的ASN.1编解码

模块已正常运行于TD—LTE无线综合测试仪的协议栈软

件中,具有实片J性和推广性。参考文献:

【lJ李小文.李贵勇.陈贤亮.等.TD—SCDMA第j代移动通信系统、信

令及实卿EIMI,北京:人民邮电出版社.2003.12】3GPP"IS36.33

V9.0.0,EvolvedUniversalTerrestrialRadioAccess

(E-UTRA);RadioRemumeControl(RRC);protocol2009.

specification[S].

【3JITU—T.AbstractSyntaxNotationOne(ASN.1):specificationofbasic

notationlEB/OLI.12010-04-281.http://users.encs.concordia.ca/--dssouli/

ELEC6861F07-Folder/Chap-5-ASN1.pdf.

【4】李胡橡,蒋凡.杨敬峰,等.基于面向对象方法的ASN.I编解码的

设计与实现【J】.计算机T程.2002.28(12):101一103.

【5】ITU-T.ASN.1encodingrules:specificationofPackodEncodingRules

(PER)【EB/OL].12010-04-281.http://webstore.iec.ch/previewl

围5

测试流程图

info_isoiec8825-2%7Bed4.O%TDen.Ddf.

该测试方法简单、高效。通过对比数据A和数据C

的差异就能迅速判断程序正误。通过对程序测试,还能

作者简介:

保证在和其他LTE终端通信时.能正确实现对其RRC

消息的编解码。

李小文(1955-1.研究员。硕士生导师.主研第三代移动通信系统;冉靖(1984-J.磺士生.主研新一代宽带无线移动通信网。责任编辑:孙卓

小结

笔者针对LTE协议栈设计出新的ASN.1编解码模

收穰日期:2010-05棚

(上接第65页)

小结

笔者主要介绍动态资源分配在LTE中的,电用。重点

【2】曾海清.赵楠.基于半持续调度的预分配资源佗置确定方法:中国。

H0487/26(2006.01)IH04M7,00(2006.01)lIP}.2009-04-29.【3l

3GPP.3GPP'IS36.32lV9.I.0.Evolveduniversalterrestrialradio

分析上行链路渊度过程的设计和实现.通过SDL仿真验

证了调度过程的可行性。首先说明调度器放在MAC层做的优点.然后介绍IJTE中的几种调度方式.最后着重分析

acc∞(E-UTRA)medium

cationlSl.2010.

【4】3GPP.3GPPTS36.523一l

acce88

control(MAC)protocolspecifi-

V8.4.0.Evolveduniversalterrestrial

动态调度中的上行调度过程。重点研究下行调度的过程、上下行涮度的算法以及MAC层其他模块的设计.为LTE无线综合测试仪的实现做好前期准备丁作。

参考文献:

11】STFFANIAS.ISSAMT.MA'ITHEWB.LTE-TheUMTSlong

term

radioacce88(E—UTRA)and

evolvedpacketcore(EPC);User

confor-

equipment(UE)conformancespecification;PartI:protocol

rnance

specificationlS].2009.

f51

3GPP.3GPP"IS36.211.Evolveduniversalterrestrial(E—UTRA);Physical

radio∽c哪

channelsandmodulation[S].2009.

作者简介:

橱墨宇f1986-).硕士生。主研TD-LTE高屡协议栈;谷向阳【1985-1.硕士生.主研TD-LTE离屡协议栈。责任编辑:丁

evolution:fromtheory

to

practicelM].Hoboken。USA:John

WileyandSons.Ltd..2009.

收稿日期:∞lO*3l

r-J

万方数据

2011年蚺35卷第0l期(总笫35I期)

∥烹甥耩噍73

r ’,¨“l,I ‘…I.,

移动通信LTE资料

ASN.1编解码模块在LTE协议栈中的研究与应用

作者:作者单位:刊名:英文刊名:年,卷(期):

李小文, 冉靖, LI Xiaowen, RAN Jing

重庆邮电大学,计算机科学与技术学院,重庆,400065电视技术

VIDEO ENGINEERING2011,35(1)

参考文献(10条)

1.ITU-T ASN.1 encoding rules:specification of Packed Encoding Rules (PER) 20102.李小文.李贵勇.陈贤亮 TD-SCDMA第三代移动通信系统、信令及实现 2003

3.李贺禄;蒋凡;杨敬峰 基于面向对象方法的ASN.1编解码的设计与实现[期刊论文]-计算机工程 2002(12)4.3GPP TS 36.331 V9.0.0,Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control(RRC); protocol specification 2009

5.ITU-T Abstract Syntax Notation One (ASN.1):specification of basic notation 20106.ITU-T Abstract Syntax Notation One (ASN.1):specification of basic notation 2010

7.3GPP TS 36.331 V9.0.0,Evolved Universal Terrestrial Radio Access (E-UTRA); Radio Resource Control(RRC); protocol specification 2009

8.李贺禄.蒋凡.杨敬峰.高翔 基于面向对象方法的ASN.1编解码的设计与实现 2002(12)9.李小文;李贵勇;陈贤亮 TD-SCDMA第三代移动通信系统、信令及实现 2003

10.ITU-T ASN.1 encoding rules:specification of Packed Encoding Rules (PER) 2010

本文读者也读过(10条)

1. 李小文.冉靖.LI Xiao-wen.RAN Jing LTE协议栈中ASN.1模块的设计与实现[期刊论文]-计算机工程2011,37(8)2. 文小强.李校林 ASN.1及其UPER编码在LTE中的应用研究[期刊论文]-数字通信2010,37(5)

3. 张勇.卞伶俐.ZHANG Yong.BIAN Lingli LTE系统无线资源控制连接重建过程研究与设计[期刊论文]-电视技术2011,35(1)

4. 李校林.文小强.LI Xiao-lin.WEN Xiao-qiang LTE-Uu接口协议栈中ASN.1模块的设计与应用[期刊论文]-电视技术2010,34(10)

5. 姬自英.李小文.jI Zi-ying.LI Xiao-Wen LTE网络中ESM协议分析与设计[期刊论文]-电视技术2010,34(12)6. 高益.黄俊伟 ASN.1自动编解码运行库软件的研究与设计[期刊论文]-广东通信技术2008,28(12)7. 陈兰兰.郭晓金.黄宇 NGN测试系统MAP监测模块的研究与实现[期刊论文]-江西通信科技2009(1)8. 刘宇红.白伟.庞伟正 ASN.1的应用开发[期刊论文]-应用科技2003,30(11)

9. 杨抗.尚楠.何方白.YANG Kang.SHANG Nan.HE Fang-bai 基于ASN.1的NGN测试系统INAP模块的研究与实现[期刊论文]-通信技术2007,40(11)

10. 余爱清.余胜生.周敬利.Yu Aiqing.Yu Shengsheng.Zhou Jingli 抽象形式语法(ASN.1 ITUT-T X.680)的对象封装及协议数据单元的PER (Packed Encoding Rules ITU-T X.691)编码实现[期刊论文]-计算机工程与应用2000,36(9)

本文链接:/Periodical_dsjs201101021.aspx

本文来源:https://www.bwwdw.com/article/l9r1.html

Top