- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
比特串编码提成两种状况:长度固定:直接将比特串与前面比特流叠加即可;长度可变:按前
您可能关注的文档
- 七年级数学下册63实数第二课时市公开课一等奖百校联赛特等奖大赛微课金奖PPT课件.pptx
- 三上道德和法治我学习我快乐市公开课一等奖百校联赛获奖课件.pptx
- Unit3Companyhistory省公共课一等奖全国赛课获奖课件.pptx
- 20Cr2Ni4A螺旋锥齿轮热处理基本工艺.doc
- 七年级道德与法治课件--做更好的自己省公开课一等奖新名师优质课比赛一等奖课件.pptx
- UML试验基础指导书要点.docx
- PCB元件封装库命名指导规则简介.doc
- IP电话计费营业系统关键工程重点技术基础规范重点标准.docx
- BoschCAN用户基础手册中文版.doc
- 2024年物位仪表项目创业投资方案.docx
文档评论(0)