張兵強(qiáng),徐濤,朱子強(qiáng)
(海軍航空大學(xué)信息融合研究所,山東煙臺 264001)
對于大型分布式仿真系統(tǒng),時序同步和時間管理是實(shí)現(xiàn)正確仿真邏輯的關(guān)鍵和難點(diǎn),尤其對組網(wǎng)條件下的飛行模擬訓(xùn)練實(shí)時仿真系統(tǒng)來說,必須保證各仿真節(jié)點(diǎn)計算時序的同步性和時間的一致性,才能實(shí)現(xiàn)各仿真模型的正確交互和同步推進(jìn),避免諸如大機(jī)動飛行條件下視景圖像或目標(biāo)顯示抖動等問題[1-3]。
目前,為了解決各仿真節(jié)點(diǎn)的同步推進(jìn),主要有3 種解決方案:一是軟件同步方法,完全利用軟件完成分布式仿真系統(tǒng)中各時鐘的同步[4-6],但這種軟件進(jìn)行同步的工作量很大,且節(jié)點(diǎn)間的同步偏差容易積累,更重要的是,同步信息在廣域網(wǎng)上傳輸時延遲大,且有很大的不確定性,這會使軟件同步的效果不理想;二是硬件同步方法,硬件同步往往是借助于全球?qū)Ш叫l(wèi)星系統(tǒng)(Global Navigation Satellite System,GNSS)來實(shí)現(xiàn),通常根據(jù)實(shí)時性約束條件選擇以太網(wǎng)、反射內(nèi)存網(wǎng)或PTP 協(xié)議來發(fā)送時序信號實(shí)現(xiàn)同步功能[7-9],基于以太網(wǎng)的同步同樣存在時延的不確定性,而基于反射內(nèi)存網(wǎng)或者PTP 協(xié)議的同步則存在硬件成本較高的缺點(diǎn);三是分層式混合的同步方法[10],采用硬件和軟件同步一起工作來實(shí)現(xiàn)節(jié)點(diǎn)間的時鐘同步,即選擇某一個節(jié)點(diǎn)作為時間管理主機(jī),并在時間管理主機(jī)上引入一個GNSS 接收機(jī),在不同局域網(wǎng)中的時間管理主機(jī)就可以通過GNSS 的時間信號實(shí)現(xiàn)同步,在每一個局域網(wǎng)內(nèi)部,各節(jié)點(diǎn)通過軟件實(shí)現(xiàn)與該局域網(wǎng)中的時間管理主機(jī)同步。
文獻(xiàn)[5]就是通過未引入GNSS 接收機(jī)的心跳服務(wù)器向各仿真節(jié)點(diǎn)發(fā)送同步信息,存在的主要缺點(diǎn)是同步信息延遲的不確定性,不適合組網(wǎng)條件下大型分布式仿真系統(tǒng)的同步控制。
該文則采用基于GNSS 的硬件同步方法,利用U-BLOX 公司的LEA-M8T 精密授時模塊和DIGI 公司的RCM6700 處理器模塊,設(shè)計實(shí)現(xiàn)了觸發(fā)頻率可調(diào)的多串口輸出同步控制系統(tǒng)。通過分布式仿真系統(tǒng)中的各仿真節(jié)點(diǎn)計算機(jī)的串行通訊端口引入同源、高精度的周期性時序觸發(fā)信號,來驅(qū)動各仿真節(jié)點(diǎn)的同步仿真計算,克服通過以太網(wǎng)進(jìn)行同步的時延不確定性,并且不需要各仿真節(jié)點(diǎn)計算機(jī)安裝專門的同步硬件板卡,支持異地組網(wǎng)條件下大型分布式仿真系統(tǒng)的同步計算和校時控制。
為了滿足大型分布式仿真系統(tǒng)對仿真周期和時戳一致性的要求,并支持異地的仿真系統(tǒng)進(jìn)行組網(wǎng)模擬訓(xùn)練,利用導(dǎo)航衛(wèi)星的異地時鐘高度同步的特性[11],根據(jù)GPS 或北斗導(dǎo)航衛(wèi)星發(fā)送的時鐘數(shù)據(jù)塊和載波信號,結(jié)合GNSS 精密授時模塊輸出的高精度秒脈沖,來獲得異地分布式仿真系統(tǒng)間具有高度一致性的同步時鐘和仿真時序觸發(fā)信號。
同步控制系統(tǒng)通過多個串口輸出多路同步仿真時序觸發(fā)信號,并提供基于衛(wèi)星時間的網(wǎng)絡(luò)授時和PPS 觸發(fā)下的串口精確授時。
有別于文獻(xiàn)[7]中通過專門定制的PCI 定時卡進(jìn)行計算機(jī)的同步,該文則通過仿真節(jié)點(diǎn)計算機(jī)RS-232C 串 口 的CTS(Clear To Send)、DSR(Data Send Ready)或RLSD(Received Line Signal Detector)管腳直接接收同步仿真時序觸發(fā)信號,在信號的上升沿和下降沿產(chǎn)生高優(yōu)先級中斷觸發(fā)事件,以實(shí)現(xiàn)同步觸發(fā)的周期性仿真解算。
同時,同步控制系統(tǒng)能夠接收外部的觸發(fā)信號,并具有主從工作模式,實(shí)現(xiàn)同步控制系統(tǒng)的級聯(lián)。整個同步控制系統(tǒng)的連接方案如圖1 所示。采用網(wǎng)口的形式進(jìn)行同步信號的傳送。
圖1 同步控制系統(tǒng)的連接方案
為了滿足分布式仿真對時鐘同步和時間管理的要求,同時兼顧視景仿真系統(tǒng)的刷新率,設(shè)計的同步控制系統(tǒng)具有如下功能:
1)輸出RS-232C 同步計算信號
依據(jù)衛(wèi)星系統(tǒng)、外同步、主控制器或微處理器內(nèi)部的定時器等多種同步源產(chǎn)生同步計算信號,并通過8 個同步口輸出給計算機(jī)串口,上位機(jī)通過串口事件觸發(fā)來實(shí)現(xiàn)周期性仿真計算。
2)輸出TTL 同步信號
通過TTL 同步輸出接口將同步信號輸出給專業(yè)顯卡的同步子卡,實(shí)現(xiàn)仿真計算與視頻刷新的同步。
3)支持外同步輸入源的觸發(fā)
支持視景仿真系統(tǒng)中專業(yè)顯卡同步子卡輸出的同步信號或VGA 幀同步(即垂直同步)信號等同步信號輸入源的觸發(fā),從而基于外同步輸入產(chǎn)生同步計算信號。
4)網(wǎng)絡(luò)授時和串口授時
基于衛(wèi)星時間或者控制器的本地時間,可以通過網(wǎng)絡(luò)或串口提供授時時間間隔可調(diào)的周期性授時服務(wù)。同時,可以作為NTP 授時服務(wù)器,提供滿足NTP 標(biāo)準(zhǔn)的計算機(jī)授時服務(wù)。
5)多衛(wèi)星系統(tǒng)同步
支持北斗、北斗&GPS 衛(wèi)星導(dǎo)航系統(tǒng)提供的定位和授時服務(wù),提供了3 種時間模式下的時間脈沖生成。
6)級聯(lián)同步功能
控制器具有級聯(lián)同步功能,可以將一個控制器產(chǎn)生的同步信號輸出給其他的控制器,實(shí)現(xiàn)多臺計算機(jī)同步仿真計算。
7)遠(yuǎn)程網(wǎng)絡(luò)管理功能
支持基于網(wǎng)絡(luò)的配置管理,方便對局域網(wǎng)內(nèi)的多臺控制器進(jìn)行跨網(wǎng)段的集中式配置管理。
同步控制系統(tǒng)的電路結(jié)構(gòu)劃分如圖2 所示,主要包括GNSS 模塊、微處理器模塊、同步信號選擇模塊、同步信號輸出模塊、外同步信號調(diào)理模塊、級聯(lián)模塊、網(wǎng)絡(luò)通信模塊、工作模式配置模塊、編程模塊和電源模塊等。
圖2 同步控制系統(tǒng)電路結(jié)構(gòu)劃分
GNSS 模塊能夠輸出兩路頻率和占空比可調(diào)的高精度同步信號——秒脈沖信號TP1 和衛(wèi)星同步信號TP2,其中TP1 作為串口授時數(shù)據(jù)的基準(zhǔn)脈沖,其上升沿為串口授時數(shù)據(jù)對應(yīng)的時刻,TP2 為正負(fù)頻寬相等的方波信號,正負(fù)頻寬對應(yīng)仿真解算的周期,上升和下降沿均觸發(fā)上位機(jī)的中斷事件。GNSS 模塊輸出的授時數(shù)據(jù)通過串口D 發(fā)送到微處理器模塊,同時微處理器模塊也通過串口D 對GNSS 模塊進(jìn)行設(shè)置和狀態(tài)查詢。
微處理器模塊是整個同步系統(tǒng)的控制核心,在衛(wèi)星同步信號TP2、外同步信號或從同步信號中斷時,能夠通過內(nèi)部定時器產(chǎn)生與仿真周期對應(yīng)的自同步信號,并控制同步信號選擇模塊的輸出。同時,該模塊還完成授時數(shù)據(jù)的UDP 組播或滿足NTP 標(biāo)準(zhǔn)的網(wǎng)絡(luò)時間同步,完成遠(yuǎn)程網(wǎng)絡(luò)管理功能。
同步信號選擇模塊則根據(jù)工作模式配置和上位機(jī)的網(wǎng)絡(luò)管理,完成衛(wèi)星同步、從同步、外同步和定時同步4 種同步信號的四選一輸出。同步信號輸出模塊負(fù)責(zé)完成串口C 輸出授時數(shù)據(jù)和選中同步信號的邏輯電平轉(zhuǎn)換。級聯(lián)模塊完成主同步控制器和從同步控制器的RS-485 同步信號和授時數(shù)據(jù)的收發(fā)。外同步調(diào)理模塊則用于外部脈沖觸發(fā)式或邊沿觸發(fā)式同步信號的接收和調(diào)理。
另外,微處理器模塊通過串口A 與編程模塊完成嵌入式程序的調(diào)試和下載。網(wǎng)絡(luò)通信模塊完成網(wǎng)絡(luò)信號的隔離變壓和信號濾波處理。工作模式配置模塊則決定控制器工作是主同步模式還是從同步模式。電源模塊為整個同步控制器提供穩(wěn)定的3.3 V供電。
飛行訓(xùn)練模擬器是人在回路的分布式仿真系統(tǒng),其仿真周期一般在10 ms 左右,模擬機(jī)傳輸延遲要求小于100 ms,時序觸發(fā)信號的同步精度小于1 ms可滿足要求[7]。因此,為了實(shí)現(xiàn)異地組網(wǎng)條件下的分布式仿真同步時鐘,采用了瑞士U-BLOX 公司的LEA-M8T 精密授時模塊。
LEA-M8T 能夠產(chǎn)生精確度小于20 ns 的精密參考時鐘,該參考時鐘同步于GPS、GLONASS 和北斗等全球?qū)Ш叫l(wèi)星系統(tǒng);其接收器具有高靈敏度,即使在視野受限的建筑物內(nèi)也能夠快速啟動,符合分布式仿真系統(tǒng)一般位于室內(nèi)的要求;同時,該模塊可提供兩個時間脈沖輸出,其配置范圍從0.25 Hz到10 MHz,并滿足對可靠性、精確度及低功耗的嚴(yán)格要求,還能輸出multi-GNSS RAW 數(shù)據(jù),包括載波相位、碼相位以及偽距[12-15]。
針對分布式仿真同步系統(tǒng)結(jié)構(gòu)設(shè)計中需要輸出TP1和TP2兩個高精度同步信號以及串口數(shù)據(jù)的傳輸要求,設(shè)計的GNSS同步時序模塊電路如圖3所示。
圖3 GNSS同步時序模塊
LEA-M8T 的TIMEPULSE 和TP2 兩 個同步信號分別經(jīng)過超高速三態(tài)緩沖器輸出,以提高其驅(qū)動能力。RXD_GNSS 和TXD_GNSS 是LEA-M8T 的串行數(shù)據(jù)收發(fā)接口,連接到微處理器模塊的串口D。VCC_RF、V_ANT 和ANT_DET_N 3 個管腳用于檢測衛(wèi)星天線是否開路,其連接的電路如圖4 所示。
微處理器控制模塊需要具有多個串口與外圍芯片進(jìn)行通信,并具有網(wǎng)絡(luò)通信功能,考慮到同步控制系統(tǒng)的可靠性和快速部署,因此,選用了DIGI 公司的RCM6700 以太網(wǎng)模塊作為控制核心。
圖4 衛(wèi)星天線開路檢測電路
RCM6700 以太網(wǎng)模塊采用Rabbit6000 高性能微處理器,其主頻高達(dá)200 MHz,內(nèi)部集成了豐富的硬件資源,包括6 個CMOS 兼容的串口A~F、10/100M 以太網(wǎng)接口、內(nèi)部定時器A~C、輸入捕獲、多達(dá)35 條通用輸入/輸出線、具有1 MB 的SRAM 和1 MB 的串行閃存(serial flash),使其廣泛地應(yīng)用于工業(yè)控制和物聯(lián)網(wǎng)領(lǐng)域[16]。
微處理器模塊的接口如圖5 所示。微處理器模塊的PC0 和PC1 管腳配置為串口D 與GNSS 模塊進(jìn)行通信,PC2 和PC3 管腳配置為串口C 與級聯(lián)模塊和同步信號輸出模塊進(jìn)行通信,PC6 和PC7 作為串口A與編程模塊進(jìn)行通信;微處理器模塊通過管腳PE0輸出內(nèi)部定時器產(chǎn)生的自同步信號,通過PD1 的外部中斷檢測TP1 輸出的衛(wèi)星同步信號頻率,通過PE5輸入捕獲1 管腳測量外部同步信號的頻率,通過PD3輸入捕獲2 管腳測量級聯(lián)信號的頻率;微處理器模塊的以太網(wǎng)連接的管腳是TX+、TX-、RX+和RX-,以太網(wǎng)連接狀態(tài)信號等由LNK 和PE3 控制。
圖5 RCM6700微處理器模塊接口
同步控制系統(tǒng)除了能夠根據(jù)同步衛(wèi)星信號輸出仿真計算時序外,還能夠根據(jù)外部輸入的脈沖產(chǎn)生同步計算時序。輸入的外同步信號一般是脈沖觸發(fā)式或邊沿觸發(fā)式的同步信號,因此,采用D 觸發(fā)器74HC74 完成外同步信號的接收和調(diào)理,電路如圖6所示。
圖6 外同步信號調(diào)理模塊電路
同步控制系統(tǒng)能夠?qū)⑿l(wèi)星同步信號TP1OUT、從同步信號RX_485、外同步信號ExtSynSigIN 和定時自同步輸出TimerC0 進(jìn)行四選一輸出,電路如圖7 所示,采用了四選一數(shù)據(jù)選擇器74HC153 來實(shí)現(xiàn)。
圖7 同步信號選擇電路
選中輸出的同步信號和輸出的授時數(shù)據(jù)通過多個MAX3232E 串口收發(fā)器轉(zhuǎn)換為RS-232C 電平輸出,如圖8 所示。
圖8 同步信號輸出電路
特別需要注意的是各種類型的同步信號不僅送到微處理器模塊進(jìn)行監(jiān)測和頻率測量,還直接通過選擇和電平轉(zhuǎn)換電路后輸出,以降低同步信號的處理延遲。
分布式仿真中通常具有多個節(jié)點(diǎn)計算機(jī)需要進(jìn)行同步計算,而一個同步控制器因空間限制,僅設(shè)計了8 個RS-232C 串口同步信號輸出,因此,采用主同步控制器和從同步控制器進(jìn)行RS-485 級聯(lián)的方式實(shí)現(xiàn)對更多節(jié)點(diǎn)的同步時序輸出,級聯(lián)方式如圖9所示。
圖9 主從同步控制器級聯(lián)示意圖
主從同步控制級聯(lián)采用RS-485 差分信號,以實(shí)現(xiàn)遠(yuǎn)距離傳輸和抗干擾的能力,選用了MAX3073E收發(fā)器芯片實(shí)現(xiàn)同步信號、秒脈沖信號和授時數(shù)據(jù)的級聯(lián),電路如圖10 所示。
圖10 主從同步控制級聯(lián)電路
除了上述的主要模塊電路外,同步控制系統(tǒng)還有FT232 芯片實(shí)現(xiàn)的串口編程電路、以太網(wǎng)接口電路和3.3 V供電電路等,共同確保了系統(tǒng)的正常運(yùn)行。
同步控制系統(tǒng)的微處理器嵌入式程序采用Dynamic C 編譯環(huán)境設(shè)計和實(shí)現(xiàn),軟件主要實(shí)現(xiàn)微處理器的初始配置、串口通信、網(wǎng)絡(luò)管理、網(wǎng)絡(luò)組播、NTP 授時,輸入衛(wèi)星同步信號、級聯(lián)信號和外同步信號的監(jiān)測和頻率測量,定時器自同步輸出以及工作模式切換等功能。軟件的處理流程如圖11 所示。
系統(tǒng)初始化主要完成通用I/O 管腳的設(shè)置,定時器和輸入捕獲的配置,LEA-M8T 模塊狀態(tài)的查詢和設(shè)置,串口通信的配置和網(wǎng)絡(luò)通信的初始化等。初始化完成后通過主循環(huán)調(diào)用loophead()和tcp_tick()函數(shù)進(jìn)行costate 類型語句和網(wǎng)絡(luò)數(shù)據(jù)處理。
圖11 同步控制系統(tǒng)的軟件處理流程
主循環(huán)中會監(jiān)聽網(wǎng)絡(luò)配置管理數(shù)據(jù),若收到上位機(jī)的配置管理數(shù)據(jù),則進(jìn)行衛(wèi)星同步、外同步、從同步和定時同步等模式的切換。處理器讀取LEAM8T 模塊在串口D 上發(fā)送的串口數(shù)據(jù),并解析出UTC 時間與本地時鐘進(jìn)行校對。微處理器會根據(jù)是否允許串口授時、網(wǎng)絡(luò)授時和NTP 授時,發(fā)送不同形式的授時數(shù)據(jù)。
最關(guān)鍵的是微處理器軟件需要通過外部中斷、輸入捕獲1 和輸入捕獲2 完成衛(wèi)星同步、外同步和從同步信號的監(jiān)測和頻率測量。若連續(xù)3 次檢測不到上述同步信號,則自動切換為定時同步模式,并輸出與丟失同步信號頻率一致的定時同步信號。若連續(xù)3 次測量到丟失的同步信號并且信號頻率一致,則自動切換為該同步信號并記錄信號的頻率值。
示波器測試了基于GNSS 同步控制系統(tǒng)輸出的信號波形和延遲性,對衛(wèi)星同步觸發(fā)、VGA 幀信號觸發(fā)和主從級聯(lián)等情況下輸出RS-232C 信號的同步性進(jìn)行了測試。
采用兩套相同硬件的同步控制系統(tǒng),分別通過不同的天線接收導(dǎo)航衛(wèi)星信號,均產(chǎn)生占空比為50%的50 Hz 同步信號(對應(yīng)于100 Hz 雙邊沿觸發(fā)的同步仿真計算),通過串口輸出RS-232C 同步信號,在衛(wèi)星跟蹤鎖定后,用示波器測量的兩路同步信號波形上升沿一致性如圖12 所示。
圖12 衛(wèi)星同步輸出信號的觸發(fā)邊沿
由圖12 可以測量出兩個衛(wèi)星同步輸出的RS-232C 信號的觸發(fā)邊沿誤差小于100 ns,具有較高的同步精度和一致性。對于異地的衛(wèi)星同步來說,導(dǎo)航衛(wèi)星的精確授時特性同樣能夠確保較高的同步精度,滿足分布式仿真中對同步時鐘和仿真時序一致性的要求。
圖13 所示為測量的衛(wèi)星同步串口授時波形,通道1 是衛(wèi)星輸出的PPS 信號,其占空比也設(shè)置為50%,通道2 是串口授時數(shù)據(jù)。因?yàn)镽S-232C 串口的負(fù)邏輯表示特性,所以在測量PPS 信號的下降沿約100 ms 之后收到串口授時數(shù)據(jù)。
同步控制系統(tǒng)的外同步信號輸入源為VGA 的幀信號,測量在VGA 幀信號觸發(fā)下的輸出信號同步波形和延遲特性,測量結(jié)果如圖14 所示。
圖13 衛(wèi)星同步串口授時波形
圖14 外同步信號輸入測試
通道1是VGA 幀信號上升沿,通道2是在VGA 幀信號觸發(fā)下的輸出串口同步信號??煽闯?,輸出的串口同步信號在每次VGA 幀信號觸發(fā)下發(fā)生一次翻轉(zhuǎn),并相對于VGA幀信號的上升沿延遲約300 ns。因此,可將視景仿真系統(tǒng)輸出的視頻幀信號作為外同步輸入,實(shí)現(xiàn)視景圖像的刷新周期與仿真解算周期的同步。
測試主同步控制器與從同步控制器級聯(lián)之后,輸出的串口同步信號延遲特性。主從同步控制器通過10 m 的級聯(lián)線纜連接,測試的同步信號邊沿一致性如圖15 所示。
圖15 主從同步延遲測試
可以看出,主從同步控制器輸出的串口同步信號的觸發(fā)邊沿誤差小于600 ns,多級級聯(lián)的信號延遲僅與線纜長度有關(guān),而實(shí)際應(yīng)用中一般控制在百米以內(nèi),線纜傳輸延遲可忽略。因此,主從級聯(lián)模式可滿足分布式仿真的同步控制要求。
該文通過仿真節(jié)點(diǎn)計算機(jī)的串口引入基于GNSS 的同步時序觸發(fā)信號和授時信息,能有效解決分布式仿真系統(tǒng)中的時序同步和時間管理問題,克服通過以太網(wǎng)進(jìn)行同步的時延不確定性,并支持異地組網(wǎng)條件下大型分布式仿真系統(tǒng)的同步計算和校時控制。以LEA-M8T 和RCM6700 為核心實(shí)現(xiàn)的同步控制器能夠提供精度小于600 ns 的同步觸發(fā)信號,并已應(yīng)用于某型飛行模擬器的組網(wǎng)訓(xùn)練中,確保了各仿真模型的正確交互和同步推進(jìn),避免了視景圖像抖動等問題。