摘要 本文首先提出了3G底層技術(shù)統(tǒng)一平臺的概念,介紹了本平臺及系統(tǒng)控制子系統(tǒng)的框架結(jié)構(gòu);然后給出了實時狀態(tài)檢測模塊的功能和結(jié)構(gòu)設(shè)計,包括其在整個系統(tǒng)中的位置、和其它功能模塊的聯(lián)系等;進而重點分析了該模塊各個進程和任務的處理流程,并對它們是如何分工合作、實現(xiàn)對整個底層工作狀態(tài)的實時性檢測和控制等技術(shù)做了詳細說明。
3G底層技術(shù)平臺主要是對硬件設(shè)備等基本組成元素做底層的封裝,組合為各個功能不同的網(wǎng)元,再由上層各個研發(fā)機構(gòu)作二次開發(fā),推出基于各自標準的可供商用的產(chǎn)品。整個平臺劃分為若干個子系統(tǒng),其中SCS即系統(tǒng)控制子系統(tǒng)居于核心地位,實現(xiàn)對3G平臺的控制和管理。在SCS子系統(tǒng)中,實時狀態(tài)檢測模塊主要完成:單板外圍電路和單板上資源的狀態(tài)檢測,處理BSP異常中斷上報,將檢測的結(jié)果上報給SMM(狀態(tài)管理模塊)或者OAM網(wǎng)管子系統(tǒng),使整個系統(tǒng)實時的了解各個單板的狀態(tài),以便進行相應操作。本文通過對該模塊的研究、規(guī)劃和設(shè)計,給出了實現(xiàn)方案,并分析了各個功能點的實現(xiàn)流程。
1、3G統(tǒng)一平臺
1.1 平臺組成結(jié)構(gòu)
本平臺由BSP子系統(tǒng)、支撐子系統(tǒng)系統(tǒng)、系統(tǒng)控制子系統(tǒng)等功能相對獨立的11個子系統(tǒng)組成。不同子系統(tǒng)之間通過互發(fā)消息、提供或者調(diào)用接口函數(shù)、中斷處理等機制實現(xiàn)整體協(xié)作,組成結(jié)構(gòu)見圖1。開發(fā)環(huán)境為Vxworks操作系統(tǒng)和Tornado2.2,程序設(shè)計語言為C語言。
VxWorks是由WindRiver公司推出的嵌入式實時操作系統(tǒng)(RTOS),它利用基于主機和目標機的交叉開發(fā)平臺(Tornado)來編輯、編譯、連接和動態(tài)加載可執(zhí)行代碼,并運行和調(diào)試實時應用程序。
1.2 相關(guān)術(shù)語、定義
進程:支撐系統(tǒng)進行調(diào)度的單位,由消息驅(qū)動,每個進程擁有自己的消息隊列、數(shù)據(jù)區(qū)和棧。
消息:進程通訊信息的載體,指進程通訊時所傳遞的一塊完整的數(shù)據(jù),包括消息頭和消息體,包括異步和同步消息。進程調(diào)用發(fā)送異步消息的原語后繼續(xù)執(zhí)行以后的指令,進程狀態(tài)不因調(diào)用而有所改變;調(diào)用發(fā)送同步消息的原語后進入阻塞狀態(tài),停止執(zhí)行下面的指令,直到接收該消息的進程處理完并返回應答后,再從阻塞狀態(tài)進入就緒狀態(tài),等待CPU的調(diào)度。
2、系統(tǒng)控制子系統(tǒng)的設(shè)計
2.1 主要功能和性能
系統(tǒng)控制子系統(tǒng)在系統(tǒng)中的位置如圖1所示,該系統(tǒng)完成的功能如下:
(1)系統(tǒng)加電,各個單板加載版本時,通過版本校驗保證運行版本的正確性。(2)單板上電后,根據(jù)相應的單板配置決定是否需要進行主備競爭,同時從OMP獲得本板的基本配置信息,按照順序啟動各個基本進程,完成單板的正常啟動。(3)上電成功后,對單板的運行狀況進行檢測,包括對本板的各個外設(shè)進行檢測,以及定時與MP進行握手,以便MP能夠全面的管理系統(tǒng)中各個單板的運行狀態(tài)和相關(guān)的資源狀態(tài),并進行閉塞/解閉塞處理。(4)在正常運行過程中,支持版本的在線更新,并提供一定人工干預的手段,以便在版本更新時保證系統(tǒng)的穩(wěn)定運行。
系統(tǒng)控制子系統(tǒng)的性能主要體現(xiàn)為系統(tǒng)整體啟動的時間(包括軟件加載的過程和進程上電過程的控制等)、單板和資源狀態(tài)變化的檢測時間、主備倒換完成的時間。
2.2 模塊設(shè)計
系統(tǒng)控制子系統(tǒng)劃分為如下部分:主控制模塊、狀態(tài)管理模塊、實時狀態(tài)檢測模塊、版本管理模塊和Boot。(1)主控制模塊:完成單板基本配置信息的獲取、進程加載過程的控制、主備倒換的控制。(2)狀態(tài)管理模塊:完成系統(tǒng)中各個單板的在線狀態(tài)的檢測、各種資源的配置信息的獲取及其狀態(tài)的管理。(3)實時狀態(tài)檢測模塊:完成單板運行狀態(tài)的檢測,包括CPU的使用情況、內(nèi)存的使用情況以及單板外設(shè)的狀態(tài)和單板上資源的狀態(tài)檢測。(4)版本管理模塊:本模塊比較獨立,完成系統(tǒng)版本的管理,包括從后臺發(fā)起的版本更新、前臺各個單板的運行版本信息及版本下載。(5)Boot模塊:自成體系,完成的功能相對來說比較單一但是非常重要,包括單板的自舉、版本下載和加載。
3、實時狀態(tài)檢測模塊
實時狀態(tài)檢測模塊,作為系統(tǒng)控制子系統(tǒng)的核心部分,駐留在各個物理單板上,包括UIM、TSNB、SPB、SDTB、MRB、MNIC、DTEC、APBE、VTCD、GLI、TMB、PSN、WPBCB、MPX86等。實時狀態(tài)檢測模塊在3G統(tǒng)一平臺中的位置如圖1所示。
圖1 實時狀態(tài)檢測模塊在3G統(tǒng)一平臺中的位置
3.1 模塊功能和結(jié)構(gòu)
主要功能:定時檢測單板外圍電路、單板上各個設(shè)備模塊等實時狀態(tài);處理單板的異常中斷上報消息;加載微碼版本、DSP軟件、固件、音資源文件等;該模塊還要與版本管理模塊交互,對微碼版本、DSP軟件、固件、音資源文件等進行加載,檢測,重下及啟動。根據(jù)模塊的功能和結(jié)構(gòu)劃分為:異常處理任務及中斷相關(guān)處理,實時狀態(tài)檢測進程,版本加載進程和音資源加載進程,耗時查詢進程。
(1)如果單板需要加載DSP、固件或微碼,則版本加載進程作為上電基本進程,接收主控進程的上電消息,加載完后通知狀態(tài)查詢和音資源加載進程上電;狀態(tài)查詢進程上電完成后則發(fā)上電消息給耗時查詢進程。
(2)如果單板不需要加載DSP、固件或微碼,則狀態(tài)查詢進程作為基本進程,接收主控的上電消息,然后通知耗時查詢進程上電。
3.2 異常處理任務
由于支撐的接口帶有阻塞,在處理異常中斷的回調(diào)函數(shù)內(nèi),不能調(diào)用支撐的接口直接往某個進程發(fā)送消息,所以需要創(chuàng)建一個異常處理任務專門負責處理異常中斷。
異常處理任務的功能是處理BSP的異常中斷,由兩部分組成,即一個回調(diào)函數(shù)和一個處理任務;卣{(diào)函數(shù)由BSP在異常發(fā)生時調(diào)用,向處理任務上報各種異常中斷信息,同時對于一些有可能大量上報的中斷,進行一些過濾;卣{(diào)函數(shù)將中斷信息發(fā)送給處理任務,在處理任務里面向狀態(tài)查詢進程發(fā)送設(shè)備異常消息,狀態(tài)查詢進程對該設(shè)備異常消息進行處理,并通知OAM或SMM。
3.3 版本加載進程
進程涉及到的狀態(tài)有S_StartUp、S_StateInit、S_StateLoad C6416、S_StateLoadM82620、S_StateLoadTMSC5402、S_StateLoadM80310、S_StateLoadOCT6100、S_StateLoadMicroCode、S_StateIdle。系統(tǒng)啟動后,進程創(chuàng)建即S_StartUp,進行分配內(nèi)存空間等工作,然后進入S_StateInit狀態(tài),等待上電消息。獲得上電消息后初始化本模塊的靜態(tài)數(shù)據(jù)區(qū),包括邏輯地址初始化、告警代理進程的配置,并加載DSP軟件、微碼版本、固件。如果從本地讀取的版本加載不成功,則與OMP上的版本管理進程交互,完成版本的下載;然后向狀態(tài)查詢進程和音加載進程發(fā)送上電消息,進入S_IdleState狀態(tài);同時定時查詢DSP狀態(tài),發(fā)現(xiàn)DSP跑飛后進行重新加載的處理。
3.4 狀態(tài)查詢進程
進程涉及到的狀態(tài)有S_StartUp、S_StateInit、S_StateWork,前兩個狀態(tài)和版本加載進程流程相同。在獲得上電消息后,初始化本模塊的靜態(tài)數(shù)據(jù)區(qū),包括邏輯地址和告警代理進程的配置,然后轉(zhuǎn)入S_State Work;在該狀態(tài)下完成所有的單板實時狀態(tài)查詢功能。
本進程處理異常任務發(fā)送過來的設(shè)備異常消息,定時查詢異常設(shè)備的告警恢復狀態(tài)(因為BSP只上報設(shè)備的異常,不上報設(shè)備異常恢復),和單板上的HW、時鐘等實時狀態(tài)等。
3.5 耗時查詢進程
進程涉及到的狀態(tài)有S_StartUp、S_StateWork。進程創(chuàng)建即進入S_StartUp,進行分配內(nèi)存等工作后進入S_StateWork。在該狀態(tài)下,獲得上電消息后初始化進程私有數(shù)據(jù)區(qū)和網(wǎng)口設(shè)置,定時查詢網(wǎng)口狀態(tài),同時還完成業(yè)務板復位處理和微碼設(shè)備上網(wǎng)口的配置。
3.6 音資源加載進程
本進程只在MRB板上有,該板上共有4個TMSC5402 DSP,視數(shù)據(jù)庫對DSP用途的配置來定是否需要加載音資源。進程涉及到的狀態(tài)有S_StartUp、S_StateInit、S_StateWork,狀態(tài)轉(zhuǎn)換和狀態(tài)查詢進程基本相同,進入S_StateWork后準備加載音資源。
4、數(shù)據(jù)結(jié)構(gòu)和功能分析
4.1 公用數(shù)據(jù)結(jié)構(gòu)
4.1.1 T_BSP_DEVICEDRIVER_PARA
BSP設(shè)備控制通用結(jié)構(gòu)體:
4.1.2 T_BSP_INT_EVENT
中斷回調(diào)函數(shù)參數(shù)結(jié)構(gòu)定義如下:
異;卣{(diào)函數(shù)接口事件結(jié)構(gòu)定義如表1所示。
表1 異;卣{(diào)函數(shù)接口事件結(jié)構(gòu)定義
4.2 模塊設(shè)計和實現(xiàn)
4.2.1 異常處理任務及中斷相關(guān)處理
異常中斷處理包括一個回調(diào)函數(shù)VoID Callback ForException(T_BSP_INT_EVENT*pReason)和一個處理任務;卣{(diào)函數(shù)由BSP在異常中斷發(fā)生時調(diào)用,將中斷信息發(fā)送給異常處理任務,在異常任務里面向狀態(tài)查詢進程發(fā)送設(shè)備異常中斷消息。
OSS在初始化設(shè)備時,調(diào)用BSP提供的外部中斷服務程序初始化函數(shù),把CallbackForException作為入口參數(shù)傳遞給BSP,作為單板上設(shè)備的異常中斷服務程序,然后BSP在各個ISR中調(diào)用該回調(diào)函數(shù)將各種異常和錯誤信息上報。
4.2.2 實時狀態(tài)檢測進程
該進程在具有版本加載進程的單板上只從版本加載進程接收上電消息,否則作為基本進程運行。主要完成單板外圍電路和單板上資源的狀態(tài)檢測,處理異常處理任務發(fā)送過來的設(shè)備異常消息,定時查詢異常設(shè)備的告警恢復狀態(tài)和單板上的HW、GE、FE等實時狀態(tài)以及DSP的工作狀態(tài),定時查詢各個設(shè)備的工作狀況,并且響應后臺的性能統(tǒng)計請求等。進程的實現(xiàn)與具體的物理單板密切相關(guān),對各個相應的單板會有不同的檢測需求,也隨之實現(xiàn)不同的功能。
4.2.3 版本加載進程
該進程作為基本上電進程,接收主控進程發(fā)來的上電消息,并負責給本模塊的另外兩個進程上電。上電時,首先對單板的需下載資源進行設(shè)置,再加載DSP、固件和微碼版本,然后給狀態(tài)查詢和音下載進程發(fā)送上電消息。
4.2.4 音資源加載進程
音資源的加載在MRB單板上,在完成對DSP TMS320VC5402的版本加載后,通過DSP與HOST的交互,調(diào)用BSP提供的接口函數(shù),完成加載。本板上有多個DSP,根據(jù)數(shù)據(jù)庫的配置來決定哪個DSP需要下載。
加載通過HOST與DSP之間的HPI接口進行數(shù)據(jù)下載,速度比較慢;而且音資源的文件比較大,所以加載時間較長;音資源存放在DSP的FLASH上,加載只需要一次。在單板復位后,首先先檢查DSP的Flash上是否已經(jīng)有了當前版本的音資源文件。加載的流程如圖2所示。
圖2 音資源加載流程圖
4.2.5 耗時查詢進程
該進程主要處理網(wǎng)口查詢等耗時操作。該進程優(yōu)先級比較低,在獲得上電消息后首先設(shè)置網(wǎng)口的初始狀態(tài),然后設(shè)置5s定時器進行網(wǎng)口的耗時查詢。
5、結(jié)束語
本文首先闡述了3G統(tǒng)一平臺的概念,在簡要介紹3G平臺和系統(tǒng)控制子系統(tǒng)的組成方案的基礎(chǔ)上;給出了實施狀態(tài)檢測模塊的設(shè)計框架和功能點實現(xiàn),重點分析了該模塊各個進程和任務的處理流程,并對它們的內(nèi)部交互和聯(lián)系做了詳細說明。通過對整個底層工作狀態(tài)的實時性檢測和控制等技術(shù)實現(xiàn)的介紹,向人們展示了3G技術(shù)在底層的應用。
系統(tǒng)控制子系統(tǒng)在整個平臺的組成結(jié)構(gòu)中處于中心地位,是整個平臺有效運作的前提和關(guān)鍵,而實時狀態(tài)檢測模塊則是系統(tǒng)控制子系統(tǒng)功能實現(xiàn)的關(guān)鍵部分。目前本系統(tǒng)已在某公司的多個事業(yè)部推廣使用,各個功能模塊均運行良好,實踐證明本平臺在整個研發(fā)體系結(jié)構(gòu)中發(fā)揮了重要的作用。