陳亮 張紅敏
(河北省衛(wèi)星導航技術與裝備工程技術研究中心河北石家莊050081)
通用導航接收機概念為:能夠配置選擇接收不同導航頻點的信號;能夠通過修改配置參數(shù)接收各種新型信號體制;能夠通過模塊的替代實現(xiàn)各種高性能接收機的要求;進一步可以配合模擬器、中心控制設備設計通用化的導航系統(tǒng)開發(fā)與實驗驗證平臺。通用接收機軟件系統(tǒng)則具備處理目前所有導航系統(tǒng)信息數(shù)據(jù)處理的能力。通過采用采用面向?qū)ο笤O計對該軟件的結(jié)構(gòu)進行詳細設計,為衛(wèi)星導航接收機軟件的設計與開發(fā)以及擴展奠定了基礎。
衛(wèi)星導航接收機根據(jù)功能分類可以分為導航型接收機、授時型接收機、測地型接收機、高精度型接收機等。根據(jù)所跟蹤系統(tǒng)的不同可分為全球定位系統(tǒng)(G lobalPositioning System,GPS)接收機,北斗系統(tǒng)(BeiDou,BD)接收機,格洛納斯系統(tǒng)(GLONASS)接收機、伽利略系統(tǒng)(Galileo)接收機、按頻點又可分為單頻接收機、雙頻接收機、多頻接收機、多模接收機等[1]。
綜上所述,衛(wèi)星導航接收機軟件需要面對復雜的處理方法和種類繁多的數(shù)據(jù),所以結(jié)合目前的導航數(shù)據(jù)處理技術和軟件工程技術來盡可能提高軟件效率成為了必須,在通過對導航數(shù)據(jù)類型和數(shù)據(jù)處理流程分析,通用衛(wèi)星導航接收機軟件系統(tǒng)具有以下特點:
①通用性:通用性主要體現(xiàn)在能靈活配置并處理一個或多個導航系統(tǒng)的能力,無論底層板卡如何分配系統(tǒng)頻點,軟件系統(tǒng)都能兼容并處理[2],所以良好的通用性可以很好的滿足科研或者生產(chǎn)等各方面需求;
②可擴展性:可擴展性主要體現(xiàn)在2個方面,一個處理頻點的可擴展性,軟件系統(tǒng)可擴展到能處理民用和軍用導航信號的能力[3],其次是處理數(shù)據(jù)模型的多樣化。隨著處理方法的不斷發(fā)展,需要軟件系統(tǒng)能升級新的模型來豐富數(shù)據(jù)處理流程;
③集成性:為支持與其他數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)交互集成,需要提供支持網(wǎng)絡、串口等多種接口。并能輸出NMEA0183、RTCM、R INEX等標準數(shù)據(jù)格式。
根據(jù)通用衛(wèi)星導航接收機的特點分析,可知該軟件系統(tǒng)是一個復雜和數(shù)據(jù)處理多樣化的軟件系統(tǒng)。某一種軟件體系架構(gòu)并不能滿足設計全部需求,通過結(jié)合衛(wèi)星導航接收機軟件的本身特點和已有的軟件體系結(jié)構(gòu)模型。在架構(gòu)設計過程中采面向?qū)ο笤O計方法。
面向?qū)ο笤O計方法是建立在數(shù)據(jù)抽象和面向?qū)ο蟮幕A上。這種風格的構(gòu)件是對象,對象是通過函數(shù)和過程的調(diào)用來交互的。在通用衛(wèi)星導航接收機軟件體系結(jié)構(gòu)設計中將各個通用的功能模塊進行數(shù)據(jù)抽象,把各個算法的參數(shù)和相應的操作封裝在類中。接收機軟件系統(tǒng)劃分為5個模塊:數(shù)據(jù)通信模塊、觀測數(shù)據(jù)處理模塊、導航電文處理模塊、定位解算模塊、數(shù)據(jù)存儲模塊[4]。這5個模塊結(jié)構(gòu)如圖1所示。對于各處理模塊而言,它們分別被封裝成獨立的類,每個類的接口固定。其算法實現(xiàn)函數(shù)都封裝在類的內(nèi)部,修改算法的影響被限制在類的內(nèi)部,而不會影響到類外[5]。通過采用這種設計提高了系統(tǒng)結(jié)構(gòu)的穩(wěn)定性,便于分工合作和軟件的后續(xù)開發(fā)。
圖1 面向?qū)ο笤O計圖
對需要擴展的模塊采用面向?qū)ο笤O計方法中的繼承方式來實現(xiàn)。例如在導航電文處理模塊的功能包括處理GPS、BD、Galileo、GLONSS等不同導航系統(tǒng)所播發(fā)的導航電文。所以各個系統(tǒng)的電文處理模塊都繼承導航電文處理模塊父類,其輸入和輸出都通過父類來實現(xiàn)。具體設計如圖2所示。
圖2 導航電文設計圖
在設計這些處理模塊時,不僅需要對類內(nèi)的數(shù)據(jù)和各算法函數(shù)進行統(tǒng)籌分配,把每個人開發(fā)的算法程序封裝成一個有機的整體。還需要確定這些模塊之間的接口,例如:①各模塊參數(shù)輸入、輸出問題;②各模塊算法的選擇及調(diào)用問題;③各算法函數(shù)的管理問題。
通過對通用導航接收機特點的分析并結(jié)合對該軟件的擴展、集成、以及如何進行后續(xù)開發(fā)等工作可知。通用導航接收機軟件是一個以導航數(shù)據(jù)為核心的軟件系統(tǒng),根據(jù)這個特點選取了訪問者設計模式。
訪問者設計模式屬于行為模式,它把數(shù)據(jù)結(jié)構(gòu)和作用于結(jié)構(gòu)上的操作解耦合,使得操作可相對自由演化。訪問者設計模式適用于數(shù)據(jù)結(jié)構(gòu)相對穩(wěn)定、算法又易變化的系統(tǒng)。因為訪問者設計模式使得算法操作改變變得容易,其缺點是如果經(jīng)常有新的數(shù)據(jù)對象增加進來,則對系統(tǒng)影響較大[6]。
通過標準化數(shù)據(jù)儲存結(jié)構(gòu),并以數(shù)據(jù)存儲模塊為中心建立訪問者設計模式。設計模式如圖3所示。其他模塊通過接口訪問數(shù)據(jù)存儲模塊進行交互,這些模塊之間不存在交互。在需要進行功能擴展時,該功能模塊的輸入?yún)?shù)可從標準數(shù)據(jù)結(jié)構(gòu)中提取,所要做的工作只需要按定義好輸出標準化結(jié)構(gòu)輸出結(jié)果[7]。通過這種模式設計,很好的解決了通用接收機軟件的通用性、可擴展性和集成性等特點。
在某型號衛(wèi)星導航接收機研制過程中,采用這種軟件設計方法開發(fā)了界面簡潔友好、操作簡單、功能齊全、算法配置靈活、可擴展性強衛(wèi)星導航接收機軟件系統(tǒng)。該軟件可接收目前所有正式運營的導航系統(tǒng)中的民用信號,并具有輸出各種國際通用標準協(xié)議的功能。在擴展中僅需要把符合標準格式的模塊集成進來就可正常工作。該軟件系統(tǒng)具有模塊化可配置的軟件架構(gòu),導航數(shù)據(jù)處理算法模塊以及參數(shù)可在線配置;具有靈活的軟件接口擴展功能,支持用戶應用軟件開發(fā)使用;提供標準的軟件擴展接口,包括導航處理算法擴展接口、接收機應用擴展接口等,支持用戶對上述模塊的應用擴展。
針對通用衛(wèi)星導航接收機軟件架構(gòu)進行了設計與開發(fā),通過采用面向?qū)ο笤O計方法提出了一個適合通用衛(wèi)星導航接收機軟件架構(gòu)解決方案。該設計方案使得軟件系統(tǒng)具有高可靠性、可擴展性、可集成性等優(yōu)勢。解決普通接收機軟件在進行擴展時難以進行后續(xù)開發(fā)等問題,通過結(jié)合實際需求可快速的研究或開發(fā)各種類型導航接收機,推動導航理論研究的深入開展。并在實際工程運用該設計方法開發(fā)了導航接收機軟件系統(tǒng)。
[1]Kaplan E D,Hegarty C J.Understanding GPS:Principles and Applications,Second Edition[M].ARTECH HOUSE,2006.
[2]Jonkman N F.Integer GPS- BD estimation w ithout the receiver- satellite geometry[J].Delft Geodetic Computing Centre LGR Series.2011(18):91- 95.
[3]Tsujii T,R izos C,W ang J,et al.A navigation/positioning service based on pseudolites installed on stratospheric airships,The 5th International Symposium on Satellite Navigation Technology&Applications[C].Australia,2001,24- 27.
[4]W ang J.Applications in Positioning and Navigation:Progress and Problems[J].Journalof Global Positioning,2002,1(1):48- 56.
[5]Tsujii T,R izos C,W ang J,et al.A navigation/positioning service,The 5th International Symposium on Satellite Navigation Technology&Applications[C].Australia,2001,24- 27.
[6]W ang J,Lee H K.Impact of software architecture on positioning[C].Australasia,2002,81- 94.
[7]Shuichi Suga,Hiroto Tsunoda,Naoki Fujii,Sonosuke Fukushima&Shinji Saitoh.navigation architecture Experiments,Proceedings of the Institute of Navigation GPS- 2002 Conference[C].Portland,2002,60- 68.