王 灝,李 凱,聶瑤佳
(中國(guó)飛行試驗(yàn)研究院 測(cè)試所,西安 710089)
當(dāng)前飛行試驗(yàn)中廣泛使用網(wǎng)絡(luò)化測(cè)試架構(gòu),網(wǎng)絡(luò)化架構(gòu)下采集的參數(shù)量大、采樣率高且測(cè)試設(shè)備可采用成熟的貨架產(chǎn)品[1-3]。在網(wǎng)絡(luò)化架構(gòu)中采集器將采集的數(shù)據(jù)以網(wǎng)絡(luò)包的形式發(fā)送至測(cè)試系統(tǒng),課題需要處理的參數(shù)就分布在這些網(wǎng)絡(luò)包中。數(shù)據(jù)在測(cè)試系統(tǒng)上傳輸時(shí)可通過(guò)交換機(jī)方便地到達(dá)任何連接在交換機(jī)上的設(shè)備[4-5]。由于數(shù)據(jù)的發(fā)送、傳輸、接收的過(guò)程中會(huì)存在一定的延時(shí),數(shù)據(jù)包在處理時(shí)就不會(huì)按照正常的時(shí)序排列,存在數(shù)據(jù)包亂序的現(xiàn)象。如果在數(shù)據(jù)處理的過(guò)程中不對(duì)數(shù)據(jù)進(jìn)行時(shí)間同步處理,結(jié)果數(shù)據(jù)的時(shí)刻會(huì)發(fā)生錯(cuò)亂,誤把其他時(shí)刻的數(shù)據(jù)當(dāng)做當(dāng)刻數(shù)據(jù)進(jìn)行處理,就會(huì)導(dǎo)致結(jié)果數(shù)據(jù)不夠精確,無(wú)法保證型號(hào)數(shù)據(jù)處理的準(zhǔn)確性[6-7]。所以需要針對(duì)網(wǎng)絡(luò)數(shù)據(jù)處理中存在的問(wèn)題,研究網(wǎng)絡(luò)包數(shù)據(jù)亂序產(chǎn)生的原因及特點(diǎn),設(shè)計(jì)并實(shí)現(xiàn)數(shù)據(jù)時(shí)間同步處理算法,解決網(wǎng)絡(luò)包數(shù)據(jù)亂序問(wèn)題,為課題提供精確的試飛數(shù)據(jù)。
網(wǎng)絡(luò)化機(jī)載測(cè)試系統(tǒng)包括傳感器、采集器、交換機(jī)、記錄器、數(shù)據(jù)處理子系統(tǒng)、遙測(cè)發(fā)射機(jī)等設(shè)備[8]。采集器按照設(shè)定的頻率采集模擬量、數(shù)字量、總線數(shù)據(jù)、視頻數(shù)據(jù)等被測(cè)信號(hào),然后將測(cè)得的信號(hào)打包成標(biāo)準(zhǔn)格式的網(wǎng)絡(luò)包數(shù)據(jù)發(fā)送,網(wǎng)絡(luò)包數(shù)據(jù)經(jīng)過(guò)交換機(jī)發(fā)送至數(shù)據(jù)處理子系統(tǒng)、記錄器、遙測(cè)發(fā)射機(jī)等設(shè)備。記錄器記錄接收到的網(wǎng)絡(luò)包數(shù)據(jù),遙測(cè)發(fā)射機(jī)將數(shù)據(jù)通過(guò)PCM的形式發(fā)送至地面,數(shù)據(jù)處理設(shè)備對(duì)接收到的網(wǎng)絡(luò)包數(shù)據(jù)包數(shù)據(jù)進(jìn)行處理并存儲(chǔ)處理結(jié)果[9-10]。機(jī)載網(wǎng)絡(luò)化測(cè)試架構(gòu)如圖1所示。
圖1 機(jī)載網(wǎng)絡(luò)化測(cè)試架構(gòu)
網(wǎng)絡(luò)化機(jī)載測(cè)試系統(tǒng)具有如下幾個(gè)特點(diǎn):
1)測(cè)試系統(tǒng)中一般有多臺(tái)采集器,每臺(tái)采集器都會(huì)發(fā)送多條網(wǎng)絡(luò)數(shù)據(jù)流,數(shù)據(jù)流的目的地址及端口可以通過(guò)機(jī)載信息配置文件獲取。
2)每條數(shù)據(jù)流都有各自的采樣率,各個(gè)流之間的采樣率不完全一致,采集器按照該采樣率發(fā)送數(shù)據(jù)。
3)每條網(wǎng)絡(luò)流的網(wǎng)絡(luò)包都有各自獨(dú)立的key值,該值是網(wǎng)絡(luò)包的唯一標(biāo)識(shí)。
4)網(wǎng)絡(luò)包數(shù)據(jù)中包含待處理參數(shù)的碼值,通常情況下課題需要處理的參數(shù)分部在不同的網(wǎng)絡(luò)包中。
5)由于網(wǎng)絡(luò)的復(fù)雜性以及傳輸?shù)牟淮_定性,接收到的網(wǎng)絡(luò)包數(shù)據(jù)有可能存在丟包現(xiàn)象。
6)數(shù)據(jù)處理時(shí)需要在不同采樣率的不同網(wǎng)絡(luò)數(shù)據(jù)流中進(jìn)行碼值提取和物理量轉(zhuǎn)化,需要接解決時(shí)間同步問(wèn)題。
由機(jī)載測(cè)試系統(tǒng)的架構(gòu)可知,數(shù)據(jù)處理子系統(tǒng)通過(guò)交換機(jī)接收采集器發(fā)送的網(wǎng)絡(luò)包數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行處理。由于數(shù)據(jù)包的發(fā)送、傳輸、接收過(guò)程都會(huì)對(duì)數(shù)據(jù)包產(chǎn)生延時(shí),而延時(shí)后的數(shù)據(jù)在處理時(shí)就不會(huì)按照預(yù)定的順序進(jìn)行排列,這就導(dǎo)致了數(shù)據(jù)包之間產(chǎn)生亂序,所以延時(shí)是數(shù)據(jù)包亂序的根本原因。延時(shí)由三部分組成:發(fā)送延時(shí)、傳輸延時(shí)、接收延時(shí),網(wǎng)絡(luò)包總延時(shí)等于這三個(gè)延時(shí)之和[11-12]。對(duì)于發(fā)送、傳輸、接收的延時(shí)原因分析如下:
對(duì)于發(fā)送延時(shí):1)由于采集器設(shè)備性能的差異,不同采集器從數(shù)據(jù)產(chǎn)生到數(shù)據(jù)發(fā)送所用的時(shí)間不一樣;2)對(duì)于同一采集器的采樣率相同的兩個(gè)數(shù)據(jù)包,在發(fā)送同一時(shí)刻數(shù)據(jù)的時(shí)候會(huì)有先后順序。
對(duì)于傳輸延時(shí):1)不同數(shù)據(jù)包的傳輸路徑的長(zhǎng)短不完全一致,例如位于垂尾的采集器和位于機(jī)身的采集器產(chǎn)生的數(shù)據(jù)到數(shù)據(jù)接收設(shè)備的路徑長(zhǎng)度顯然不同。2)網(wǎng)絡(luò)包從產(chǎn)生到接收所經(jīng)過(guò)的系統(tǒng)節(jié)點(diǎn)數(shù)不完全一致,例如有些經(jīng)過(guò)一級(jí)交換機(jī)到核心交換機(jī),有些會(huì)直接進(jìn)入核心交換機(jī),這些網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)數(shù)據(jù)包的產(chǎn)生的延遲不完全一樣。
對(duì)于接收延時(shí):1)接收設(shè)備的性能會(huì)影響數(shù)據(jù)從到達(dá)接收設(shè)備到開(kāi)始處理的時(shí)間。2)設(shè)備在接收某一個(gè)數(shù)據(jù)包時(shí),另一個(gè)數(shù)據(jù)包到來(lái)等待接收,會(huì)對(duì)下一個(gè)包產(chǎn)生接收延時(shí)。
假設(shè)系統(tǒng)中有A、B兩個(gè)數(shù)據(jù)流,采樣率都是32,未發(fā)生延時(shí)和發(fā)生延時(shí)的數(shù)據(jù)包順序如圖2所示。其中(a)是未發(fā)生亂序的網(wǎng)絡(luò)包,按照時(shí)間順序依次排列;(b)是發(fā)生亂序的網(wǎng)絡(luò)包,由于B包比A包延時(shí)大,所以B包總是排列在A包相應(yīng)時(shí)刻之后。
圖2 數(shù)據(jù)包亂序示例
網(wǎng)絡(luò)包數(shù)據(jù)亂序具有如下幾個(gè)特點(diǎn):
1)單條流的網(wǎng)絡(luò)包數(shù)據(jù)不會(huì)產(chǎn)生亂序,因?yàn)閱螚l數(shù)據(jù)流的數(shù)據(jù)是依次發(fā)送的。亂序主要體現(xiàn)在數(shù)據(jù)流與數(shù)據(jù)流之間,即流與流之間會(huì)產(chǎn)生亂序。
2)網(wǎng)絡(luò)數(shù)據(jù)流的亂序規(guī)律是一定的,也就是說(shuō)對(duì)于確定的測(cè)試系統(tǒng),數(shù)據(jù)流的亂序是按照一定的亂序規(guī)律重復(fù)出現(xiàn)的。
由于網(wǎng)絡(luò)包數(shù)據(jù)亂序,對(duì)處理時(shí)帶來(lái)的困難是:無(wú)法按照數(shù)據(jù)包的接收順序依次處理網(wǎng)絡(luò)包數(shù)據(jù),否則就會(huì)把其他時(shí)刻的數(shù)據(jù)誤處理成當(dāng)刻數(shù)據(jù),所得的數(shù)據(jù)不夠精確[13-14]。所以就需要針對(duì)數(shù)據(jù)包的亂序問(wèn)題,設(shè)計(jì)一套時(shí)間同步算法,使得數(shù)據(jù)處理的結(jié)果在時(shí)間上能夠?qū)R,保證試飛數(shù)據(jù)準(zhǔn)確可靠。
針對(duì)機(jī)載網(wǎng)絡(luò)化架構(gòu)下數(shù)據(jù)處理時(shí)存在的網(wǎng)絡(luò)包亂序問(wèn)題,提出三種時(shí)間同步處理算法,并詳細(xì)比較三種算法的優(yōu)缺點(diǎn),最終選擇其中的一種作為機(jī)載數(shù)據(jù)處理算法進(jìn)行實(shí)現(xiàn)。三種時(shí)間同步處理算法的詳細(xì)描述如下。
由于機(jī)載測(cè)試系統(tǒng)中每條網(wǎng)絡(luò)流的數(shù)據(jù)包的采樣率是固定的,同時(shí)課題需求的采樣率也是固定的,所以可以根據(jù)網(wǎng)絡(luò)包的采樣率除以課題需求的采樣率,得到網(wǎng)絡(luò)包每秒需要處理的個(gè)數(shù),實(shí)際計(jì)算時(shí)對(duì)網(wǎng)絡(luò)包數(shù)據(jù)按照處理個(gè)數(shù)進(jìn)行等間隔取數(shù)。基于半包間隔的時(shí)間同步算法的具體實(shí)現(xiàn)方式是:
1)分析機(jī)載信息配置文件,獲取每個(gè)網(wǎng)絡(luò)包的key值及采樣率;
2)分析待處理的參數(shù),找出包含待處理參數(shù)的網(wǎng)絡(luò)包的key值及采樣率;假設(shè)待處理網(wǎng)絡(luò)包共有N個(gè),采樣率分別為S1、S2、…、Sn;
3)根據(jù)課題需求的采樣率S,計(jì)算每個(gè)包每秒計(jì)算的次數(shù)Xi=Si/S(i=1,2, …,n)。
4)若Xi<1,則令Xi=1,這是因?yàn)閷?shí)際需求的采樣率大于網(wǎng)絡(luò)包的采樣率時(shí),對(duì)于每一個(gè)數(shù)據(jù)包都要進(jìn)行計(jì)算。對(duì)數(shù)據(jù)進(jìn)行解算時(shí),網(wǎng)絡(luò)包每Xi個(gè)計(jì)算一次;
5)讀取網(wǎng)絡(luò)包數(shù)據(jù)并分析key值以及計(jì)算次數(shù),若key值屬于待處理參數(shù)的key值,并且計(jì)算次數(shù)能夠整除Xi,則對(duì)該網(wǎng)絡(luò)包進(jìn)行處理,否則不處理并讀取下一個(gè)網(wǎng)絡(luò)包;依次循環(huán)往復(fù);
6)當(dāng)每個(gè)網(wǎng)絡(luò)包都處理了一遍時(shí),將當(dāng)即網(wǎng)絡(luò)包時(shí)刻作為處理時(shí)刻,并將處理結(jié)果寫入結(jié)果文件。
這種時(shí)間同步處理算法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,缺點(diǎn)是對(duì)網(wǎng)絡(luò)數(shù)據(jù)的質(zhì)量要求較高,不能有亂序或者丟包。若測(cè)試系統(tǒng)的網(wǎng)絡(luò)包數(shù)據(jù)沒(méi)有亂序且不存在丟包現(xiàn)象,則可以使用該算法,但若存在丟包或亂序,使用該算法處理的結(jié)果數(shù)據(jù)的時(shí)間就會(huì)存在偏差,丟包或亂序越嚴(yán)重,時(shí)間偏差就會(huì)越大。
對(duì)于特定的機(jī)載網(wǎng)絡(luò)化測(cè)試系統(tǒng),網(wǎng)絡(luò)包的亂序是固定的,只要找到亂序的規(guī)律,再合理利用數(shù)據(jù)包亂序的規(guī)律,就可以在處理時(shí)解決亂序問(wèn)題實(shí)現(xiàn)時(shí)間同步。該算法的核心內(nèi)容是:1)找到數(shù)據(jù)包亂序的規(guī)律,即最大逆序時(shí)間,2)合理利用最大逆序時(shí)間實(shí)現(xiàn)時(shí)間同步。
網(wǎng)絡(luò)中1秒接到的數(shù)據(jù)包數(shù)量為N,他們的時(shí)間分別為T1,T2,…,Tn,計(jì)算每?jī)蓚€(gè)數(shù)據(jù)包之間的時(shí)間差值△Ti=Ti+1-Ti(i=1,2, …,N-1),比較每個(gè)△Ti,得到最大值△Tmax,該值就是最大逆序時(shí)間,亂序的規(guī)律就以此逆序時(shí)間為周期反復(fù)出現(xiàn)的。假設(shè)數(shù)據(jù)中有A、B兩種包,采樣率都是每秒鐘64,由于數(shù)據(jù)亂序的原因,B包總是比A包晚到0.015625(1/64)秒,即 =0.015625,數(shù)據(jù)在緩存中排列方式如表1所示。
表1 數(shù)據(jù)排列
表中每一行代表一個(gè)逆序時(shí)間周期 ,每填滿一個(gè)周期的緩存,就可以正確處理一次網(wǎng)絡(luò)包數(shù)據(jù),比如0.015625時(shí)刻收到的A2與B1,將數(shù)據(jù)暫時(shí)存放在緩存快1,0.031250時(shí)刻收到的A3和B2,將數(shù)據(jù)放在緩存快2,這時(shí)可以將緩存快1的A2和緩存快2的B2結(jié)合就可以處理出來(lái)正確的參數(shù)。
基于最大逆序的時(shí)間同步處理算法的優(yōu)點(diǎn)是可以通過(guò)找出最大逆序時(shí)間并合理利用亂序規(guī)律解決時(shí)間亂序的問(wèn)題;但缺點(diǎn)是該方式實(shí)現(xiàn)起來(lái)比較復(fù)雜,同時(shí)對(duì)于網(wǎng)絡(luò)數(shù)據(jù)的容錯(cuò)能力較弱,假如數(shù)據(jù)包亂序較為嚴(yán)重,找到最大逆序時(shí)間以及利用亂序規(guī)律都比較困難。
由于網(wǎng)絡(luò)包數(shù)據(jù)按照一定的頻率發(fā)送至測(cè)試系統(tǒng),所以特定網(wǎng)絡(luò)包不會(huì)發(fā)生亂序,接收到的該網(wǎng)絡(luò)包是以特定的時(shí)間間隔按序排列,網(wǎng)絡(luò)包時(shí)間間隔的一半稱為半包間隔。課題需求的采樣率是確定的,可以根據(jù)需求的采樣率算出每秒中需要處理的時(shí)刻,在這些時(shí)刻的左右半包時(shí)間間隔之內(nèi),肯定有且只有一個(gè)網(wǎng)絡(luò)包數(shù)據(jù),處理該網(wǎng)絡(luò)包的數(shù)據(jù)就可得到該時(shí)刻的參數(shù)值。
例如網(wǎng)絡(luò)中A包的采樣率為16,需求參數(shù)的采樣率為8,可以計(jì)算出A包的半包間隔halfPackGap=1000/16/2=15.625,需求的采樣率時(shí)刻的毫秒值分別為:000、125、250、325、500、625、750、875。只要讀取到的網(wǎng)絡(luò)包時(shí)刻點(diǎn)距這些時(shí)刻的時(shí)間差小于半包間隔就對(duì)數(shù)據(jù)包進(jìn)行處理?;诎氚g隔時(shí)間同步處理算法示例如圖3所示,圖中上面的時(shí)刻表示需求的采樣率時(shí)刻,下面的時(shí)刻表示網(wǎng)絡(luò)包數(shù)據(jù)真實(shí)采樣率,灰色部分表示需求采樣率時(shí)刻附件的半包時(shí)間間隔,若網(wǎng)絡(luò)包時(shí)刻落在灰色部分就進(jìn)行處理。
圖3 基于半包間隔時(shí)間同步處理算法示例
基于半包間隔的時(shí)間同步處理算法的優(yōu)點(diǎn)是算法清晰明了且實(shí)現(xiàn)簡(jiǎn)單,只需要對(duì)網(wǎng)絡(luò)包中的時(shí)間與待處理時(shí)間進(jìn)行比較就可以實(shí)現(xiàn)時(shí)間同步;此外該算法的容錯(cuò)能力比較強(qiáng),若網(wǎng)絡(luò)中存在丟包、亂序等現(xiàn)象,由于進(jìn)行了網(wǎng)絡(luò)包的時(shí)間判斷所以不會(huì)發(fā)生錯(cuò)亂,更不會(huì)影響后面時(shí)刻數(shù)據(jù)包的處理。
由于測(cè)試系統(tǒng)中的丟包、亂序現(xiàn)象時(shí)有發(fā)生,考慮到算法的易實(shí)現(xiàn)性、對(duì)數(shù)包的容錯(cuò)能力等因素,選擇基于半包半包間隔的時(shí)間同步處理算法作為機(jī)載網(wǎng)絡(luò)數(shù)據(jù)時(shí)間同步處理算法。
利用基于半包間隔時(shí)間同步處理算法處理數(shù)據(jù)時(shí),按照一秒的數(shù)據(jù)量為單位進(jìn)行處理,該過(guò)程需要經(jīng)過(guò)三個(gè)步驟:設(shè)置數(shù)據(jù)緩沖區(qū)、處理數(shù)據(jù)、結(jié)果數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)緩沖區(qū)主要用于存儲(chǔ)數(shù)據(jù)處理的中間結(jié)果,避免頻繁的I/O操作,緩沖區(qū)的合理設(shè)置對(duì)于數(shù)據(jù)處理至關(guān)重要[15];數(shù)據(jù)處理的過(guò)程就是按照基于半包時(shí)間間隔的數(shù)據(jù)處理算法處理網(wǎng)絡(luò)包數(shù)據(jù),并將處理結(jié)果放入數(shù)據(jù)緩沖區(qū)中;結(jié)果數(shù)據(jù)存儲(chǔ)就是將緩存中存儲(chǔ)的網(wǎng)絡(luò)包數(shù)據(jù)寫入到結(jié)果文件中。
為了存儲(chǔ)數(shù)據(jù)處理的中間結(jié)果,設(shè)置圖4所示的緩沖區(qū),該緩沖區(qū)為一個(gè)數(shù)組,用于存放一秒鐘的數(shù)據(jù)處理結(jié)果,前三個(gè)元素分別存放時(shí)、分、秒,后面的元素按照參數(shù)的采樣率的大小依次存放,假如參數(shù)采樣率為8,每8個(gè)元素存放一個(gè)參數(shù)一秒的結(jié)果,這8個(gè)元素分別存放000、125、250、325、500、625、750、875時(shí)刻的處理結(jié)果。
圖4 數(shù)據(jù)緩沖區(qū)的結(jié)構(gòu)
設(shè)置三個(gè)這樣的緩沖區(qū),分別用于存儲(chǔ)上一秒、本秒、下一秒的結(jié)果數(shù)據(jù),這是因?yàn)榫W(wǎng)絡(luò)數(shù)據(jù)中存在亂序現(xiàn)象,當(dāng)本秒最開(kāi)始的數(shù)據(jù)到來(lái)之后,有可能還會(huì)有上一秒最后時(shí)刻的數(shù)據(jù);同樣地當(dāng)本秒的最后時(shí)刻到來(lái)之時(shí),有可能下一秒最開(kāi)始時(shí)刻的數(shù)據(jù)就會(huì)提前到來(lái)。設(shè)置三條這樣的緩沖區(qū)就能夠把所有的數(shù)據(jù)結(jié)果存儲(chǔ)下來(lái),不會(huì)存在結(jié)果數(shù)據(jù)丟失的情況。
根據(jù)半包間隔時(shí)間同步的處理思想,設(shè)計(jì)基于半包間隔的時(shí)間同步處理算法的具體處理流程如下:
1)分析機(jī)載信息配置文件,獲取每個(gè)網(wǎng)絡(luò)包的key值及采樣率;
2)分析待處理參數(shù)列表,在機(jī)載信息配置文件里找到待處理數(shù)據(jù)包的key值及采樣率;
3)若需要處理的網(wǎng)絡(luò)包書(shū)數(shù)量為N,采樣率分別為S1、S2、…、Sn,計(jì)算每個(gè)數(shù)據(jù)包的半包時(shí)間間隔ΔTi=1000/Si/2。
4)根據(jù)待處理參數(shù)的采樣率K計(jì)算每秒中要處理的時(shí)刻值,T={T0、T1、…、Tk-1},其中Ti=[1000/K]*i。
5)讀取網(wǎng)絡(luò)包數(shù)據(jù),分析網(wǎng)絡(luò)包數(shù)據(jù)的K值,若不需要處理則跳過(guò)讀取下一個(gè)網(wǎng)絡(luò)包,若需要處理,分析網(wǎng)絡(luò)包的時(shí)間,判斷時(shí)間屬于本秒、上一秒還是下一秒時(shí)間,然后分析該時(shí)刻是否在需求采樣時(shí)刻的半包時(shí)間間隔內(nèi),若不在則跳過(guò)讀取下一個(gè)網(wǎng)絡(luò)包,若是則判斷該網(wǎng)絡(luò)包屬于第幾個(gè)采樣時(shí)刻,對(duì)網(wǎng)絡(luò)包數(shù)據(jù)進(jìn)行碼值提取及物理量轉(zhuǎn)化后,將值放在緩存中特定的位置。
6)循環(huán)重復(fù)步驟5)的過(guò)程,當(dāng)緩存滿時(shí)將該緩存的數(shù)據(jù)寫入到結(jié)果文件中。
當(dāng)緩存中的數(shù)據(jù)寫滿后,要將數(shù)據(jù)寫入到結(jié)果文件中,然后對(duì)緩沖區(qū)進(jìn)行清零并變更三個(gè)緩沖區(qū)的時(shí)間狀態(tài)。一般情況才,上一秒的緩沖區(qū)最先被寫滿,當(dāng)上一秒緩沖寫滿后,將該緩沖區(qū)的數(shù)據(jù)寫入到結(jié)果文件中,然后對(duì)該緩沖區(qū)進(jìn)行清零,接下來(lái)變更三個(gè)緩沖區(qū)的狀態(tài):上一秒緩沖接收下一秒數(shù)據(jù),本秒緩沖接收上一秒數(shù)據(jù),下一秒緩沖接收當(dāng)刻數(shù)據(jù),如此循環(huán)往復(fù),保證了數(shù)據(jù)能夠一直進(jìn)行正確的緩存。
利用C語(yǔ)言實(shí)現(xiàn)了基于半包間隔的時(shí)間同步處理算法,在實(shí)驗(yàn)中測(cè)試該算法的有效性,需要驗(yàn)證兩個(gè)方面的內(nèi)容:一是數(shù)據(jù)結(jié)果的時(shí)間同步性,二是處理結(jié)果的準(zhǔn)確性。
系統(tǒng)中存在A、B、C三個(gè)數(shù)據(jù)包,采樣率分別為16、32、64,三個(gè)數(shù)據(jù)包中分別有P1、P2、P3三個(gè)參數(shù),處理的采樣率為8,利用該算法進(jìn)行兩次數(shù)據(jù)處理:一是將三個(gè)參數(shù)放在一起一塊處理,二是將三個(gè)參數(shù)單獨(dú)各處理一次。進(jìn)行兩次處理的原因是:由于單個(gè)網(wǎng)絡(luò)包不會(huì)存在亂序問(wèn)題,單獨(dú)處理某個(gè)特定的網(wǎng)絡(luò)包,可以驗(yàn)證數(shù)據(jù)處理結(jié)果的準(zhǔn)確性。三個(gè)參數(shù)一塊處理所得結(jié)果如圖5所示,三個(gè)參數(shù)單獨(dú)處理所得結(jié)果的時(shí)間與數(shù)值和圖5的時(shí)間與數(shù)值皆相同。
HH:MM:SS:MSS P1 P2 P3 09:08:12:000 2.350 3.125 -1.375 09:08:12:125 2.475 3.264 -1.422 09:08:12:250 2.600 3.387 -1.573 09:08:12:375 2.654 3.422 -1.632 09:08:12:500 2.725 3.564 -1.698 09:08:12:625 2.800 3.633 -1.712 09:08:12:750 2.850 3.689 -1.823 09:08:12:875 2.900 3.722 -1.875
圖5 數(shù)據(jù)處理結(jié)果
數(shù)據(jù)處理結(jié)果表明:單獨(dú)處理時(shí)結(jié)果數(shù)據(jù)的時(shí)間與一塊處理所得結(jié)果時(shí)間一致,驗(yàn)證了該算法解決了網(wǎng)絡(luò)包亂序問(wèn)題,保證了數(shù)據(jù)處理時(shí)間同步性。此外,單獨(dú)處理時(shí)所得數(shù)據(jù)的數(shù)值和一塊處理時(shí)的數(shù)值一致,驗(yàn)證了該算法能夠得到準(zhǔn)確的數(shù)據(jù)結(jié)果,保證了數(shù)據(jù)處理的準(zhǔn)確定。
本文首先介紹了機(jī)載網(wǎng)絡(luò)化測(cè)試架構(gòu)并分析了網(wǎng)絡(luò)包亂序產(chǎn)生原因及其特點(diǎn),針對(duì)網(wǎng)絡(luò)包亂序問(wèn)題提出了三種時(shí)間同步處理算法,詳細(xì)分析并比較了三種時(shí)間同步處理算法的內(nèi)容及優(yōu)缺點(diǎn),最終選擇基于半包間隔的時(shí)間同步處理算法作為機(jī)載實(shí)時(shí)數(shù)據(jù)處理算法,并給出了該算法的具體實(shí)現(xiàn)過(guò)程。試驗(yàn)結(jié)果表明該算法能有效解決機(jī)載網(wǎng)絡(luò)數(shù)據(jù)處理時(shí)間同步問(wèn)題,并給出精確的處理結(jié)果。