IASN.1编解码规则之类型定义.docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IASN.1编解码规则之类型定义

ASN.1编解码规则之类型定义ASN.1最基本的概念是类型和值,一个类型是一组值的集合,表示潜在的传送信息,实际中,只有值被传送,类型分为简单类型、复合类型、子类型三类;简单类型是ASN.1的基本组成部分,通常用来描述事物的单一属性。复合类型由一个或者多个它的域构成,这些域可以使任意类型,子类型是其父类型的变形,前者的值域是后者值域的子集;简单类型:BOOLEAN类型又称布尔类型,有两种可能的取值:“TRUE”和“FLASE”;RRC协议中不存在对此类型的单独定义,一般将其定义在SEQUENCE类型内,具体的定义和赋值方法如下表所示:定义DL-CommonInformation-r4 ::= SEQUENCE{ …… std-Indicator BOOLEAN, ……}赋值Example DL-CommonInformation-r4 ::= { …… tstd-Indicator TRUE, ……}BOOLEAN的编码结果为1个比特:1或者0,分别对应TRUE或者FLASE,因此,tstd-Indicator的编码结果是1(郭丹的论文里面是0);NULL类型又称为空类型,表示信息中不包含任何内容,传递时接收方知道与其相关的语义,该类型适合传递报告或者确认消息,和BOOLEAN一样,RRC协议中也不存在对该类型的单独定义,而将其定义在SEQUENCE中,如下表所示:定义RadioBearerSetup-r3-IEs ::= SEQUENCE{ …… tdd NULL, ……}赋值Example RadioBearerSetup-r3-IEs ::= { …… tdd NULL, ……}不需要对NULL类型数据进行编码,如果它是CHIOCE或者SEQUENCE的可选域或者缺省域,导言作为此类型的索引来确定是否存在该类型的数据;INTEGET类型又称为整数类型,它的值集合是任意长度的整数,可以将该类型数据定义成一个常数,也可以使用子类型限制语句将其值限制在一个区间内取值,定义如下表所示:定义MaxROHC-profile-r4 INTEGER ::= 8CD-AccessSlotSubchannal ::= INTEGER(0..11)赋值Example CD- AccessSlotSubchannal ::= 0如果该类型被定义为常数时,不需要编码,因为解码一方也知道相同的构文,从而可以正确解码,因此MaxROHC-profile-r4的编码结果为空,反之,需要编码,比如CD-AccessSlotSubchannal在有限范围内取值,有12个值可以取,因此用四位比特数来对它进行编码,所以CD-AccessSlotSubchannal的编码结果是0000;ENUMERATED类型又称枚举类型,当需要列出对象清单的时候,就要用到该类型,他经常被用来描述系统状态或者错误报告,该类型的定义和复制方法如下表所示:定义RRC-StateIndicator ::= ENUMERATED{ Cell-DCH,cell-FACH,cell-PCH,ura-PCH}赋值Example RRC-StateIndicator ::= cell-FACH;有四个选项,因此使用2个比特位来进行编码,RRC-StateIndicator的编码结果是01;BIT STRING类型又称为二进制比特串类型,该类型值可以为空或者任意长,常被用来定义那些可以表示为二进制或布尔向量的数据,比特串最左边的比特是第一位,最右边的比特是最末位;该类型的表示有单引号界定,二进制形式由数字0和1组成,后面附加字母B,十六进制形式由数字0~9和字母A~F组成,后面附加字母H,位串的长度应该尽量使用子类型进行限制,因为这能使编码器分配合适的空间,保证编码更加简短,构文如下表所示:定义C-RNTI ::= BIT STRING(SIZE(16))赋值Example C-RNTI ::= ‘0010010000111100’B定义AccessServiceClass-FDD ::= SEQUENCE{ ……assignedSubChannelNumber BIT STRING{b3(0),b2(1),b1(2),b0(3) } (SIZE(4))}赋值Example2 AccessServiceClass-FDD ::= { ……assignedSubChannelNumber : ‘0010’B}对于固定长度的BITSTRING类型,编码时不需要长度域,编码结果即为比特值,反之要在前面加上长度域,上表中该类型的比特串是固

您可能关注的文档

文档评论(0)

wangz118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档