*
(1.西華大學無線電管理技術研究中心,四川 成都 610039;2.四川省無線電監測站,四川 成都610039)
軟件總線是以硬件總線為依據提出的,在異構的環境中,被看作具有獨立功能組件的各部分串聯在一起形成的一個完整功能系統[1]。最早研究的軟件總線框架是STARS雙生命周期模型[2]。隨后:A.Fred 等[3]提出3個生命周期軟件工程模型;D. Dikel等[4]提出雙生命周期的改進模型;Mike Stark等[5]提出軟件生產線開發過程模型。自2000年以來,軟件總線概念在眾多行業的各種異構系統平臺中被廣泛研究和應用[6-8]。
目前,國內無線電監測設備提供商有40余家,省級無線電監測網絡系統使用不同提供商的各類無線電監測設備。在實際應用中,由于不同提供商的各類無線電監測設備之間的功能、作用和通信協議等各不相同,因此,無線電監測技術人員通常使用單一種類的無線電監測設備或者由同一提供商集成的無線電監測網絡平臺獲取必要的監測數據,無法協同配合完成復雜監測任務[9]。隨著無線電監測技術向自動化、網格化、智能化方向發展,無線電監測過程中多設備、多任務、自組織的相互調度已成為一種必然趨勢[10],現有無線電監測網絡系統的軟件結構已不能滿足上述發展需求。
本文借鑒軟件總線的思想,設計無線電監測軟件總線。該軟件總線以監測系統構件庫為基礎,各個構件有序組合,在消息機制和調度機制的作用下,使不同監測設備間協調工作,共同完成復雜監測任務。文章以無線電考試保障監測任務為例,闡述無線電監測軟件總線如何解決不同設備間數據無法正常交互的問題,以使不同設備執行不同的功能,并行觸發,自組織協同作業,精確、高效地完成監測任務。
結合無線電監測的相關知識[11-12]和監測系統的整體設計,本文將軟件總線應用于無線電監測系統中,設計了無線電監測軟件總線,其結構如圖1所示。圖中軟件總線如同插排,各個部分如同插頭即插即用,各類設備之間通過總線自主“溝通”,最終完成應用層指令的任務。
無線電監測軟件總線主要分為4部分:基于無線電監測任務的構件庫、內部和外部設備連接交互的通信協議及適配器、消息機制和工作調度機制。

圖1 無線電監測軟件總線結構
在構件庫中,構件按需求進行組裝集成,形成特定的功能模塊,各個功能模塊通過標準的接口掛載在總線接口上。 當執行某復雜監測任務時,多個功能模塊有序執行,前后功能模塊具有銜接關系。軟件總線的消息機制負責協調、組織、調用各構件組合,使其能夠交替工作。當1條用戶指令通過對外接口傳入軟件總線時,如圖2所示,對外接口與應用層對接,指令按流向順序執行。若需要交互數據,指令根據要求,自動將相關監測數據返回給應用層用戶。

圖2 無線電監測指令流向圖
構件是實現單一功能的獨立結構。在實際應用中,具體監測任務由各構件間的有序組合完成。軟件總線通過調用相應功能的構件或構件組合實現與不同平臺、不同協議的監測設備通信并解析獲取的數據,然后按照系統內部協議的統一格式輸出。其中, 通信和解析過程的每個步驟都會調用不同的功能構件。結構設計合理的構件庫有利于構件的存儲和外層共享內層構件,同時提高構件的復用率和檢索速度[13-14]。
根據無線電監測任務要求,無線電監測軟件總線的構件庫分為系統構件庫、通用構件庫和功能構件庫,如圖3所示。

圖3 無線電監測軟件總線的構件庫
系統構件庫包括基本的數據結構(各種業務數據結構體定義)、數據類型、常數變量(如固定數值、字符串)等;通用構件庫包括常用的監測數據處理方法,如數據分析方法、數據聚類算法、數據排序和查詢算法等;功能構件庫由基本監測任務(如頻段掃描、中頻測向等)及獲取無線電監測系統自身運行狀態的基本功能指令等組成。
在無線電監測軟件總線中,通信協議負責數據幀格式和交互流程實現,適配器負責指令識別和數據轉換。通過通信協議和適配器,設備“認識”接收到的系統指令,同時把設備數據“翻譯”為系統內部可以識別的格式,保證系統與設備的正常交互,完成必要的通信過程(這個過程可能發生在不同平臺、不同協議之間)。首先無線電監測軟件總線的通信協議和適配器要確保各種異構協議的設備(如RMTP、SCPI等)可以像插頭一樣隨意地與“插座”進行數據交互;其次,適配器具有一定的調度能力和管理能力,并且能夠通過指令操作獲得系統狀態信息或設置系統參數等。
從圖1可以看出,通信協議和適配器可以最大限度地集成無線電監測網絡系統中的設備。如當A類設備要集成到無線電監測網絡系統時,通過A類通信協議,將A類設備具有的功能構件添加到構件庫中,同時把A類適配器“安裝”到總線,這樣軟件總線就會把系統內部的指令轉換為A類設備可識別的指令,并調用構件庫中A類設備對應的功能構件完成與設備的交互,交互過程中會調用其他構件實現諸如數據分析、信號監測等功能。
本文適配器解析的指令分為4部分并以“;”作為分隔符,第1部分是指令ID,第2部分為設備(控制)ID,第3部分為功能類型,第4部分為任務類型。
例1考試保障監測任務指令的解析與工作過程。指令內容為: 0002;61007500;TKNEW;FSCAN#startfreq=87,stopfreq=108,step=100#tasktype=1,starttime=20130728010123,totletime=100,creator=1,level=1,name=考試保障。
其中:0002為指令ID,表示該指令為任務操作,每臺監測設備都有唯一ID標志;61007500為設備ID,表示某臺監測設備; TKNEW為功能類型,表示創建新任務;FSCAN#startfreq=87,stopfreq=108, step=100#tasktype=1,starttime=20130728010123,totletime=100,creator=1,level=1,name=考試保障為任務信息,FSCAN表示該指令任務類型為頻段掃描,startfreq=87,stopfreq=108,step=100表示起始頻率、終止頻率以及步長,tasktype=1, starttime=20130728010123,totletime=100,creator=1,level=1,name=考試保障表示任務執行相關參數,即任務類型、開始時間、執行時長、任務創建者ID、任務等級、任務名稱。
指令的執行過程如圖4所示,組件接收到任務指令后,各適配器通過“0002”識別出是任務指令,通過“61007500”識別出該任務操作的設備,通過“TKNEW”識別任務的類別,通過“level=1”判定任務的優先級,其余是任務的執行參數。

圖4 考試保障監測任務指令的執行過程
無線電監測軟件總線設計了總線消息隊列和連接消息隊列,其中,總線消息隊列負責維護系統的全局消息,連接消息隊列負責維護系統與設備的通信消息。只有當系統與設備之間需要進行長時間數據交互通信(長連接)時,軟件總線才為其分配一個獨立的連接消息隊列。
總線消息隊列與連接消息隊列如圖5所示。當滿足一定條件時,總線消息隊列會把消息分發到相應的連接消息隊列中,如果同一個時間段內有多個長連接并發執行,它們之間也可以通過發送消息實現信息共享(如圖中A和B之間的共享)。以執行例1中任務指令的考試保障為例,總線會根據任務執行參數生成觸發條件,即當發現異常信號時,跳轉至頻點監測并尋求協助站點輔助監測(算法選擇當前最優輔助設備經由監測系統調度該設備與之發生連接),總線消息隊列將頻段跳轉頻點、時間同步、任務時間終了等控制信息發到各個連接消息隊列,因為是協助監測,各個連接消息隊列可以分享彼此的分析數據。

圖5 消息隊列結構示意圖
針對區域內有多個監測點(每個監測點至少有1臺監測設備)的情況,無線電監測軟件總線設計了任務指令的工作調度機制。該機制包括任務分發和任務調度2部分。任務指令由應用層到達每個監測設備的過程稱為任務分發;每個監測設備按一定的方式執行各自任務隊列的過程稱為任務調度。
任務分發采用優化的負載調度算法。該算法涉及連接數(當前任務數)和經緯度坐標(最小距離),形式描述如下。
令區域內監測點T={T1,T2,…,Tm-1},每個監測地點的監測設備S={S1,S2,…,Sn-1},C(Si)和D(Si)分別表示接收機Si的當前連接數(任務數)和與監測地點的距離,W(C(Si))和W(D(Si))表示接收機Si相應特征的權值。任務分發的條件為min{C(Si)·W(C(Si))+D(Si)·W(D(Si))}(i=0,1,…,n-1)。
任務調度采用先來先服務和優先級結合的調度算法,高優先級先執行,同優先級按時間先后順序獲取時間片,分片并發交替執行。在無線電監測軟件總線中,實時連接優先級高于離線任務的優先級,當有實時連接發生時,獨占設備會暫時中斷離線任務并等待連接。調度算法可以避免離線任務和實時連接之間的沖突。
由于設備對軟件總線是“即插即用”的關系,所以在連接到軟件總線的同時,軟件總線會初始化當前設備的任務隊列,并保持對任務隊列的管理,以高優先級任務中斷當前低優先級任務、同等級任務并發處理的原則,合理調度隊列中的任務,并處理好與實時連接的兼容性。
在無線電智能監測網絡系統中,調度機制可用于異常信號處理。當網絡系統發現異常信號時,軟件總線以發現信號的設備為中心向附近設備(以經緯度判斷)發出協助請求,形成一個局部自組織監測網絡系統,調度機制會自動處理區域內的設備選擇、功能執行和數據處理。
隨著無線電通信技術的快速發展和廣泛應用,利用無線電設備進行考試作弊的現象也日趨嚴重[15]。無線電考試保障是對考試作弊信號頻率進行實時監控和及時定位,為查處相關責任人提供技術支撐[16]。
無線電考試保障是一個復雜的監測任務,如圖6所示。從構件調用的角度,軟件總線需要通過適配器按一定的交互順序復用FSCAN與IF_DF(或者IF_FQ)。從任務調度、站點協調的角度,由于每個設備的通信協議不同(如RMTP、SCPI等),設備和設備之間的溝通存在障礙,因此,軟件總線需要通過消息機制和調度機制在觸發條件成立時(一般是監測到異常信號),協調不同協議的多個設備參與協助監測、交匯定位,并整合不同監測設備采集的數據。

圖6 無線電考試保障流程圖
在圖6中:(1)為頻段掃描階段,即任務開始時軟件總線以消息方式通知執行任務的設備持續對指令要求的頻段進行掃描,并調用構件庫中自適應閾值算法、信號檢測算法等通用構件對頻段掃描數據進行分析,當結果中出現可疑或作弊信號時,系統自動執行流程圖中(2)的內容 ;(2)為頻點監測過程,頻點監測通過相應的通用構件對當前信號監聽、初步測向,并分析其調制方式,然后確認信號性質,如是干擾信號還是作弊信號;當信號性質被確認后,系統需對此信號進一步分析處理,即圖中(3)所示過程,此時由軟件總線選擇區域內合適的多個不同協議的設備參與協助,從協助請求的發送到形成區域自組織網絡,軟件總線負責整個組織過程;通過交匯定位,確認作弊信號的發射源位置后組織實施圖中(4)所示過程,干預壓制,壓制后需要繼續對這個頻點進行監測,以便確認壓制效果。當所有作弊信號處理結束后,繼續進行頻段掃描,循環上述整個流程。
如例1中指令,客戶端發送任務命令告知要進行的監測任務(監測設備61007500對87 MHz至108 MHz進行監測),軟件總線解析接收到的指令,然后根據指定的設備(由設備的ID得到設備的其他信息,如協議類型、IP地址等)調用相應的適配器和指令要求的FSCAN功能構件,若發現有作弊信號,則進入到自組織過程,由軟件總線選擇區域內合適的輔助監測設備。輔助設備發生連接以后軟件總線以消息的方式同步各個監測設備,多設備調用IF_DF功能構件相互配合協調完成數據分析和交匯定位。在監測過程中,任務隊列根據任務的優先級自動執行隊列中的任務。
圖7為無線電考試保障在執行過程中適配器調用通用構件自適應閾值算法[17]得到的結果圖。

圖7 自適應閾值算法濾除信號背景噪聲結果圖
由于監測任務的目的和內容不同,在實際應用中,監測數據的處理方法也不同,在軟件總線中體現為功能構件或構件組合也不同。為便于操作人員使用,在軟件總線的框架內,需要自定義任務流程功能模塊。無線電考試保障監測的任務流程、構件的組合方式是由用戶自己定義的,即軟件總線處理考試保障監測任務請求時,依據任務發布者自己定義的任務流程和構件調用關系,這樣可以使總線具有更好的可擴展性和延伸性。軟件總線在處理用戶自定義的監測流程過程中,監控前一功能構件的輸出和后一功能構件的輸入的一致性,以確保構件和構件的銜接順暢。自定義流程使無線電考試保障監測系統具有更強的適應性,用戶使用方便并能達到更好的監測效果。
軟件總線應用于無線電監測系統,能夠解決實際應用中監測設備異構的問題,使無線電監測系統具有更強的開放性,推動無線電監測的自動化、網格化和智能化,為監測數據采集、監測數據挖掘以及各種保障監測提供強有力的支持。進一步完善無線電監測軟件總線的功能,滿足大區域監測、區域之間協同監測、智能監測的需要,同時拓展無線電監測軟件總線的應用范圍是今后需進一步研究的內容。
[1]顏建平,張焱,陳路路. 軟總線技術發展與應用研究[J].無線電工程,2008,38(11):61-64.
[2]STARS. Asset Library Open Architecture Framework version 1.2 [R]. Informal Technology Report STARS-TC-04041, 1992.
[3]Fred A Maymir-Ducharme. The Product Line Business Model[EB/OL].[2013-09-16]. http://www.umcs.maine.edu/~ftp/wisr/wisr8/papers/maymir/maymir-updated.html.
[4]Dikel D, Kane D, Ornburn S, et al. Applying Software Product-line architecture[J]. Computer, 1997, 30(8):49-55.
[5]Mike Stark, Dave McComas. Developing a Product Line Approach for Flight Software[R]. NASA/Goddard Space Flight Center, 2000.
[6]嚴亞勤,吳文傳,張伯明,等. 支持組件接口規范的能量管理系統軟總線的初步研究與實現[J]. 電網技術,2004,28(20):11-16.
[7]鄧輝舫,黃俊成. 基于消息隊列軟總線的系統集成與數據交換方案[J]. 華南理工大學學報:自然科學版,2008,36(5):1-5.
[8]谷雙春,李苒. 軟總線技術在無線電監測系統中的應用研究[J]. 無線電通信技術, 2005,31(6):48-50.
[9]唐鼎甲,武暢.無線電監測系統的組成與應用[J].電子信息對抗技術,2011, 26 (5):37-40.
[10]徐弘良.網格化無線電監測系統總體設計原理概述[J].中國無線電,2013(2):57-59.
[11]王光平. 軟件總線研究[J]. 計算機工程與應用,2000(3):39-41.
[12]唐麗. 面向神光Ⅲ分布式控制的軟件總線技術研究[D]. 北京:中國工程物理研究院, 2002.
[13]袁占亭,張秋余,張冬冬,等. 基于軟件總線技術的軟件開發[J]. 計算機工程,2005,31(1):105-107.
[14]陳波,李舟軍,陳火旺. 構件模型研究綜述[J]. 計算機工程與科學,2008,30(1):105-109.
[15]馬方立.無線電干擾的監測分類與通用識別方法探討[J]. 電波監測,2004(3):32-35.
[16]江海琴,伊良忠,馬方立,等. 常見作弊信號的模糊C均值聚類識別[C]//CRAM·12論文集. 西安:電子工業出版社,2012:287-291.
[17]馮霞,龔曉峰,張利丹,等. 基于紋理特征的背景噪聲提取的應用研究[J]. 電子學報, 2009,37(9):2093-2095.