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

发布时间:2021-06-06

移动通信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

ASN.1编解码模块在LTE协议栈中的研究与应用(3).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219