基于PCI总线通用接收机软件架构设计
2013-10-16陈亮张红敏
陈亮 张红敏
(河北省卫星导航技术与装备工程技术研究中心河北石家庄050081)
1 引言
通用导航接收机概念为:能够配置选择接收不同导航频点的信号;能够通过修改配置参数接收各种新型信号体制;能够通过模块的替代实现各种高性能接收机的要求;进一步可以配合模拟器、中心控制设备设计通用化的导航系统开发与实验验证平台。通用接收机软件系统则具备处理目前所有导航系统信息数据处理的能力。通过采用采用面向对象设计对该软件的结构进行详细设计,为卫星导航接收机软件的设计与开发以及扩展奠定了基础。
2 软件系统特点
卫星导航接收机根据功能分类可以分为导航型接收机、授时型接收机、测地型接收机、高精度型接收机等。根据所跟踪系统的不同可分为全球定位系统(G lobalPositioning System,GPS)接收机,北斗系统(BeiDou,BD)接收机,格洛纳斯系统(GLONASS)接收机、伽利略系统(Galileo)接收机、按频点又可分为单频接收机、双频接收机、多频接收机、多模接收机等[1]。
综上所述,卫星导航接收机软件需要面对复杂的处理方法和种类繁多的数据,所以结合目前的导航数据处理技术和软件工程技术来尽可能提高软件效率成为了必须,在通过对导航数据类型和数据处理流程分析,通用卫星导航接收机软件系统具有以下特点:
①通用性:通用性主要体现在能灵活配置并处理一个或多个导航系统的能力,无论底层板卡如何分配系统频点,软件系统都能兼容并处理[2],所以良好的通用性可以很好的满足科研或者生产等各方面需求;
②可扩展性:可扩展性主要体现在2个方面,一个处理频点的可扩展性,软件系统可扩展到能处理民用和军用导航信号的能力[3],其次是处理数据模型的多样化。随着处理方法的不断发展,需要软件系统能升级新的模型来丰富数据处理流程;
③集成性:为支持与其他数据处理系统的数据交互集成,需要提供支持网络、串口等多种接口。并能输出NMEA0183、RTCM、R INEX等标准数据格式。
3 软件架构设计
根据通用卫星导航接收机的特点分析,可知该软件系统是一个复杂和数据处理多样化的软件系统。某一种软件体系架构并不能满足设计全部需求,通过结合卫星导航接收机软件的本身特点和已有的软件体系结构模型。在架构设计过程中采面向对象设计方法。
3.1 面向对象设计方法
面向对象设计方法是建立在数据抽象和面向对象的基础上。这种风格的构件是对象,对象是通过函数和过程的调用来交互的。在通用卫星导航接收机软件体系结构设计中将各个通用的功能模块进行数据抽象,把各个算法的参数和相应的操作封装在类中。接收机软件系统划分为5个模块:数据通信模块、观测数据处理模块、导航电文处理模块、定位解算模块、数据存储模块[4]。这5个模块结构如图1所示。对于各处理模块而言,它们分别被封装成独立的类,每个类的接口固定。其算法实现函数都封装在类的内部,修改算法的影响被限制在类的内部,而不会影响到类外[5]。通过采用这种设计提高了系统结构的稳定性,便于分工合作和软件的后续开发。
图1 面向对象设计图
对需要扩展的模块采用面向对象设计方法中的继承方式来实现。例如在导航电文处理模块的功能包括处理GPS、BD、Galileo、GLONSS等不同导航系统所播发的导航电文。所以各个系统的电文处理模块都继承导航电文处理模块父类,其输入和输出都通过父类来实现。具体设计如图2所示。
图2 导航电文设计图
3.2 访问者设计模式
在设计这些处理模块时,不仅需要对类内的数据和各算法函数进行统筹分配,把每个人开发的算法程序封装成一个有机的整体。还需要确定这些模块之间的接口,例如:①各模块参数输入、输出问题;②各模块算法的选择及调用问题;③各算法函数的管理问题。
通过对通用导航接收机特点的分析并结合对该软件的扩展、集成、以及如何进行后续开发等工作可知。通用导航接收机软件是一个以导航数据为核心的软件系统,根据这个特点选取了访问者设计模式。
访问者设计模式属于行为模式,它把数据结构和作用于结构上的操作解耦合,使得操作可相对自由演化。访问者设计模式适用于数据结构相对稳定、算法又易变化的系统。因为访问者设计模式使得算法操作改变变得容易,其缺点是如果经常有新的数据对象增加进来,则对系统影响较大[6]。
通过标准化数据储存结构,并以数据存储模块为中心建立访问者设计模式。设计模式如图3所示。其他模块通过接口访问数据存储模块进行交互,这些模块之间不存在交互。在需要进行功能扩展时,该功能模块的输入参数可从标准数据结构中提取,所要做的工作只需要按定义好输出标准化结构输出结果[7]。通过这种模式设计,很好的解决了通用接收机软件的通用性、可扩展性和集成性等特点。
4 软件架构实现
在某型号卫星导航接收机研制过程中,采用这种软件设计方法开发了界面简洁友好、操作简单、功能齐全、算法配置灵活、可扩展性强卫星导航接收机软件系统。该软件可接收目前所有正式运营的导航系统中的民用信号,并具有输出各种国际通用标准协议的功能。在扩展中仅需要把符合标准格式的模块集成进来就可正常工作。该软件系统具有模块化可配置的软件架构,导航数据处理算法模块以及参数可在线配置;具有灵活的软件接口扩展功能,支持用户应用软件开发使用;提供标准的软件扩展接口,包括导航处理算法扩展接口、接收机应用扩展接口等,支持用户对上述模块的应用扩展。
5 结束语
针对通用卫星导航接收机软件架构进行了设计与开发,通过采用面向对象设计方法提出了一个适合通用卫星导航接收机软件架构解决方案。该设计方案使得软件系统具有高可靠性、可扩展性、可集成性等优势。解决普通接收机软件在进行扩展时难以进行后续开发等问题,通过结合实际需求可快速的研究或开发各种类型导航接收机,推动导航理论研究的深入开展。并在实际工程运用该设计方法开发了导航接收机软件系统。
[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.