欢迎来到天天文库
浏览记录
ID:23517842
大小:355.36 KB
页数:12页
时间:2018-11-08
《ASN.1-PER编码规范.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ASN.1编码规范及实现方式一、ASN.1语言概述ASN.1(AbstractSyntaxNotationNumberOne),抽象语法描述1,是一种ISO/ITU-T标准。该语言描述了一种对数据进行表示、编码、传输和解码的数据格式,它提供的一整套正规的格式用于描述对象的结构,具有类似于面向对象程序设计语言中所提供的类型机制,可定义任意复杂结构的数据类型,而不同的数据类型之间还可以有继承的关系。因此,ASN.1是以一种独立于计算机架构和语言的方式来描述数据结构的。同时,ASN.1的描述可以容易地映被射成C、C++或Java的数据
2、结构,直接作为应用程序代码使用,并得到运行程序库的支持。ASN.1作为一种数据表示标准产生于20世纪80年代早期的开放系统互联(OSI)网络模型,虽然OSI模型并没有得到广泛的应用,但是ASN.1标准在继续进化。今天已有大量的实际应用,这些应用包括:3G移动系统、IP语音、安全应用、传统电信网络、军事和空间应用等许多方面。另外,ASN.1有多种标准化编码规则:如基本编码规则(BER)、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和XER编码规则(XER)。这些编码规则描述了如何对ASN.1中定义的数值
3、进行编码,以便用于传输,而与计算机、编程语言或它在应用程序中如何表示等因素无关。同时,该编码具有先进的标识系统、信息扩展性、支持快速可靠传输等特点,这在无线传输中是一种优势。因此,ASN.1不但适合表示现代通信应用中那些复杂的、变化的及可扩展的数据结构,而且还有适合的协议编码方式。同时,3GPP标准ASN.1文档中也包含了完整、详细的数据单元(PDU)协议。这些都为3G移动系统中ASN.1的应用打下了基础。3G协议的ASN编码跟一般的编码相比具有高效性、严谨性以及规范性等特点。二、PER编码简介3GPP的规范中,由ASN.1到传
4、输码的转换统一使用定义在ITU-TX.691中的PER(PackedEncodingRules)规则,因此这里讲的ASN编译码规则也就是ASN编码中的PER编译码规则。PER有两个变体:对齐方式和非对齐方。对齐方式用于:Iub、Iur、Iu接口的ASN.1的传输编码。非对齐方式:仅用于空中(UU)接口的ASN.1转换,两者的编码过程基本相同。在对齐的方式下,若前面所有单元的信息经编码后得到的比特流长度不是一个八位组的倍数,而后一个信息又是以八位组为单位的(字符串),那么就需要在前面生成的比特流后面补“0”,使其长度为8的倍数。所
5、以一般补的位数为0~7bit。而非对齐的方式无此限制。所有信息单元按编码规则生成的比特数据将按其被编码的顺序首尾相连,中间不需要任何填充。按ITU-TX.691的规定,若最终的编码结束后。所得的编码不是8的倍数,信息编码结束后的填充由RRC负责。另外,PER编译码必须依赖于3GPP的标准文档,也就是说,收发双方也必须知道层3消息的具体结构,这样编码和译码的才能被编译和识别。三、PER的编码规则PER的编码规则定义了多种数据类型,简单的地可分为两大类。第一类是结构类,如CHOICE、SEQUENCE、ENUMERATED等。另一类
6、是简单类,如INTEGER、REALL、BOOLEAN等。下面将对以下常用的类型的编码规则做一个总结:3.1INTEGER整型是协议规范中用得最多的一种数据类型。对这种数据类型编码之前,首先要确定其取值范围,即上下界之间的数的个数。而编码的长度是根据数的范围来确定的。当2m<范围≤2m+1时,对该整数取值用m+1位二进制表示。但对范围内的数的编码不是对其实值而是对其索引值进行编码,编码的索引值是从0开始的。例1:TimeslotNumber::=INTEGER(0..14)上面的例子中TimeslotNumber为整型,范围是0
7、~14共15个数,因为23<15<24,故编码为4bit,若取值为7,则编码为0111。例2:MaxAllowedUL-TX-Power::=INTEGER(-50..33)同理,MaxAllowedUL-TX-Power为整型,范围是-50~33共84个数,26<84<27编码长度为7bit,若取值为0,则编0的索引值50(-50的索引值为0),因此编码为:0110010。3.2BOOLEAN布尔逻辑型编码只须1bit。用“1”表示TRUE,“0”表示FALSE。例:DL-TM-RLC-Mode::=SEQUENCE{segm
8、entationIndicationBOOLEAN}上面的segmentationIndication是一个BOOLEAN型,意思是段的指示。当我们需要这种指示时编码为1,不需要时编码为0。3.3BITSTRING比特串的编码分成两种情况:长度固定:直接将比特串
此文档下载收益归作者所有