ASN.1编解码模块在LTE协议栈中的研究与应用(3)
发布时间:2021-06-06
发布时间:2021-06-06
移动通信LTE资料
I
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
上一篇:石家庄某公司人力资源管理制度
下一篇:报关单练习