基于无人机的标校系统软件设计与实现
2018-02-05,,,
,, ,
(1.海军航空工程学院 201教研室,山东 烟台 264001; 2.海军航空工程学院 研究生管理大队,山东 烟台 264001;3.海军航空工程学院 训练部数字化校园办公室,山东 烟台 264001)
0 引言
航母随着服役时间的增加,船体变形、机械磨损以及外部撞击等因素会导致系统设备的水平、方位零位发生变化,电器元器件的老化导致电器零位发生漂移,这些都会影响其将引导系统的精度,为保障舰载机的安全降落,对着舰引导系统的定期标校,是航母着舰引导系统安全可靠工作的重要保障。
无人机校飞作为一种标校方式,完成着舰引导系统下滑道检查,是一种非常有效的标校方法[1-2],相比于直升机校飞,具有安全有效的优点。但是校飞中标校模块装置较多,系统工作流程复杂,实时性高,标校系统模块之间数据通信较多。因此,对标校系统进行模块化分析、完成系统软件设计具有重要意义。
1 系统分析
着舰引导系统主要由着舰引导雷达、光学助降装置、中线电视等设备组成。校飞系统组成框图如图1所示,对着舰引导系统设备的标校,需要对着舰引导系统设备提供合作目标,形成闭环的标校回路,完成着舰引导系统设备的测量工作,中线电视标定装置与雷达应答机作为合作目标,完成中线电视与着舰引导雷达的测量工作,对于光学助降装置,为了形成闭环的标校回路,标校系统通过光学标定摄像头拍摄舰载机着舰时光学助降装置的光学信息并且存储,也可将光学标定摄像头作为合作目标分析处理。标校系统自身需要获取约定真值(以下简称真值),将着舰引导系统设备的测量数据和真值进行比对,从而对着舰引导系统设备进行标定。整个系统需要在处理器的统一协同控制下工作。设备标校过程中,真值测量设备与其它测量设备需在统一的时间系统下工作。
图1 校飞系统组成框图
标校系统嵌入式装置中,真值测量设备采用基于载波相位事后差分相对定位技术的GPS设备[3],舰上的理想着舰点和校飞无人机上分别采集GPS的原始测量数据和NMEA0183格式的卫星数据并存储,事后差分能够提供厘米级的定位精度,同时处理器根据GPS设备提供GPS秒脉冲和对应的UTC标准时间,完成系统的授时同步功能。电视标定装置采用灯光源作为合作目标,光学标定摄像头在标校系统软件的统一控制下完成光学助降装置的图像信息采集功能,灯光源与雷达应答机只需加电开机即可工作,同时无人机上需安装姿态传感器采集无人机的姿态信息,所有测量设备在系统的统一控制下完成采集功能。
2 标校系统软件组成
标校系统的软件体系结构采用模块化的设计原理[4],软件体系由真值测量模块、授时同步模块和测量信息采集模块组成。真值测量模块完成GPS信息的采集和存储功能[5-6],将GPS原始测量数据与NMEA0183信息存储至文件中,以事后处理数据,其中NMEA0183信息包含秒脉冲对应的UTC标准时间[7],同时处理器还需时刻监听GPS设备输出的秒脉冲信息,因此本文设计一种多线程机制来完成真值测量模块的有关功能[8-10]。授时同步模块根据GPS秒脉冲与秒脉冲对应的UTC标准时间完成系统的授时功能[11-13],同时根据真值测量模块提供的秒脉冲信息和标校的需求采用芯片内部的定时器完成测量信息采集模块各进程的时间片分配功能,测量信息采集模块根据系统分配的时间片完成测量信息的采集并用特定的格式和方式存储在统一时间系统工作下的各个模块采集的数据以事后处理数据。系统的设备较多,采用开发的操作系统需有很好的设备管理能力。采用模块化设计方法的软件系统总体结构图如图2所示。
图2 软件系统总体结构图
本文的设计基于LINUX操作系统,具有较好的设备管理、进程(线程)管理、作业管理以及定时计数功能,能够完成系统软件设计。CPU采用ARMV8处理器,是ARM公司首推的支持64位指令集的处理器,同时也支持32位的指令。
3 方案设计关键技术
3.1 多进程解决方案
标校系统模块多,实时性要求高,模块之间通信多,需要对各模块的程序加以管理和控制,各模块的程序需要并发执行,本文设计了一种基于多进程技术的解决方案[14-17]。标校系统主要由GPS信息采集进程、授时进程、同步信号产生进程、图像采集压缩存储进程、姿态信息采集存储进程组成。各进程并发执行,但进程之间需要进行通信,本文采用消息传递系统的进程通信方式来完成各进程之间的通信,传递消息系统方式是当今进程间最为广泛应用的通信机制,它能够很好的支持多处理机系统和分布式系统,采用这种方式时,进程之间的通信是以格式化的数据为单位进行传递,适合进程之间通信数据量大且格式单一的通信方式。嵌入式标校系统模块多,且通信的数据都被处理器格式化处理,通信数据格式单一,适合采用消息传递系统的方式完成进程之间的通信,因此,各进程通信方式上采用消息传递系统的方式完成各进程间的通信。
软件系统的各进程并发执行,虽然提高了嵌入式标校系统的时间和空间效率,但各个进程之间有制约关系,需要采用进程同步技术来保证系统的可靠运行。嵌入式标校系统组成复杂,设备多,系统产生的数据量多,且存储空间有限,处理器的任务繁重,需要一种高效率低空间开销的方式完成进程间的同步机制,保证标校系统的可靠运行。本文采用信号量机制来完成进程间的同步功能,采用信号量机制实现进程互斥时,方式简单,只需占有少量的系统空间便可保证各个进程对临界资源的共享。标校系统的各进程关系和进程之间通信的结构图如图3所示。
图3 系统进程结构图
3.1.1 授时进程
嵌入式标校系统的各个模块需要在统一的时间系统下工作,授时进程完成系统的授时功能。GPS信息采集进程采集3种信息,GPS秒脉冲、原始测量数据和NMEA0183格式信息。GPS秒脉冲是每秒输出的脉冲信号,高电平有效,是系统授时与同步的重要时间标准,NMEA0183信息包含秒脉冲对应的UTC标准时间。当GPS信息采集进程采集到GPS秒脉冲时,唤醒授时进程,授时进程根据GPS信息采集进程采集的NMEA0183信息提取UTC标准时间与本地LINUX系统内核时间进行对比,得出时钟偏差并对本地时钟进行校正。最终使本地时钟与UTC标准时间一致,
3.1.2 同步信号产生进程与进程同步
根据着舰引导系统标校的工作要求,产生同步信号同步系统的工作是同步信号产生进程的主要工作,本系统的工作频率为5 Hz,则需每200 ms产生一个同步信号,同步系统的工作。同步信号产生需要利用ARM芯片的PWM脉宽调制定时计数器的定时功能,当GPS信息采集进程采集到GPS秒脉冲信号后,唤醒同步信号产生进程,同步信号产生进程查询授时进程是否完成授时功能,如完成则启动PWM的定时功能,200 ms计时完成后,产生中断,处理器发控制命令启动测量模块有关进程完成测量信息采集工作。
授时进程与同步信号产生进程有制约关系,根据对嵌入式标校系统的分析,只有授时功能完成时,软件系统才能启动同步信号产生进程。为防止进程异步造成的混乱,需要采用进程同步技术来控制并发执行的程序。根据方案设计,采用信号量机制实现进程间的互斥,完成进程同步机制。本文设立信号量lock,初始化lock=0,作为两个进程之间的临界资源,当授时功能完成时,执行以下代码,
lock = Lock()
if lock.acquire() : //如对信号量加锁
lock=lock+1
lock.release()//对信号量释放锁
当同步进程开始查询授时功能是否完成时,如完成启动PWM脉宽调制定时计数器,主要代码:
if lock.acquire() : //如对信号量加锁
if lock>0://如果完成授时功能
lock=lock-1
PWM.start()//启动定时器
lock.release()//释放锁
3.1.3 测量模块有关进程
测量模块有关进程包括图像信息采集压缩存储等进程和姿态信息采集存储等进程,各进程在统一的时间系统下同步工作,为事后能够处理数据,本文设计了一种特定格式图4所示,将采集的图像压缩为JPG格式后用设计特定格式数据命名,同时将设计的特定格式作为采集的姿态信息的帧头。
图4 存储格式图
前6个字节代表经过GPS授时后系统的时间,后两个字节代表此时统下采集的信息的序列。8个字节的特殊格式数据作为图像信息和姿态传感数据的帧头。实验中,系统的工作频率为5 Hz,通过对合作目标模块采集的信息进行处理按照特定的格式存储在嵌入式标校系统的SD卡中,事后传输至数据处理单元,将GPS模块的
3.2 多线程解决方案
系统软件设计中,真值测量模块需要时刻监听GPS秒脉冲信号并启动授时同步进程,同时需要不断接收NMEA0183格式信息与GPS原始测量数据存储至文件中,以事后处理。为实现系统实时多任务的需求并保证系统可靠运行,本文设计一种多线程机制来完成真值测量模块的功能[8,16]。
真值测量模块主要有串口读写线程和监听秒脉冲线程组成。为管理这两个子线程,创建线程数组,将串口读写线程与监听GPS秒脉冲线程加入线程数组中,并将两个子线程声明为守护线程,否则会被无限挂起。程序运行时,同时启动两个线程, 程序代码主要有
threads=[] //创建线程数组
t1=threading.Thread(target=readgps,args=(u'ss',))//创建线程t1
threads.append(t1) //将读取卫星数
//据函数加入线程数组中。
t2=threading.Thread(target=pps,args=(u'ss',)) //创
//建线程t2
threads.append(t2) //将监听GPS秒脉冲函数//加//入线程数组中
for t in threads: //遍历线程数组
t.setDaemon(True)//将线程声明为守护
//线程
t.start()
t.join()//等待子线程终止
f.close()//关闭文件操作
4 实验结果与分析
4.1 授时同步功能实验结果分析
为检验软件系统的设计方案,在前期搭建的嵌入式标校系统的硬件平台上根据本文的方案设计编写软件系统,其中授时同步进程主要采用基于多线程技术完成系统的授时同步功能,软件系统的多线程包括监听GPS秒脉冲线程和读写线程,两个线程同时工作,共同完成授时同步进程的有关功能,实验每监听一次GPS秒脉冲测量嵌入式标校系统的时钟与UTC标准时间的偏差,最终测量的时钟偏差结果如表1所示。
表1 时间偏差量监听次数
在完成授时同步功能的同时,系统需要采集GPS原始测量数据与NMEA0183格式数据存储,以事后差分处理得出无人机的精确飞行轨迹,采集的GPS原始测量数据与NMEA0183格式数据如图5所示。
图5 系统采集GPS数据实验结果
通过实验结果分析得出: (1)随着基于多线程技术设计的系统软件中授时同步进程的运行,最终使得系统时钟与卫星上的UTC标准时间一致,使得嵌入式标校系统各个模块在统一的时间系统下可靠工作运行并完成标校系统的授时功能。(2) 系统在完成采集GPS秒脉冲的同时采集GPS原始测量数据和NMEA0183格式数据并存储,因此,嵌入式标校系统基于多线程模块设计的系统软件能够满足着舰引导系统标校的功能需求。
4.2 系统各进程测试结果分析
基于多进程技术设计的软件系统采集的姿态传感器数据与图像信息经本文设计的系统软件处理后如图6所示。
图6 测量信息采集模块实验结果图
实验结果表明:测量信息采集模块有关进程在统一的时间系统下同步工作,能够按照笔者设计要求正确完成测量模块的任务,各个进程在采用信号量机制解决进程同步问题后能够保证各个进程的并发执行和稳定工作,通过消息传递系统的方式能够完成各进程之间的通信功能,各进程采集的数据能够按照本文设计的格式存储以事后处理数据,进而能够按照标校系统的需求完成合作目标模块和姿态传感器的数据采集和处理功能。
5 结论
本文针对基于无人机的标校系统硬件装置的工作情况,通过模块化的软件设计原理对标校系统进行分析后,提出了基于多进程与多线程技术结合的软件设计方案,实现了真值测量模块与合作目标模块各部分的功能,针对嵌入式标校系统的进程多和进程间通信数据格式单一的特点,通过消息传递系统的方式完成进程间的通信,采用信号量机制完成进程间的同步,保证了系统软件的可靠运行。真值测量模块基于多线程技术完成标校系统授时同步功能和GPS数据采集功能。标校系统软件的设计与实现对着舰引导系统保障的常态化具有重要意义。
[1] 钟兴泉. 航母着舰引导系统标校方法研究[J]. 现代导航,2014(3):175-178.
[2] 周 巍,郝金明,徐兆磊,等. 基于无人机平台的测控设备精度鉴定系统[J]. 测绘通报,2013(6):16-18.
[3] 桑德一, 赵建军,杨立斌. 基于EMD和GPS的着舰引导系统雷达标校方法[J]. 计算机与数字工程,2014,42(10):1869-1874.
[4] 李代平. 软件工程[M]. 北京:冶金工业出版社,2002.
[5] 袁建平, 罗建军, 越晓奎. 卫星导航原理与应用[M]. 北京: 中国宇航出版社, 2009.
[6] 高成发, 胡伍生. 卫星导航定位原理与应用[M]. 北京: 人民交通出版社,2011.
[7] 胡 涛,张立新,蒙艳松. GPS和Galileo导航电文设计分析[J]. 电子设计工程,2013,21(22):84-87.
[8] 程晓畅,王跃科,潘仲明. 基于多线程的网络化数据采集系统软件设计[J].测控技术,2005,24(3):52-55.
[9] 杨 珂,宋国堃,赵世平. 基于多线程技术的测控系统软件设计[J]. 电子设计工程,2016,24(16):89-91.
[10] 李 勇. 一个多串口多线程数据采集系统软件的设计与实现[J]. 微计算机信息,2006,22(16):152-154.
[11] 陈丕龙,韩 焱. 基于GPS时钟同步的计时脉冲信号发生器设计[J]. 计算机测量与控制,2010,18(11):2675-2680.
[12] 刘 鹏,夏路易,冯 蓉. 基于ARM的GPS同步授时系统设计[J]. 电子设计工程, 2011,19(9):155-156.
[13] 邓 伟. 基于GPS时钟同步系统的实现与应用[D]. 北京:北京邮电大学,2015.
[14] 杜雪飞,成经平.多进程物流系统远程监控及关键技术[J].2003,4:88-90.
[15] 钟凡亮,严国萍.LabVIEW平台下的测试仪软件系统设计与实现[J]. 计算机与数字工程,2007,35(1):138-140.
[16] 汤小单,梁红兵. 计算机操作系统[M]. 西安:西安电子科技大学出版社,2007.
[17] 张福炎. 嵌入式系统开发技术[M]. 北京:高等教育出版社,2015.