??? 摘? 要: 介紹TD-SCDMA" title="TD-SCDMA">TD-SCDMA系統(tǒng)的UE結(jié)構(gòu)以及根據(jù)實(shí)際工作經(jīng)驗(yàn)提出利用SDL開發(fā)TD-SCDMA高層信令" title="信令">信令系統(tǒng)的方法。?
??? 關(guān)鍵詞: TD-SCDMA系統(tǒng)? SDL語言? MSC? 實(shí)時(shí)操作系統(tǒng)?
?
1 SDL語言介紹?
??? SDL(規(guī)范描述語言)廣泛地用于描述通信系統(tǒng)的行為。它是CCITT推薦的規(guī)范描述語言。經(jīng)過ITU-T" title="ITU-T">ITU-T的發(fā)展和標(biāo)準(zhǔn)化,定義在蘭皮書Z.100建議中。ITU-T在1988年推出了第一個(gè)正式版,以后每四年進(jìn)行一次增補(bǔ)更新。作為國際標(biāo)準(zhǔn)化的正式語言,它被用來規(guī)范實(shí)時(shí)多任務(wù)系統(tǒng)的描述。SDL與其它一些相關(guān)技術(shù)如Z.120建議——消息序列圖和Z.105建議及抽象語法符號(hào)一起形成一個(gè)完整的描述語言。?
??? 在協(xié)議軟件的開發(fā)流程中,SDL被應(yīng)用在系統(tǒng)規(guī)范描述和設(shè)計(jì)階段。它完全獨(dú)立于硬件實(shí)現(xiàn)與操作系統(tǒng)。Telelogic Tau公司提供的SDL軟件不僅可以用于規(guī)范描述和設(shè)計(jì),還可以把SDL的描述和設(shè)計(jì)直接生成標(biāo)準(zhǔn)的C代碼。用戶也可以直接在SDL描述和設(shè)計(jì)中嵌入C代碼,從而完成圖1中的實(shí)現(xiàn)部分的功能。經(jīng)SDL描述產(chǎn)生的C代碼(包括嵌入的C代碼)可以直接與多種嵌入式(或非嵌入式)實(shí)時(shí)多任務(wù)操作系統(tǒng)集成,如NUCLUES、pSOS、Solaris、Vrtx、OSE等,集成后的代碼可以直接在目標(biāo)板上運(yùn)行,從而方便用戶進(jìn)行協(xié)議軟件的開發(fā)。?
?
?
??? 與SDL相對(duì)應(yīng)的MSC(信息序列圖),是ITU-T規(guī)范中用來表示信息序列的語言。在1991年,ITU-T對(duì)MSC進(jìn)行了標(biāo)準(zhǔn)化。用MSC圖可以方便地表示出信號(hào)的流向,即信號(hào)是從什么進(jìn)程發(fā)送到什么進(jìn)程,信號(hào)是否帶有參數(shù)、具體的參數(shù)值等都可以直觀地表示在SDL MSC圖中,這對(duì)了解和分析信號(hào)在各個(gè)模塊間的傳遞帶來了很大的方便。不僅如此,通過MSC圖還可以將SDL的各功能有機(jī)地聯(lián)系在一起。在軟件的跟蹤及調(diào)試過程中,使用Simulator和Validator可以產(chǎn)生MSC圖。在軟件的TTCN測(cè)試過程中,MSC圖還經(jīng)常被用于分析測(cè)試的結(jié)果。通過MSC圖還可以直觀地描述信號(hào)發(fā)送的先后次序,而這些在SDL描述中是辦不到的。?
??? 開發(fā)的最后一步是使用TTCN進(jìn)行測(cè)試。TTCN(樹表結(jié)合表示法)是由ISO和ITU定義在ISO/IEC 9646-3中的一個(gè)規(guī)范測(cè)試語言,是ISO/IEC 9646的第三部分標(biāo)準(zhǔn),用于OSI一致性測(cè)試集的測(cè)試表示法。樹表結(jié)合表示法,顧名思義,就是采用以樹和表格為表現(xiàn)形式的測(cè)試表示法,其中表格主要用于數(shù)據(jù)類型、原語、協(xié)議觀察點(diǎn)、約束等,而樹則用于描述測(cè)試集、測(cè)試?yán)y(cè)試步。對(duì)標(biāo)準(zhǔn)有效性的驗(yàn)證和通信軟件的一致性測(cè)試就顯得非常重要。?
??? 用SDL設(shè)計(jì)的系統(tǒng)是一個(gè)等級(jí)結(jié)構(gòu)的系統(tǒng),它包括了系統(tǒng)、功能塊和進(jìn)程等。一個(gè)系統(tǒng)可以包含多個(gè)塊,每個(gè)塊可由一個(gè)或多個(gè)進(jìn)程組成。進(jìn)程是SDL系統(tǒng)中的最小處理單元,采用EFSM描述,所有用戶的處理和操作都在進(jìn)程中完成。在系統(tǒng)級(jí)下定義的內(nèi)容(信號(hào)、數(shù)據(jù)結(jié)構(gòu)等)可以在該系統(tǒng)下所有的塊和進(jìn)程中使用,在塊下定義的內(nèi)容可以在該塊的任何進(jìn)程中使用。?
??? 正是SDL的這些特點(diǎn),在開發(fā)協(xié)議軟件中起著不可比擬的作用,下面以SDL開發(fā)TD-SCDMA高層信令簡單說明SDL的使用。?
2 TD-SCDMA系統(tǒng)結(jié)構(gòu)?
??? 首先介紹一下TD-SCDMA系統(tǒng)結(jié)構(gòu)。根據(jù)TSM協(xié)議的要求和實(shí)際開發(fā)產(chǎn)品的需要,可將TD-SCDMA系統(tǒng)用戶終端協(xié)議軟件分成圖2所示的系統(tǒng)結(jié)構(gòu)(沒有包括分組數(shù)據(jù)業(yè)務(wù)部分)。整個(gè)系統(tǒng)結(jié)構(gòu)滿足TSM協(xié)議的分層結(jié)構(gòu),同時(shí)根據(jù)控制和軟件的需要增添了TSR、HL1模塊,是一個(gè)SDL塊級(jí)的TD-SCDMA的UE端高層信令結(jié)構(gòu)。整個(gè)系統(tǒng)共有六個(gè)模塊,每個(gè)模塊對(duì)應(yīng)SDL中的一個(gè)塊,每個(gè)模塊分別完成不同的功能。下面簡要介紹每個(gè)模塊的功能和接口。?
?
?
??? CM模塊完成連接管理功能,包括呼叫控制、短消息和附加業(yè)務(wù)三部分,即圖2中的CM塊。?
??? MM模塊完成在電路交換模式下的移動(dòng)性管理功能,實(shí)現(xiàn)UE的移動(dòng)性、安全性以及連接管理,即圖2中的MM塊。?
??? TSR模塊是一個(gè)信號(hào)中轉(zhuǎn)模塊,是MM子層的一部分,主要實(shí)現(xiàn)信號(hào)路由的功能;同時(shí)基于CM子層中各實(shí)體的多實(shí)例(如建立多個(gè)呼叫)特性,對(duì)CM模塊進(jìn)行多實(shí)例的管理。?
??? RRM模塊完成無線資源管理和控制功能。在空閑模式下,RRM模塊執(zhí)行小區(qū)選擇和小區(qū)重選、為響應(yīng)網(wǎng)絡(luò)尋呼或高層的RR建立請(qǐng)求而發(fā)起RR連接建立以及切換等任務(wù);在RR連接建立過程中,RRM控制HL1模塊發(fā)起立即指派過程、主信令鏈路" title="鏈路">鏈路的建立過程;在連接模式下,RRM主要完成連接模式的資源管理,如指派、信道模式改變和切換等控制過程;處理隨路信令,如分析和處理系統(tǒng)信息類型5、類型6;發(fā)送測(cè)量報(bào)告以及對(duì)在FACCH信道上接收到的層3消息進(jìn)行分析和處理等任務(wù)。另外RRM模塊還控制HL1模塊對(duì)服務(wù)小區(qū)和鄰近小區(qū)的測(cè)量等過程。?
??? DL模塊完成無線連接控制功能,主要包括:信道上提供一個(gè)或多個(gè)數(shù)據(jù)鏈路的連接,不同的連接通過數(shù)據(jù)鏈路連接標(biāo)識(shí)DLCI區(qū)分;提供幀類型的識(shí)別機(jī)制;允許層3消息在2個(gè)層3對(duì)等實(shí)體之間進(jìn)行透明傳輸;順序控制,以保持幀通過一條數(shù)據(jù)鏈路連接后的順序;具有在數(shù)據(jù)鏈路上對(duì)格式和操作性錯(cuò)誤的檢測(cè)功能;當(dāng)出現(xiàn)數(shù)據(jù)鏈路的不可恢復(fù)性錯(cuò)誤時(shí),具有向?qū)?實(shí)體報(bào)告錯(cuò)誤的機(jī)制;具有流量控制的功能;在RACH上完成接入請(qǐng)求后,當(dāng)需要建立一條數(shù)據(jù)鏈路時(shí)具有解決沖突的功能。?
??? HL1模塊是連接協(xié)議層與物理層的橋梁。按系統(tǒng)的硬件設(shè)計(jì),協(xié)議層和應(yīng)用層的任務(wù)由ARM處理器完成,DSP處理器負(fù)責(zé)完成具體的物理層底層任務(wù),如信源和信道的編解碼、交織、各種物理層參數(shù)的測(cè)量、擴(kuò)頻及調(diào)制等。兩種處理器之間通過中斷交換數(shù)據(jù)。HL1根據(jù)協(xié)議層的請(qǐng)求,通過對(duì)協(xié)議層的任務(wù)分解和規(guī)劃,對(duì)物理層資源進(jìn)行調(diào)度和控制。主要包括:在小區(qū)選擇過程中,HL1模塊控制物理層進(jìn)行鄰近小區(qū)的碼功率的測(cè)量,解讀BSIC,解讀DwPTS的相位,讀取BCCH塊等任務(wù);在空閑狀態(tài)下,HL1模塊控制物理層執(zhí)行服務(wù)小區(qū)和鄰近小區(qū)的測(cè)量,解讀服務(wù)小區(qū)的系統(tǒng)信息和最強(qiáng)6個(gè)鄰近小區(qū)的系統(tǒng)信息類型1,并把測(cè)量結(jié)果和讀取的系統(tǒng)信息報(bào)告給RRM模塊;在隨機(jī)接入過程中,根據(jù)RRM模塊的控制信號(hào),HL1模塊控制并調(diào)度物理層執(zhí)行隨機(jī)接入過程的消息發(fā)送與接收;在連接模式下HL1控制物理層執(zhí)行數(shù)據(jù)的收發(fā)、服務(wù)和鄰近小區(qū)的測(cè)量以及切換過程等。?
??? 圖2中,每個(gè)模塊對(duì)應(yīng)SDL描述中的一個(gè)塊級(jí)結(jié)構(gòu),在每個(gè)塊級(jí)結(jié)構(gòu)中又可以分成很多個(gè)進(jìn)程,高層信令可以通過PHI信道和物理層進(jìn)行通信。向上可以通過MMI、CMMI、MMSIM信號(hào)和人機(jī)界面進(jìn)行信息交互。而人機(jī)界面可以由WINCE系統(tǒng)完成,硬件驅(qū)動(dòng)部分可以直接編程實(shí)現(xiàn)[3]。?
3 利用SDL系統(tǒng)開發(fā)TD-SCDMA方法?
??? 在圖2的TD-SCDMA系統(tǒng)描述中,可以利用Telelogica Tau AB公司的SDL Editor將其描述成標(biāo)準(zhǔn)的SDL描述形式。但不是系統(tǒng)所有的部分都可以使用SDL開發(fā)。在硬件驅(qū)動(dòng)、物理層具體的算法、信道的編解碼以及SIM卡的操作等都需要C語言(或者其他語言)完成。最后將所有的代碼編譯成一個(gè)可以執(zhí)行的目標(biāo)代碼。具體過程如圖3所示。系統(tǒng)開發(fā)代碼運(yùn)行平臺(tái)是ARM,操作系統(tǒng)是NUCLUES PLUS。?
?
?
??? 利用SDL實(shí)現(xiàn)TD-SCDMA高層信令軟件過程如下:?
??? 第一步:首先根據(jù)詳細(xì)報(bào)告的描述,定義出所有的數(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++代碼,最常用的有兩種:一種是在目標(biāo)板上運(yùn)行的代碼(通常選用Cadvanced模式),另一種是可以提供給TTCN測(cè)試的代碼。?
??? 第三步:由于生成的目標(biāo)代碼和測(cè)試代碼具有很好的一致性,利用TTCN可以檢查出SDL設(shè)計(jì)中的問題,以保證SDL設(shè)計(jì)的正確性。這也是利用SDL進(jìn)行TD-SCDMA系統(tǒng)開發(fā)的優(yōu)勢(shì)之一。根據(jù)TSM 11(TD-SCDMA系統(tǒng)測(cè)試規(guī)范)系列所編寫的測(cè)試?yán)?方便進(jìn)行協(xié)議的一致性測(cè)試,最大可能地發(fā)現(xiàn)開發(fā)中出現(xiàn)的問題,避免了這些錯(cuò)誤帶到板級(jí)調(diào)試中,從而加快了軟件開發(fā)" title="軟件開發(fā)">軟件開發(fā)速度。?
??? 第四步:SDL描述生成的C源代碼要在ARM硬件系統(tǒng)上運(yùn)行,還需要與選定的RTOS操作系統(tǒng)進(jìn)行集成。SDL可以與多種RTOS系統(tǒng)相互集成,它們的集成原理相同。根據(jù) SDL的進(jìn)程任務(wù),在RTOS系統(tǒng)中的處理情況可以分成兩種,一種是深度集成,另外一種是輕度集成。它們的效果相同,其區(qū)別在于深度集成將SDL描述中的每一個(gè)進(jìn)程作為RTOS中的一個(gè)進(jìn)程來處理,而輕度集成則將整個(gè)SDL系統(tǒng)作為一個(gè)RTOS進(jìn)程進(jìn)行處理。在實(shí)際應(yīng)用中,大多使用第二種方法。這種方法便于SDL和RTOS系統(tǒng)的集成,集成時(shí)只需要修改SDL的接口文件setenv.c。在該接口文件中,增加下列NUCLEUS的函數(shù):?
??? NU_Create_Memory_Pool()?
??? NU_Allocate_Memory()?
??? NU_Create_Task()?
??? 前兩個(gè)函數(shù)被NUCLEUS用來分配內(nèi)存,保存SDL進(jìn)程控制塊。NU_Create_Task()函數(shù)用于創(chuàng)建NUCLEUS的任務(wù),它是SDL進(jìn)程與NUCLEUS接口的關(guān)鍵函數(shù)。該函數(shù)共有11個(gè)參數(shù):Task_Ptr、“SDL_fn”、SDL_main、0、NULL、Stack_Ptr、MANAGER_STACK_SIZE、MANAGER_TASK_PRIORITY、MANAGER_TIME_SLICE、NU_PREEMPT、NU_START;其中Task_Prt是指向進(jìn)程的控制塊、“SDL_fn”是進(jìn)程的名字、Stack_Ptr是進(jìn)程的堆棧指針、MANAGER_STACK_SIZE是堆棧的大小;MANAGER_TIME_SLICE是進(jìn)程可以占用的最大時(shí)間(以ticks來計(jì)算)。經(jīng)過修改后的接口函數(shù)只要與SDL生成的源代碼和操作系統(tǒng)提供的代碼一起編譯即可。每次啟動(dòng)系統(tǒng)后,NUCLEUS將SDL描述當(dāng)作是一個(gè)獨(dú)立的任務(wù)進(jìn)行處理。SDL進(jìn)程由SDL內(nèi)核管理,而整個(gè)SDL系統(tǒng)則由NUCLEUS管理。NUCLEUS系統(tǒng)有自己一套完整的消息處理機(jī)制,同時(shí)SDL生成的代碼也有自己一套信號(hào)處理機(jī)制,它們相互獨(dú)立,共同作用組成應(yīng)用系統(tǒng)[9]。?
??? 最后將SDL生成的代碼、NUCLUES代碼和所編寫的硬件驅(qū)動(dòng)統(tǒng)一編寫成ARM運(yùn)行代碼。?
??? 在整個(gè)軟件開發(fā)過程中,實(shí)際開發(fā)過程不是完全由第一步到第四步這么簡單,有時(shí)它們交織在一起。在TTCN以及目標(biāo)板測(cè)試中發(fā)現(xiàn)的問題反饋到設(shè)計(jì)過程,不斷修正,直到系統(tǒng)的最后完善。
??? 從以上過程描述可以看出SDL有以下優(yōu)勢(shì):?
??? (1)SDL工具可以同時(shí)支持圖形(GR)和文本描述(PR),并且可以相互轉(zhuǎn)換。圖形方式方便設(shè)計(jì)人員直觀了解設(shè)計(jì)結(jié)果,而文本方式便于保存。?
??? (2)便于軟件設(shè)計(jì),可以將詳細(xì)設(shè)計(jì)報(bào)告和代碼設(shè)計(jì)過程有機(jī)地結(jié)合在一起,SDL可以把利用SDL描述的詳細(xì)報(bào)告部分直接生成所需要的代碼。?
??? (3)由于SDL具有一致性的目標(biāo)源代碼和測(cè)試代碼,可以利用TTCN直接測(cè)試,大大提高了SDL設(shè)計(jì)的源代碼的正確性。同時(shí)SDL具有豐富的MSC接口,在測(cè)試的Validator、Simulator、TTCN過程中都有MSC圖輸出,可以提供設(shè)計(jì)人員檢查設(shè)計(jì)中存在的問題。?
??? SDL生成的代碼可以在多種實(shí)時(shí)多任務(wù)平臺(tái)上運(yùn)行,可以方便地與pSOS、Nuclues Plus、Solaris、VxWorks、OSEDelta等RTOS系統(tǒng)相互集成,具有較好的可一致性。?
??? SDL工具可以將整個(gè)軟件開發(fā)過程、需求報(bào)告、總體設(shè)計(jì)報(bào)告、詳細(xì)設(shè)計(jì)報(bào)告、代碼設(shè)計(jì)及測(cè)試和維護(hù)集成一體。各個(gè)部分的設(shè)計(jì)都可以使用SDL的不同功能來描述,最大限度地節(jié)省人力和物力。?
??? 本文沒有介紹SDL的UML部分可以完成軟件開發(fā)的需求分析、總體或概要設(shè)計(jì)。結(jié)合SDL的功能,Telelogical Tau AB提供的SDL工具將軟件開發(fā)的全過程有機(jī)地結(jié)合在一起,從需求分析到代碼生成。加快了軟件開發(fā)速度,縮短了軟件開發(fā)周期。在整個(gè)TD-SCDMA高層項(xiàng)目開發(fā)中,SDL工具軟件起關(guān)鍵作用。?
??? 但是SDL在協(xié)議軟件的開發(fā)中也不是萬能的,雖然SDL的描述直觀、方便,但是SDL生成的代碼非常復(fù)雜,不便于修改和閱讀。這也是惟一對(duì)SDL擔(dān)憂的地方。通常在生成代碼中一個(gè)不起眼的BUG,將永遠(yuǎn)都不會(huì)找到。具體的解決辦法可以參考文獻(xiàn)[8]。?
參考文獻(xiàn)?
1 Telelogic tau AB.Telelogic tauTM SDL suite 4.0 Getting??Started. 2001?
2 Telelogic tau AB. Telelogic tauTM SDL suite 4.0 Methodology Guidelines. 2001?
3 TSM 04.08. China Wireless Telecommunication Standard;?3G digital cellular telecommunications system;Mobile radio?interface layer 3 specification.?
4 Nucleus company. Nucleus PLUS internals. Accelerated?Technology. 2000,0001027-001 Rev 101?
5 Nucleus company. Nucleus PLUS Reference Manual.2000,?0001026-001 Rev.102?
6 Nucleus company. ARM Developer Suite Nucleus Target?Specific Notes. 2000,0001000-001 Rev.108?
7 李小文. TD-SCDMA第三代移動(dòng)通信系統(tǒng)信令及實(shí)現(xiàn).?北京:人民郵電出版社,2003?
8 段紅光.如何在SDL中調(diào)用C語言函數(shù)的研究. 電子技術(shù)應(yīng)用, 2003;29(2)?
9 羅一靜.SDL進(jìn)程及SDL環(huán)境通信接口分析.重慶郵電學(xué)報(bào),2003