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