IT관련 지식들 2016. 8. 12. 10:47

DateX-ASN.1 개념 정리


1. ASN.1

 Abstract Syntax Notation #1의 약자. 국제전기통신 연합(ITU : International Telecommunication Union)에서 정한 통신 데이터 형식 표준.


2. 관련 문서

ISO 15784 : Intelligent transport systems (ITS) — Data exchange involving roadside modules communication
   – ISO 15784-1
         - General principles and documentation framework of application profiles
          – ISO 15784-3
    - Application profile-data exchange (AP-DATEX)
KS X ISO 14827 : 교통 정보 및 제어 시스템-ITS를 위한 센터간 데이터 인터페이스
  –KS X ISO 14827-1
    • 메시지 정의 요구사항.
  –KS X ISO 14827-2

    • DATEXASN


* X.680~X.699 : ASN.1의 문법을 정의한 표준 문서.

X.680 – Basic Notation

X.681 – Information Objects

X.682 – General Constraint Notation

X.683 – Parameterization

X.690 – Basic (BER), Cannoical(CER), and Distinguished (DER) Encoding Rules

X.691 – Packed Encoding Rules (PER) 


3. ASN.1 문법

  - X680 문서에 기본 문법 참조.


ModuleDefinition ::=

ModuleIdentifier

DEFINITIONS

TagDefault

ExtensionDefault

"::="

BEGIN

ModuleBody

END

ModuleIdentifier ::=

modulereference

DefinitiveIdentifier

DefinitiveIdentifier ::=

"{" DefinitiveObjIdComponentList "}"

| empty

DefinitiveObjIdComponentList ::=

DefinitiveObjIdComponent

| DefinitiveObjIdComponent DefinitiveObjIdComponentList

...(중략)...

AssignmentList ::=

Assignment

| AssignmentList Assignment

Assignment ::=

TypeAssignment

| ValueAssignment

| XMLValueAssignment

| ValueSetTypeAssignment

| ObjectClassAssignment

| ObjectAssignment

| ObjectSetAssignment

| ParameterizedAssignment


각 모듈에서 사용할 수 있는 문법 중 다음 항목을 설명한다.

* Type Assignment : 변수의 타입을 설정.

          InventoryList {1 2 0 0 6 1} DEFINITIONS ::= BEGIN

{

ItemId ::= SEQUENCE

{

  partnumber IA5String,

  quantity INTEGER,

  wholesaleprice REAL,

  saleprice REAL

}

StoreLocation ::= ENUMERATED

{

  Baltimore (0),

  Philadelphia (1),

  Washington (2)

}

} END

* Value Assignment : 변수값을 설정

gadget ItemId ::=

{

  partnumber   "7685B2",

  quantity   73,

  wholesaleprice   13.50,

  saleprice   24.95

}


2. BER(Basic Encoding Rule)

  - DateX(Date Exchange)중 한가지 방법인 BER에 대해 설명.

  - Tag Length Value의 앞자를 따서 TLV라고도 함.

  - X.690 문서 참조.


- Structure of an encoding

 Identifier Octets

 Length Octets

Contents octets 

End-of contents Octets(생략가능) 


- 그리고 대략 다음과 같은 구조를 가짐

Seq ::= SEQUENCE {

first INTEGER,

second INTEGER }

seqVa1 Seq ::= { 10, 20 }


Tag 

Length 

Value 

 

 

 SEQUENCE

V의 길이(구조체 전체 크기)

 Tag

Length 

Value 

 

 

INTEGER 

 V의 길이

 10 

 

 

INTEGER

 V의 길이 

 20 








ASN.pptx


'IT관련 지식들' 카테고리의 다른 글

리눅스 파일 전송 명령어(scp)  (0) 2016.09.01
ubuntu mount 명령어.  (0) 2016.08.18
gdb 디버거 사용하기.  (0) 2016.07.26
makefile  (0) 2016.07.25
gcc 컴파일러.  (0) 2016.07.25
posted by 동글동글82
: