嵌入式测姿系统软件的模块化嵌入式测姿系统软件的模块化
由于嵌入式测姿系统软件根据不用需求需实现多种接收机板卡、不同导航系统、多种姿态算法的选择,因此其
功能复杂,程序冗长。程序模块化后可有效提高工作效率,操作简便。探讨利用嵌入式软件模块化的方法,基
于ARM平台根据嵌入式测姿系统软件的主要流程及其功能对软件进行单元划分,详细阐述了各个模块的功能以
及模块之间的接口,解决可操作性、可扩展性等问题,实现了软件的模块化设计。实际数据验证表明,嵌入式
测姿软件模块化后可移植性、扩展性增强,可用性高,资源利用率高,并适合在一般载体上使用。
0 引言引言
随着全球定位系统的发展,姿态测量技术逐渐成为卫星导航应用领域研究的热点。姿态测量一般应用于卫星、航天器、载
人机、无人机等高动态的载体上,这些载体要求姿态测量系统具有精度高、实时性强、安装方便等特点。嵌入式系统是一种完
全嵌入到受控器件内部,为特定应用而设计的专用计算机系统,具有响应时间短、系统内核小、可扩充、可移植、实时和可靠
性较强等优点。
近年来,利用全球导航卫星系统(Global Navigation Satellite System,GNSS)接收机载体进行姿态测量的技术已经逐步
成熟,但随着接收机板卡种类、导航系统种类、姿态算法种类的增加,对嵌入式测姿软件的实时性、可用性以及可扩展性提出
了更高的要求。2008年,荷兰代尔伏特理工大学实现了GPS单频单历元姿态解算系统
[1]
。2012年,该大学实现了多天线
GNSS测姿系统
[2]
。2012年,澳大利亚科廷大学进行了多星座测姿试验
[3]
。2008年,北京理工大学设计了单基线测姿系统,
并进行静态和动态试验
[4-6]
。2007年~2009年,上海交通大学完成姿态测量系统样机的研制
[7-9]
。2012年,中国卫星导航定位
应用管理中心与54所联合研制了GPS卫星导航系统多频姿态测量系统
[10]
。
此外,国内外几大 GNSS 厂商均有相应的测姿产品。美国Trimble公司的BX982利用GPS/GLONASS/BD进行测姿,加拿大
Novatel公司、比利时Septentrio公司利用GPS/GLONASS测姿。中国星网宇达研发BDS/GPS定向接收机,东方联星的
TOAS100D利用双天线进行测向、PNS200-BGI利用BD/GPS/INS进行定位测姿。
综上所述,国内外针对姿态测量技术已经开展了较为深入的研究,相关姿态测量方法已经在姿态测量样机上开展了静态及
动态实验验证,而本文将在之前的研究基础上重点进行嵌入式测姿软件
1 软件模块化软件模块化
由于程序需实现不同导航系统、不同接收机板卡、不同姿态解算算法的选择,且要求程序具有通用性及可扩展性,因此将
其模块化。模块化即根据程序的流程和调用的顺序等将程序以功能为单位划分为一个个单元的形式,模块化后每一部分的功能
划分很清晰,模块之间通过接口传递参数和变量,操作简单,可有效提高工作效率和程序的运行效率。
1.1 模块划分模块划分
测姿软件模块化后可设计为由1个主程序和7模块组成,主程序声明如何调用各个模块及界面显示;模块分别为:读数模
块、解码模块、预处理模块、单点定位模块、RTK定位模块、模块测姿模块、结果处理模块。
1.2 模块功能模块功能
主程序的功能为调用各个模块并进行导航系统、接收机板卡、频点的选择以及界面的显示。读取二进制数据流模块可进行
二进制文件数据以及二进制串口数据的读取,此模块需使用多线程模式处理多个终端的数据流。解码模块将二进制数据流进行
解码,可兼容OEMStar、BDM605、BDM670等型号接收机板卡,且此模块可进行扩展。预处理模块进行各通道数据对齐及参
考星的选择。单点定位模块可计算卫星位置以及利用最小二乘法实现单点定位。RTK模块利用实时载波相位差分技术得到载体
的精确位置。姿态解算模块实现3种姿态解算算法,分别为GNSS单历元CLAMBDA算法、GNSS递推多历元姿态解算算法以及
GNSS卡尔曼滤波算法,此模块可扩展其他算法。结果处理模块将定位定姿的结果进行整合处理,并返回至主程序。
1.3 模块接口模块接口
每个模块具有4个接口(GetDefault、Init、Process、UnInit),分别完成接口信息查询、初始化、信号处理和退出功能。其
中,GetDefault函数将返回本模块功能、配置参数接口、配置参数默认数值和配置参数说明等内容;Init函数将完成全局变量
指针的传递工作,Process函数具体实现模块信息的处理,UnInit函数实现退出功能。各模块间输入、输出接口如表1所述。