麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步方法及系統(tǒng)與流程

文檔序號(hào):12375888閱讀:426來(lái)源:國(guó)知局
適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步方法及系統(tǒng)與流程

本發(fā)明涉及通信網(wǎng)絡(luò)中的時(shí)鐘同步技術(shù)領(lǐng)域,特別涉及適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步方法及系統(tǒng)。



背景技術(shù):

時(shí)間觸發(fā)以太網(wǎng)是一種應(yīng)用于現(xiàn)代工控、航空航天等對(duì)實(shí)時(shí)性、可靠性有極高要求的系統(tǒng)中的通信技術(shù),該技術(shù)可以提供微秒級(jí)的時(shí)延抖動(dòng),同時(shí)提供百兆,甚至千兆的高帶寬,是一項(xiàng)很有市場(chǎng)前景的技術(shù)。

時(shí)間觸發(fā)以太網(wǎng)是在傳統(tǒng)以太網(wǎng)的基礎(chǔ)上增加時(shí)間觸發(fā)通信機(jī)制。傳統(tǒng)的事件觸發(fā)通信機(jī)制無(wú)法避免由于競(jìng)爭(zhēng)、擁塞造成的傳輸延遲不確定性,而時(shí)間觸發(fā)通信機(jī)制通過(guò)時(shí)分復(fù)用方法實(shí)現(xiàn)全網(wǎng)節(jié)點(diǎn)無(wú)競(jìng)爭(zhēng)通信,從而保證了強(qiáng)實(shí)時(shí)性,時(shí)間觸發(fā)通信機(jī)制要求系統(tǒng)中所有部件嚴(yán)格按照全局時(shí)鐘執(zhí)行通信動(dòng)作,通過(guò)對(duì)各部件合理制定時(shí)間調(diào)度表,可以保證確定的通信延遲以及時(shí)延抖動(dòng),從而滿足系統(tǒng)的強(qiáng)實(shí)時(shí)性。

全局時(shí)鐘是實(shí)現(xiàn)時(shí)間觸發(fā)通信的必備條件,而在分布式通信系統(tǒng)中,每個(gè)節(jié)點(diǎn)只有各自的本地時(shí)鐘,因此,需要時(shí)鐘同步機(jī)制保證所有節(jié)點(diǎn)的本地時(shí)鐘之間的誤差在一定范圍內(nèi),目前,時(shí)間觸發(fā)以太網(wǎng)主要采用兩種時(shí)鐘同步算法:主從式時(shí)鐘同步算法和集中壓縮式時(shí)鐘同步算法。

主從式時(shí)鐘同步算法,如圖1所示:IEEE 1588標(biāo)準(zhǔn)對(duì)該種時(shí)鐘同步算法有詳細(xì)描述,網(wǎng)絡(luò)系統(tǒng)中存在一個(gè)主設(shè)備,負(fù)責(zé)定期向其他從設(shè)備發(fā)送時(shí)鐘信息,而從設(shè)備根據(jù)接收到的時(shí)鐘信息,對(duì)其本地時(shí)鐘進(jìn)行修正,從而達(dá)到全網(wǎng)時(shí)鐘同步的功能。

集中壓縮式時(shí)鐘同步算法,如圖2所示:SAE AS6802標(biāo)準(zhǔn)主要論述了該種時(shí)鐘同步算法,在網(wǎng)絡(luò)系統(tǒng)中存在三種同步角色:同步主節(jié)點(diǎn)(Synchronization Master,SM)、同步從節(jié)點(diǎn)(Synchronization Client,SC)和壓縮節(jié)點(diǎn)(Compression Master,CM)。

同步主節(jié)點(diǎn)(SM):定期向壓縮節(jié)點(diǎn)發(fā)送本地時(shí)鐘用于計(jì)算全局平均時(shí)鐘;同步從節(jié)點(diǎn)(SC):根據(jù)壓縮節(jié)點(diǎn)返回的全局平均時(shí)鐘,定期修正自己的本地時(shí)鐘;壓縮節(jié)點(diǎn)(CM):收集所有同步主節(jié)點(diǎn)的本地時(shí)鐘,計(jì)算、廣播全局平均時(shí)鐘。

集中壓縮式時(shí)鐘同步算法采用多個(gè)同步主節(jié)點(diǎn)作為系統(tǒng)時(shí)鐘的維護(hù)者,過(guò)程如下:

同步主節(jié)點(diǎn)定期向壓縮節(jié)點(diǎn)發(fā)送各自的時(shí)鐘信息;

壓縮節(jié)點(diǎn)根據(jù)這些時(shí)鐘信息計(jì)算出同步主節(jié)點(diǎn)之間的時(shí)鐘偏差,從而得到同步主節(jié)點(diǎn)的平均時(shí)鐘;

壓縮節(jié)點(diǎn)將算出的平均時(shí)鐘廣播至全系統(tǒng);

同步主/從節(jié)點(diǎn)根據(jù)收到的平均時(shí)鐘信息,修改本地時(shí)鐘。

上述的兩種時(shí)鐘同步算法都存在一個(gè)重大缺陷:核心單點(diǎn)(主從式時(shí)鐘同步算法中的主設(shè)備,集中壓縮式時(shí)鐘同步算法中的壓縮節(jié)點(diǎn))發(fā)生故障將導(dǎo)致整個(gè)系統(tǒng)的時(shí)鐘崩潰,如果去除時(shí)鐘同步過(guò)程中的核心單點(diǎn),采用分布式時(shí)鐘同步算法將會(huì)緩解上述缺陷,本發(fā)明提出的分布式時(shí)鐘同步算法可以很大程度避免單點(diǎn)故障引起的時(shí)鐘失步。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步方法及系統(tǒng)。

本發(fā)明提出一種適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步方法,基于集中壓縮式時(shí)鐘同步算法,包括:

步驟1,當(dāng)每個(gè)同步主節(jié)點(diǎn)在本地時(shí)鐘為零時(shí)刻時(shí),向系統(tǒng)廣播協(xié)議幀,每個(gè)節(jié)點(diǎn)接收其他節(jié)點(diǎn)廣播的所述協(xié)議幀并記錄所述協(xié)議幀的到達(dá)時(shí)刻及透明時(shí)鐘值,同時(shí)根據(jù)廣播協(xié)議將所述協(xié)議幀轉(zhuǎn)發(fā)至其他節(jié)點(diǎn),并且修改所述協(xié)議幀的透明時(shí)鐘值,其中所述節(jié)點(diǎn)包括所述同步主節(jié)點(diǎn),或所述同步主節(jié)點(diǎn)與同步從節(jié)點(diǎn);

步驟2,在一個(gè)周期結(jié)束前的固定時(shí)刻,每個(gè)節(jié)點(diǎn)將一個(gè)周期內(nèi)收到的所有所述協(xié)議幀計(jì)算平均偏差時(shí)鐘,采用容錯(cuò)中值法保證所有無(wú)故障節(jié)點(diǎn)的時(shí)鐘維持同步狀態(tài),并根據(jù)計(jì)算出的平均偏差時(shí)鐘對(duì)節(jié)點(diǎn)的本地時(shí)鐘進(jìn)行修正。

所述透明時(shí)鐘值記錄在所述協(xié)議幀的透明時(shí)鐘域中。

所述步驟1還包括獲取時(shí)鐘偏差,并將所述時(shí)鐘偏差記錄在時(shí)鐘偏差集合中。

所述步驟1還包括如果接收所述協(xié)議幀的節(jié)點(diǎn)為中繼節(jié)點(diǎn),則將所述協(xié)議幀繼續(xù)轉(zhuǎn)發(fā)至下一跳,在轉(zhuǎn)發(fā)所述協(xié)議幀至下一跳前,測(cè)量所述協(xié)議幀在所述中繼節(jié)點(diǎn)的駐留時(shí)間T及下一跳的鏈路時(shí)間。

根據(jù)所述時(shí)鐘偏差集合計(jì)算所述平均偏差時(shí)鐘。

本發(fā)明還提出一種適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步系統(tǒng),包括:

獲取透明時(shí)鐘值模塊,用于當(dāng)每個(gè)同步主節(jié)點(diǎn)在本地時(shí)鐘為零時(shí)刻時(shí),向系統(tǒng)廣播協(xié)議幀,每個(gè)節(jié)點(diǎn)接收其他節(jié)點(diǎn)廣播的所述協(xié)議幀并記錄所述協(xié)議幀的到達(dá)時(shí)刻及透明時(shí)鐘值,同時(shí)根據(jù)廣播協(xié)議將所述協(xié)議幀轉(zhuǎn)發(fā)至其他節(jié)點(diǎn),并且修改所述協(xié)議幀的透明時(shí)鐘值,其中所述節(jié)點(diǎn)包括所述同步主節(jié)點(diǎn),或所述同步主節(jié)點(diǎn)與同步從節(jié)點(diǎn);

修正模塊,用于在一個(gè)周期結(jié)束前的固定時(shí)刻,每個(gè)節(jié)點(diǎn)將一個(gè)周期內(nèi)收到的所有所述協(xié)議幀計(jì)算平均偏差時(shí)鐘,采用容錯(cuò)中值法保證所有無(wú)故障節(jié)點(diǎn)的時(shí)鐘維持同步狀態(tài),并根據(jù)計(jì)算出的平均偏差時(shí)鐘對(duì)節(jié)點(diǎn)的本地時(shí)鐘進(jìn)行修正。

所述透明時(shí)鐘值記錄在所述協(xié)議幀的透明時(shí)鐘域中。

所述獲取透明時(shí)鐘值模塊還包括獲取時(shí)鐘偏差,并將所述時(shí)鐘偏差記錄在時(shí)鐘偏差集合中。

所述獲取透明時(shí)鐘值模塊還包括如果接收所述協(xié)議幀的節(jié)點(diǎn)為中繼節(jié)點(diǎn),則將所述協(xié)議幀繼續(xù)轉(zhuǎn)發(fā)至下一跳,在轉(zhuǎn)發(fā)所述協(xié)議幀至下一跳前,測(cè)量所述協(xié)議幀在所述中繼節(jié)點(diǎn)的駐留時(shí)間T及下一跳的鏈路時(shí)間。

根據(jù)所述時(shí)鐘偏差集合計(jì)算所述平均偏差時(shí)鐘。

由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:

高容錯(cuò)性:采用分布式容錯(cuò)時(shí)鐘計(jì)算方法避免了由于核心節(jié)點(diǎn)故障導(dǎo)致全系統(tǒng)的時(shí)鐘崩潰,同時(shí)采用多個(gè)同步主節(jié)點(diǎn)的平均時(shí)鐘可以容忍幾個(gè)同步主節(jié)點(diǎn)同時(shí)出現(xiàn)故障的情況。

設(shè)計(jì)簡(jiǎn)單:較SAE AS6802標(biāo)準(zhǔn),本發(fā)明的系統(tǒng)去除了壓縮節(jié)點(diǎn),只包含一到兩種同步角色,因此,可以減少系統(tǒng)設(shè)計(jì)、驗(yàn)證、測(cè)試的復(fù)雜度。

附圖說(shuō)明

圖1為主從式時(shí)鐘同步算法圖;

圖2為集中壓縮式時(shí)鐘同步算法圖;

圖3為時(shí)間觸發(fā)交換網(wǎng)示意圖;

圖4為同步主節(jié)點(diǎn)向系統(tǒng)廣播協(xié)議幀圖;

圖5為接收協(xié)議幀,計(jì)算時(shí)鐘偏差,同時(shí)轉(zhuǎn)發(fā)至下一跳圖;

圖6為獲取時(shí)鐘偏差集合圖;

圖7為計(jì)算平均時(shí)鐘偏差值圖;

圖8為修正本地時(shí)鐘圖;

圖9為容錯(cuò)分布式時(shí)鐘同步算法圖。

具體實(shí)施方式

發(fā)明人在對(duì)時(shí)鐘同步算法研究時(shí),發(fā)現(xiàn)現(xiàn)有的兩種時(shí)鐘同步算法由于在時(shí)鐘同步過(guò)程中存在核心單點(diǎn)的問(wèn)題,從而導(dǎo)致了上述缺陷,盡管集中壓縮式時(shí)鐘同步算法已經(jīng)在主從式時(shí)鐘同步算法的基礎(chǔ)上對(duì)核心單點(diǎn)問(wèn)題進(jìn)行了保護(hù):壓縮節(jié)點(diǎn)將多個(gè)同步主節(jié)點(diǎn)的時(shí)鐘進(jìn)行平均計(jì)算,避免了單個(gè)同步主節(jié)點(diǎn)出現(xiàn)時(shí)鐘故障從而導(dǎo)致整個(gè)系統(tǒng)時(shí)鐘失步的情況,但是,壓縮節(jié)點(diǎn)卻成為了新的核心單點(diǎn),為此,本發(fā)明在集中壓縮式時(shí)鐘同步算法的基礎(chǔ)上,提出一種完全分布式時(shí)鐘同步算法,將原本在壓縮節(jié)點(diǎn)執(zhí)行的平均時(shí)鐘計(jì)算分布到系統(tǒng)中所有節(jié)點(diǎn),從而去除了壓縮節(jié)點(diǎn)。

以下為本發(fā)明方法的具體步驟,如下所示:

步驟一:每個(gè)同步主節(jié)點(diǎn)在本地時(shí)鐘為零時(shí)刻的時(shí)候,向系統(tǒng)廣播一個(gè)協(xié)議幀(在SAE AS6802中,該協(xié)議幀只會(huì)發(fā)送至壓縮節(jié)點(diǎn));

步驟二:每個(gè)設(shè)備收到其他設(shè)備的協(xié)議幀時(shí),接收該協(xié)議幀并記錄其到達(dá)時(shí)刻及透明時(shí)鐘值;同時(shí)根據(jù)廣播協(xié)議將協(xié)議幀轉(zhuǎn)發(fā)至其他設(shè)備,并且修改該協(xié)議幀的透明時(shí)鐘值;

步驟三:在一個(gè)周期結(jié)束前的固定時(shí)刻,每個(gè)設(shè)備將一個(gè)周期內(nèi)收到的所有協(xié)議幀進(jìn)行平均偏差時(shí)鐘(或稱為平均時(shí)鐘,下同)計(jì)算,采用容錯(cuò)中值法可以保證所有無(wú)故障設(shè)備的時(shí)鐘維持同步狀態(tài)(在SAE AS6802中,只在壓縮節(jié)點(diǎn)進(jìn)行計(jì)算,并且計(jì)算方法也比較復(fù)雜);

步驟四:根據(jù)計(jì)算出的平均偏差時(shí)鐘對(duì)本地時(shí)鐘進(jìn)行修正。

本發(fā)明還提出一種適用于時(shí)間觸發(fā)以太網(wǎng)的分布式容錯(cuò)時(shí)鐘同步系統(tǒng),包括:

獲取透明時(shí)鐘值模塊,用于當(dāng)每個(gè)同步主節(jié)點(diǎn)在本地時(shí)鐘為零時(shí)刻時(shí),向系統(tǒng)廣播協(xié)議幀,每個(gè)節(jié)點(diǎn)接收其他節(jié)點(diǎn)廣播的所述協(xié)議幀并記錄所述協(xié)議幀的到達(dá)時(shí)刻及透明時(shí)鐘值,同時(shí)根據(jù)廣播協(xié)議將所述協(xié)議幀轉(zhuǎn)發(fā)至其他節(jié)點(diǎn),并且修改所述協(xié)議幀的透明時(shí)鐘值,其中所述節(jié)點(diǎn)包括所述同步主節(jié)點(diǎn),或所述同步主節(jié)點(diǎn)與同步從節(jié)點(diǎn);

修正模塊,用于在一個(gè)周期結(jié)束前的固定時(shí)刻,每個(gè)節(jié)點(diǎn)將一個(gè)周期內(nèi)收到的所有所述協(xié)議幀計(jì)算平均偏差時(shí)鐘,采用容錯(cuò)中值法保證所有無(wú)故障節(jié)點(diǎn)的時(shí)鐘維持同步狀態(tài),并根據(jù)計(jì)算出的平均偏差時(shí)鐘對(duì)節(jié)點(diǎn)的本地時(shí)鐘進(jìn)行修正。

所述透明時(shí)鐘值記錄在所述協(xié)議幀的透明時(shí)鐘域中。

所述獲取透明時(shí)鐘值模塊還包括獲取時(shí)鐘偏差,并將所述時(shí)鐘偏差記錄在時(shí)鐘偏差集合中。

所述獲取透明時(shí)鐘值模塊還包括如果接收所述協(xié)議幀的節(jié)點(diǎn)為中繼節(jié)點(diǎn),則將所述協(xié)議幀繼續(xù)轉(zhuǎn)發(fā)至下一跳,在轉(zhuǎn)發(fā)所述協(xié)議幀至下一跳前,測(cè)量所述協(xié)議幀在所述中繼節(jié)點(diǎn)的駐留時(shí)間T及下一跳的鏈路時(shí)間。

根據(jù)所述時(shí)鐘偏差集合計(jì)算所述平均偏差時(shí)鐘。

下面將結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。

本發(fā)明的應(yīng)用環(huán)境為具有時(shí)間同步機(jī)制的時(shí)間觸發(fā)交換式網(wǎng)絡(luò),在該網(wǎng)絡(luò)中存在兩類同步角色:同步主節(jié)點(diǎn)SM和同步從節(jié)點(diǎn)SC,其中同步從節(jié)點(diǎn)也可以省去,圖3展示了一個(gè)具有6個(gè)設(shè)備的時(shí)間觸發(fā)交換式網(wǎng)絡(luò),其中包含四個(gè)同步主節(jié)點(diǎn),兩個(gè)同步從節(jié)點(diǎn)。本發(fā)明假設(shè)系統(tǒng)啟動(dòng)后,各個(gè)設(shè)備的時(shí)鐘處于同步狀態(tài),但是隨著時(shí)間推移,不同設(shè)備由于環(huán)境因素及器件工藝等原因出現(xiàn)了時(shí)鐘偏差,本發(fā)明主要用于維持系統(tǒng)設(shè)備間的同步,圖3中,各個(gè)設(shè)備間的時(shí)鐘存在偏差,但是仍在可容忍范圍內(nèi),即最大偏差值小于偏差容忍閾值θ,接下來(lái)將描述本發(fā)明的時(shí)鐘同步算法。

在時(shí)間觸發(fā)以太網(wǎng)中,一個(gè)基本的調(diào)度單位是集成周期,設(shè)備在每個(gè)集成周期的動(dòng)作一致,本發(fā)明的同步算法如圖9所示:

步驟一:圖4中,同步主節(jié)點(diǎn)SM0、SM1、SM2和SM3在各自的每個(gè)集成周期的開始時(shí)刻,向系統(tǒng)廣播協(xié)議幀PCF0、PCF1、PCF2和PCF3;

步驟二:每個(gè)節(jié)點(diǎn)接收到協(xié)議幀后,記錄下該幀的到達(dá)時(shí)刻,圖5、圖6中SC0接收到PCF0,記錄該幀的到達(dá)時(shí)刻Local_clockSC0=ATPCF0_at_SC0,同時(shí)讀取該幀的透明時(shí)鐘值TCPCF0_at_SC0,該值記錄在協(xié)議幀的透明時(shí)鐘域(參考SAEAS6802標(biāo)準(zhǔn)),該幀的到達(dá)時(shí)刻減去該幀的透明時(shí)鐘值便是該幀的接收節(jié)點(diǎn)與該幀的發(fā)送節(jié)點(diǎn)之間的時(shí)鐘偏差ΔSC0_SM0=ATPCF0_at_SC0-TCPCF0_at_SC0,保存該值至?xí)r鐘偏差集合Δset;

在步驟二中,如果接收節(jié)點(diǎn)是個(gè)中繼節(jié)點(diǎn)(比如交換機(jī),根據(jù)廣播協(xié)議需要將接收到的協(xié)議幀轉(zhuǎn)發(fā)至下一跳),那么,該接收節(jié)點(diǎn)需要將該協(xié)議幀繼續(xù)轉(zhuǎn)發(fā)至下一跳,接收節(jié)點(diǎn)在發(fā)送該幀前,需要測(cè)量出該幀在本節(jié)點(diǎn)的駐留時(shí)間DT及下一跳的鏈路時(shí)間LT,計(jì)算該幀新的透明時(shí)鐘值TCnew=TCold+DT+LT,并將TCnew寫入該幀的透明時(shí)鐘域,替換了原始的透明時(shí)鐘值。圖5中,SC0測(cè)量出PCF0在SC0的駐留時(shí)間DTPCF0_at_SC0,及下一跳鏈路時(shí)間LTPCF0_at_SC0,從而計(jì)算出新的透明時(shí)鐘值TCnew=TCPCF0_at_SC0+DTPCF0_at_SC0+LTPCF0_at_SC0,并將TCnew寫入PCF0的透明時(shí)鐘域,最后將修改過(guò)的PCF0發(fā)往同步主節(jié)點(diǎn)SM1和同步從節(jié)點(diǎn)SC1。

步驟三:每個(gè)節(jié)點(diǎn)在各自的每個(gè)集成周期的結(jié)束前θ的時(shí)刻,根據(jù)本集成周期內(nèi)接收到的所有協(xié)議幀所得到的時(shí)鐘偏差集合Δset,計(jì)算平均時(shí)鐘偏差Δaverage,圖7中,SC0在集成周期結(jié)束前θ的時(shí)刻,根據(jù)時(shí)鐘偏差集合Δset={ΔSC0_SM0,ΔSC0_SM1,ΔSC0_SM2,ΔSC0_SM3},計(jì)算平均時(shí)鐘偏差ΔSC0_average。平均時(shí)鐘偏差計(jì)算方法(容錯(cuò)中值法):

1.將Δset按數(shù)值大小升序(降序)排列為新的時(shí)鐘偏差集合Δsetsort

2.平均時(shí)鐘偏差Δaverage的值為Δsetsort中第K大值和第K小值的算術(shù)平均值。

步驟四:每個(gè)節(jié)點(diǎn)得到平均時(shí)鐘偏差后,如果平均時(shí)鐘偏差大等于偏差容忍閾值θ,那么判斷出該節(jié)點(diǎn)出現(xiàn)故障,系統(tǒng)將該節(jié)點(diǎn)關(guān)閉,隔離或者重啟等故障管理工作;否則,在集成周期結(jié)束時(shí),修改自己的本地時(shí)鐘,即在本地時(shí)鐘Local_clock減掉平均時(shí)鐘偏差Δaverage,同時(shí)將平均時(shí)鐘偏差歸零Δaverage=0,時(shí)鐘修正完成,圖8中SC0修正后的本地時(shí)鐘為L(zhǎng)ocal_clockSC0=Local_clockSC0-ΔSC0_average。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 个旧市| 富平县| 柯坪县| 来凤县| 南投县| 凤凰县| 康保县| 外汇| 蓝田县| 辽阳县| 和硕县| 志丹县| 新沂市| 常德市| 罗源县| 新津县| 麦盖提县| 清流县| 西平县| 平潭县| 桦南县| 开封市| 岳阳县| 无为县| 浦江县| 高安市| 潍坊市| 渑池县| 云梦县| 宜丰县| 翼城县| 万全县| 吉木萨尔县| 常山县| 新竹市| 芮城县| 阿城市| 淳安县| 托克托县| 冀州市| 河源市|