本發(fā)明涉及分布式仿真領(lǐng)域,尤其涉及一種同步調(diào)度的方法及裝置。
背景技術(shù):
分布式半實物仿真技術(shù)是采用分布式仿真的體系結(jié)構(gòu)并接入實物系統(tǒng),盡可能的模擬真實的通信環(huán)境,把仿真系統(tǒng)與實際系統(tǒng)靈活互聯(lián),實現(xiàn)仿真系統(tǒng)到實際系統(tǒng)之間的數(shù)據(jù)信息交互,使得仿真更接近系統(tǒng)的實際工作情況。其中,分布式半實物仿真系統(tǒng)中包括多個節(jié)點,節(jié)點類型包括仿真環(huán)境中的虛擬節(jié)點、虛擬—實物節(jié)點和實物終端節(jié)點。這些節(jié)點之間可以進行數(shù)據(jù)的傳遞。
在采用分布式半實物仿真系統(tǒng)在進行通信的過程中,要求各節(jié)點之間能夠?qū)崿F(xiàn)實時的信息傳遞。但是分布式半實物仿真系統(tǒng)沒有全局的時鐘,而且機器時間也會存在非零的漂移率,無法確定各節(jié)點之間的數(shù)據(jù)傳遞過程是否是實時的。
因此,本領(lǐng)域技術(shù)人員亟待解決的問題是,如何保障采用分布式半實物仿真系統(tǒng)中各節(jié)點之間的數(shù)據(jù)傳遞過程時間同步。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種同步調(diào)度的方法及裝置,實現(xiàn)了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點的時間同步,并簡化了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中復(fù)雜的時鐘精確同步過程。
本發(fā)明提供了以下的技術(shù)方案:
一種同步調(diào)度的方法,所述方法應(yīng)用于分布式半實物網(wǎng)絡(luò)仿真系統(tǒng),所述系統(tǒng)包括至少兩個節(jié)點,所述方法包括:
接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算所述發(fā)送節(jié)點到所述接收節(jié)點的第一傳輸時延;其中,所述接收節(jié)點和所述發(fā)送節(jié)點為所述節(jié)點中的任意兩個節(jié)點;
依據(jù)所述第一傳輸時延和初始化傳輸時延,判斷所述接收節(jié)點和所述發(fā)送節(jié)點是否失同步;其中,所述初始化平均傳輸時延為所述發(fā)送節(jié)點到所述接收節(jié)點的平均傳輸時延;
若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向所述系統(tǒng)中其它節(jié)點發(fā)送失同步幀;
在接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算所述系統(tǒng)中各個節(jié)點之間的平均傳輸時延,建立所述系統(tǒng)中各個節(jié)點之間的時間同步。
可選的,在所述接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀之前,還包括:
所述發(fā)送節(jié)點以廣播的方式連續(xù)至少兩次向所述接收節(jié)點發(fā)送初始化同步幀;
所述接收節(jié)點接收所述初始化同步幀,記錄第一接收時間并從所述初始化同步幀中提取第一發(fā)送時間;
計算各個所述第一接收時間和相應(yīng)的所述第一發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的初始化傳輸時延;
計算各個所述初始化傳輸時延的平均值,作為所述初始化平均傳輸時延。
可選的,所述依據(jù)所述第一傳輸時延和初始化平均傳輸時延,判斷所述接收節(jié)點和所述發(fā)送節(jié)點是否失同步,包括:
判斷所述第一傳輸時延和所述初始化平均傳輸時延的差值的絕對值是否大于預(yù)設(shè)的仿真步長;
若大于所述預(yù)設(shè)的仿真步長,則所述接收節(jié)點和所述發(fā)送節(jié)點失同步。
可選的,所述若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向所述系統(tǒng)中其它節(jié)點發(fā)送失同步幀,包括:
若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點丟棄所述數(shù)據(jù)幀,并以廣播的方式向所述系統(tǒng)中其它節(jié)點發(fā)送所述失同步幀。
可選的,所述在接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算所述系統(tǒng)中各個節(jié)點之間的平均傳輸時延,建立所述系統(tǒng)中各個節(jié)點之間的時間同步,包括:
所述系統(tǒng)中其它節(jié)點接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點以廣播的方式連續(xù)至少兩次互發(fā)同步幀;
所述系統(tǒng)中各個節(jié)點接收所述同步幀,記錄第二接收時間并從所述同步幀中提取第二發(fā)送時間,計算所述第二接收時間和所述第二發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的第二傳輸時延;
計算各個所述第二傳輸時延的平均值,作為所述第二平均傳輸時延;
依據(jù)所述第二平均傳輸時延建立所述系統(tǒng)中各個所述節(jié)點之間的時間同步。
可選的,還包括:
判斷接收到所述失同步幀的節(jié)點是否為所述發(fā)送節(jié)點;
若是所述發(fā)送節(jié)點,所述發(fā)送節(jié)點重新向所述接收節(jié)點發(fā)送所述數(shù)據(jù)幀。
可選的,若所述接收節(jié)點和發(fā)送節(jié)點未失同步,還包括:
判斷所述接收節(jié)點是否為目的節(jié)點;
若所述接收節(jié)點不是目的節(jié)點,將所述數(shù)據(jù)幀中封裝的發(fā)送時間替換為所述接收節(jié)點的機器時間,并將封裝有接收節(jié)點機器時間的數(shù)據(jù)幀轉(zhuǎn)發(fā)給下一節(jié)點。
一種同步調(diào)度的裝置,所述裝置應(yīng)用于分布式半實物仿真網(wǎng)絡(luò)系統(tǒng),所述系統(tǒng)包括至少兩個節(jié)點,所述裝置包括:
傳輸時延計算模塊,用于接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算所述發(fā)送節(jié)點到所述接收節(jié)點的第一傳輸時延;其中,所述接收節(jié)點和所述發(fā)送節(jié)點為所述節(jié)點中的任意兩個節(jié)點;
失同步判斷模塊,用于依據(jù)所述第一傳輸時延和初始化傳輸時延,判斷所述接收節(jié)點和所述發(fā)送節(jié)點是否失同步;其中,所述初始化平均傳輸時延為所述發(fā)送節(jié)點到所述接收節(jié)點的平均傳輸時延;
失同步幀發(fā)送模塊,用于若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向所述系統(tǒng)中其它節(jié)點發(fā)送失同步幀;
同步幀發(fā)送模塊,用于接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算所述系統(tǒng)中各個節(jié)點之間的平均傳輸時延,建立所述系統(tǒng)中各個節(jié)點之間的時間同步。
可選的,還包括:
初始化同步幀發(fā)送模塊,用于所述發(fā)送節(jié)點以廣播的方式連續(xù)至少兩次向所述接收節(jié)點發(fā)送初始化同步幀;
發(fā)送時間獲得模塊,用于所所述接收節(jié)點接收所述初始化同步幀,記錄第一接收時間并從所述初始化同步幀中提取第一發(fā)送時間;
初始化時延計算模塊,用于計算各個所述第一接收時間和相應(yīng)的所述第一發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的初始化傳輸時延;
初始化平均傳輸時延計算模塊,用于計算各個所述初始化傳輸時延的平均值,作為所述初始化平均傳輸時延。
可選的,所述失同步判斷模塊具體用于:
判斷所述第一傳輸時延和所述初始化平均傳輸時延的差值的絕對值是否大于預(yù)設(shè)的仿真步長;
若大于所述預(yù)設(shè)的仿真步長,則所述接收節(jié)點和所述發(fā)送節(jié)點失同步。
本發(fā)明實施例提供了一種同步調(diào)度的方法及裝置,接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算發(fā)送節(jié)點到接收節(jié)點的第一傳輸時延,并依據(jù)所述第一傳輸時延和初始化平均傳輸時延,判斷接收節(jié)點和發(fā)節(jié)點是否失同步,若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向系統(tǒng)中其它節(jié)點發(fā)送失同步幀,接收到所述失同步幀之后,系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算各節(jié)點之間的平均傳輸時延,建立所述半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點之間的時間同步。因此,在無需分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點具有共同的邏輯時鐘或者機器時鐘的前提下,實現(xiàn)了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點的時間同步,并簡化了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中復(fù)雜的時鐘精確同步過程。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種同步調(diào)度的方法的流程示意圖;
圖2為本發(fā)明實施例提供的一種同步調(diào)度的方法的流程示意圖;
圖3為本發(fā)明實施例提供的分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中任意兩個節(jié)點進行同步幀傳遞的示意圖;
圖4為本發(fā)明實施例提供的一種同步調(diào)度的裝置的結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例提供的一種同步調(diào)度的裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
參考圖1,示出了本發(fā)明實施例提供的一種同步調(diào)度的方法,所述方法應(yīng)用于分布式半實物網(wǎng)絡(luò)仿真系統(tǒng),所述系統(tǒng)包括至少兩個節(jié)點,為了后續(xù)介紹方便,以后提到的系統(tǒng)均為分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)。在本實施例中,所述方法可以包括:
S101:接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算所述發(fā)送節(jié)點到所述接收節(jié)點的第一傳輸時延;其中,所述接收節(jié)點和所述發(fā)送節(jié)點為所述節(jié)點中的任意兩個節(jié)點。
本實施例中,由于分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中沒有全局的時鐘,也可以理解為分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點沒有統(tǒng)一的標準時鐘,各節(jié)點的時鐘可能存在偏移量,并且在進行數(shù)據(jù)傳輸?shù)倪^程中還存在傳輸?shù)臅r延。本實施例中的第一傳輸時延可以包括發(fā)送節(jié)點和接收節(jié)點之間的時鐘偏移量以及在數(shù)據(jù)幀傳輸過程中的傳輸時延。
舉例說明:發(fā)送節(jié)點在向接收節(jié)點發(fā)送數(shù)據(jù)幀時,在數(shù)據(jù)幀中封裝有發(fā)送節(jié)點的機器時間。當(dāng)接收節(jié)點接收到發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀后,記錄接收到數(shù)據(jù)幀的接收時間trd,并提取出數(shù)據(jù)幀中發(fā)送節(jié)點的發(fā)送時間tsd,然后依據(jù)公式1),計算發(fā)送節(jié)點到接收節(jié)點的第一傳輸時延;其中Dd為第一傳輸時延;
1)Dd=|trd-tsd|。
S102:依據(jù)所述第一傳輸時延和初始化傳輸時延,判斷所述接收節(jié)點和所述發(fā)送節(jié)點是否失同步;其中,所述初始化平均傳輸時延為所述發(fā)送節(jié)點到所述接收節(jié)點的平均傳輸時延。
本實施例中,對于初始化平均傳輸時延可以是在對系統(tǒng)進行初始化時得到的,具體的,系統(tǒng)中的所有節(jié)點可以以廣播的方式向系統(tǒng)連續(xù)至少兩次發(fā)送初始化同步幀,所述初始化同步幀中封裝了發(fā)送節(jié)點在發(fā)送時刻的機器時間即發(fā)送時間。當(dāng)接收節(jié)點接收到發(fā)送節(jié)點發(fā)送的初始化同步幀后,記錄接收到初始化同步幀的接收時間,將計算得到的接收時間和發(fā)送時間的差值的絕對值作為從所述發(fā)送節(jié)點到所述接收節(jié)點的初始化傳輸時延,由于發(fā)送節(jié)點向系統(tǒng)中連續(xù)至少兩次發(fā)送同步幀,接收節(jié)點可以接收到至少兩個由發(fā)送節(jié)點發(fā)送的同步幀,因此會得到至少兩個初始化傳輸時延,將計算得到的各個初始化傳輸時延的平均值作為初始化平均傳輸時延。
本實施例中,需要說明的是,系統(tǒng)中每兩個節(jié)點之間可以計算出兩個平均傳輸時延,第一個可以為:接收節(jié)點接收發(fā)送節(jié)點發(fā)送的同步幀,從而得到的發(fā)送節(jié)點到接收節(jié)點的傳輸時延;第二個可以為:發(fā)送節(jié)點接收接收節(jié)點發(fā)送的同步幀從而得到的接收節(jié)點到發(fā)送節(jié)點的傳輸時延;即,在發(fā)送節(jié)點得到的是接收節(jié)點到發(fā)送節(jié)點的傳輸時延,在接收節(jié)點得到的是發(fā)送節(jié)點到接收節(jié)點的傳輸時延。由于發(fā)送時刻不同以及不同時刻系統(tǒng)環(huán)境的差異,這兩個傳輸時延可能是相同的,也可能是不同的。
本實施例中,為了保證接收節(jié)點和發(fā)送節(jié)點進行數(shù)據(jù)幀傳輸時是實時進行的,需要判斷接收節(jié)點和發(fā)送節(jié)點傳輸數(shù)據(jù)幀的過程中是否處在同步的進程中,也就是要判斷接收節(jié)點和所述發(fā)送節(jié)點是否失同步。具體的可以依據(jù)如下公式2)計算第一傳輸時延和所述初始化平均傳輸時延的差值的絕對值ΔD;
2)ΔD=|D-Dd|;
其中,第一傳輸時延為Dd,初始化平均傳輸時延為D。判斷所述第一傳輸時延和所述初始化平均傳輸時延的差值的絕對值是否大于預(yù)設(shè)的仿真步長;若大于所述預(yù)設(shè)的仿真步長,則所述接收節(jié)點和所述發(fā)送節(jié)點失同步;若小于等于所述預(yù)設(shè)的仿真步長,則所述接收節(jié)點和所述發(fā)送節(jié)點未失同步。
若所述接收節(jié)點和發(fā)送節(jié)點未失同步,判斷所述接收節(jié)點是否為目的節(jié)點;若所述接收節(jié)點不是目的節(jié)點,將所述數(shù)據(jù)幀中封裝的發(fā)送時間替換為所述接收節(jié)點的機器時間,并將封裝有接收節(jié)點機器時間的數(shù)據(jù)幀轉(zhuǎn)發(fā)給下一節(jié)點;若所述接收節(jié)點是目的節(jié)點,所述接收節(jié)點可以對所述數(shù)據(jù)幀進行進一步的處理。
本實施例中,需要說明的是,所述下一節(jié)點可以是目的節(jié)點或者與所述目標節(jié)點相關(guān)的節(jié)點。
S103:若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向所述系統(tǒng)中其它節(jié)點發(fā)送失同步幀。
本實施例中,具體的,S103可以包括:
若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點丟棄所述數(shù)據(jù)幀,并以廣播的方式向所述系統(tǒng)中其它節(jié)點發(fā)送所述失同步幀。
S104:在所述系統(tǒng)中其它節(jié)點接收到失同步幀之后,所述系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算所述系統(tǒng)中各個節(jié)點之間的平均傳輸時延,建立所述系統(tǒng)中各個節(jié)點之間的時間同步。
本實施例中,若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,則之前系統(tǒng)中各節(jié)點之間的初始化平均傳輸時延不能再使用,需要重新建立所述系統(tǒng)中各節(jié)點之間的時間同步,具體S104可以包括:
所述系統(tǒng)中其它節(jié)點接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點以廣播的方式連續(xù)至少兩次互發(fā)同步幀;所述系統(tǒng)中各個節(jié)點接收所述同步幀,記錄第二接收時間并從所述同步幀中提取第二發(fā)送時間,計算所述第二接收時間和所述第二發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的第二傳輸時延;計算各個所述第二傳輸時延的平均值,作為所述第二平均傳輸時延;依據(jù)所述第二平均傳輸時延建立所述系統(tǒng)中各個所述節(jié)點之間的時間同步。
本實施例中,需要說明的是,當(dāng)接收節(jié)點與發(fā)送節(jié)點失同步時,接收節(jié)點以廣播的方式向系統(tǒng)中其它節(jié)點發(fā)送失同步幀,系統(tǒng)中所述其它節(jié)點可以包括:除所述接收節(jié)點之外的所有節(jié)點。接收節(jié)點和接收到失同步幀的其它節(jié)點都可以以廣播的方式向系統(tǒng)中的節(jié)點連續(xù)至少兩次發(fā)送同步幀,例如可以連續(xù)發(fā)送10次,進一步可以理解為系統(tǒng)中各個節(jié)點以廣播的方式連續(xù)至少兩次互發(fā)同步幀。
本實施例中,所述失同步幀中承載了數(shù)據(jù)幀的發(fā)送節(jié)點相關(guān)的信息,也就是當(dāng)任意一個節(jié)點接收到失同步幀后,會依據(jù)發(fā)送節(jié)點相關(guān)的信息判斷自身是否是數(shù)據(jù)幀的發(fā)送節(jié)點。具體的,還包括:判斷接收到所述失同步幀的節(jié)點是否為所述發(fā)送節(jié)點;若是所述發(fā)送節(jié)點,所述發(fā)送節(jié)點重新向所述接收節(jié)點發(fā)送所述數(shù)據(jù)幀。
本實施例中,接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算發(fā)送節(jié)點到接收節(jié)點的第一傳輸時延,并依據(jù)所述第一傳輸時延和初始化平均傳輸時延,判斷接收節(jié)點和發(fā)節(jié)點是否失同步,若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向系統(tǒng)中其它節(jié)點發(fā)送失同步幀,在接收到所述失同步幀之后,系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算各節(jié)點之間的平均傳輸時延,建立所述半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點之間的時間同步。因此,在無需分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點具有共同的邏輯時鐘或者機器時鐘的前提下,實現(xiàn)了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點的時間同步,并簡化了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中復(fù)雜的時鐘精確同步過程。
參考圖2,示出了本發(fā)明實施例提供的一種同步調(diào)度的方法的流程示意圖。在本實施例中,所述方法可以包括:
S201:所述發(fā)送節(jié)點以廣播的方式連續(xù)至少兩次向所述接收節(jié)點發(fā)送初始化同步幀;
本實施例中,對于初始化平均傳輸時延可以是在對系統(tǒng)進行初始化時得到的。若是在初始化時得到的,在系統(tǒng)初始化的過程中,除了可以得到初始化平均傳輸時延,還可以規(guī)劃系統(tǒng)的組成,主要是規(guī)劃網(wǎng)絡(luò)的設(shè)備、節(jié)點類型和節(jié)點數(shù)量。其中,半實物網(wǎng)絡(luò)仿真系統(tǒng)中,設(shè)備可以包括運行仿真環(huán)境的仿真計算機、實物終端設(shè)備。
在初始化的過程中,系統(tǒng)中各個節(jié)點以廣播的方式互發(fā)初始化同步幀,通過廣播的方式,就相當(dāng)于系統(tǒng)中其它的任何節(jié)點都可以接收到發(fā)送節(jié)點發(fā)送的初始化同步幀(節(jié)點之間發(fā)送同步幀時的狀態(tài)圖如圖3所示)。其中,在初始化的過程中,發(fā)送節(jié)點以廣播的方式連續(xù)至少兩次向所述系統(tǒng)中其它的節(jié)點發(fā)送初始化同步幀。
S202:所述接收節(jié)點接收所述初始化同步幀,記錄第一接收時間并從所述初始化同步幀中提取第一發(fā)送時間。
本實施例中,當(dāng)接收節(jié)點接收到所述初始化同步幀后,可以獲得接收初始化同步幀的接收時間,并解析所述初始化同步幀中封裝的發(fā)送節(jié)點發(fā)送的初始化同步幀的發(fā)送時間。
本實施例中,由于發(fā)送節(jié)點連續(xù)至少兩次向系統(tǒng)中發(fā)送初始化同步幀,因此接收節(jié)點可以接收到至少兩個由發(fā)送節(jié)點發(fā)送的初始化同步幀。接收節(jié)點每次接收到初始化同步幀時,都可以記錄接收到該初始化同步幀的接收時間,并且可以從所述初始化同步幀中提取出封裝的發(fā)送時間。
S203:計算各個所述第一接收時間和相應(yīng)的所述第一發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的初始化傳輸時延。
舉例說明:接收到初始化同步幀的第一接收時間為tr,解析出的初始化同步幀中封裝的第一發(fā)送時間為ts,依據(jù)公式3)計算發(fā)送節(jié)點到接收節(jié)點的初始化傳輸時延td;
3)td=|tr-ts|。
S204:計算各個所述初始化傳輸時延的平均值,作為所述初始化平均傳輸時延。
本實施例中,接收節(jié)點接收了發(fā)送節(jié)點發(fā)送的所有初始化同步幀,并得到所有初始化同步幀對應(yīng)的初始化傳輸時延后,計算所有初始化傳輸時延的平均值,得到初始化平均傳輸時延。
舉例說明:發(fā)送節(jié)點發(fā)送了n次初始化同步幀,依據(jù)公式4)計算初始化平均傳輸時延;其中,tdi表示第i個同步幀相對應(yīng)的初始化傳輸時延;
本實施例中,由于系統(tǒng)中每一個時刻系統(tǒng)環(huán)境可能不同,系統(tǒng)環(huán)境的不同可以導(dǎo)致接收節(jié)點接收到的初始化同步幀時間不一致,所以可以通過多次發(fā)送初始化同步幀,從而得到多個初始化傳輸時延,進而通過取平均值的方法得到初始化平均傳輸時延,避免由于接收節(jié)點接收到的初始化同步幀的時間差異性對計算出的初始化平均傳輸時延帶來較大的誤差。因此,通過計算兩個節(jié)點之間的平均傳輸時延,可以認為得到的平均傳輸時延為兩個節(jié)點之間的相對時間同步范圍,進而再進行數(shù)據(jù)傳輸時,可以根據(jù)平均傳輸時延判斷兩個節(jié)點之間是否處于失同步。
參考圖4,示出了本發(fā)明實施例提供的一種同步調(diào)度的裝置。在本實施例中,所述裝置可以包括:
傳輸時延計算模塊401,用于接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算所述發(fā)送節(jié)點到所述接收節(jié)點的第一傳輸時延;其中,所述接收節(jié)點和所述發(fā)送節(jié)點為所述節(jié)點中的任意兩個節(jié)點;
失同步判斷模塊402,用于依據(jù)所述第一傳輸時延和初始化傳輸時延,判斷所述接收節(jié)點和所述發(fā)送節(jié)點是否失同步;其中,所述初始化平均傳輸時延為所述發(fā)送節(jié)點到所述接收節(jié)點的平均傳輸時延;
失同步幀發(fā)送模塊403,用于若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向所述系統(tǒng)中其它節(jié)點發(fā)送失同步幀。
同步幀發(fā)送模塊404,用于接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算所述系統(tǒng)中各個節(jié)點之間的平均傳輸時延,建立所述系統(tǒng)中各個節(jié)點之間的時間同步。
參考圖5,可選的,還包括:
初始化同步幀發(fā)送模塊501,用于所述發(fā)送節(jié)點以廣播的方式連續(xù)至少兩次向所述接收節(jié)點發(fā)送初始化同步幀;
發(fā)送時間獲得模塊502,用于所所述接收節(jié)點接收所述初始化同步幀,記錄第一接收時間并從所述初始化同步幀中提取第一發(fā)送時間;
初始化傳輸時延計算模塊503,用于計算各個所述第一接收時間和相應(yīng)的所述第一發(fā)送時間的差值,作為所述發(fā)送節(jié)點到所述接收節(jié)點的初始化傳輸時延;
初始化平均傳輸時延計算模塊504,用于計算各個所述初始化傳輸時延的平均值,作為所述初始化平均傳輸時延。
可選的,所述失同步判斷模塊具體用于,判斷所述第一傳輸時延和所述初始化平均傳輸時延的差值的絕對值是否大于預(yù)設(shè)的仿真步長;
若大于所述預(yù)設(shè)的仿真步長,則所述接收節(jié)點和所述發(fā)送節(jié)點失同步。
可選的,所述失同步幀發(fā)送模塊具體用于:
若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點丟棄所述數(shù)據(jù)幀,并以廣播的方式向所述系統(tǒng)中其它節(jié)點發(fā)送所述失同步幀。
可選的,所述同步幀發(fā)送模塊包括:
同步幀發(fā)送子模塊,用于所述系統(tǒng)中其它節(jié)點接收到所述失同步幀之后,所述系統(tǒng)中各個節(jié)點以廣播的方式連續(xù)至少兩次互發(fā)同步幀;
第二傳輸時延計算子模塊,用于所述系統(tǒng)中各個節(jié)點接收所述同步幀,記錄第二接收時間并從所述同步幀中提取第二發(fā)送時間,計算各個所述第二接收時間和相應(yīng)的所述第二發(fā)送時間的差值,作為第二發(fā)送節(jié)點到第二接收節(jié)點的第二傳輸時延;
第二平均傳輸時延計算子模塊,用于計算各個所述第二傳輸時延的平均值,作為所述第二平均傳輸時延;
同步建立子模塊,用于依據(jù)所述第二平均傳輸時延建立所述系統(tǒng)中各個所述節(jié)點之間的時間同步。
可選的,還包括:
發(fā)送節(jié)點判斷模塊,用于判斷接收到所述失同步幀的節(jié)點是否為所述發(fā)送節(jié)點;
數(shù)據(jù)幀發(fā)送模塊,用于若是所述發(fā)送節(jié)點,所述發(fā)送節(jié)點重新向所述接收節(jié)點發(fā)送所述數(shù)據(jù)幀。
可選的,若所述接收節(jié)點和發(fā)送節(jié)點未失同步,還包括:
目的節(jié)點判斷模塊,用于判斷所述接收節(jié)點是否為目的節(jié)點;
數(shù)據(jù)幀轉(zhuǎn)發(fā)模塊,用于若所述接收節(jié)點不是目的節(jié)點,將所述數(shù)據(jù)幀中封裝的發(fā)送時間替換為所述接收節(jié)點的機器時間,并將封裝有接收節(jié)點機器時間的數(shù)據(jù)幀轉(zhuǎn)發(fā)給下一節(jié)點。
通過本實施例提供的裝置,接收節(jié)點接收發(fā)送節(jié)點發(fā)送的數(shù)據(jù)幀,計算發(fā)送節(jié)點到接收節(jié)點的第一傳輸時延,并依據(jù)所述第一傳輸時延和初始化平均傳輸時延,判斷接收節(jié)點和發(fā)節(jié)點是否失同步,若所述接收節(jié)點和所述發(fā)送節(jié)點失同步,所述接收節(jié)點向系統(tǒng)中其它節(jié)點發(fā)送失同步幀;在接收到所述失同步幀之后,系統(tǒng)中各個節(jié)點之間互發(fā)同步幀,依據(jù)所述同步幀重新計算各節(jié)點之間的平均傳輸時延,建立所述半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點之間的時間同步。因此,在無需分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點具有共同的邏輯時鐘或者機器時鐘的前提下,實現(xiàn)了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中各節(jié)點的時間同步,并簡化了分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)中復(fù)雜的時鐘精確同步過程。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。