?

LTE-Uu接口協議棧中ASN.1模塊的設計與應用*

2010-03-14 09:04李校林文小強
電視技術 2010年10期
關鍵詞:編解碼信令解碼

李校林 ,文小強

(1.重慶信科設計有限公司,重慶 400065;2.重慶郵電大學,通信新技術應用研究所,重慶 400065)

1 引言

隨著移動通信技術的蓬勃發展,以及移動通信與寬帶無線接入技術的相互融合,3GPP開展了UTRA長期演進(Long Term Evolution,LTE)技術的研究。與以往的TDSCDMA等3G移動通信系統相比,LTE能提供對各種數據傳輸的支持和比以往所有移動通信系統更高的數據傳輸率,這必然會加大用戶設備(UE)與eNodeB之間的信令交互。在3GPP制定的標準中,引入了使用UPER編碼規則的ASN.1語言來描述LTE-Uu接口協議棧信令消息[1]。ASN.1的數據類型可分為簡單類型和復合類型兩大類。簡單類型是通過直接規定一組該類型值而定義的不可分解的基本數據類型,包括 Null,Bool,Integer,Bit String,Octet String,Object Identifier等。復合類型是引用一個或多個其他類型構成的任意復雜的數據類型,這里的其他類型可以是簡單類型,也可以是復合類型。復合類型有Sequence,Choice,Set,Sequence of,Set of等[2]。 LTE-Uu 接口協議棧信令消息采用的均是緊湊而快的編碼方式,從而能獲得更高的通信效率。需要指出的是,ASN.1中數據類型的編碼,具體實現時必須嚴格按照X.691協議來完成。否則即使是編解碼過程中1 bit的差錯,也可能使整個LTE系統無法正常運行[3]。

文獻[4-7]討論了提出開發自動編譯器和新ASN.1運行庫等的解決方法,但這些都主要針對TD-SCDMA及其他協議標準,而且一方面LTE-Uu接口協議棧的大部分功能與TD-SCDMA等相比已經有了很大的變化,另一方面信令消息隨著LTE協議版本的變化仍然在不斷改變。因此,筆者結合文獻[4-7]各自ASN.1方案具有的優點,對LTE-Uu接口協議棧中ASN.1語言描述信令消息的編碼和解碼技術及在此基礎上的一致性測試應用做了探索性的研究。

2 LTE-Uu接口協議棧結構

在3GPP協議中,LTE-Uu接口協議棧從功能和任務上來看,分為物理層(L1)、數據鏈路層(L2)和無線資源控制層(L3)。數據鏈路層又分為媒介接入控制(Medium AccessControl,MAC)層、無線鏈路控制(Radio Link Control,RLC)層和分組數據匯聚協議(Packet Date Convergence Protocol,PDCP)層[8]。

ASN.1編解碼模塊處于LTERRC層中信息的最關鍵部分,是LTE-Uu接口協議棧信息塊重組過程的核心之一[1]。L3 RRC層消息在發送端首先經過ASN.1編解碼模塊的編碼,形成RRC的PDU模塊,再分別經L2的PDCP,RLC層和MAC層處理后,經L1物理層發送出去。在接收端,則需要進行發送端的逆過程,經L1物理層接收后,經過L2的MAC,RLC和PDCP層的處理,再送往L3 RRC層的ASN.1編解碼模塊進行信令消息的解碼,完成信令消息的解析。

其中,MAC層的主要任務是完成邏輯信道與傳輸信道之間的映射,因此發送端的MAC層實體需要通過對不同映射關系下的數據添加不同的MAC頭來區分不同類型的數據。接收端則需要根據不同的傳輸信道指示及數據格式去掉相應的MAC頭;RLC層的功能主要完成數據的分段、重組及確保數據的正確有序傳輸;PDCP層主要完成對信令消息的加密和完整性保護;最后是RRC層進行ASN.1消息編解碼的模塊化處理及解析。

3 ASN.1UPER編解碼模塊設計與實現

目前,國內外通信軟件協議棧制造商對LTE中各個接口協議棧都十分重視。OSSNokalva和Trillium公司推出的軟件除了信令消息分析功能外,有的還具備部分協議模擬功能。雖然ASN.1編解碼部分在這些軟件中的形式各有千秋,但其達到的效果是完全一致的。ASN.1編解碼處理流程如圖1所示。

在對LTE-Uu接口協議棧的ASN.1編解碼模塊的設計中提出了軟件設計中模塊定義和代碼實現的方案,并給出了實際開發中遇到的某些困難的解決方法。要實現ASN.1編解碼模塊,需要:

1)將該協議棧中用ASN.1記法描述的消息(rrc.asn)編譯成C語言描述的源文件(rrc.h);

2)生成ASN.1記法描述的消息(rrc.asn)中對應C數據結構的編解碼函數(rrc.c)。

圖1中的編譯是指將ASN.1記法描述的rrc.asn文件編譯成rrc.h文件以及與rrc.h對應的rrc.c文件。其中rrc.h文件用于聲明編譯之后生成的C數據類型和編解碼函數,rrc.c文件用于實現編解碼函數。這些編解碼函數再調用圖1中的ASN.1編解碼基本函數庫(Basic_asn.h,Basic_asn.c)實現編解碼功能。最后得到用于LTE-Uu接口協議棧的可執行文件,從而完成從ASN.1描述到二進制比特流的轉換,使得其信息能在LTE系統網絡中傳輸。

圖1的編譯過程比較繁雜,因為如果將TD-SCDMA空中接口的ASN.1消息手工翻譯成C文件則會多達數萬行,任務龐大。不過LTE RRC的ASN.1消息相對TD-SCDMA來說,簡化了很多。筆者通過剔除不必要的ASN.1類型并設計特定的數據結構,將LTE RRC的這些消息經過ASN.1映射成C文件后,再加上其他一些優化措施,將整個LTE RRC 消息的 C 文件(rrc.c,rrc.h)壓縮至 1~2Mbyte。

LTERRC消息編譯成C代碼文件后,還需進行編解碼函數庫的編寫。ASN.1模塊的比較核心部分就是編解碼函數庫,它包括ASN.1的各個數據類型所對應的編解碼函數,具體實現必須嚴格根據X.691協議中的UPER編碼規則來編寫。之后,再進行一系列的嚴格測試才能確定其正確性。最后完整的ASN.1編解碼函數庫的源代碼約為6 000行。

4 ASN.1編解碼模塊的測試與應用

由于LTE RRC的ASN.1消息中包含很多協議數據單元(PDU),不同的PDU下面又包含許多復雜結構。因此使用結構測試的方法對ASN.1編解碼模塊進行測試,同時通過觀察該模塊在一致性測試中的應用來進一步驗證ASN.1編解碼模塊的可靠性。

4.1 ASN.1模塊的結構測試

結構測試又稱為“白盒測試”或單元測試,它是基于軟件內部結構進行測試的,其目的是通過執行每條語句、遍歷程序的各個分支來檢查整個程序代碼的正確性。在測試的實現中采取了有步驟分層次的方法:先對簡單類型編解碼函數進行測試,然后對復雜類型編解碼函數進行測試。

為確保測試的準確性和可靠性,在復雜類型測試中采用了兩種方法:一種是采用手工對接口信令消息中包含RRC-Connection-Setup消息的DL-CCCH-Message進行賦值,先調用ASN.1編解碼模塊進行編碼,對于編碼后的結果再調用ASN.l編解碼模塊進行解碼。選取DL-CCCH-Mes-sage消息是因為這種類型消息包含了幾乎所有的ASN.1的數據類型,并且包含的復合結構比較多,具有很強的通用性。經多次符合X.691標準的隨機賦值測試后發現,解碼后的結果與開始的賦值是完全一致的。

另外一種方式是結合OSSNokalva公司的OSSASN.1 GUI軟件對DL-CCCH-Message消息賦值,通過該軟件生成符合UPER編碼規則的比特流。先調用ASN.1編解碼模塊解碼,對解碼后的結果再調用ASN.1編解碼模塊進行編碼。最后將輸入的比特流和解碼后的比特流進行比較,看兩者是否一致。由于某些消息編碼后比特流比較龐大,因此改進的措施是將解碼之后的比特流輸出到文件,使用Ultra Compare Professional工具進行比較。

通過反復多次隨機取值的結構測試,各個PDU預輸入的比特流和編碼后比特流經軟件比較仍然一致,這說明ASN.1編解碼模塊通過了結構測試。由于在實際的連接消息通信過程中,消息的各項參數值是很難預測的,所以僅通過結構測試是不夠的,還必須與一致性測試中ASN.1編解碼模塊應用結合起來。

4.2 ASN.1編解碼模塊的應用

對于LTE協議棧的開發測試而言,比較關心的是開發是否滿足標準,是否能與其他基于同一個協議標準的產品實現互通等問題。而協議一致性測試可以檢測所實現的協議實體與協議規范是否一致,是協議實體之間互操作性和性能保證的基本前提。在測試系統和被測實體之間通過發送、接收信令數據來完成協議一致性測試。

根據圖2所示過程在Telelogic TAU的TTCN Suite環境下設計一個測試例,此環境同時支持TTCN和ASN.1兩種語言。根據3GPPTS 36.331(RRC)協議的RRCConnection Establishment過程,使用TTCN和ASN.1語言在Telelogic TAU 4.0的TTCN Suite平臺中構造測試例、測試集,然后脫離工具平臺,完成與Windows系統集成[9]。

與Windows系統集成時具體使用VC6.0模擬出一個簡單的協議實體,被測實體ITU為UE,它發送一條RRC-Connection-Request后,便會等待eNodeB返回對應的響應消息RRC-Connection-Setup,UE接收到此條消息并進行相應配置成功后會回應消息RRC-Connection-Setup-Complete。測試系統模擬基站(eNodeB),通過執行測試例發送或等待接收數據并比對得出測試結果。在進行協議一致性測試對LTE基本協議通信仿真的過程中,ASN.1編解碼模塊會取出其中包含RRC消息的數據流包,調用解碼函數進行解碼。如能正常解碼,再分析消息流程是否符合3GPP制定的標準流程,這樣從另一個角度驗證了ASN.1編解碼模塊的可靠性。

對測試系統和被測系統的通信端口IP等正確配置后,運行測試例,測試系統根據圖2所示的RRCConnection Establishment過程進行流程測試。將編碼后的請求消息RRC-Connection-Request發送給測試系統,測試系統收到并解析為正確的請求消息后會返回1條對應的響應消息RRC-Connection-Setup,被測系統接收到該消息后進行解析,并回應RRC-Connection-Setup-Complete,測試系統接收到該消息后進行解析,得出判決結果,如圖3所示。通過查看最后的判決結果,可以發現這與圖2實際的LTE基本協議通信中連接建立流程是一致的。由此可知,ASN.1編解碼模塊能夠準確解析接收到的數據,并且能準確地將描述的信息轉換成比特流的形式。因此,該方案是有效、可行的。

5 小結

ASN.1編解碼模塊在LTE-Uu接口協議棧中占有相當重要的地位,也是決定能否與LTE系統中其他模塊之間達到互通的基礎。通過結構測試和在一致性測試中的應用,文中所涉及的與ASN.1編解碼模塊相關的協議描述及實現方法、通信協議一致性測試都是有效、可行的。對于ASN.1的諸多應用領域而言,這些方法也具有一定的通用性。

[1]3GPP.TS 36.331 v.9.1.0,3rd generation partnership project; technical specification group radioaccessnetwork;evoloved universal terresitrial radio access (E-UTRA); radio resource control (RRC) protocol specification.[S].2010.

[2]ITU-T Recommendation X.680,Abstract syntax notation(ASN.1):specification of basic notation[S].2002.

[3]ITU-TRecommendation X.691,Information technology-ASN.1 encoding rules:specification of packed encoding rules (PER)[S].2002.

[4]李小文,王寧.TD-SCDMA系統中ASN.1編譯碼器的設計和實現[J].重慶郵電大學學報:自然科學版,2009,21(3):358-361.

[5]趙曉華,鄧秀蘭,余厚金.T.38協議棧中ASN.1模塊的改進設計[J].電視技術,2004,28(3):32-34.

[6]TRIVUNOVIC B D,POPOVIC M V, BASICEVIC I V, et al.A design and implementation of ASN.1 parser for H.323 protocol stack[C]//Proc.TELSIKS 2007.[S.l.]:IEEE Press,2007:60-63.

[7]LV Q,HUANG Benxiong,WANG Furong.Themechanism of ASN.1 encoding&decoding implementation in network protocols[C]//Proc.ITCC′03.[S.l.]:IEEE Press,2003: 622-626.

[8]3GPP TS 36.300 V9.2.0,Evolved universal terrestrial radio access(E-UTRA) and evolved universal terrestrial radio access network(E-UTRAN); overall description; stage 2[S].2010.

[9]李小文,李貴勇,陳賢亮.TD-SCDMA第三代移動通信系統、信令及實現[M].北京:人民郵電出版社,2003.

猜你喜歡
編解碼信令解碼
《解碼萬噸站》
1553B總線控制器編解碼設計
解碼eUCP2.0
SLS字段在七號信令中的運用
為多重編解碼世界做好準備
大型民機試飛遙測視頻編解碼方法研究
移動信令在交通大數據分析中的應用探索
NAD C368解碼/放大器一體機
Quad(國都)Vena解碼/放大器一體機
基于信令分析的TD-LTE無線網絡應用研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合