ASNPER编码标准规范.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

ASN.1编码规范及实现方式

ASN.1语言概述

ASN.1(AbstractSyntaxNotationNumberOne),抽象语法描述1,是一种ISO/ITU-T原则。该语言描述了一种对数据进行表达、编码、传播和解码数据格式,它提供一整套正规格式用于描述对象构造,具备类似于面向对象程序设计语言中所提供类型机制,可定义任意复杂构造数据类型,而不同数据类型之间还可以有继承关系。因而,ASN.1是以一种独立于计算机架构和语言方式来描述数据构造。同步,ASN.1描述可以容易地映被射成C、C++或Java数据构造,直接作为应用程序代码使用,并得到运营程序库支持。

ASN.1作为一种数据表达原则产生于20世纪80年代初期开放系统互联(OSI)网络模型,虽然OSI模型并没有得到广泛应用,但是ASN.1原则在继续进化。今天已有大量实际应用,这些应用涉及:3G移动系统、IP语音、安全应用、老式电信网络、军事和空间应用等许多方面。

此外,ASN.1有各种原则化编码规则:如基本编码规则(BER)、规范编码规则(CER)、辨认名编码规则(DER)、压缩编码规则(PER)和XER编码规则(XER)。这些编码规则描述了如何对ASN.1中定义数值进行编码,以便用于传播,而与计算机、编程语言或它在应用程序中如何表达等因素无关。同步,该编码具备先进标记系统、信息扩展性、支持迅速可靠传播等特点,这在无线传播中是一种优势。

因而,ASN.1不但适合表达当代通信应用中那些复杂、变化及可扩展数据构造,并且尚有适合合同编码方式。同步,3GPP原则ASN.1文档中也包括了完整、详细数据单元(PDU)合同。这些都为3G移动系统中ASN.1应用打下了基本。3G合同ASN编码跟普通编码相比具备高效性、严谨性以及规范性等特点。

二、PER编码简介

3GPP规范中,由ASN.1到传播码转换统一使用定义在ITU-TX.691中PER(PackedEncodingRules)规则,因而这里讲ASN编译码规则也就是ASN编码中PER编译码规则。

PER有两个变体:对齐方式和非对齐方。对齐方式用于:Iub、Iur、Iu接口ASN.1传播编码。非对齐方式:仅用于空中(UU)接口ASN.1转换,两者编码过程基本相似。

在对齐方式下,若前面所有单元信息经编码后得到比特流长度不是一种八位组倍数,而后一种信息又是以八位组为单位(字符串),那么就需要在前面生成比特流背面补“0”,使其长度为8倍数。因此普通补位数为0~7bit。而非对齐方式无此限制。所有信息单元按编码规则生成比特数据将按其被编码顺序首尾相连,中间不需要任何填充。按ITU-TX.691规定,若最后编码结束后。所得编码不是8倍数,信息编码结束后填充由RRC负责。

此外,PER编译码必要依赖于3GPP原则文档,也就是说,收发双方也必要懂得层3消息详细构造,这样编码和译码才干被编译和辨认。

三、PER编码规则

PER编码规则定义了各种数据类型,简朴地可分为两大类。第一类是构造类,如CHOICE、SEQUENCE、ENUMERATED等。另一类是简朴类,如INTEGER、REALL、BOOLEAN等。下面将对如下惯用类型编码规则做一种总结:

3.1INTEGER

整型是合同规范中用得最多一种数据类型。对这种数据类型编码之前,一方面要拟定其取值范畴,即上下界之间数个数。而编码长度是依照数范畴来拟定。当2m<范畴≤2m

例1:

TimeslotNumber::= INTEGER(0..14)

上面例子中TimeslotNumber为整型,范畴是0~14共15个数,由于231524,故编码为4bit,若取值为7,则编码为0111。

例2:

MaxAllowedUL-TX-Power::= INTEGER(-50..33)

同理,MaxAllowedUL-TX-Power为整型,范畴是-50~33共84个数,268427编码长度为7bit,若取值为0,则编0索引值50(-50索引值为0),因而编码为:0110010。

3.2BOOLEAN

布尔逻辑型编码只须1bit。用“1”表达TRUE,“0”表达FALSE。

例:DL-TM-RLC-Mode::= SEQUENCE

{

segmentationIndication BOOLEAN

}

上面segmentationIndication是一种BOOLEAN型,意思是段批示。当咱们需要这种批示时编码为1,不需要时编码为0。

3.3BITSTRING

比特串编码提成两种状况:长度固定:直接将比特串与前面比特流叠加即可;长度可变:按前

文档评论(0)

192****7089 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档