陳亮 張紅敏
(河北省衛(wèi)星導(dǎo)航技術(shù)與裝備工程技術(shù)研究中心河北石家莊050081)
通用導(dǎo)航接收機(jī)概念為:能夠配置選擇接收不同導(dǎo)航頻點(diǎn)的信號(hào);能夠通過(guò)修改配置參數(shù)接收各種新型信號(hào)體制;能夠通過(guò)模塊的替代實(shí)現(xiàn)各種高性能接收機(jī)的要求;進(jìn)一步可以配合模擬器、中心控制設(shè)備設(shè)計(jì)通用化的導(dǎo)航系統(tǒng)開(kāi)發(fā)與實(shí)驗(yàn)驗(yàn)證平臺(tái)。通用接收機(jī)軟件系統(tǒng)則具備處理目前所有導(dǎo)航系統(tǒng)信息數(shù)據(jù)處理的能力。通過(guò)采用采用面向?qū)ο笤O(shè)計(jì)對(duì)該軟件的結(jié)構(gòu)進(jìn)行詳細(xì)設(shè)計(jì),為衛(wèi)星導(dǎo)航接收機(jī)軟件的設(shè)計(jì)與開(kāi)發(fā)以及擴(kuò)展奠定了基礎(chǔ)。
衛(wèi)星導(dǎo)航接收機(jī)根據(jù)功能分類可以分為導(dǎo)航型接收機(jī)、授時(shí)型接收機(jī)、測(cè)地型接收機(jī)、高精度型接收機(jī)等。根據(jù)所跟蹤系統(tǒng)的不同可分為全球定位系統(tǒng)(G lobalPositioning System,GPS)接收機(jī),北斗系統(tǒng)(BeiDou,BD)接收機(jī),格洛納斯系統(tǒng)(GLONASS)接收機(jī)、伽利略系統(tǒng)(Galileo)接收機(jī)、按頻點(diǎn)又可分為單頻接收機(jī)、雙頻接收機(jī)、多頻接收機(jī)、多模接收機(jī)等[1]。
綜上所述,衛(wèi)星導(dǎo)航接收機(jī)軟件需要面對(duì)復(fù)雜的處理方法和種類繁多的數(shù)據(jù),所以結(jié)合目前的導(dǎo)航數(shù)據(jù)處理技術(shù)和軟件工程技術(shù)來(lái)盡可能提高軟件效率成為了必須,在通過(guò)對(duì)導(dǎo)航數(shù)據(jù)類型和數(shù)據(jù)處理流程分析,通用衛(wèi)星導(dǎo)航接收機(jī)軟件系統(tǒng)具有以下特點(diǎn):
①通用性:通用性主要體現(xiàn)在能靈活配置并處理一個(gè)或多個(gè)導(dǎo)航系統(tǒng)的能力,無(wú)論底層板卡如何分配系統(tǒng)頻點(diǎn),軟件系統(tǒng)都能兼容并處理[2],所以良好的通用性可以很好的滿足科研或者生產(chǎn)等各方面需求;
②可擴(kuò)展性:可擴(kuò)展性主要體現(xiàn)在2個(gè)方面,一個(gè)處理頻點(diǎn)的可擴(kuò)展性,軟件系統(tǒng)可擴(kuò)展到能處理民用和軍用導(dǎo)航信號(hào)的能力[3],其次是處理數(shù)據(jù)模型的多樣化。隨著處理方法的不斷發(fā)展,需要軟件系統(tǒng)能升級(jí)新的模型來(lái)豐富數(shù)據(jù)處理流程;
③集成性:為支持與其他數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù)交互集成,需要提供支持網(wǎng)絡(luò)、串口等多種接口。并能輸出NMEA0183、RTCM、R INEX等標(biāo)準(zhǔn)數(shù)據(jù)格式。
根據(jù)通用衛(wèi)星導(dǎo)航接收機(jī)的特點(diǎn)分析,可知該軟件系統(tǒng)是一個(gè)復(fù)雜和數(shù)據(jù)處理多樣化的軟件系統(tǒng)。某一種軟件體系架構(gòu)并不能滿足設(shè)計(jì)全部需求,通過(guò)結(jié)合衛(wèi)星導(dǎo)航接收機(jī)軟件的本身特點(diǎn)和已有的軟件體系結(jié)構(gòu)模型。在架構(gòu)設(shè)計(jì)過(guò)程中采面向?qū)ο笤O(shè)計(jì)方法。
面向?qū)ο笤O(shè)計(jì)方法是建立在數(shù)據(jù)抽象和面向?qū)ο蟮幕A(chǔ)上。這種風(fēng)格的構(gòu)件是對(duì)象,對(duì)象是通過(guò)函數(shù)和過(guò)程的調(diào)用來(lái)交互的。在通用衛(wèi)星導(dǎo)航接收機(jī)軟件體系結(jié)構(gòu)設(shè)計(jì)中將各個(gè)通用的功能模塊進(jìn)行數(shù)據(jù)抽象,把各個(gè)算法的參數(shù)和相應(yīng)的操作封裝在類中。接收機(jī)軟件系統(tǒng)劃分為5個(gè)模塊:數(shù)據(jù)通信模塊、觀測(cè)數(shù)據(jù)處理模塊、導(dǎo)航電文處理模塊、定位解算模塊、數(shù)據(jù)存儲(chǔ)模塊[4]。這5個(gè)模塊結(jié)構(gòu)如圖1所示。對(duì)于各處理模塊而言,它們分別被封裝成獨(dú)立的類,每個(gè)類的接口固定。其算法實(shí)現(xiàn)函數(shù)都封裝在類的內(nèi)部,修改算法的影響被限制在類的內(nèi)部,而不會(huì)影響到類外[5]。通過(guò)采用這種設(shè)計(jì)提高了系統(tǒng)結(jié)構(gòu)的穩(wěn)定性,便于分工合作和軟件的后續(xù)開(kāi)發(fā)。
圖1 面向?qū)ο笤O(shè)計(jì)圖
對(duì)需要擴(kuò)展的模塊采用面向?qū)ο笤O(shè)計(jì)方法中的繼承方式來(lái)實(shí)現(xiàn)。例如在導(dǎo)航電文處理模塊的功能包括處理GPS、BD、Galileo、GLONSS等不同導(dǎo)航系統(tǒng)所播發(fā)的導(dǎo)航電文。所以各個(gè)系統(tǒng)的電文處理模塊都繼承導(dǎo)航電文處理模塊父類,其輸入和輸出都通過(guò)父類來(lái)實(shí)現(xiàn)。具體設(shè)計(jì)如圖2所示。
圖2 導(dǎo)航電文設(shè)計(jì)圖
在設(shè)計(jì)這些處理模塊時(shí),不僅需要對(duì)類內(nèi)的數(shù)據(jù)和各算法函數(shù)進(jìn)行統(tǒng)籌分配,把每個(gè)人開(kāi)發(fā)的算法程序封裝成一個(gè)有機(jī)的整體。還需要確定這些模塊之間的接口,例如:①各模塊參數(shù)輸入、輸出問(wèn)題;②各模塊算法的選擇及調(diào)用問(wèn)題;③各算法函數(shù)的管理問(wèn)題。
通過(guò)對(duì)通用導(dǎo)航接收機(jī)特點(diǎn)的分析并結(jié)合對(duì)該軟件的擴(kuò)展、集成、以及如何進(jìn)行后續(xù)開(kāi)發(fā)等工作可知。通用導(dǎo)航接收機(jī)軟件是一個(gè)以導(dǎo)航數(shù)據(jù)為核心的軟件系統(tǒng),根據(jù)這個(gè)特點(diǎn)選取了訪問(wèn)者設(shè)計(jì)模式。
訪問(wèn)者設(shè)計(jì)模式屬于行為模式,它把數(shù)據(jù)結(jié)構(gòu)和作用于結(jié)構(gòu)上的操作解耦合,使得操作可相對(duì)自由演化。訪問(wèn)者設(shè)計(jì)模式適用于數(shù)據(jù)結(jié)構(gòu)相對(duì)穩(wěn)定、算法又易變化的系統(tǒng)。因?yàn)樵L問(wèn)者設(shè)計(jì)模式使得算法操作改變變得容易,其缺點(diǎn)是如果經(jīng)常有新的數(shù)據(jù)對(duì)象增加進(jìn)來(lái),則對(duì)系統(tǒng)影響較大[6]。
通過(guò)標(biāo)準(zhǔn)化數(shù)據(jù)儲(chǔ)存結(jié)構(gòu),并以數(shù)據(jù)存儲(chǔ)模塊為中心建立訪問(wèn)者設(shè)計(jì)模式。設(shè)計(jì)模式如圖3所示。其他模塊通過(guò)接口訪問(wèn)數(shù)據(jù)存儲(chǔ)模塊進(jìn)行交互,這些模塊之間不存在交互。在需要進(jìn)行功能擴(kuò)展時(shí),該功能模塊的輸入?yún)?shù)可從標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)中提取,所要做的工作只需要按定義好輸出標(biāo)準(zhǔn)化結(jié)構(gòu)輸出結(jié)果[7]。通過(guò)這種模式設(shè)計(jì),很好的解決了通用接收機(jī)軟件的通用性、可擴(kuò)展性和集成性等特點(diǎn)。
在某型號(hào)衛(wèi)星導(dǎo)航接收機(jī)研制過(guò)程中,采用這種軟件設(shè)計(jì)方法開(kāi)發(fā)了界面簡(jiǎn)潔友好、操作簡(jiǎn)單、功能齊全、算法配置靈活、可擴(kuò)展性強(qiáng)衛(wèi)星導(dǎo)航接收機(jī)軟件系統(tǒng)。該軟件可接收目前所有正式運(yùn)營(yíng)的導(dǎo)航系統(tǒng)中的民用信號(hào),并具有輸出各種國(guó)際通用標(biāo)準(zhǔn)協(xié)議的功能。在擴(kuò)展中僅需要把符合標(biāo)準(zhǔn)格式的模塊集成進(jìn)來(lái)就可正常工作。該軟件系統(tǒng)具有模塊化可配置的軟件架構(gòu),導(dǎo)航數(shù)據(jù)處理算法模塊以及參數(shù)可在線配置;具有靈活的軟件接口擴(kuò)展功能,支持用戶應(yīng)用軟件開(kāi)發(fā)使用;提供標(biāo)準(zhǔn)的軟件擴(kuò)展接口,包括導(dǎo)航處理算法擴(kuò)展接口、接收機(jī)應(yīng)用擴(kuò)展接口等,支持用戶對(duì)上述模塊的應(yīng)用擴(kuò)展。
針對(duì)通用衛(wèi)星導(dǎo)航接收機(jī)軟件架構(gòu)進(jìn)行了設(shè)計(jì)與開(kāi)發(fā),通過(guò)采用面向?qū)ο笤O(shè)計(jì)方法提出了一個(gè)適合通用衛(wèi)星導(dǎo)航接收機(jī)軟件架構(gòu)解決方案。該設(shè)計(jì)方案使得軟件系統(tǒng)具有高可靠性、可擴(kuò)展性、可集成性等優(yōu)勢(shì)。解決普通接收機(jī)軟件在進(jìn)行擴(kuò)展時(shí)難以進(jìn)行后續(xù)開(kāi)發(fā)等問(wèn)題,通過(guò)結(jié)合實(shí)際需求可快速的研究或開(kāi)發(fā)各種類型導(dǎo)航接收機(jī),推動(dòng)導(dǎo)航理論研究的深入開(kāi)展。并在實(shí)際工程運(yùn)用該設(shè)計(jì)方法開(kāi)發(fā)了導(dǎo)航接收機(jī)軟件系統(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.