999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

機載網絡數據時間同步處理算法的設計與實現

2020-02-27 12:34:08聶瑤佳
計算機測量與控制 2020年1期
關鍵詞:數據處理

王 灝,李 凱,聶瑤佳

(中國飛行試驗研究院 測試所,西安 710089)

0 引言

當前飛行試驗中廣泛使用網絡化測試架構,網絡化架構下采集的參數量大、采樣率高且測試設備可采用成熟的貨架產品[1-3]。在網絡化架構中采集器將采集的數據以網絡包的形式發送至測試系統,課題需要處理的參數就分布在這些網絡包中。數據在測試系統上傳輸時可通過交換機方便地到達任何連接在交換機上的設備[4-5]。由于數據的發送、傳輸、接收的過程中會存在一定的延時,數據包在處理時就不會按照正常的時序排列,存在數據包亂序的現象。如果在數據處理的過程中不對數據進行時間同步處理,結果數據的時刻會發生錯亂,誤把其他時刻的數據當做當刻數據進行處理,就會導致結果數據不夠精確,無法保證型號數據處理的準確性[6-7]。所以需要針對網絡數據處理中存在的問題,研究網絡包數據亂序產生的原因及特點,設計并實現數據時間同步處理算法,解決網絡包數據亂序問題,為課題提供精確的試飛數據。

1 網絡包數據亂序原因及其特點

1.1 網絡化測試系統簡介

網絡化機載測試系統包括傳感器、采集器、交換機、記錄器、數據處理子系統、遙測發射機等設備[8]。采集器按照設定的頻率采集模擬量、數字量、總線數據、視頻數據等被測信號,然后將測得的信號打包成標準格式的網絡包數據發送,網絡包數據經過交換機發送至數據處理子系統、記錄器、遙測發射機等設備。記錄器記錄接收到的網絡包數據,遙測發射機將數據通過PCM的形式發送至地面,數據處理設備對接收到的網絡包數據包數據進行處理并存儲處理結果[9-10]。機載網絡化測試架構如圖1所示。

圖1 機載網絡化測試架構

網絡化機載測試系統具有如下幾個特點:

1)測試系統中一般有多臺采集器,每臺采集器都會發送多條網絡數據流,數據流的目的地址及端口可以通過機載信息配置文件獲取。

2)每條數據流都有各自的采樣率,各個流之間的采樣率不完全一致,采集器按照該采樣率發送數據。

3)每條網絡流的網絡包都有各自獨立的key值,該值是網絡包的唯一標識。

4)網絡包數據中包含待處理參數的碼值,通常情況下課題需要處理的參數分部在不同的網絡包中。

5)由于網絡的復雜性以及傳輸的不確定性,接收到的網絡包數據有可能存在丟包現象。

6)數據處理時需要在不同采樣率的不同網絡數據流中進行碼值提取和物理量轉化,需要接解決時間同步問題。

1.2 網絡包數據亂序原因及特點

由機載測試系統的架構可知,數據處理子系統通過交換機接收采集器發送的網絡包數據,然后對數據進行處理。由于數據包的發送、傳輸、接收過程都會對數據包產生延時,而延時后的數據在處理時就不會按照預定的順序進行排列,這就導致了數據包之間產生亂序,所以延時是數據包亂序的根本原因。延時由三部分組成:發送延時、傳輸延時、接收延時,網絡包總延時等于這三個延時之和[11-12]。對于發送、傳輸、接收的延時原因分析如下:

對于發送延時:1)由于采集器設備性能的差異,不同采集器從數據產生到數據發送所用的時間不一樣;2)對于同一采集器的采樣率相同的兩個數據包,在發送同一時刻數據的時候會有先后順序。

對于傳輸延時:1)不同數據包的傳輸路徑的長短不完全一致,例如位于垂尾的采集器和位于機身的采集器產生的數據到數據接收設備的路徑長度顯然不同。2)網絡包從產生到接收所經過的系統節點數不完全一致,例如有些經過一級交換機到核心交換機,有些會直接進入核心交換機,這些網絡節點對數據包的產生的延遲不完全一樣。

對于接收延時:1)接收設備的性能會影響數據從到達接收設備到開始處理的時間。2)設備在接收某一個數據包時,另一個數據包到來等待接收,會對下一個包產生接收延時。

假設系統中有A、B兩個數據流,采樣率都是32,未發生延時和發生延時的數據包順序如圖2所示。其中(a)是未發生亂序的網絡包,按照時間順序依次排列;(b)是發生亂序的網絡包,由于B包比A包延時大,所以B包總是排列在A包相應時刻之后。

圖2 數據包亂序示例

網絡包數據亂序具有如下幾個特點:

1)單條流的網絡包數據不會產生亂序,因為單條數據流的數據是依次發送的。亂序主要體現在數據流與數據流之間,即流與流之間會產生亂序。

2)網絡數據流的亂序規律是一定的,也就是說對于確定的測試系統,數據流的亂序是按照一定的亂序規律重復出現的。

由于網絡包數據亂序,對處理時帶來的困難是:無法按照數據包的接收順序依次處理網絡包數據,否則就會把其他時刻的數據誤處理成當刻數據,所得的數據不夠精確[13-14]。所以就需要針對數據包的亂序問題,設計一套時間同步算法,使得數據處理的結果在時間上能夠對齊,保證試飛數據準確可靠。

2 三種時間同步算法的分析比較

針對機載網絡化架構下數據處理時存在的網絡包亂序問題,提出三種時間同步處理算法,并詳細比較三種算法的優缺點,最終選擇其中的一種作為機載數據處理算法進行實現。三種時間同步處理算法的詳細描述如下。

2.1 基于包個數的時間同步處理算法

由于機載測試系統中每條網絡流的數據包的采樣率是固定的,同時課題需求的采樣率也是固定的,所以可以根據網絡包的采樣率除以課題需求的采樣率,得到網絡包每秒需要處理的個數,實際計算時對網絡包數據按照處理個數進行等間隔取數。基于半包間隔的時間同步算法的具體實現方式是:

1)分析機載信息配置文件,獲取每個網絡包的key值及采樣率;

2)分析待處理的參數,找出包含待處理參數的網絡包的key值及采樣率;假設待處理網絡包共有N個,采樣率分別為S1、S2、…、Sn;

3)根據課題需求的采樣率S,計算每個包每秒計算的次數Xi=Si/S(i=1,2, …,n)。

4)若Xi<1,則令Xi=1,這是因為實際需求的采樣率大于網絡包的采樣率時,對于每一個數據包都要進行計算。對數據進行解算時,網絡包每Xi個計算一次;

5)讀取網絡包數據并分析key值以及計算次數,若key值屬于待處理參數的key值,并且計算次數能夠整除Xi,則對該網絡包進行處理,否則不處理并讀取下一個網絡包;依次循環往復;

6)當每個網絡包都處理了一遍時,將當即網絡包時刻作為處理時刻,并將處理結果寫入結果文件。

這種時間同步處理算法的優點是實現簡單,缺點是對網絡數據的質量要求較高,不能有亂序或者丟包。若測試系統的網絡包數據沒有亂序且不存在丟包現象,則可以使用該算法,但若存在丟包或亂序,使用該算法處理的結果數據的時間就會存在偏差,丟包或亂序越嚴重,時間偏差就會越大。

2.2 基于最大逆序的時間同步處理算法

對于特定的機載網絡化測試系統,網絡包的亂序是固定的,只要找到亂序的規律,再合理利用數據包亂序的規律,就可以在處理時解決亂序問題實現時間同步。該算法的核心內容是:1)找到數據包亂序的規律,即最大逆序時間,2)合理利用最大逆序時間實現時間同步。

網絡中1秒接到的數據包數量為N,他們的時間分別為T1,T2,…,Tn,計算每兩個數據包之間的時間差值△Ti=Ti+1-Ti(i=1,2, …,N-1),比較每個△Ti,得到最大值△Tmax,該值就是最大逆序時間,亂序的規律就以此逆序時間為周期反復出現的。假設數據中有A、B兩種包,采樣率都是每秒鐘64,由于數據亂序的原因,B包總是比A包晚到0.015625(1/64)秒,即 =0.015625,數據在緩存中排列方式如表1所示。

表1 數據排列

表中每一行代表一個逆序時間周期 ,每填滿一個周期的緩存,就可以正確處理一次網絡包數據,比如0.015625時刻收到的A2與B1,將數據暫時存放在緩存快1,0.031250時刻收到的A3和B2,將數據放在緩存快2,這時可以將緩存快1的A2和緩存快2的B2結合就可以處理出來正確的參數。

基于最大逆序的時間同步處理算法的優點是可以通過找出最大逆序時間并合理利用亂序規律解決時間亂序的問題;但缺點是該方式實現起來比較復雜,同時對于網絡數據的容錯能力較弱,假如數據包亂序較為嚴重,找到最大逆序時間以及利用亂序規律都比較困難。

2.3 基于半包間隔的時間同步處理算法

由于網絡包數據按照一定的頻率發送至測試系統,所以特定網絡包不會發生亂序,接收到的該網絡包是以特定的時間間隔按序排列,網絡包時間間隔的一半稱為半包間隔。課題需求的采樣率是確定的,可以根據需求的采樣率算出每秒中需要處理的時刻,在這些時刻的左右半包時間間隔之內,肯定有且只有一個網絡包數據,處理該網絡包的數據就可得到該時刻的參數值。

例如網絡中A包的采樣率為16,需求參數的采樣率為8,可以計算出A包的半包間隔halfPackGap=1000/16/2=15.625,需求的采樣率時刻的毫秒值分別為:000、125、250、325、500、625、750、875。只要讀取到的網絡包時刻點距這些時刻的時間差小于半包間隔就對數據包進行處理。基于半包間隔時間同步處理算法示例如圖3所示,圖中上面的時刻表示需求的采樣率時刻,下面的時刻表示網絡包數據真實采樣率,灰色部分表示需求采樣率時刻附件的半包時間間隔,若網絡包時刻落在灰色部分就進行處理。

圖3 基于半包間隔時間同步處理算法示例

基于半包間隔的時間同步處理算法的優點是算法清晰明了且實現簡單,只需要對網絡包中的時間與待處理時間進行比較就可以實現時間同步;此外該算法的容錯能力比較強,若網絡中存在丟包、亂序等現象,由于進行了網絡包的時間判斷所以不會發生錯亂,更不會影響后面時刻數據包的處理。

由于測試系統中的丟包、亂序現象時有發生,考慮到算法的易實現性、對數包的容錯能力等因素,選擇基于半包半包間隔的時間同步處理算法作為機載網絡數據時間同步處理算法。

3 基于半包間隔的時間同步處理算法的實現

利用基于半包間隔時間同步處理算法處理數據時,按照一秒的數據量為單位進行處理,該過程需要經過三個步驟:設置數據緩沖區、處理數據、結果數據存儲。數據緩沖區主要用于存儲數據處理的中間結果,避免頻繁的I/O操作,緩沖區的合理設置對于數據處理至關重要[15];數據處理的過程就是按照基于半包時間間隔的數據處理算法處理網絡包數據,并將處理結果放入數據緩沖區中;結果數據存儲就是將緩存中存儲的網絡包數據寫入到結果文件中。

3.1 設置數據緩沖區

為了存儲數據處理的中間結果,設置圖4所示的緩沖區,該緩沖區為一個數組,用于存放一秒鐘的數據處理結果,前三個元素分別存放時、分、秒,后面的元素按照參數的采樣率的大小依次存放,假如參數采樣率為8,每8個元素存放一個參數一秒的結果,這8個元素分別存放000、125、250、325、500、625、750、875時刻的處理結果。

圖4 數據緩沖區的結構

設置三個這樣的緩沖區,分別用于存儲上一秒、本秒、下一秒的結果數據,這是因為網絡數據中存在亂序現象,當本秒最開始的數據到來之后,有可能還會有上一秒最后時刻的數據;同樣地當本秒的最后時刻到來之時,有可能下一秒最開始時刻的數據就會提前到來。設置三條這樣的緩沖區就能夠把所有的數據結果存儲下來,不會存在結果數據丟失的情況。

3.2 數據處理方法

根據半包間隔時間同步的處理思想,設計基于半包間隔的時間同步處理算法的具體處理流程如下:

1)分析機載信息配置文件,獲取每個網絡包的key值及采樣率;

2)分析待處理參數列表,在機載信息配置文件里找到待處理數據包的key值及采樣率;

3)若需要處理的網絡包書數量為N,采樣率分別為S1、S2、…、Sn,計算每個數據包的半包時間間隔ΔTi=1000/Si/2。

4)根據待處理參數的采樣率K計算每秒中要處理的時刻值,T={T0、T1、…、Tk-1},其中Ti=[1000/K]*i。

5)讀取網絡包數據,分析網絡包數據的K值,若不需要處理則跳過讀取下一個網絡包,若需要處理,分析網絡包的時間,判斷時間屬于本秒、上一秒還是下一秒時間,然后分析該時刻是否在需求采樣時刻的半包時間間隔內,若不在則跳過讀取下一個網絡包,若是則判斷該網絡包屬于第幾個采樣時刻,對網絡包數據進行碼值提取及物理量轉化后,將值放在緩存中特定的位置。

6)循環重復步驟5)的過程,當緩存滿時將該緩存的數據寫入到結果文件中。

3.3 結果數據存儲

當緩存中的數據寫滿后,要將數據寫入到結果文件中,然后對緩沖區進行清零并變更三個緩沖區的時間狀態。一般情況才,上一秒的緩沖區最先被寫滿,當上一秒緩沖寫滿后,將該緩沖區的數據寫入到結果文件中,然后對該緩沖區進行清零,接下來變更三個緩沖區的狀態:上一秒緩沖接收下一秒數據,本秒緩沖接收上一秒數據,下一秒緩沖接收當刻數據,如此循環往復,保證了數據能夠一直進行正確的緩存。

4 實驗測試與驗證

利用C語言實現了基于半包間隔的時間同步處理算法,在實驗中測試該算法的有效性,需要驗證兩個方面的內容:一是數據結果的時間同步性,二是處理結果的準確性。

系統中存在A、B、C三個數據包,采樣率分別為16、32、64,三個數據包中分別有P1、P2、P3三個參數,處理的采樣率為8,利用該算法進行兩次數據處理:一是將三個參數放在一起一塊處理,二是將三個參數單獨各處理一次。進行兩次處理的原因是:由于單個網絡包不會存在亂序問題,單獨處理某個特定的網絡包,可以驗證數據處理結果的準確性。三個參數一塊處理所得結果如圖5所示,三個參數單獨處理所得結果的時間與數值和圖5的時間與數值皆相同。

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 數據處理結果

數據處理結果表明:單獨處理時結果數據的時間與一塊處理所得結果時間一致,驗證了該算法解決了網絡包亂序問題,保證了數據處理時間同步性。此外,單獨處理時所得數據的數值和一塊處理時的數值一致,驗證了該算法能夠得到準確的數據結果,保證了數據處理的準確定。

5 結束語

本文首先介紹了機載網絡化測試架構并分析了網絡包亂序產生原因及其特點,針對網絡包亂序問題提出了三種時間同步處理算法,詳細分析并比較了三種時間同步處理算法的內容及優缺點,最終選擇基于半包間隔的時間同步處理算法作為機載實時數據處理算法,并給出了該算法的具體實現過程。試驗結果表明該算法能有效解決機載網絡數據處理時間同步問題,并給出精確的處理結果。

猜你喜歡
數據處理
驗證動量守恒定律實驗數據處理初探
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
心理學報(2022年4期)2022-04-12 07:38:02
ILWT-EEMD數據處理的ELM滾動軸承故障診斷
水泵技術(2021年3期)2021-08-14 02:09:20
ADS-B數據處理中心的設計與實現
電子測試(2018年4期)2018-05-09 07:28:12
MATLAB在化學工程與工藝實驗數據處理中的應用
基于希爾伯特- 黃變換的去噪法在外測數據處理中的應用
大數據處理中基于熱感知的能源冷卻技術
計算機工程(2015年4期)2015-07-05 08:28:04
Matlab在密立根油滴實驗數據處理中的應用
數據處理能力在求職中起關鍵作用
我國首個“突發事件基礎數據處理標準”發布
主站蜘蛛池模板: 日韩人妻少妇一区二区| 巨熟乳波霸若妻中文观看免费 | 青青草国产免费国产| 国产哺乳奶水91在线播放| 欧美天堂在线| 精品久久香蕉国产线看观看gif| 热这里只有精品国产热门精品| 国产传媒一区二区三区四区五区| 综合色在线| 亚洲第一精品福利| 日本日韩欧美| 青青青伊人色综合久久| 国产成人亚洲精品蜜芽影院| 免费一级大毛片a一观看不卡| 久久这里只精品国产99热8| 熟妇丰满人妻av无码区| 97视频在线观看免费视频| 无码精品福利一区二区三区| 日韩高清一区 | 少妇精品在线| 国产高清不卡| 国产精品手机在线播放| 国产嫩草在线观看| 999精品免费视频| 免费日韩在线视频| 天天综合天天综合| 欧美有码在线| 亚洲精品国偷自产在线91正片| 久久综合色88| 国产SUV精品一区二区| 国产无遮挡裸体免费视频| 国产一区二区免费播放| 国产av无码日韩av无码网站| 99人妻碰碰碰久久久久禁片| 国产乱子伦一区二区=| 久久无码免费束人妻| 91精品啪在线观看国产60岁| 中文字幕色在线| 一级毛片在线免费视频| 亚洲伊人久久精品影院| 国产精品视频999| 一本色道久久88亚洲综合| 亚洲综合久久成人AV| 亚洲系列无码专区偷窥无码| 婷婷亚洲综合五月天在线| 国产精品hd在线播放| 在线播放国产一区| 久久久久久久久久国产精品| 国产精品女在线观看| 亚洲精品无码人妻无码| 丁香五月亚洲综合在线| 伊人久综合| 国产精品成人AⅤ在线一二三四| 国产精品任我爽爆在线播放6080| 老司机久久99久久精品播放| www.精品国产| 免费在线成人网| 国产精欧美一区二区三区| 免费一看一级毛片| 天天视频在线91频| 国产精品第一区在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 免费xxxxx在线观看网站| 日韩成人在线视频| 在线国产91| 亚洲天堂成人在线观看| 久久特级毛片| 久久精品国产在热久久2019| 国产欧美一区二区三区视频在线观看| 国产人成在线视频| 性欧美久久| 五月天天天色| 久无码久无码av无码| www.狠狠| 成人在线第一页| 日本在线国产| 久久无码高潮喷水| 国产精品所毛片视频| 91 九色视频丝袜| 美女免费黄网站| 欧美在线黄| 人妻一区二区三区无码精品一区|