如何利用SDL開發(fā)TD-SCDMA高層信令

相關(guān)專題: 無線
羅一靜 段紅光




  摘要:介紹TD-SCDMA系統(tǒng)的UE結(jié)構(gòu)以及根據(jù)實際工作經(jīng)驗提出利用SDL開發(fā)TD-SCDMA高層信令系統(tǒng)的方法。


  關(guān)鍵詞:TD-SCDMA系統(tǒng) SDL語言 MSC 實時操作系統(tǒng)



 。 SDL語言介紹



 。樱模蹋ㄒ(guī)范描述語言)廣泛地用于描述通信系統(tǒng)的行為。它是CCITT推薦的規(guī)范描述語言。經(jīng)過ITU-T的發(fā)展和標準化,定義在蘭皮書Z.100建議中。ITU-T在1988年推出了第一個正式版,以后每四年進行一次增補更新。作為國際標準化的正式語言,它被用來規(guī)范實時多任務(wù)系統(tǒng)的描述。SDL與其它一些相關(guān)技術(shù)如Z.120建議——消息序列圖和Z.105建議及抽象語法符號一起形成一個完整的描述語言。



  在協(xié)議軟件的開發(fā)流程中,SDL被應(yīng)用在系統(tǒng)規(guī)范描述和設(shè)計階段。它完全獨立于硬件實現(xiàn)與操作系統(tǒng)。Telelogic Tau公司提供的SDL軟件不僅可以用于規(guī)范描述和設(shè)計,還可以把SDL的描述和設(shè)計直接生成標準的C代碼。用戶也可以直接在SDL描述和設(shè)計中嵌入C代碼,從而完成圖1中的實現(xiàn)部分的功能。經(jīng)SDL描述產(chǎn)生的C代碼(包括嵌入的C代碼)可以直接與多種嵌入式(或非嵌入式)實時多任務(wù)操作系統(tǒng)集成,如NUCLUES、pSOS、Solaris、Vrtx、OSE等,集成后的代碼可以直接在目標板上運行,從而方便用戶進行協(xié)議軟件的開發(fā)。



  與SDL相對應(yīng)的MSC(信息序列圖),是ITU-T規(guī)范中用來表示信息序列的語言。在1991年,ITU-T對MSC進行了標準化。用MSC圖可以方便地表示出信號的流向,即信號是從什么進程發(fā)送到什么進程,信號是否帶有參數(shù)、具體的參數(shù)值等都可以直觀地表示在SDL MSC圖中,這對了解和分析信號在各個模塊間的傳遞帶來了很大的方便。不僅如此,通過MSC圖還可以將SDL的各功能有機地聯(lián)系在一起。在軟件的跟蹤及調(diào)試過程中,使用Simulator和Validator可以產(chǎn)生MSC圖。在軟件的TTCN測試過程中,MSC圖還經(jīng)常被用于分析測試的結(jié)果。通過MSC圖還可以直觀地描述信號發(fā)送的先后次序,而這些在SDL描述中是辦不到的。



  開發(fā)的最后一步是使用TTCN進行測試。TTCN(樹表結(jié)合表示法)是由ISO和ITU定義在ISO/IEC 9646-3中的一個規(guī)范測試語言,是ISO/IEC 9646的第三部分標準,用于OSI一致性測試集的測試表示法。樹表結(jié)合表示法,顧名思義,就是采用以樹和表格為表現(xiàn)形式的測試表示法,其中表格主要用于數(shù)據(jù)類型、原語、協(xié)議觀察點、約束等,而樹則用于描述測試集、測試例、測試步。對標準有效性的驗證和通信軟件的一致性測試就顯得非常重要。





  用SDL設(shè)計的系統(tǒng)是一個等級結(jié)構(gòu)的系統(tǒng),它包括了系統(tǒng)、功能塊和進程等。一個系統(tǒng)可以包含多個塊,每個塊可由一個或多個進程組成。進程是SDL系統(tǒng)中的最小處理單元,采用EFSM描述,所有用戶的處理和操作都在進程中完成。在系統(tǒng)級下定義的內(nèi)容(信號、數(shù)據(jù)結(jié)構(gòu)等)可以在該系統(tǒng)下所有的塊和進程中使用,在塊下定義的內(nèi)容可以在該塊的任何進程中使用。



  正是SDL的這些特點,在開發(fā)協(xié)議軟件中起著不可比擬的作用,下面以SDL開發(fā)TD-SCDMA高層信令簡單說明SDL的使用。



 。 TD-SCDMA系統(tǒng)結(jié)構(gòu)



  首先介紹一下TD-SCDMA系統(tǒng)結(jié)構(gòu)。根據(jù)TSM協(xié)議的要求和實際開發(fā)產(chǎn)品的需要,可將TD-SCDMA系統(tǒng)用戶終端協(xié)議軟件分成圖2所示的系統(tǒng)結(jié)構(gòu)(沒有包括分組數(shù)據(jù)業(yè)務(wù)部分)。整個系統(tǒng)結(jié)構(gòu)滿足TSM協(xié)議的分層結(jié)構(gòu),同時根據(jù)控制和軟件的需要增添了TSR、HL1模塊,是一個SDL塊級的TD-SCDMA的UE端高層信令結(jié)構(gòu)。整個系統(tǒng)共有六個模塊,每個模塊對應(yīng)SDL中的一個塊,每個模塊分別完成不同的功能。下面簡要介紹每個模塊的功能和接口。



 。茫湍K完成連接管理功能,包括呼叫控制、短消息和附加業(yè)務(wù)三部分,即圖2中的CM塊。



 。停湍K完成在電路交換模式下的移動性管理功能,實現(xiàn)UE的移動性、安全性以及連接管理,即圖2中的MM塊。



 。裕樱夷K是一個信號中轉(zhuǎn)模塊,是MM子層的一部分,主要實現(xiàn)信號路由的功能;同時基于CM子層中各實體的多實例(如建立多個呼叫)特性,對CM模塊進行多實例的管理。



 。遥遥湍K完成無線資源管理和控制功能。在空閑模式下,RRM模塊執(zhí)行小區(qū)選擇和小區(qū)重選、為響應(yīng)網(wǎng)絡(luò)尋呼或高層的RR建立請求而發(fā)起RR連接建立以及切換等任務(wù);在RR連接建立過程中,RRM控制HL1模塊發(fā)起立即指派過程、主信令鏈路的建立過程;在連接模式下,RRM主要完成連接模式的資源管理,如指派、信道模式改變和切換等控制過程;處理隨路信令,如分析和處理系統(tǒng)信息類型5、類型6;發(fā)送測量報告以及對在FACCH信道上接收到的層3消息進行分析和處理等任務(wù)。另外RRM模塊還控制HL1模塊對服務(wù)小區(qū)和鄰近小區(qū)的測量等過程。



 。模棠K完成無線連接控制功能,主要包括:信道上提供一個或多個數(shù)據(jù)鏈路的連接,不同的連接通過數(shù)據(jù)鏈路連接標識DLCI區(qū)分;提供幀類型的識別機制;允許層3消息在2個層3對等實體之間進行透明傳輸;順序控制,以保持幀通過一條數(shù)據(jù)鏈路連接后的順序;具有在數(shù)據(jù)鏈路上對格式和操作性錯誤的檢測功能;當出現(xiàn)數(shù)據(jù)鏈路的不可恢復(fù)性錯誤時,具有向?qū)樱硨嶓w報告錯誤的機制;具有流量控制的功能;在RACH上完成接入請求后,當需要建立一條數(shù)據(jù)鏈路時具有解決沖突的功能。



  HL1模塊是連接協(xié)議層與物理層的橋梁。按系統(tǒng)的硬件設(shè)計,協(xié)議層和應(yīng)用層的任務(wù)由ARM處理器完成,DSP處理器負責(zé)完成具體的物理層底層任務(wù),如信源和信道的編解碼、交織、各種物理層參數(shù)的測量、擴頻及調(diào)制等。兩種處理器之間通過中斷交換數(shù)據(jù)。HL1根據(jù)協(xié)議層的請求,通過對協(xié)議層的任務(wù)分解和規(guī)劃,對物理層資源進行調(diào)度和控制。主要包括:在小區(qū)選擇過程中,HL1模塊控制物理層進行鄰近小區(qū)的碼功率的測量,解讀BSIC,解讀DwPTS的相位,讀取BCCH塊等任務(wù);在空閑狀態(tài)下,HL1模塊控制物理層執(zhí)行服務(wù)小區(qū)和鄰近小區(qū)的測量,解讀服務(wù)小區(qū)的系統(tǒng)信息和最強6個鄰近小區(qū)的系統(tǒng)信息類型1,并把測量結(jié)果和讀取的系統(tǒng)信息報告給RRM模塊;在隨機接入過程中,根據(jù)RRM模塊的控制信號,HL1模塊控制并調(diào)度物理層執(zhí)行隨機接入過程的消息發(fā)送與接收;在連接模式下HL1控制物理層執(zhí)行數(shù)據(jù)的收發(fā)、服務(wù)和鄰近小區(qū)的測量以及切換過程等。






  圖2中,每個模塊對應(yīng)SDL描述中的一個塊級結(jié)構(gòu),在每個塊級結(jié)構(gòu)中又可以分成很多個進程,高層信令可以通過PHI信道和物理層進行通信。向上可以通過MMI、CMMI、MMSIM信號和人機界面進行信息交互。而人機界面可以由WINCE系統(tǒng)完成,硬件驅(qū)動部分可以直接編程實現(xiàn)[3]。



  3 利用SDL系統(tǒng)開發(fā)TD-SCDMA方法



  在圖2的TD-SCDMA系統(tǒng)描述中,可以利用Telelogica Tau AB公司的SDL Editor?qū)⑵涿枋龀蓸藴实模樱模堂枋鲂问。但不是系統(tǒng)所有的部分都可以使用SDL開發(fā)。在硬件驅(qū)動、物理層具體的算法、信道的編解碼以及SIM卡的操作等都需要C語言(或者其他語言)完成。最后將所有的代碼編譯成一個可以執(zhí)行的目標代碼。具體過程如圖3所示。系統(tǒng)開發(fā)代碼運行平臺是ARM,操作系統(tǒng)是NUCLUES PLUS。



  利用SDL實現(xiàn)TD-SCDMA高層信令軟件過程如下:



  第一步:首先根據(jù)詳細報告的描述,定義出所有的數(shù)據(jù)結(jié)構(gòu)。例如保存系統(tǒng)信息的結(jié)構(gòu)體、IMSI碼結(jié)構(gòu)、TMSI碼以及任務(wù)規(guī)劃等結(jié)構(gòu)定義,這些數(shù)據(jù)結(jié)構(gòu)可以C/C++語言格式或是ANS.1格式完成,它們都可以被SDL使用。C/C++描述可以被SDL提供的CPP2SDL.EXE工具很方便地轉(zhuǎn)換成SDL,可以直接使用PR文本[8]。



  第二步:利用SDL工具將圖2中完成的TD-SCDMA系統(tǒng)描述和生成相關(guān)的PR描述,根據(jù)需要編譯成不同的C/C++代碼,最常用的有兩種:一種是在目標板上運行的代碼?穴通常選用Cadvanced模式?雪,另一種是可以提供給TTCN測試的代碼。



  第三步:由于生成的目標代碼和測試代碼具有很好的一致性,利用TTCN可以檢查出SDL設(shè)計中的問題,以保證SDL設(shè)計的正確性。這也是利用SDL進行TD-SCDMA系統(tǒng)開發(fā)的優(yōu)勢之一。根據(jù)TSM 11(TD-SCDMA系統(tǒng)測試規(guī)范)系列所編寫的測試例,方便進行協(xié)議的一致性測試,最大可能地發(fā)現(xiàn)開發(fā)中出現(xiàn)的問題,避免了這些錯誤帶到板級調(diào)試中,從而加快了軟件開發(fā)速度。



  第四步:SDL描述生成的C源代碼要在ARM硬件系統(tǒng)上運行,還需要與選定的RTOS操作系統(tǒng)進行集成。SDL可以與多種RTOS系統(tǒng)相互集成,它們的集成原理相同。根據(jù) SDL的進程任務(wù),在RTOS系統(tǒng)中的處理情況可以分成兩種,一種是深度集成,另外一種是輕度集成。它們的效果相同,其區(qū)別在于深度集成將SDL描述中的每一個進程作為RTOS中的一個進程來處理,而輕度集成則將整個SDL系統(tǒng)作為一個RTOS進程進行處理。在實際應(yīng)用中,大多使用第二種方法。這種方法便于SDL和RTOS系統(tǒng)的集成,集成時只需要修改SDL的接口文件setenv.c。在該接口文件中,增加下列NUCLEUS的函數(shù):



 。危眨撸茫颍澹幔簦澹撸停澹恚铮颍撸校铮铮欤ǎ



  NU_Allocate_Memory()



 。危眨撸茫颍澹幔簦澹撸裕幔螅耄ǎ



  前兩個函數(shù)被NUCLEUS用來分配內(nèi)存,保存SDL進程控制塊。NU_Create_Task()函數(shù)用于創(chuàng)建NUCLEUS的任務(wù),它是SDL進程與NUCLEUS接口的關(guān)鍵函數(shù)。該函數(shù)共有11個參數(shù):Task_Ptr、“SDL_fn”、SDL_main、0、NULL、Stack_Ptr、MANAGER_STACK_SIZE、MANAGER_



 。裕粒樱耍撸校遥桑希遥桑裕、MANAGER_TIME_SLICE、NU_PREEMPT、



  NU_START;其中Task_Prt是指向進程的控制塊、“SDL_fn”是進程的名字、Stack_Ptr是進程的堆棧指針、MANAGER_STACK_SIZE是堆棧的大小;MANAGER_TIME_



  SLICE是進程可以占用的最大時間(以ticks來計算)。經(jīng)過修改后的接口函數(shù)只要與SDL生成的源代碼和操作系統(tǒng)提供的代碼一起編譯即可。每次啟動系統(tǒng)后,NUCLEUS將SDL描述當作是一個獨立的任務(wù)進行處理。SDL進程由SDL內(nèi)核管理,而整個SDL系統(tǒng)則由NUCLEUS管理。NUCLEUS系統(tǒng)有自己一套完整的消息處理機制,同時SDL生成的代碼也有自己一套信號處理機制,它們相互獨立,共同作用組成應(yīng)用系統(tǒng)[9]。



  最后將SDL生成的代碼、NUCLUES代碼和所編寫的硬件驅(qū)動統(tǒng)一編寫成ARM運行代碼。



  在整個軟件開發(fā)過程中,實際開發(fā)過程不是完全由第一步到第四步這么簡單,有時它們交織在一起。在TTCN以及目標板測試中發(fā)現(xiàn)的問題反饋到設(shè)計過程,不斷修正,直到系統(tǒng)的最后完善。



  從以上過程描述可以看出SDL有以下優(yōu)勢:



  (1)SDL工具可以同時支持圖形(GR)和文本描述(PR),并且可以相互轉(zhuǎn)換。圖形方式方便設(shè)計人員直觀了解設(shè)計結(jié)果,而文本方式便于保存。



  (2)便于軟件設(shè)計,可以將詳細設(shè)計報告和代碼設(shè)計過程有機地結(jié)合在一起,SDL可以把利用SDL描述的詳細報告部分直接生成所需要的代碼。



  (3) 由于SDL具有一致性的目標源代碼和測試代碼,可以利用TTCN直接測試,大大提高了SDL設(shè)計的源代碼的正確性。同時SDL具有豐富的MSC接口,在測試的Validator、Simulator、TTCN過程中都有MSC圖輸出,可以提供設(shè)計人員檢查設(shè)計中存在的問題。



 。樱模躺傻拇a可以在多種實時多任務(wù)平臺上運行,可以方便地與pSOS、Nuclues Plus、Solaris、VxWorks、OSEDelta等RTOS系統(tǒng)相互集成,具有較好的可一致性。



  SDL工具可以將整個軟件開發(fā)過程、需求報告、總體設(shè)計報告、詳細設(shè)計報告、代碼設(shè)計及測試和維護集成一體。各個部分的設(shè)計都可以使用SDL的不同功能來描述,最大限度地節(jié)省人力和物力。






  本文沒有介紹SDL的UML部分可以完成軟件開發(fā)的需求分析、總體或概要設(shè)計。結(jié)合SDL的功能,Telelogical Tau AB提供的SDL工具將軟件開發(fā)的全過程有機地結(jié)合在一起,從需求分析到代碼生成。加快了軟件開發(fā)速度,縮短了軟件開發(fā)周期。在整個TD-SCDMA高層項目開發(fā)中,SDL工具軟件起關(guān)鍵作用。



  但是SDL在協(xié)議軟件的開發(fā)中也不是萬能的,雖然SDL的描述直觀、方便,但是SDL生成的代碼非常復(fù)雜,不便于修改和閱讀。這也是惟一對SDL擔(dān)憂的地方。通常在生成代碼中一個不起眼的BUG,將永遠都不會找到。





摘自《電子技術(shù)應(yīng)用》
   

微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

    業(yè)界最新資訊


      最新招聘信息