ASN PER编译码规则技术总结要点Word格式.docx
- 文档编号:14358099
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:20
- 大小:32.76KB
ASN PER编译码规则技术总结要点Word格式.docx
《ASN PER编译码规则技术总结要点Word格式.docx》由会员分享,可在线阅读,更多相关《ASN PER编译码规则技术总结要点Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
编译码规则:
如何编译码实际消息的数据。
特点:
表达简单和复杂类型的能力;
类型根据大小或数值进行约束;
大写开头表示类型名,小写开头的表示变量名/字段名;
字段可以标记为OPTIONAL,便于扩展。
2.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消息的具体结构,这样编码和译码的才能被编译和识别。
2.1编码规则
分组编码规则包括三个部分:
preamble(前缀)、length(长度)、contents(内容)。
其编码格式如图1所示:
Preamble|length|Content
(1)preamble:
它只出现在ENUMERATED、SEQUENCE、SET、CHOICE四种数据结构的编码中。
用来记录结构中有无扩展项(extension)、选择项(optional)或缺省项(default)。
(2)length:
对STRING、SEQUENCEOF、SETOF等数据类型进行编码时,需对其长度按对齐方式进行编码。
(3)contents:
若数据是基本结构类型,如:
BOOLEAN、INTERGER、REAL、BITSTRING等,即可直接进行编码;
若数据是复合结构类型,如SEQUENCE、SET、CHOICE、SEQUENCE
OF等,则属嵌套编码,此时contents中也包含有preamble、length、contents三个部分。
(注:
在以下举例中,为对齐需要插入0的地方,以(pad)表示)
3.2范围受限的整数类型INTEGER(lb…ub)
lb为范围的下限,ub为上限,范围N=ub-lb+1。
PER针对N的大小不同,采用不同的编码方法,且对整数n进行编码时,以(n-lb)的值进行编码。
当N<
=255时,整数编成不需对齐的1~8比特;
当N=256时,编成需对齐的8个比特,当256<
N<
=65536时,编成需对齐的16个比特。
例如:
当ASN.1描述的数据maximumNestingDepth
INTEGER(1…15)的值为3时,PER编码为0010;
g711Alaw64k
INTEGER(1…256)的值为10时,PER编码为(pad)00001001;
而当statusDeterminationNumberINTEGER(0…16777215)的值为1000,PER编码是00000010
(pad)0010011100010000。
3.3对象标识符类型OBJECTIDENTIFER
OBJECTIDENTIFER是一种用层次标识符来描述对象的方法;
每一层为一标识符,用一个十进制整数表示。
protocolIdentifier
OBJECTIDENTIFIER可被赋值为{itu-t(0)recommendation(0)h(8)245version(0)3}。
protocolIdentifier由itu-t、recommendation、h245和version这四层标识符描述;
用{0,0,8,245,0,3}十进制整数序列表示。
OBJECTIDENTIFER的编码方法为:
length+各层标识符编码,其中length值按半约束整数类型编码。
PER并不分别对第一层和第二层的标识符整数值进行编码,而是将两层的整数值合并成’40*第一层整数值+第二层整数值’一个值来进行编码。
其他层次标识符整数值被对齐编码为8位比特串;
其中首位是标志位,’1’表示整数值在该比特串没有被编码完,后面接着8位比特串还是原标识符整数值的编码;
而’0’则表示整数值在该比特串编码完毕。
如上例:
由于0*40+0=0,所以第一二层的标识符被编码为:
00000000;
第三层标识符的编码是00001000;
245无法只用一个8位比特串表示,其编码为10000001
01110101;
剩下的标识符分别被编码为00000000和00000011。
因为各层标识符的编码长度总共为6个字节,所以length=0x06。
protocolIdentifier的最后编码是:
0x060x000x080x810x750x000x03。
3.4CHOICE复合类型
CHOICE结构中有许多元素,每一个元素均有一个索引号,第一个元素的索引号为0,
第二个元素的索引号为1,依次类推,直到最后一个元素n。
其编码方法为:
索引号+所选元素编码。
如果在choice结构内有扩展标记(…),则在索引号前增加一个比特位’0’表示所选项在原列表内;
增加一个比特位’1’表示所选为扩展内容。
cause
CHOICE
{
unspecifiedCause
NULL,
descriptorTooComplex
…
}
若cause的值为unspecifiedCause,则PER编码为00。
其中第一个0表示所选的不是扩展内容;
第二个0表示所选的项为第一项。
3.5SEQUENCE复合类型
SEQUENCE结构中可能有扩展标记(…),也有可能有些元素为可选项(OPTIONAL)。
如果有扩展标记,编码的第一个比特表示有无扩展内容(0表示是非扩展项,1表示为扩展项);
随后是若干个比特,其个数等于结构中可选项的个数,分别按位置顺序对应于每一个可选项,值’1’表示选用对应的可选项,值’0’表示不选;
接着是结构中各个元素的内容编码。
H261VideoCapability:
:
=SEQUENCE
qcifMPI
INTEGER(1..4)
OPTIONAL,
cifMPI
temporalSpatialTradeOffCapability
BOOLEAN,
若H261VideoCapability的取值如下
3,
tempralSpatialTradeOffCapability
TRUE,
则编码表示为010101,其中第一个0表示无扩展项;
第二个1表示qcifMPI选用;
第三个0表示cifMPI不选用;
接着的10表示qcifMPI的值为3;
最后的1表示tempralSpatialTradeOffCapability的值为TRUE。
3.6SETSIZE(lb…ub)OF和SEQUENCESIZE(1b…ub)OF复合类型
其编码形式为:
元素个数编码+各个元素内容编码;
元素的个数按受限整数方式进行编码。
AlternativeCapabilitySet
=SEQUENCESIZE(1…256)OFCapabilityTableEntryNumber,
CapabilityTableEntryNumber:
=INTERGER(1…65535)
若AlternativeCapabilitySet的取值为(1,2)时,则编码为:
(pad)000000010000000000000001
4、RANAP协议描述分析
因为对RANAP的ASN.1语法还不是很清楚,以下描述是通过观察数据加上猜测得来,疏漏之处,还请见谅。
RANAP-PDU:
=CHOICE{
initiatingMessageInitiatingMessage,
successfulOutcomeSuccessfulOutcome,
unsuccessfulOutcomeUnsuccessfulOutcome,
outcomeOutcome,
...
这是RANAP的PDU的最高结构。
我们再来看InitiatingMessage的定义
InitiatingMessage:
=SEQUENCE{
procedureCode
RANAP-ELEMENTARY-PROCEDURE.&
procedureCode({RANAP-ELEMENTARY-PROCEDURES}),
criticality
criticality({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
valueRANAP-ELEMENTARY-PROCEDURE.&
InitiatingMessage({RANAP-ELEMENTARY-PROCEDURES}{@procedureCode})
ProcedureCode:
=INTEGER(0..255)
Criticality:
=ENUMERATED{reject,ignore,notify}
我们举一个具体的value的例子
CommonID:
protocolIEsProtocolIE-Container{{CommonID-IEs}},
protocolExtensionsProtocolExtensionContainer{{CommonIDExtensions}}OPTIONAL,
ProtocolIE-Container{RANAP-PROTOCOL-IES:
IEsSetParam}:
=
SEQUENCE(SIZE(0..maxProtocolIEs))OFProtocolIE-Field{{IEsSetParam}}
ProtocolIE-Fie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASN PER编译码规则技术总结要点 PER 译码 规则 技术 总结 要点