`
xumingyong
  • 浏览: 182348 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MMS编码

阅读更多

Telecontrol Application Service Element (TASE.2)
Inter-Control Centre Communications Protocol (ICCP)

将ACE与VC6集

TASE.2 consists of three documents

  •  IEC 870-6-503 TASE.2 Services and Protocol
  •  IEC 870-6-702 TASE.2 Profiles
  •  IEC 870-6-802 TASE.2 Object Models

 

  • RFC1006
  • ASN.1 ACSE

 

Abstract Syntax Notation 1 (ASN.1)
( ISO/IEC 8824 and 8825 )

ISO/IEC 8824-1:1998, Information technology - Abstract Syntax Notation One (ASN.1): Specification of
                     basic notation
                    
ISO/IEC 8824-2:1998, Information technology - Abstract Syntax Notation One (ASN.1): Information object
                     specification
                    
ISO/IEC 8825-1:1998, Information technology - ASN.1 encoding rules: Specification of Basic Encoding
                     Rules (BER), Canonical Encoding Rules (CER, and Distinguished Encoding Rules (DER)
                    
ISO/IEC 8825-2:1998, Information technology - ASN.1 encoding rules: Specification of Packed Encoding
                     Rules (PER)

ISO/ISP 14226-1:1996 Industrial automation systems -- International Standardized Profile AMM11:
                     MMS General Applications Base Profile -- Part 1: Specification of ACSE,
                     Presentation and Session protocols for use by MMS

ISO/ISP 14226-2:1996 Industrial automation systems -- International Standardized Profile AMM11:
                     MMS General Applications Base Profile -- Part 2: Common MMS requirements

ISO/ISP 14226-3:1996 Industrial automation systems -- International Standardized Profile AMM11:
                     MMS General Applications Base Profile -- Part 3: Specific MMS requirements
 
学习好地方
http://www.ncepu.com.ru/home/html/f72.html (有些参考论文)
http://corba.blogbus.com/index.html (个人blog)

ASN.1 --- MMS ----ICCP -----IEC 61850

==========================================
编码的基本原则是类型—长度—值的三段式结构,简称TLV(Type Length--Value)结构。


ASN.1编码的基本型结构和递归型结构
ASN.1 TAG含义:

  • Bits 7,6     Type of tag
  • Bit  5         Primitive or Constructed Flag
  • Bit  4-0     Tag value


ASN.1有四种类型:

  • 简单类型,它相当于原子,没有下层组件;
  • 结构类型,有组成部分;
  • 标签类型,由其它类型生成;
  • 其它类型,包括CHOICE和ANY类型。

可以使用ASN.1的分配符(::=)给类型和值指定名字,这些名字可以用于定义其它类型或值。

除了CHOICE和ANY类型以外,每种ASN.1类型都有一个标签,由一个类和一个非负的标签数组成。标签值可以唯一区分ASN.1类型。也就是说,ASN.1类型的名字并不影响它的抽象含义,只有标签值才有这个作用。有四类标签:

  • Universal:该类型的含义在所有的application中都相同。这种类型只在X.208中定义。
  • Application:该类型的含义由application决定,如X.500目录服务。两个不同的application中的类型可以具有相同的application-specific标签但是可以具有不同的含义。
  • Private:,该类型的含义根据给定的企业而不同。
  • Context-specific:该类型的含义根据给定的结构类型而不同。Context-specific标签用于在一个给定的结构类型上下文中区分使用相同的下层标签的组件类型。在两个不同的结构类型中组件类型可以具有相同的标签但是含义不同。

MMS中

 

Bits 7,6    Bit 5      Description, key words
--------     -----        -------------------------
0 0            0            Description: Universal Tag, Primitive
                                        Example keywords: INTEGER, BITSTRING, BOOLEAN
0 0            1            Description: Universal Tag, Constructed
                                        Example keyword: SEQUENCE, SEQUENCE OF
1 0            0            Description: Context Specific, Primitive
                                        Example Keyword: IMPLICIT
1 0            1            Description: Context Specific, Constructed
                                        Example Keywords: IMPLICIT SEQUENCE
                                                          IMPLICIT SEQUENCE OF
-----------------------------------------------------------------------------------------
识别符由小写字母开头,类型索引由大写字母开头。
类型索引由大写字母开头。

简单类型(Simple types)

  • BIT STRING:由0和1任意组成的比特流
  • IA5String:由IA5(ASCII)字符任意组成的字符流
  • INTEGER:一个任意的整数
  • NULL:null值
  • OBJECT IDENTIFIER:对象识别符,有一列整数构成,用于确定对象,如算法或属性类型
  • OCTET STRING:任意的octet(8bit值)流
  • PrintableString:任意可打印字符流
  • T61String:T.61(8bit)字符的任意流
  • UTCTime:"coordinated universal time"或者格林威治平均时(GMT)值。

结构化类型:

  • SEQUENCE:一个或多个类型的有序集合
  • SEQUENCE OF:0个或某个给定类型多次出现的有序集合
  • SET:一个或多个类型的无序集合
  • SET OF:0个或某给定类型多次出现的无序集合


隐式和显式标签类型:

  • 隐式标签类型是在其它类型基础上通过改变其下层类型的标签生成的。
  • 显式标签是在其它类型基础上通过在其下层类型的标签之外添加一个外层标签生成的。从效果上看,显式标签类型是包含一个组件的结构类型,该组件即下层类型。


其他类型:

包括CHOICE和ANY类型。

  • CHOICE类型表示一个联合体,它具有一个或多个备选项(alternative);
  • ANY类型表示任意类型的任意值,其中任意类型可能在使用对象识别符或整数值注册中定义。


基本编码规则BER(Basic Encoding Rules)


三种编码方法

  •    基本的,     定长编码;
  •    结构化的,定长编码;
  •    结构化的,不定长编码


简单的non-string类型使用第一种(简单、定长编码);结构类型可使用任一种结构化的编码方法;简单的string类型根据值的长度是否已知可使用任一种方法。隐式标签定义的类型可使用下层类型的方法,显式标签定义的类型使用结构化的编码方法。

 每种BER编码方法都有三或四部分:

  •  Identifier octets:定义了ASN.1值的类和标签值,指明编码方法是简单化的还是结构化的。
  •  Length octets:对于定长编码方法,它指出了内容octet的个数;对于结构化、非定长编码方法,它指名长度是不确定的。
  •  Contents octets:对于简单的、定长编码方法,它给出了值的具体表示;对于结构化的方法,它给出了值的内容的BER编码的串联。
  •  End-of-contents octets:对于结构化、非定长的编码方法,它表示内容结束;对于其它方法,没有该部分。


简单定长方法(Primitive, definite-length method)
这种方法用于简单类型及通过对简单类型使用隐式标签生成的类型。它要求值的长度是事先预知的

1.Identifier octets,有两种形式:较小的标签值(标签值在0和30之间)和较大的标签值(标签值大于等于31)

  •  Low-tag-number form:一个octet。Bit8和bit7表示类(如表2),bit6值为0,表示编码方法为简单化的。Bit5-1给出了标签值。如下表所示:

              Class                Bit 8    Bit 7
              universal               0    0 
              application            0    1
              context-specific    1    0
              private                   1    1

  • High- tag-number form:两个或多个octet。第一个octet形式如low-tag-number form,但是bit5-1均为1。第二个和以后的octet给出标签值,基于128,最高位在先,以便使用尽可能少的数字,每个octet的bit8都置为1,最后一个为0。


2.Length octets:有两种格式:短型(长度在0至127之间)和长型(长度在0至21008-1之间)

  • Short form: 一个octet,bit8为0,bit7-1表示长度。
  • Long form: 2-127个octet。第一个octet的Bit8为1,bit7-1表示后面有多少个用于表示实际长度的octet。第二个和随后的octet给出实际长度,基于256,高位数字在先。


3.Contents octets:给出了值的具体表示(如果类型是由隐式标签定义的,则给出了下层类型的值)

3.2 结构化定长方法(Constructed, definite-length method)

     结构化的、定长方法适用于简单的string类型、结构类型、在二者基础上通过隐式标签生成的类型和在任何类型基础上由显式标签生成的类型。要求值的长度事先已知。BER编码方法各部分如下:

 1.Identifier octets:与第3.1节介绍的一样,但bit6的值为1,表示编码方法是结构化的。
 2.Length octets:见第3.1节。
 3.Contents octets,值的组件的BER编码的串联

  • 对于简单string类型和在其基础上由隐式标签生成的类型,是值的连续子串的BER编码的串联(隐式标签的下层值)
  • 对于结构类型和在其基础上由隐式标签生成的类型,是值的组件的BER编码的串联(隐式标签的下层值)
  • 对于在任何类型基础上使用显式标签生成的类型,是下层值的BER编码特定类型的细节见第5节。

3.3 结构化非定长方法(Constructed, indefinite-length method)

    结构化的、非定长编码用于简单string类型、结构类型、在二者基础上使用隐式标签生成的类型和在任何类型基础上使用显式标签生成的类型。不要求事先知道值的长度。BER编码各部分如下:

  • Identifier octets,见第3.2节
  • Length octets.一个octet,值为80
  • Contents octets.见第3.2节。
  • End-of-contents octets两个octet,为00  00。


 由于end-of-contents octet出现在通常普通BER编码出现的位置(例如,在一个sequence值的内容octet出现的位置),可把 00和00分别视为identifier和length octet。因此end-of-contents octet实际上是一个具有 universal class,标签值为0,长度为0的值的简单定长编码。

 

分享到:
评论

相关推荐

    61850论文\IEC61850标准中MMS映射分析及其编码_解码模块的设计

    本文主要探讨IEC61850标准与MMS之间的映射关系,并提出了一种MMS编码/解码模块的设计方案,以实现MMS协议数据单元(Protocol Data Unit, PDU)的抽象语法和传送语法之间的转换。此外,还将介绍具体的编码/解码过程,...

    IEC 61850标准中MMS映射分析及其编码解码模块的设计.pdf

    通过设计一种MMS编码/解码模块,实现了MMS协议数据单元(Protocol Data Unit, PDU)的ASN.1抽象语法与传送语法之间的转换。基于该模块,开发了一个简单的程序来实现IEC 61850应用层报文的编码/解码,并分析了具体MMS...

    MMS and ASN.1 Encodings.pdf

    MMS协议本身在编码时采用了ASN.1编码规则,因此在对MMS PDUs(协议数据单元)进行解析和构造时,必须了解ASN.1编码规则。ASN.1编码规则定义了数据类型、长度和实际的字节序列如何对应。例如,ASN.1基本编码规则(BER...

    mms的消息格式各压缩编码分析

    MMS消息的传输涉及到多个层次的编码和封装,以便在不同网络环境下高效且可靠地传递。在分析MMS消息格式时,我们首先要理解其组成部分和编码方式。 1. MMS PDU(Protocol Data Unit,协议数据单元):这是MMS消息的...

    ICD-11 MMS简明编码表

    2. **疾病/症状描述**:编码对应的详细病症描述,包括症状、体征、病程等,确保临床医生能准确理解编码的含义。 3. **分类轴**:ICD-11 MMS可能采用了多轴分类,轴可能包括疾病主体、心理状态、社会影响、功能障碍...

    OMA-ERP-MMS-V1_3-20051027-C.zip

    1. OMA-TS-MMS-ENC-V1_3-20050927-C.pdf:这个文件是关于MMS编码规范的,它详细定义了MMS消息如何进行编码,包括数据格式、编码算法以及各种多媒体内容的处理方式。编码规范对于确保不同设备间MMS消息的互操作性至关...

    MMS与ASN.1编码规则

    ### MMS与ASN.1编码规则 #### 引言 在电力行业的实际工作中,MMS(制造消息规范)的理解及应用一直是重要的课题。MMS作为ISO/IEC 9506标准的一部分,在非专业人士看来存在一定的理解难度,主要是因为它涉及到了...

    国际疾病诊断编码库ICD-11-MMS,共32189行

    国际疾病诊断编码库ICD-11-MMS,共32189行

    用vc编码MMS实例绝对可以编译运行

    总之,使用VC编码MMS实例需要对MMS协议、HTTP通信和C++编程有深入理解。通过合理地组织代码,引入适当的库,以及充分的测试,我们可以确保程序在Windows下能够成功编译并运行。记住,不断学习和实践是提升编程技能的...

    彩信的交互过程,彩信的PDU,彩信的PDU编码

    彩信的交互过程、PDU 及编码 彩信的交互过程是指彩信客户端与 MMS Proxy-Relay 之间的交互和彩信接收方与 MMS Proxy-Relay 之间的交互。该过程包括发送过程、通知过程、彩信接收、彩信回执和彩信阅读回执五个部分。...

    彩信的编码解码

    首先,`mess_mms_encode.c` 文件是彩信编码的实现源代码。编码过程涉及将多媒体数据转换为适合通过移动网络传输的格式。这通常包括对内容进行压缩以减小文件大小,然后使用特定的协议(如WAP或3GPP)进行封装。编码...

    MMS的消息格式和压缩编码分析

    ### MMS的消息格式和压缩编码分析 #### 一、引言 随着移动通信技术的不断发展,多媒体消息服务(Multimedia Messaging Service, MMS)已成为移动通信领域中的一个重要组成部分。MMS不仅能够发送文本信息,还能支持...

    MMS协议报文实例分析

    在MMS协议中,编码格式是“Little Endian”,这意味着数字0f 00 00 00的实际值是0x0f。这种二进制数据表示方法在处理MMS报文时需要特别注意,因为它决定了如何正确解读报文中的数值。 总结来说,MMS协议报文分析...

    mms.rar_MMS_mms文件

    在提供的压缩包文件中,`mms.cpp`可能是MMS实现过程中的源代码文件,包含了MMS服务端或客户端的具体实现细节,如文件编码、打包和传输等功能。而`www.pudn.com.txt`可能是从Pudn网站获取的参考资料链接,可能包含MMS...

    MMS-PDU.rar_MMS PDU封装_mms pdu_wap pdu_最优化

    为了节约无线领域的带宽资源,表中分配数值即为每个域名关键字使用预定义的二进制编码,MMS PDU封装的二进制编码的基本编码机制来源于WAP/WSP,最优化在空中传播的数据量。MMS PDU生成及翻译是MMS客户机程序的重要...

    国际疾病诊断编码库ICD-11-MMS.rar

    国际疾病诊断编码库ICD-11-MMS: 1.诊断编码 2.诊断名称 3.是否为有效码(注意:标示为“否”者是章、节代码,或具有细分亚目的类目编码;在编码时应当采用有效码) 分为以下章节: 第1章 某些感染性疾病或寄生虫病 第...

    mms源码

    2. **消息格式与编码**:MMS消息通常遵循3GPP或OMA(Open Mobile Alliance)制定的标准,源码中会涉及到如何构建和解析这些标准定义的消息结构。 3. **多媒体处理**:MMS支持多种媒体类型,源码中可能包含对图片、...

Global site tag (gtag.js) - Google Analytics