网站大量收购闲置独家精品文档,联系QQ:2885784924

_ASNPER编码规范..doc

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

ASN.1编码规范及实现方式 ASN.1语言概述 ASN.1(Abstract Syntax Notation Number One),抽象语法是一种 ISO/ITU-T 标准描述了一种对数据进行表示、编码、传输和解码的数据格式它提供一整套正规的格式用于描述对象的结构以一种独立于计算机架构和语言的方式来描述数据结构。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 中定义的数值进行编码,以便用于传输计算机、编程语言或它在应用程序中如何表示等因素。编码信息扩展快速可靠传输在无线中是一种优势。标准包含完整、详细的数据单元(PDU)协议。3GPP的规范中,由ASN.1到传输码的转换统一使用定义在ITU-T X.691中的PER(Packed Encoding Rues)规则,因此这里讲的ASN编译码规则也就是ASN编码中的PER编译码规则。 PER 有两个变体:对齐方式和非对齐方。对齐方式用于:Iub、Iur、Iu ASN.1 的传输编码。非对齐方式:仅用于空中(UUASN.1转换,两者的编码过程基本相同。 在对齐的方式下,若前面所有单元的信息经编码后得到的比特流长度不是一个八位组的倍数,而后一个信息又是以八位组为单位的(字符串),那么就需要在前面生成的比特流后面补“0”,使其长度为8的倍数。所以一般补的位数为0~7bit。而非对齐的方式无此限制。所有信息单元按编码规则生成的比特数据将按其被编码的顺序首尾相连,中间不需要任何填充。按ITU-T X.691的规定,若最终的编码结束后。所得的编码不是8的倍数,信息编码结束后的填充由RRC负责。 另外,PER编译码必须依赖于3GPP的标准文档,也就是说,收发双方也必须知道层3消息的具体结构,这样编码和译码的才能被编译和识别。 三、PER的编码规则 PER的编码规则定义了多种数据类型,简单的地可分为两大类。第一类是结构类,如CHOICE、 SEQUENCE 、ENUMERATED 等。另一类是简单类,如INTEGER、 REALL 、BOOLEAN 等。下面将对以下常用的类型的编码规则做一个总结: 3.1 INTEGER 整型是协议规范中用得最多的一种数据类型。对这种数据类型编码之前,首先要确定其取值范围,即上下界之间的数的个数。而编码的长度是根据数的范围来确定的。当2m<范围≤2m+1时,对该整数取值用m+1位二进制表示。但对范围内的数的编码不是对其实值而是对其索引值进行编码,编码的索引值是从0开始的。 例1: TimeslotNumber ::= INTEGER (0..14) 上面的例子中TimeslotNumber为整型,范围是0~14共15个数,因为231524,故编码为4bit,若取值为7,则编码为0111。 例2: MaxAllowedUL-TX-Power ::= INTEGER (-50..33) 同理,MaxAllowedUL-TX-Power为整型,范围是-5033共84个数,268427编码长度为7bit,若取值为0,则编0的索引值50(-50的索引值为0),因此编码为:0110010。 3.2 BOOLEAN 布尔逻辑型编码只须1bit。用“1”表示TRUE,“0”表示FALSE。 例:DL-TM-RLC-Mode ::= SEQUENCE { segmentationIndication BOOLEAN } 上面的segmentationIndication是一个 BOOLEAN型,意思是段的指示。当我们需要这种指示时编码为1,不需要时编码为0。 3.3 BITSTRING 比特串的编码分成两种情况:长度固定:直接将比特串与前面的比特流叠加即可;长度可变:按前述整型编码的规则,以描述长度范围最少比特的原则在比特串前面加上用于描述长度所需的比特,然后将待编码的比特串加在后边。 例1: RoutingParameter ::= BIT STRING (SIZE (10)) 上面的RoutingParameter是一个定长,且长度为10的比特串,编码时直接给出10位二制数,例如编码为:‘1111100000’。 例2: SIB-Da

文档评论(0)

bhzs + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档