,, ,
(1.海軍航空工程學院 201教研室,山東 煙臺 264001; 2.海軍航空工程學院 研究生管理大隊,山東 煙臺 264001;3.海軍航空工程學院 訓練部數(shù)字化校園辦公室,山東 煙臺 264001)
航母隨著服役時間的增加,船體變形、機械磨損以及外部撞擊等因素會導致系統(tǒng)設備的水平、方位零位發(fā)生變化,電器元器件的老化導致電器零位發(fā)生漂移,這些都會影響其將引導系統(tǒng)的精度,為保障艦載機的安全降落,對著艦引導系統(tǒng)的定期標校,是航母著艦引導系統(tǒng)安全可靠工作的重要保障。
無人機校飛作為一種標校方式,完成著艦引導系統(tǒng)下滑道檢查,是一種非常有效的標校方法[1-2],相比于直升機校飛,具有安全有效的優(yōu)點。但是校飛中標校模塊裝置較多,系統(tǒng)工作流程復雜,實時性高,標校系統(tǒng)模塊之間數(shù)據(jù)通信較多。因此,對標校系統(tǒng)進行模塊化分析、完成系統(tǒng)軟件設計具有重要意義。
著艦引導系統(tǒng)主要由著艦引導雷達、光學助降裝置、中線電視等設備組成。校飛系統(tǒng)組成框圖如圖1所示,對著艦引導系統(tǒng)設備的標校,需要對著艦引導系統(tǒng)設備提供合作目標,形成閉環(huán)的標?;芈?,完成著艦引導系統(tǒng)設備的測量工作,中線電視標定裝置與雷達應答機作為合作目標,完成中線電視與著艦引導雷達的測量工作,對于光學助降裝置,為了形成閉環(huán)的標?;芈罚瑯诵O到y(tǒng)通過光學標定攝像頭拍攝艦載機著艦時光學助降裝置的光學信息并且存儲,也可將光學標定攝像頭作為合作目標分析處理。標校系統(tǒng)自身需要獲取約定真值(以下簡稱真值),將著艦引導系統(tǒng)設備的測量數(shù)據(jù)和真值進行比對,從而對著艦引導系統(tǒng)設備進行標定。整個系統(tǒng)需要在處理器的統(tǒng)一協(xié)同控制下工作。設備標校過程中,真值測量設備與其它測量設備需在統(tǒng)一的時間系統(tǒng)下工作。
圖1 校飛系統(tǒng)組成框圖
標校系統(tǒng)嵌入式裝置中,真值測量設備采用基于載波相位事后差分相對定位技術的GPS設備[3],艦上的理想著艦點和校飛無人機上分別采集GPS的原始測量數(shù)據(jù)和NMEA0183格式的衛(wèi)星數(shù)據(jù)并存儲,事后差分能夠提供厘米級的定位精度,同時處理器根據(jù)GPS設備提供GPS秒脈沖和對應的UTC標準時間,完成系統(tǒng)的授時同步功能。電視標定裝置采用燈光源作為合作目標,光學標定攝像頭在標校系統(tǒng)軟件的統(tǒng)一控制下完成光學助降裝置的圖像信息采集功能,燈光源與雷達應答機只需加電開機即可工作,同時無人機上需安裝姿態(tài)傳感器采集無人機的姿態(tài)信息,所有測量設備在系統(tǒng)的統(tǒng)一控制下完成采集功能。
標校系統(tǒng)的軟件體系結構采用模塊化的設計原理[4],軟件體系由真值測量模塊、授時同步模塊和測量信息采集模塊組成。真值測量模塊完成GPS信息的采集和存儲功能[5-6],將GPS原始測量數(shù)據(jù)與NMEA0183信息存儲至文件中,以事后處理數(shù)據(jù),其中NMEA0183信息包含秒脈沖對應的UTC標準時間[7],同時處理器還需時刻監(jiān)聽GPS設備輸出的秒脈沖信息,因此本文設計一種多線程機制來完成真值測量模塊的有關功能[8-10]。授時同步模塊根據(jù)GPS秒脈沖與秒脈沖對應的UTC標準時間完成系統(tǒng)的授時功能[11-13],同時根據(jù)真值測量模塊提供的秒脈沖信息和標校的需求采用芯片內部的定時器完成測量信息采集模塊各進程的時間片分配功能,測量信息采集模塊根據(jù)系統(tǒng)分配的時間片完成測量信息的采集并用特定的格式和方式存儲在統(tǒng)一時間系統(tǒng)工作下的各個模塊采集的數(shù)據(jù)以事后處理數(shù)據(jù)。系統(tǒng)的設備較多,采用開發(fā)的操作系統(tǒng)需有很好的設備管理能力。采用模塊化設計方法的軟件系統(tǒng)總體結構圖如圖2所示。
圖2 軟件系統(tǒng)總體結構圖
本文的設計基于LINUX操作系統(tǒng),具有較好的設備管理、進程(線程)管理、作業(yè)管理以及定時計數(shù)功能,能夠完成系統(tǒng)軟件設計。CPU采用ARMV8處理器,是ARM公司首推的支持64位指令集的處理器,同時也支持32位的指令。
標校系統(tǒng)模塊多,實時性要求高,模塊之間通信多,需要對各模塊的程序加以管理和控制,各模塊的程序需要并發(fā)執(zhí)行,本文設計了一種基于多進程技術的解決方案[14-17]。標校系統(tǒng)主要由GPS信息采集進程、授時進程、同步信號產(chǎn)生進程、圖像采集壓縮存儲進程、姿態(tài)信息采集存儲進程組成。各進程并發(fā)執(zhí)行,但進程之間需要進行通信,本文采用消息傳遞系統(tǒng)的進程通信方式來完成各進程之間的通信,傳遞消息系統(tǒng)方式是當今進程間最為廣泛應用的通信機制,它能夠很好的支持多處理機系統(tǒng)和分布式系統(tǒng),采用這種方式時,進程之間的通信是以格式化的數(shù)據(jù)為單位進行傳遞,適合進程之間通信數(shù)據(jù)量大且格式單一的通信方式。嵌入式標校系統(tǒng)模塊多,且通信的數(shù)據(jù)都被處理器格式化處理,通信數(shù)據(jù)格式單一,適合采用消息傳遞系統(tǒng)的方式完成進程之間的通信,因此,各進程通信方式上采用消息傳遞系統(tǒng)的方式完成各進程間的通信。
軟件系統(tǒng)的各進程并發(fā)執(zhí)行,雖然提高了嵌入式標校系統(tǒng)的時間和空間效率,但各個進程之間有制約關系,需要采用進程同步技術來保證系統(tǒng)的可靠運行。嵌入式標校系統(tǒng)組成復雜,設備多,系統(tǒng)產(chǎn)生的數(shù)據(jù)量多,且存儲空間有限,處理器的任務繁重,需要一種高效率低空間開銷的方式完成進程間的同步機制,保證標校系統(tǒng)的可靠運行。本文采用信號量機制來完成進程間的同步功能,采用信號量機制實現(xiàn)進程互斥時,方式簡單,只需占有少量的系統(tǒng)空間便可保證各個進程對臨界資源的共享。標校系統(tǒng)的各進程關系和進程之間通信的結構圖如圖3所示。
圖3 系統(tǒng)進程結構圖
3.1.1 授時進程
嵌入式標校系統(tǒng)的各個模塊需要在統(tǒng)一的時間系統(tǒng)下工作,授時進程完成系統(tǒng)的授時功能。GPS信息采集進程采集3種信息,GPS秒脈沖、原始測量數(shù)據(jù)和NMEA0183格式信息。GPS秒脈沖是每秒輸出的脈沖信號,高電平有效,是系統(tǒng)授時與同步的重要時間標準,NMEA0183信息包含秒脈沖對應的UTC標準時間。當GPS信息采集進程采集到GPS秒脈沖時,喚醒授時進程,授時進程根據(jù)GPS信息采集進程采集的NMEA0183信息提取UTC標準時間與本地LINUX系統(tǒng)內核時間進行對比,得出時鐘偏差并對本地時鐘進行校正。最終使本地時鐘與UTC標準時間一致,
3.1.2 同步信號產(chǎn)生進程與進程同步
根據(jù)著艦引導系統(tǒng)標校的工作要求,產(chǎn)生同步信號同步系統(tǒng)的工作是同步信號產(chǎn)生進程的主要工作,本系統(tǒng)的工作頻率為5 Hz,則需每200 ms產(chǎn)生一個同步信號,同步系統(tǒng)的工作。同步信號產(chǎn)生需要利用ARM芯片的PWM脈寬調制定時計數(shù)器的定時功能,當GPS信息采集進程采集到GPS秒脈沖信號后,喚醒同步信號產(chǎn)生進程,同步信號產(chǎn)生進程查詢授時進程是否完成授時功能,如完成則啟動PWM的定時功能,200 ms計時完成后,產(chǎn)生中斷,處理器發(fā)控制命令啟動測量模塊有關進程完成測量信息采集工作。
授時進程與同步信號產(chǎn)生進程有制約關系,根據(jù)對嵌入式標校系統(tǒng)的分析,只有授時功能完成時,軟件系統(tǒng)才能啟動同步信號產(chǎn)生進程。為防止進程異步造成的混亂,需要采用進程同步技術來控制并發(fā)執(zhí)行的程序。根據(jù)方案設計,采用信號量機制實現(xiàn)進程間的互斥,完成進程同步機制。本文設立信號量lock,初始化lock=0,作為兩個進程之間的臨界資源,當授時功能完成時,執(zhí)行以下代碼,
lock = Lock()
if lock.acquire() : //如對信號量加鎖
lock=lock+1
lock.release()//對信號量釋放鎖
當同步進程開始查詢授時功能是否完成時,如完成啟動PWM脈寬調制定時計數(shù)器,主要代碼:
if lock.acquire() : //如對信號量加鎖
if lock>0://如果完成授時功能
lock=lock-1
PWM.start()//啟動定時器
lock.release()//釋放鎖
3.1.3 測量模塊有關進程
測量模塊有關進程包括圖像信息采集壓縮存儲等進程和姿態(tài)信息采集存儲等進程,各進程在統(tǒng)一的時間系統(tǒng)下同步工作,為事后能夠處理數(shù)據(jù),本文設計了一種特定格式圖4所示,將采集的圖像壓縮為JPG格式后用設計特定格式數(shù)據(jù)命名,同時將設計的特定格式作為采集的姿態(tài)信息的幀頭。
圖4 存儲格式圖
前6個字節(jié)代表經(jīng)過GPS授時后系統(tǒng)的時間,后兩個字節(jié)代表此時統(tǒng)下采集的信息的序列。8個字節(jié)的特殊格式數(shù)據(jù)作為圖像信息和姿態(tài)傳感數(shù)據(jù)的幀頭。實驗中,系統(tǒng)的工作頻率為5 Hz,通過對合作目標模塊采集的信息進行處理按照特定的格式存儲在嵌入式標校系統(tǒng)的SD卡中,事后傳輸至數(shù)據(jù)處理單元,將GPS模塊的
系統(tǒng)軟件設計中,真值測量模塊需要時刻監(jiān)聽GPS秒脈沖信號并啟動授時同步進程,同時需要不斷接收NMEA0183格式信息與GPS原始測量數(shù)據(jù)存儲至文件中,以事后處理。為實現(xiàn)系統(tǒng)實時多任務的需求并保證系統(tǒng)可靠運行,本文設計一種多線程機制來完成真值測量模塊的功能[8,16]。
真值測量模塊主要有串口讀寫線程和監(jiān)聽秒脈沖線程組成。為管理這兩個子線程,創(chuàng)建線程數(shù)組,將串口讀寫線程與監(jiān)聽GPS秒脈沖線程加入線程數(shù)組中,并將兩個子線程聲明為守護線程,否則會被無限掛起。程序運行時,同時啟動兩個線程, 程序代碼主要有
threads=[] //創(chuàng)建線程數(shù)組
t1=threading.Thread(target=readgps,args=(u'ss',))//創(chuàng)建線程t1
threads.append(t1) //將讀取衛(wèi)星數(shù)
//據(jù)函數(shù)加入線程數(shù)組中。
t2=threading.Thread(target=pps,args=(u'ss',)) //創(chuàng)
//建線程t2
threads.append(t2) //將監(jiān)聽GPS秒脈沖函數(shù)//加//入線程數(shù)組中
for t in threads: //遍歷線程數(shù)組
t.setDaemon(True)//將線程聲明為守護
//線程
t.start()
t.join()//等待子線程終止
f.close()//關閉文件操作
為檢驗軟件系統(tǒng)的設計方案,在前期搭建的嵌入式標校系統(tǒng)的硬件平臺上根據(jù)本文的方案設計編寫軟件系統(tǒng),其中授時同步進程主要采用基于多線程技術完成系統(tǒng)的授時同步功能,軟件系統(tǒng)的多線程包括監(jiān)聽GPS秒脈沖線程和讀寫線程,兩個線程同時工作,共同完成授時同步進程的有關功能,實驗每監(jiān)聽一次GPS秒脈沖測量嵌入式標校系統(tǒng)的時鐘與UTC標準時間的偏差,最終測量的時鐘偏差結果如表1所示。
表1 時間偏差量監(jiān)聽次數(shù)
在完成授時同步功能的同時,系統(tǒng)需要采集GPS原始測量數(shù)據(jù)與NMEA0183格式數(shù)據(jù)存儲,以事后差分處理得出無人機的精確飛行軌跡,采集的GPS原始測量數(shù)據(jù)與NMEA0183格式數(shù)據(jù)如圖5所示。
圖5 系統(tǒng)采集GPS數(shù)據(jù)實驗結果
通過實驗結果分析得出: (1)隨著基于多線程技術設計的系統(tǒng)軟件中授時同步進程的運行,最終使得系統(tǒng)時鐘與衛(wèi)星上的UTC標準時間一致,使得嵌入式標校系統(tǒng)各個模塊在統(tǒng)一的時間系統(tǒng)下可靠工作運行并完成標校系統(tǒng)的授時功能。(2) 系統(tǒng)在完成采集GPS秒脈沖的同時采集GPS原始測量數(shù)據(jù)和NMEA0183格式數(shù)據(jù)并存儲,因此,嵌入式標校系統(tǒng)基于多線程模塊設計的系統(tǒng)軟件能夠滿足著艦引導系統(tǒng)標校的功能需求。
基于多進程技術設計的軟件系統(tǒng)采集的姿態(tài)傳感器數(shù)據(jù)與圖像信息經(jīng)本文設計的系統(tǒng)軟件處理后如圖6所示。
圖6 測量信息采集模塊實驗結果圖
實驗結果表明:測量信息采集模塊有關進程在統(tǒng)一的時間系統(tǒng)下同步工作,能夠按照筆者設計要求正確完成測量模塊的任務,各個進程在采用信號量機制解決進程同步問題后能夠保證各個進程的并發(fā)執(zhí)行和穩(wěn)定工作,通過消息傳遞系統(tǒng)的方式能夠完成各進程之間的通信功能,各進程采集的數(shù)據(jù)能夠按照本文設計的格式存儲以事后處理數(shù)據(jù),進而能夠按照標校系統(tǒng)的需求完成合作目標模塊和姿態(tài)傳感器的數(shù)據(jù)采集和處理功能。
本文針對基于無人機的標校系統(tǒng)硬件裝置的工作情況,通過模塊化的軟件設計原理對標校系統(tǒng)進行分析后,提出了基于多進程與多線程技術結合的軟件設計方案,實現(xiàn)了真值測量模塊與合作目標模塊各部分的功能,針對嵌入式標校系統(tǒng)的進程多和進程間通信數(shù)據(jù)格式單一的特點,通過消息傳遞系統(tǒng)的方式完成進程間的通信,采用信號量機制完成進程間的同步,保證了系統(tǒng)軟件的可靠運行。真值測量模塊基于多線程技術完成標校系統(tǒng)授時同步功能和GPS數(shù)據(jù)采集功能。標校系統(tǒng)軟件的設計與實現(xiàn)對著艦引導系統(tǒng)保障的常態(tài)化具有重要意義。
[1] 鐘興泉. 航母著艦引導系統(tǒng)標校方法研究[J]. 現(xiàn)代導航,2014(3):175-178.
[2] 周 巍,郝金明,徐兆磊,等. 基于無人機平臺的測控設備精度鑒定系統(tǒng)[J]. 測繪通報,2013(6):16-18.
[3] 桑德一, 趙建軍,楊立斌. 基于EMD和GPS的著艦引導系統(tǒng)雷達標校方法[J]. 計算機與數(shù)字工程,2014,42(10):1869-1874.
[4] 李代平. 軟件工程[M]. 北京:冶金工業(yè)出版社,2002.
[5] 袁建平, 羅建軍, 越曉奎. 衛(wèi)星導航原理與應用[M]. 北京: 中國宇航出版社, 2009.
[6] 高成發(fā), 胡伍生. 衛(wèi)星導航定位原理與應用[M]. 北京: 人民交通出版社,2011.
[7] 胡 濤,張立新,蒙艷松. GPS和Galileo導航電文設計分析[J]. 電子設計工程,2013,21(22):84-87.
[8] 程曉暢,王躍科,潘仲明. 基于多線程的網(wǎng)絡化數(shù)據(jù)采集系統(tǒng)軟件設計[J].測控技術,2005,24(3):52-55.
[9] 楊 珂,宋國堃,趙世平. 基于多線程技術的測控系統(tǒng)軟件設計[J]. 電子設計工程,2016,24(16):89-91.
[10] 李 勇. 一個多串口多線程數(shù)據(jù)采集系統(tǒng)軟件的設計與實現(xiàn)[J]. 微計算機信息,2006,22(16):152-154.
[11] 陳丕龍,韓 焱. 基于GPS時鐘同步的計時脈沖信號發(fā)生器設計[J]. 計算機測量與控制,2010,18(11):2675-2680.
[12] 劉 鵬,夏路易,馮 蓉. 基于ARM的GPS同步授時系統(tǒng)設計[J]. 電子設計工程, 2011,19(9):155-156.
[13] 鄧 偉. 基于GPS時鐘同步系統(tǒng)的實現(xiàn)與應用[D]. 北京:北京郵電大學,2015.
[14] 杜雪飛,成經(jīng)平.多進程物流系統(tǒng)遠程監(jiān)控及關鍵技術[J].2003,4:88-90.
[15] 鐘凡亮,嚴國萍.LabVIEW平臺下的測試儀軟件系統(tǒng)設計與實現(xiàn)[J]. 計算機與數(shù)字工程,2007,35(1):138-140.
[16] 湯小單,梁紅兵. 計算機操作系統(tǒng)[M]. 西安:西安電子科技大學出版社,2007.
[17] 張福炎. 嵌入式系統(tǒng)開發(fā)技術[M]. 北京:高等教育出版社,2015.