ASN1編解碼規(guī)則之類(lèi)型定義_第1頁(yè)
ASN1編解碼規(guī)則之類(lèi)型定義_第2頁(yè)
ASN1編解碼規(guī)則之類(lèi)型定義_第3頁(yè)
ASN1編解碼規(guī)則之類(lèi)型定義_第4頁(yè)
ASN1編解碼規(guī)則之類(lèi)型定義_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ASN.1編解碼規(guī)則之類(lèi)型定義ASN.1最基本的概念是類(lèi)型和值,一個(gè)類(lèi)型是一組值的集合,表示潛在的傳送信息,實(shí)際中,只有值被傳送,類(lèi)型分為簡(jiǎn)單類(lèi)型、復(fù)合類(lèi)型、子類(lèi)型三類(lèi);簡(jiǎn)單類(lèi)型是ASN.1的基本組成部分,通常用來(lái)描述事物的單一屬性。復(fù)合類(lèi)型由一個(gè)或者多個(gè)它的域構(gòu)成,這些域可以使任意類(lèi)型,子類(lèi)型是其父類(lèi)型的變形,前者的值域是后者值域的子集;簡(jiǎn)單類(lèi)型:1. BOOLEAN類(lèi)型又稱(chēng)布爾類(lèi)型,有兩種可能的取值:“TRUE”和“FLASE”;RRC協(xié)議中不存在對(duì)此類(lèi)tstd-Indicator的編碼結(jié)果是1(郭丹的論文里面是0);2. NULL類(lèi)型又稱(chēng)為空類(lèi)型,表示信息中不包含任何內(nèi)容,傳遞時(shí)接收方知

2、道與其相關(guān)的語(yǔ)義,該類(lèi)型適合傳遞報(bào)告或者確認(rèn)消息,和BOOLEAN一樣,RRC協(xié)議中也不存在對(duì)該類(lèi)型的單獨(dú)定義,而將其定義在SEQUENCE中,如下表所示:定義RadioBearerSetup-r3-IEs:=SEQUENCE,tddNULL,賦值ExampleRadioBearerSetup-r3-IEs:=,tddNULL,不需要對(duì)NULL類(lèi)型數(shù)據(jù)進(jìn)行編碼,如果它是CHIOCE或者SEQUENCE的可選域或者缺省域,導(dǎo)言作為此類(lèi)型的索引來(lái)確定是否存在該類(lèi)型的數(shù)據(jù);3. INTEGET類(lèi)型又稱(chēng)為整數(shù)類(lèi)型,它的值集合是任意長(zhǎng)度的整數(shù),可以將該類(lèi)型數(shù)據(jù)定義成一個(gè)常數(shù),也可以使用子類(lèi)型限制語(yǔ)句將其

3、值限制在一個(gè)區(qū)間內(nèi)取值,定義如下表所示:定義MaxROHC-pro巾le-r4INTEGER:=8CD-AccessSlotSubchannal:=INTEGER(0.11)賦值ExampleCD-AccessSlotSubchannal:=0如果該類(lèi)型被定義為常數(shù)時(shí),不需要編碼,因?yàn)榻獯a一方也知道相同的構(gòu)文,從而可以正確解碼,因此MaxROHC-profile-r4的編碼結(jié)果為空,反之,需要編碼,比如CD-AccessSlotSubchannal在有限范圍內(nèi)取值,有12個(gè)值可以取,因此用四位比特?cái)?shù)來(lái)對(duì)它進(jìn)行編碼,所以CD-AccessSlotSubchannal的編碼結(jié)果是0000;4. E

4、NUMERATED類(lèi)型又稱(chēng)枚舉類(lèi)型,當(dāng)需要列出對(duì)象清單的時(shí)候,就要用到該類(lèi)型,他經(jīng)常被用來(lái)描述系統(tǒng)狀態(tài)或者錯(cuò)誤報(bào)告,該類(lèi)型的定義和復(fù)制方法如下表所示:定義RRC-StateIndicator:=ENUMERATEDCell-DCH,cell-FACH,cell-PCH,ura-PCH賦值ExampleRRC-StateIndicator:=cell-FACH;有四個(gè)選項(xiàng),因此使用2個(gè)比特位來(lái)進(jìn)行編碼,RRC-StateIndicator的編碼結(jié)果是01;5. BITSTRING類(lèi)型又稱(chēng)為二進(jìn)制比特串類(lèi)型,該類(lèi)型值可以為空或者任意長(zhǎng),常被用來(lái)定義那些可以表示為二進(jìn)制或布爾向量的數(shù)據(jù),比特串最左邊

5、的比特是第一位,最右邊的比特是最末位;該類(lèi)型的表示有單引號(hào)界定,二進(jìn)制形式由數(shù)字0和1組成,后面附加字母B,十六進(jìn)制形式由數(shù)字09和字母AF組成,后面附加字母H,位串的長(zhǎng)度應(yīng)該盡量使用子類(lèi)型進(jìn)行限制,因?yàn)檫@能使編碼器分配合適的空間,保證編碼更加簡(jiǎn)短,構(gòu)文如下表所示:定義C-RNTI:=BITSTRING(SIZE(16)賦值ExampleC-RNTI:=0010010000111100B定義AccessServiceClass-FDD:=SEQUENCE,assignedSubChannelNumberBITSTRINGb3(0),b2(1),b1(2),b0(3)(SIZE(4)賦值Exam

6、ple2AccessServiceClass-FDD:=,assignedSubChannelNumber:0010B對(duì)于固定長(zhǎng)度的BITSTRING類(lèi)型,編碼時(shí)不需要長(zhǎng)度域,編碼結(jié)果即為比特值,反之要在前面加上長(zhǎng)度域,上表中該類(lèi)型的比特串是固定值的兩種定義和相應(yīng)賦值方式,“examplel"和"assignedSubChannelNumber”的編碼結(jié)果分別為“0010010000111100和“0010”;6. OCTETSTRING類(lèi)型又稱(chēng)為八位比特串類(lèi)型,該類(lèi)型編碼時(shí)候,比特位后面有時(shí)需要填充值為0的比特,以使比特位的位數(shù)達(dá)到8的整數(shù)倍;定義NAS-SystemIn

7、formationGSM-MAP:=OCTETSTRING(SIZE1.8)賦值ExampleNAS-SystemInformationGSM-MAP:=31'H因?yàn)殚L(zhǎng)度是范圍是1.8,example的取值是2個(gè)8位比特組,因此長(zhǎng)度域?yàn)椤?01”,它的完整編碼是“00100110001”我覺(jué)得是應(yīng)該是這個(gè)00100011001;復(fù)合類(lèi)型1. SEQUENCE類(lèi)型每個(gè)域由小寫(xiě)字母開(kāi)頭的標(biāo)識(shí)符來(lái)定義,還可以用OPTIONAL和DEFAUL怵標(biāo)記這些域可選和缺省域,構(gòu)文如下表所示:定義DL-DCCH-Message:=SEQUENCEintegrityCheckInfoIntegrityCh

8、eckInfoOPTIONALmessageDL-DCCH-MessageType賦值N-CR-T-CRMaxHyst:=SEQUENCEn-CRinteger(1.16)DEFAULT8t-CRMaxHystT-CRMaxHyst對(duì)SEQUENC關(guān)型編碼是根據(jù)從上到下,從外層到內(nèi)層的順序依次對(duì)內(nèi)嵌的每個(gè)域進(jìn)行編碼,編碼時(shí),每個(gè)可選域和缺省域都用一個(gè)比特的導(dǎo)言來(lái)表示是否存在于星河亮點(diǎn),船.rPohitSEQUENCE類(lèi)型數(shù)據(jù)中,分別用“0”、“1”來(lái)表示,如果不存在就不對(duì)該域進(jìn)行編碼,反之進(jìn)行編碼;DEFAUL市面默認(rèn)值應(yīng)該和該域的類(lèi)型一致,對(duì)被它標(biāo)記的域進(jìn)行編碼時(shí),如果賦值等于其缺省值,則編

9、碼時(shí)導(dǎo)言為“0”且后面沒(méi)有對(duì)值的編碼,如果為“1”,后面有對(duì)值的編碼,對(duì)具有DEFAULT標(biāo)記的域進(jìn)行解碼時(shí),如果導(dǎo)言為1,該域的值對(duì)應(yīng)于值域中的值;如果導(dǎo)言為0,該域的值為缺省值;2. SEQUENCEOF類(lèi)型該類(lèi)型相當(dāng)于一些程序設(shè)計(jì)語(yǔ)言中的動(dòng)態(tài)數(shù)組或鏈表,其內(nèi)所有的域都是同一類(lèi)型且數(shù)量是可變的,如下表所示:定義IMSI-GSM-MAP:=SEQUENCE(SIZE(6.21)OFDigitDigit:=INTEGER(0.9)賦值ExampleIMSI-GSM-MAP:=0,0,1,1,3,6,5對(duì)SEQUENCEOF類(lèi)型的數(shù)據(jù)進(jìn)行編碼時(shí),如域的個(gè)數(shù)是固定的,就沒(méi)有長(zhǎng)度域,否則,用長(zhǎng)度域表

10、示域的個(gè)數(shù),接下來(lái)依次對(duì)每個(gè)域進(jìn)行編碼,“example”的長(zhǎng)度域是“0001”,全部的編碼結(jié)果是“00010000000000010001001101100101”;3. CHIOCE類(lèi)型該類(lèi)型有幾個(gè)域可供選擇,具體構(gòu)文如下表所示:定義TFCS-InfoForDSCH:=CHOICEctfc2bitINTEGER(0.3),ctfc4bitINTEGER(0.15),ctfc6bitINTEGER(0.63),ctfc8bitINTEGER(0.255),ctfc12bitINTEGER(0.4095),ctfc16bitINTEGER(0.65535),ctfc24bitINTEGER(0

11、.16777215)賦值ExampleTFCS-InfoForDSCH:=ctfc4bit:3CHIOCE類(lèi)型首先用導(dǎo)言指示選擇哪一個(gè)域,化成十進(jìn)制就是0代表第一項(xiàng),以此類(lèi)推,后面緊跟所選項(xiàng)的編碼結(jié)果,對(duì)“example”的編碼結(jié)果為“0010011”;子類(lèi)型在某些情況下,只需要ASN.1類(lèi)型取值的一些子集是有效的,有時(shí)候,只需要一些特定范圍內(nèi)的子集有效,子類(lèi)型定義是通過(guò)在父類(lèi)型記法后面附加適當(dāng)?shù)淖宇?lèi)型說(shuō)明來(lái)實(shí)現(xiàn)的,子類(lèi)型可用“|”將不同的父類(lèi)型值域的子集分開(kāi),整個(gè)表達(dá)式位于圓括號(hào)內(nèi),如下表所示:定義賦值Day:=ENUMERATEDmonday(0),tuesday(1),wednesday(2),thursday(3),friday(4),saturday(5),sunday(6)Wednesday:=Day(Wednesday)WeekEnd:=Day(saturday|sunday)上表的子類(lèi)型一欄中,上面的表達(dá)式表示“WeekEnd”類(lèi)型的取值只有一個(gè)值:“Wednesday"。下面的表達(dá)式表示該類(lèi)型的取值包括兩個(gè)值:"Saturday"和"sunday"。TAG類(lèi)型ASN.1語(yǔ)法的基本構(gòu)成,即模塊,它是認(rèn)為的將

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論