ASN.1 Compiler for 3gpp 的系列学习二

本文是关于3GPP协议中ASN.1的UPER编码学习,涵盖UPER编码原则、ASN.1的基本数据类型(如BOOLEAN、NULL、INTEGER等)以及复合类型(CHOICE、SEQUENCE等)。通过X.680和X.691协议,讨论了每种类型的编码方式,并针对最新5G 3GPP协议的变化进行了解析,下篇将深入讲解 BOOLEAN 和 NULL 的编码。

声明:本文是自己结合所学及项目开发,面向5G等3GPP系列协议,对ASN.1中的UPER编码进行的系列讲解,禁止转载!

在第一讲中,主要是引入了UPER编码,接下来将针对UPER编码,列出ASN.1的主要数据类型,并针对每种类型给出编码方式及流程图,及利用OSS给出编码实例!

UPER的编码原则是:用尽可能简单的规则得到最简洁的编码。

根绝X.680协议,ASN.1的数据类型主要有以下几种:

1)简单类型:a.BOOLEAN(布尔类型,只有真假两个值),b.NULL(空),c.INTEGER(整形,可表示任意长度的整数),d.ENUMERATED(枚举类型),e.BIT STRING(位串,代表以比特为单位的二进制字符串),f.OCTET STRING(八位串,代表以自己为单位的二进制字符串);

2)复合类性:g.CHIOCE(选择类型,可表示每次选择数据类型中的一个),h.SEQUENCE(序列,可表示一组不同数据类型的集合,=c中struct),I.SEQUENCE OF (可表示定义了同一数据类型元素的集合,=c中数组),j.SET(同SEQUENCE), k.SET OF (同SEQUENCE OF);

在最新的X.691协议中给出了以上每种类型的编码方式,本文是对对691协议中编码方式的整理及实例验证,并且着重对扩展标记“...”存在问题进行研究,因为针对最新的5G 3GPP协议中涉及到的ASN.1结构,相对4G有了一些扩展及改变,本文的研究可以更好的对5G 3GPP协议中涉及到的ASN.1结构的编码实现。

接下来本文对以上a-k种数据类型,分别按照基本定义/691协议编码内容/流程图/编码实例等步骤进行讲解,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值