一種分布式實時測試系統(tǒng)時鐘同步方法
【專利摘要】本發(fā)明涉及一種分布式實時測試系統(tǒng)時鐘同步方法,將時鐘同步過程分為測試開始前時鐘同步和測試進行中兩個過程,其中,在測試開始前,利用類似IEEE?1588的時鐘同步方法,保證主從節(jié)點之間的時鐘同步精確性,同時利用分層同步的方法,使得每輪同步的節(jié)點數(shù)指數(shù)上升,保證了系統(tǒng)時鐘同步的效率;同時,在測試開始前的同步中,從節(jié)點可以得到與主節(jié)點之間的傳輸時延,故測試過程中的時鐘同步在測試開始前的同步過程的基礎(chǔ)之上,進一步提高了同步的效率;最后,測試過程中節(jié)點獲得時鐘漂移之后與系統(tǒng)時鐘最小顆粒度進行比較,如果時鐘漂移小于最小顆粒度則記錄漂移并在測試完成后對測試結(jié)果的時間標簽進行修正,這就避免了頻繁地修正時鐘導致節(jié)點的定時任務(wù)執(zhí)行紊亂。
【專利說明】一種分布式實時測試系統(tǒng)時鐘同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種分布式實時測試系統(tǒng)時鐘同步方法,屬于嵌入式軟件測試【技術(shù)領(lǐng)域】。
【背景技術(shù)】
[0002]嵌入式軟件在航空航天等領(lǐng)域的應(yīng)用面正在日益擴大,針對嵌入式軟件的測試需求也越加迫切。一方面,為成功的完成測試任務(wù),嵌入式軟件測試系統(tǒng)必須能夠在規(guī)定的時間點上準確無誤的完成預(yù)定的任務(wù);另一方面,隨著嵌入式系統(tǒng)本身的復雜性越來越強,對測試系統(tǒng)容納負載的能力也相應(yīng)提出越來越高的要求,采用分布式架構(gòu)的測試系統(tǒng)可以將負載平均分配到各個節(jié)點互不干擾的運行。
[0003]分布式實時測試系統(tǒng)需要將各節(jié)點的測試數(shù)據(jù)收集并且歸并起來以供分析,所以要求系統(tǒng)記錄所有測試數(shù)據(jù)產(chǎn)生的時間標簽,并且要求各節(jié)點的時鐘必須一致,也就是說,在測試開始之前,必須對系統(tǒng)內(nèi)的各節(jié)點進行時鐘同步。然而,由于各節(jié)點由各自的定時器獨立定時,整個測試的過程中不可能保證各節(jié)點的時鐘完全一致,這就要求在測試過程中也需要對系統(tǒng)進行時鐘同步。
[0004]目前在分布式系統(tǒng)中常用的時鐘同步方法主要有以下幾種:
[0005]Gossip算法:采用gossip算法,分布式系統(tǒng)中的所有節(jié)點之間隨機兩兩互相發(fā)送時鐘信息,分別計算平均值并將兩個節(jié)點的時鐘都設(shè)置為平均值;通過一段時間的同步操作,最后系統(tǒng)中的所有節(jié)點的時鐘均將收斂于所有節(jié)點時鐘的平均值。然而測試系統(tǒng)往往需要一個節(jié)點作為標準時鐘節(jié)點,系統(tǒng)中各節(jié)點的時鐘應(yīng)該收斂于標準時鐘節(jié)點的時鐘;另外,gossip算法需要執(zhí)行一段時間才能完成足夠多的隨機時鐘同步操作,故對于要求能夠快速完成時鐘同步操作的用于嵌入式軟件測試的分布式實時測試系統(tǒng)來說,基于gossip算法的時鐘同步方法不能滿足要求。
[0006]時鐘廣播法:目前存在多種基于廣播時鐘信息的時鐘同步方法,這些方法選取一個節(jié)點作為標準時鐘節(jié)點,向其他所有節(jié)點周期性的廣播本節(jié)點的時鐘信息,其他節(jié)點收到信息后進行時鐘修正,但由于這種方法往往不考慮信息在網(wǎng)絡(luò)中傳播的傳輸時延造成的誤差,故無法應(yīng)用于對實時性要求高的分布式系統(tǒng)。
[0007]IEEE 1588協(xié)議的全稱是“網(wǎng)絡(luò)測量和控制系統(tǒng)的精確時鐘同步協(xié)議”,簡稱PTP(Precis1n Time Protocal)。它具有配置容易、收斂快速以及對網(wǎng)絡(luò)帶寬和資源消耗少等優(yōu)點。PTP協(xié)議采用以下方法完成時鐘同步操作:主時鐘向從時鐘發(fā)送同步指令并記錄發(fā)送時間,從時鐘記錄收到指令的時間,主時鐘向從時鐘發(fā)送記錄的時間,從時鐘向主時鐘發(fā)送延時請求并記錄時間,主時鐘向從時鐘發(fā)送收到延時請求的時間,從時鐘根據(jù)所得的四個時間標簽通過公式可以得到從時鐘相對主時鐘的時間漂移。PTP協(xié)議可以快速完成兩個節(jié)點之間的時鐘同步操作,但多個節(jié)點之間同步速度不能滿足分布式實時測試系統(tǒng)的時鐘同步要求。而且主時鐘與多個從時鐘分別進行時鐘同步不僅需要占用主時鐘節(jié)點大量的資源,也需要長時間占用網(wǎng)絡(luò)資源影響系統(tǒng)的通信,對于測試系統(tǒng)來說,在測試過程中帶來的花銷更是無法接受。
[0008]在嵌入式軟件測試領(lǐng)域,測試往往要求在實時性很高的情況下進行,執(zhí)行的測試任務(wù)往往要求以準確的周期多次執(zhí)行,如果頻繁地進行時鐘同步將會擾亂測試系統(tǒng)的定時器,造成執(zhí)行周期紊亂。
[0009]因此,需要一種方法,一方面能夠在消耗少量資源的情況下快速完成高精度的時鐘同步操作;另一方面能夠避免測試過程中頻繁調(diào)整時鐘導致的定時任務(wù)執(zhí)行紊亂。
【發(fā)明內(nèi)容】
[0010]本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種分布式實時測試系統(tǒng)時鐘同步方法,一方面能夠在消耗少量資源的情況下快速完成高精度的時鐘同步操作;另一方面能夠避免測試過程中頻繁調(diào)整時鐘導致的定時任務(wù)執(zhí)行紊亂。
[0011]本發(fā)明技術(shù)方案如下:一種分布式實時測試系統(tǒng)時鐘同步方法,所述方法分為測試開始前的時鐘同步和測試進行中的時鐘同步,其中:
[0012]所述測試開始前的時鐘同步步驟如下:
[0013](11)從系統(tǒng)的所有節(jié)點中選出一個節(jié)點作為標準時鐘節(jié)點;
[0014](12)根據(jù)系統(tǒng)內(nèi)部的節(jié)點總數(shù)計算需要將節(jié)點分為多少層來進行時鐘同步,計算方法如下:如果系統(tǒng)內(nèi)節(jié)點總數(shù)為N,則計算同步層數(shù)η的公式為2*2(n_2)〈N-K = 2*2(η_? ;
[0015](13)為所有節(jié)點編號,標準時鐘節(jié)點為“0”,其余節(jié)點從“I”至“N -1”編號;
[0016](14)將節(jié)點I至節(jié)點N -1分層,其中,第η層節(jié)點數(shù)為2 (η -1)個;
[0017](15)逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每次同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù);
[0018](16)在主從節(jié)點進行時鐘同步的過程中,從節(jié)點獲取時鐘漂移Tdiff和與主節(jié)點之間、的傳輸時延Tdelay,從節(jié)點按照Tdiff修正時鐘,并且記錄與主節(jié)點之間的傳輸時延;
[0019](17)節(jié)點修正時鐘后向標準時鐘節(jié)點發(fā)送同步完成消息,標準時鐘節(jié)點收到所有節(jié)點的冋步完成消息后,測試開始如的時鐘冋步完成;
[0020]所述測試進行中的時鐘同步步驟如下:
[0021](21)由標準時鐘節(jié)點周期性地向各時鐘同步層發(fā)出同步指令,每個同步周期內(nèi)整個系統(tǒng)進行一次時鐘同步,每次同步各節(jié)點逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每次同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點2(ffl-1)+k作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù);
[0022](22)測試過程中主從節(jié)點同步,同步按照以下過程進行:
[0023](221)從主節(jié)點向從節(jié)點發(fā)送同步指令消息Sync,并且主節(jié)點記錄發(fā)送指令的時間點Tl ;
[0024](222)從節(jié)點記錄接收到Sync消息的時間點T2 ;
[0025] (223)主節(jié)點向從節(jié)點發(fā)送跟隨消息Follow_up,其中包含記錄的Tl ;
[0026](224)從節(jié)點根據(jù)公式計算時鐘漂移Tdiff,Tdiff = [ (T2 -Tl) -Tdelay],其中,Tdelay為從節(jié)點記錄的主從節(jié)點之間的傳輸時延;
[0027](225)如果計算得出的Tdelay小于等于系統(tǒng)時鐘的最小顆粒度Tatom,記錄第m個同步周期的時鐘漂移Tdelayjn,否則進行時鐘修正;
[0028](226)測試結(jié)束后按照各從節(jié)點記錄的各同步周期內(nèi)的時鐘漂移Tdelay修正測試數(shù)據(jù)的時間標簽。
[0029]所述步驟(11)中從系統(tǒng)的所有節(jié)點中選出一個節(jié)點作為標準時鐘節(jié)點的步驟如下;
[0030]根據(jù)應(yīng)用的測試系統(tǒng)的不同,標準時鐘節(jié)點的選取按照以下幾種原則進行:
[0031](111)如果測試系統(tǒng)包含主節(jié)點,將主節(jié)點作為標準時鐘節(jié)點;
[0032](112)如果測試系統(tǒng)只關(guān)注相對時間,則可任意選取節(jié)點作為標準時鐘節(jié)點;
[0033](113)如果測試系統(tǒng)關(guān)注絕對時間,則該測試系統(tǒng)須經(jīng)過網(wǎng)絡(luò)或者GPS手段進行校時,將對外校時的節(jié)點作為系統(tǒng)內(nèi)部的標準時鐘節(jié)點。
[0034]所述步驟(21)中測試過程中的同步周期為:設(shè)置為10?200倍系統(tǒng)時鐘最小顆粒度,實時性要求較高的系統(tǒng),同步周期越小;所謂系統(tǒng)時鐘最小顆粒度是指系統(tǒng)中需要周期執(zhí)行的測試任務(wù)中最小的周期。
[0035]本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:本發(fā)明將時鐘同步過程分為測試開始前時鐘同步和測試進行中兩個過程,其中,在測試開始前,利用類似IEEE 1588的時鐘同步方法,保證主從節(jié)點之間的時鐘同步精確性,同時利用分層同步的方法,使得每輪同步的節(jié)點數(shù)指數(shù)上升,保證了系統(tǒng)時鐘同步的效率;同時,在測試開始前的同步中,從節(jié)點可以得到與主節(jié)點之間的傳輸時延,故測試過程中的時鐘同步在測試開始前的同步過程的基礎(chǔ)之上,進一步提高了同步的效率;最后,測試過程中節(jié)點獲得時鐘漂移之后與系統(tǒng)時鐘最小顆粒度進行比較,如果時鐘漂移小于最小顆粒度則記錄漂移并在測試完成后對測試結(jié)果的時間標簽進行修正,這就避免了頻繁地修正時鐘導致節(jié)點的定時任務(wù)執(zhí)行紊亂。
【專利附圖】
【附圖說明】
[0036]圖1為本發(fā)明所述的一種分布式實時測試系統(tǒng)時鐘同步方法的實現(xiàn)過程;
[0037]圖2為本發(fā)明說書方法的實施例中分三輪進行時鐘同步的過程。
【具體實施方式】
[0038]為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例進行詳細描述。
[0039]本發(fā)明涉及一種分布式實時測試系統(tǒng)時鐘同步方法,這種方法一方面能夠在消耗少量資源的情況下快速完成高精度的時鐘同步操作;另一方面能夠避免測試過程中頻繁調(diào)整時鐘導致的定時任務(wù)執(zhí)行紊亂。
[0040]如圖1所示,本發(fā)明在實施例中的具體步驟如下:
[0041]測試開始前的時鐘同步步驟如下:
[0042]步驟一:從系統(tǒng)的所有節(jié)點中選出一個節(jié)點作為標準時鐘節(jié)點。選取標準時鐘節(jié)點按照如下原則進行:
[0043](I)如果測試系統(tǒng)包含主節(jié)點,將主節(jié)點作為標準時鐘節(jié)點;
[0044](2)如果測試系統(tǒng)只關(guān)注相對時間,則可任意選取節(jié)點作為標準時鐘節(jié)點;
[0045](3)如果測試系統(tǒng)關(guān)注絕對時間,則該測試系統(tǒng)須經(jīng)過網(wǎng)絡(luò)或者GPS等手段進行校時,將對外校時的節(jié)點作為系統(tǒng)內(nèi)部的標準時鐘節(jié)點;
[0046]在發(fā)明本實施例中,需進行時鐘同步的系統(tǒng)采用主節(jié)點控制從節(jié)點完成測試任務(wù)的結(jié)構(gòu),故將系統(tǒng)中的主節(jié)點最為標準時鐘節(jié)點。
[0047]步驟二:根據(jù)系統(tǒng)內(nèi)部的節(jié)點總數(shù)計算需要將節(jié)點分為多少層來進行時鐘同步,計算方法如下:
[0048]如果系統(tǒng)內(nèi)節(jié)點總數(shù)為N,則計算同步層數(shù)η的公式為2*2(η_2)〈Ν - 1< = 2*2(η_? ;在本實施例中,節(jié)點總數(shù)為8個,根據(jù)公式計算得出需要分為3層完成時鐘同步,也就是說,需要同步3輪才能完成整個系統(tǒng)內(nèi)所有節(jié)點的時鐘同步。
[0049]步驟三:為所有節(jié)點編號,標準時鐘節(jié)點為“0”,其余節(jié)點從“ I”至“Ν-1 ”編號。
[0050]在本發(fā)明實施例中,將主節(jié)點編號為“0”,其余節(jié)點從“I”至“7”編號。
[0051]步驟四:將節(jié)點I至節(jié)點N-1分層,其中,第η層節(jié)點數(shù)為2(η_?個。
[0052]在發(fā)明本實施例中,將節(jié)點I至節(jié)點7分層,根據(jù)公式計算可知,節(jié)點I在第一層;節(jié)點2至3在第二層;節(jié)點4至7在第三層。
[0053]步驟五:逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每輪同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù)。
[0054]在本發(fā)明實施例中,需要進行3輪同步,根據(jù)公式計算可知,第一輪同步在節(jié)點
O-1之間進行,O為主節(jié)點,I為從節(jié)點;第二輪同步分為兩組:0為主節(jié)點,2為從節(jié)點;1為主節(jié)點,3為從節(jié)點;第三輪同步分為四組:0為主節(jié)點,4為從節(jié)點;1為主節(jié)點,5為從節(jié)點;2為主節(jié)點,6為從節(jié)點;3為主節(jié)點,7為從節(jié)點,同步過程可見附圖2。
[0055]步驟六:在主從節(jié)點進行時鐘同步的過程中,從節(jié)點可以獲取時鐘漂移Tdiff和與主節(jié)點之間的傳輸時延Tdelay,從節(jié)點按照Tdiff修正時鐘,并且記錄與主節(jié)點之間的傳輸時延。
[0056]在發(fā)明本實施例中,系統(tǒng)中節(jié)點之前采用以太網(wǎng)連接,節(jié)點η的ip地址設(shè)置為192.168.1.(n+1),故使用socket通訊完成時鐘同步。主從節(jié)點之間時鐘同步的實現(xiàn)過程如下:
[0057](I)從節(jié)點作為服務(wù)器端,綁定端口 1620并開始監(jiān)聽,端口的選定只要保證和已占用的端口沒有沖突即可,對本發(fā)明所述方法本身的實現(xiàn)沒有影響;主節(jié)點作為服務(wù)器端連接服務(wù)器端發(fā)送Sync消息并且記錄此時的系統(tǒng)時間Tl ;
[0058](2)從節(jié)點接收到Sync消息后立即記錄此時的系統(tǒng)時間T2 ;
[0059](3)主節(jié)點向從節(jié)點發(fā)送Follow_up消息,其中包含記錄的Tl ;
[0060](4)從節(jié)點收到Follow_up消息之后,向主節(jié)點發(fā)送Delay_req消息并且記錄發(fā)送消息的時間T3 ;
[0061](5)主節(jié)點記錄收到Follow_up消息的時間點T4并且向從節(jié)點發(fā)送消息Delay_resp,其中包含記錄的T4,主從節(jié)點分別關(guān)閉socket結(jié)束通訊;
[0062](6)根據(jù)公式Tdiff = [(Tl - T2) - (T4 - T3)]得出從節(jié)點相對主節(jié)點的時鐘漂移,根據(jù)公式Tdelay = [(Tl - T2) + (T4 - Τ3)]得出主節(jié)點與從節(jié)點之間的傳輸時延。
[0063]步驟七:節(jié)點修正時鐘后向標準時鐘節(jié)點發(fā)送同步完成消息,標準時鐘節(jié)點收到所有節(jié)點的冋步完成消息后,測試開始如的時鐘冋步完成。
[0064]測試進行中的時鐘同步步驟如下:
[0065]步驟八:由標準時鐘節(jié)點周期性地向各時鐘同步層發(fā)出同步指令,與測試前的時鐘同步過程類似,每個同步周期內(nèi)整個系統(tǒng)進行一次時鐘同步,每次同步各節(jié)點逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每次同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點20^1)+k作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù)。
[0066]測試過程中的同步周期為:
[0067]根據(jù)本發(fā)明應(yīng)用的測試系統(tǒng)的不同,測試進行中的時鐘同步周期也不同,可將同步周期設(shè)置為10~200倍系統(tǒng)時鐘最小顆粒度,實時性要求較高的系統(tǒng),同步周期越??;所謂系統(tǒng)時鐘最小顆粒度是指系統(tǒng)中需要周期執(zhí)行的測試任務(wù)中最小的周期。
[0068]在本發(fā)明實施例中,系統(tǒng)的最小顆粒度為0.5ms,將測試過程中的時鐘同步周期設(shè)定為20ms,即40倍系統(tǒng)時鐘最小顆粒度。
[0069]步驟九:在本實施例中,測試過程中的時鐘同步與測試開始前的時鐘同步類似,也使用socket通訊完成時鐘同步。主從節(jié)點之間時鐘同步的實現(xiàn)過程如下:
[0070](1)從節(jié)點作為服務(wù)器端,綁定端口 1620并開始監(jiān)聽;主節(jié)點作為服務(wù)器端連接服務(wù)器端發(fā)送Sync消息并且記錄此時的系統(tǒng)時間Tl ;
[0071](2)從節(jié)點接收到Sync消息后立即記錄此時的系統(tǒng)時間T2 ;
[0072](3)主節(jié)點向從節(jié)點發(fā)送Follow_up消息,其中包含記錄的Tl ;
[0073](4)從節(jié)點根據(jù)公式計算時鐘漂移Tdiff, Tdiff = [(T2 - Tl) - Tdelay],其中,Tdelay為從節(jié)點記錄的主從節(jié)點之間的傳輸時延;
[0074](5)如果計算得出的Tdelay小于等于系統(tǒng)時鐘的最小顆粒度Tatom,記錄第m個同步周期的時鐘漂移Tdelay_m,否則進行時鐘修正;從節(jié)點使用單向鏈表保存每個同步周期獲得的時鐘漂移,如果某周期進行了時鐘修正,將該周期的時鐘漂移保存為O ;
[0075](6)測試結(jié)束后按照各從節(jié)點記錄的各同步周期內(nèi)的時鐘漂移Tdelay修正測試數(shù)據(jù)的時間標簽;測試結(jié)束后首先對獲得的測試數(shù)據(jù)進行處理,例如,假設(shè)從節(jié)點第一個同步周期內(nèi)的時鐘漂移為+0.1ms,則將所有時間標簽在O - 20ms范圍內(nèi)的測試數(shù)據(jù)的時間標簽都-0.1ms。
[0076]本發(fā)明未詳細闡述部分屬于本領(lǐng)域公知技術(shù)。
[0077]以上所述,僅為本發(fā)明部分【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本領(lǐng)域的人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種分布式實時測試系統(tǒng)時鐘同步方法,其特征在于所述方法分為測試開始前的時鐘同步和測試進行中的時鐘同步,其中: 所述測試開始前的時鐘同步步驟如下: (11)從系統(tǒng)的所有節(jié)點中選出一個節(jié)點作為標準時鐘節(jié)點; (12)根據(jù)系統(tǒng)內(nèi)部的節(jié)點總數(shù)計算需要將節(jié)點分為多少層來進行時鐘同步,計算方法如下:如果系統(tǒng)內(nèi)節(jié)點總數(shù)為N,則計算同步層數(shù)η的公式為2*2(η_2)〈Ν - 1< = 2*2(η_? ; (13)為所有節(jié)點編號,標準時鐘節(jié)點為“O”,其余節(jié)點從“I”至“N-1”編號; (14)將節(jié)點I至節(jié)點N-1分層,其中,第η層節(jié)點數(shù)為2(η-?個; (15)逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每次同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點2(m_D+k作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù); (16)在主從節(jié)點進行時鐘同步的過程中,從節(jié)點獲取時鐘漂移Tdiff和與主節(jié)點之間、的傳輸時延Tdelay,從節(jié)點按照Tdiff修正時鐘,并且記錄與主節(jié)點之間的傳輸時延; (17)節(jié)點修正時鐘后向標準時鐘節(jié)點發(fā)送同步完成消息,標準時鐘節(jié)點收到所有節(jié)點的冋步完成消息后,測試開始如的時鐘冋步完成; 所述測試進行中的時鐘同步步驟如下: (21)由標準時鐘節(jié)點周期性地向各時鐘同步層發(fā)出同步指令,每個同步周期內(nèi)整個系統(tǒng)進行一次時鐘同步,每次同步各節(jié)點逐層進行多輪時鐘同步,需要進行的同步輪數(shù)與節(jié)點分成的層數(shù)η相同,每次同步在多組主節(jié)點和從節(jié)點之間進行,第m輪同步時,由節(jié)點k作為時鐘同步的主節(jié)點,節(jié)點+k作為從節(jié)點,其中k為從O至2*2(π_2) -1的自然數(shù); (22)測試過程中主從節(jié)點同步,同步按照以下過程進行: (221)從主節(jié)點向從節(jié)點發(fā)送同步指令消息Sync,并且主節(jié)點記錄發(fā)送指令的時間點Tl ; (222)從節(jié)點記錄接收到Sync消息的時間點T2; (223)主節(jié)點向從節(jié)點發(fā)送跟隨消息Follow_up,其中包含記錄的Tl; (224)從節(jié)點根據(jù)公式計算時鐘漂移Tdiff,Tdiff=[(T2 - Tl) - Tdelay],其中,Tdelay為從節(jié)點記錄的主從節(jié)點之間的傳輸時延; (225)如果計算得出的Tdelay小于等于系統(tǒng)時鐘的最小顆粒度Tatom,記錄第m個同步周期的時鐘漂移Tdelayjn,否則進行時鐘修正; (226)測試結(jié)束后按照各從節(jié)點記錄的各同步周期內(nèi)的時鐘漂移Tdelay修正測試數(shù)據(jù)的時間標簽。
2.根據(jù)權(quán)利要求1所述的分布式實時測試系統(tǒng)時鐘同步方法,其特征在于:所述步驟(11)中從系統(tǒng)的所有節(jié)點中選出一個節(jié)點作為標準時鐘節(jié)點的步驟如下;根據(jù)應(yīng)用的測試系統(tǒng)的不同,標準時鐘節(jié)點的選取按照以下幾種原則進行: (111)如果測試系統(tǒng)包含主節(jié)點,將主節(jié)點作為標準時鐘節(jié)點; (112)如果測試系統(tǒng)只關(guān)注相對時間,則可任意選取節(jié)點作為標準時鐘節(jié)點; (113)如果測試系統(tǒng)關(guān)注絕對時間,則該測試系統(tǒng)須經(jīng)過網(wǎng)絡(luò)或者GPS手段進行校時,將對外校時的節(jié)點作為系統(tǒng)內(nèi)部的標準時鐘節(jié)點。
3.根據(jù)權(quán)利要求1所述的分布式實時測試系統(tǒng)時鐘同步方法,其特征在于:所述步驟(21)中測試過程中的同步周期為:設(shè)置為10~200倍系統(tǒng)時鐘最小顆粒度,實時性要求較高的系統(tǒng),同步周期越??;所謂系統(tǒng)時鐘最小顆粒度是指系統(tǒng)中需要周期執(zhí)行的測試任務(wù)中最小 的周期。
【文檔編號】H04J3/06GK104079364SQ201410277069
【公開日】2014年10月1日 申請日期:2014年6月19日 優(yōu)先權(quán)日:2014年6月19日
【發(fā)明者】楊順昆, 劉斌, 司維 申請人:北京航空航天大學