專利名稱:一種熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)交互方法,特別是一種在熱備份多機(jī)冗余系統(tǒng)中所采 用的通訊與同步數(shù)據(jù)交互方法。
背景技術(shù):
在熱備份多機(jī)冗余系統(tǒng)中,系統(tǒng)通常需要對(duì)單機(jī)的數(shù)據(jù)內(nèi)容和時(shí)序達(dá)成一
致,比如單機(jī)專有的傳感器數(shù)據(jù)如何,何時(shí)達(dá)成一致;比如單機(jī)的狀態(tài)數(shù)據(jù)如 何,狀態(tài)數(shù)據(jù)何時(shí)達(dá)成一致等等。系統(tǒng)中的每對(duì)單機(jī)需要通過交互數(shù)據(jù)才能達(dá) 到內(nèi)容一致,通過同步交互才能達(dá)到時(shí)序一致,即熱備份冗余系統(tǒng)中的單機(jī)有 一致內(nèi)容的數(shù)據(jù),并且不同單機(jī)一致內(nèi)容的數(shù)據(jù)是在一定時(shí)間門限內(nèi)所達(dá)成的, 4目關(guān)內(nèi)容可參見文獻(xiàn)Abler, T.' A Network Element Based Fault Tolerant Processor, MS Thesis, Massachusetts Institute of Technology, Cambridge: MA, May 1988。
目前,在通常的多機(jī)冗余系統(tǒng)中,通訊數(shù)據(jù)和同步數(shù)據(jù)是分別進(jìn)行處理的, 對(duì)于通訊數(shù)據(jù)通常采用專門的通訊通道,不和同步通道合用。而對(duì)于同步策略 則通常釆用時(shí)鐘同步和任務(wù)同步。
對(duì)于時(shí)鐘同步,系統(tǒng)需要傳播高速容錯(cuò)時(shí)鐘信號(hào),它的實(shí)現(xiàn)隨著系統(tǒng)規(guī)才莫 的增長(zhǎng)而難度變大。另外,時(shí)鐘同步方法需要冗余處理器的時(shí)鐘是確定的,也 就是說冗余處理器在給定數(shù)目的時(shí)鐘周期內(nèi)必須執(zhí)行完全相同條指令。這個(gè)限 制通常需要剔除可能存在于同步部件內(nèi)的所有的異步和不確定性,另外,時(shí)鐘 同步一般需要利用專用的硬件裝置實(shí)現(xiàn),因此實(shí)現(xiàn)復(fù)雜,而且采用時(shí)鐘級(jí)的微 同步顯然是不能滿足硬件軟件多樣性設(shè)計(jì)要求的。
對(duì)于任務(wù)同步,系統(tǒng)需要利用軟件來實(shí)現(xiàn)多機(jī)的同步, 一般利用應(yīng)用代碼 自然產(chǎn)生的斷點(diǎn)作為同步事件。單機(jī)間通過軟件信息的發(fā)送和接收來保證同步,單機(jī)在斷點(diǎn)處發(fā)送消息給對(duì)方,然后等待接收對(duì)方發(fā)送給自己的消息;在接收 消息時(shí),單機(jī)全部通過軟件操作來保證同步。由于各單機(jī)間無時(shí)鐘級(jí)同步操作 過程,需要軟件參與管理與控制全部同步操作過程,因此軟件任務(wù)同步實(shí)現(xiàn)的 效率較低,并且難以做到對(duì)應(yīng)用程序員完全透明。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足之處,提供了一種數(shù)據(jù)交 互效率高、同步性好、實(shí)現(xiàn)簡(jiǎn)單的熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方法。
本發(fā)明的4支術(shù)解決方案是 一種熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方 法,步驟如下
(1 )設(shè)冗余系統(tǒng)中有M個(gè)單機(jī),M個(gè)單機(jī)中任意兩個(gè)單機(jī)之間 通過獨(dú)立的物理通道進(jìn)行數(shù)據(jù)交互,所述數(shù)據(jù)包括通訊數(shù)據(jù)和同步數(shù)據(jù),通訊 數(shù)據(jù)使用專門的發(fā)送緩沖區(qū)發(fā)送;
(2) 若單機(jī)的通訊數(shù)據(jù)發(fā)送緩沖區(qū)非空,則讀取通訊數(shù)據(jù)發(fā)送緩沖區(qū)的通 訊數(shù)據(jù)發(fā)送給對(duì)方單機(jī),同時(shí)還將所述通訊數(shù)據(jù)回環(huán)給自己,并等待接收對(duì)方 單機(jī)發(fā)送給自己的通訊數(shù)據(jù),直至通訊數(shù)據(jù)緩沖區(qū)內(nèi)的通訊數(shù)據(jù)全部發(fā)送完畢;
(3) 若單機(jī)的通訊數(shù)據(jù)發(fā)送緩沖區(qū)為空,則不進(jìn)行通訊數(shù)據(jù)交互,將同步 數(shù)據(jù)發(fā)送給對(duì)方單機(jī),同時(shí)還將所述同步數(shù)據(jù)回環(huán)給自己,并等待接收對(duì)方單 機(jī)發(fā)送給自己的同步數(shù)據(jù),在發(fā)送同步數(shù)據(jù)的同時(shí)啟動(dòng)第一計(jì)數(shù)器和第二計(jì)數(shù) 器;
(4) 當(dāng)單機(jī)接收到回環(huán)給自己的同步數(shù)據(jù)時(shí)停止第一計(jì)數(shù)器,當(dāng)單機(jī)接收 到對(duì)方單機(jī)發(fā)送給自己的同步數(shù)據(jù)時(shí)停止第二計(jì)數(shù)器;
(5) 若在第一計(jì)數(shù)器溢出時(shí)未收到回環(huán)給自己的同步數(shù)據(jù),或者在第二計(jì) 數(shù)器溢出時(shí)未收到對(duì)方單機(jī)發(fā)送給自己的同步數(shù)據(jù)則根據(jù)通訊數(shù)據(jù)發(fā)送緩沖區(qū) 是否為空?qǐng)?zhí)行步驟(2)或步驟(3);
(6) 若第一計(jì)數(shù)器和第二計(jì)數(shù)器均已停止計(jì)數(shù),則在在后一個(gè)計(jì)數(shù)器停止 計(jì)數(shù)時(shí)刻產(chǎn)生同步脈沖,提示兩單機(jī)同步,第一計(jì)數(shù)器和第二計(jì)數(shù)器的計(jì)數(shù)差值即為兩單機(jī)的同步狀態(tài);
(7)重復(fù)步驟(2) (6),若在上一次同步數(shù)據(jù)交互時(shí)步驟(6)中第二 計(jì)數(shù)器的值大于第一計(jì)數(shù)器的值,則在本次同步凄t據(jù)交互時(shí)步驟(3)中將同步 數(shù)據(jù)發(fā)送給對(duì)方單機(jī)之前等待T1時(shí)間,T1為上一次同步數(shù)據(jù)交互時(shí)步驟(6) 中第二計(jì)數(shù)器與第一計(jì)數(shù)器的差值;若在上一次同步凄t據(jù)交互時(shí)步驟(6)中第 二計(jì)數(shù)器的值小于第一計(jì)數(shù)器的值,則在本次同步數(shù)據(jù)交互時(shí)步驟(3)中立即 將同步數(shù)據(jù)發(fā)送給對(duì)方單機(jī)。
所述M個(gè)單機(jī)中任意兩個(gè)單機(jī)之間通過獨(dú)立的物理通道進(jìn)行數(shù)據(jù)交互的方 式為異步串行通訊方式。
本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是
(1 )本發(fā)明方法將M個(gè)單機(jī)劃分為iV對(duì)同時(shí)進(jìn)行同步數(shù)據(jù)的交互,通訊數(shù) 據(jù)和同步數(shù)據(jù)共用統(tǒng)一的物理通道,實(shí)現(xiàn)簡(jiǎn)單,可節(jié)省大量的硬件資源;交互 時(shí)優(yōu)先發(fā)送通訊數(shù)據(jù),當(dāng)通訊數(shù)據(jù)發(fā)送緩沖區(qū)為空時(shí)才發(fā)送同步數(shù)據(jù),可自主 進(jìn)行通訊數(shù)據(jù)和同步數(shù)據(jù)交互模式的切換,與應(yīng)用軟件任務(wù)同步相比,提高了 單機(jī)間的同步頻率,可以使整個(gè)系統(tǒng)在較短的時(shí)間內(nèi)達(dá)到同步,提高了整個(gè)系 統(tǒng)的數(shù)據(jù)交互效率;
(2 )對(duì)回環(huán)同步數(shù)據(jù)的接收時(shí)刻與對(duì)方發(fā)送的同步數(shù)據(jù)的接收時(shí)刻進(jìn)行比 較,并只在對(duì)方發(fā)送的同步數(shù)據(jù)滯后于回環(huán)的同步數(shù)據(jù)時(shí)調(diào)整等待計(jì)數(shù)器進(jìn)行 數(shù)據(jù)同步,使得等待計(jì)數(shù)器的設(shè)置更為直接有效,從而提高了整個(gè)系統(tǒng)的同步 性;
(3)通過異步串行通訊方式進(jìn)^f亍同步,消除了時(shí)鐘同步所需要的復(fù)雜鎖相 環(huán)電路,克服了在大規(guī)模冗余系統(tǒng)間傳播高速容錯(cuò)時(shí)鐘信號(hào)的困難,而且克服 了時(shí)鐘同步方法需要相同硬件的限制,系統(tǒng)中的各個(gè)單機(jī)可以采用硬件軟件多 樣性設(shè)計(jì)。
圖1為本發(fā)明方法的流程框圖;圖2為本發(fā)明實(shí)施例中兩臺(tái)單機(jī)進(jìn)行通訊與同步數(shù)據(jù)交互的示意圖。
具體實(shí)施例方式
假設(shè)冗余系統(tǒng)中有M個(gè)單機(jī),當(dāng)然M還可以取大于4的值,但 由于此時(shí)系統(tǒng)規(guī)模龐大,各單機(jī)之間無論是硬件連接還是通訊方式都更加的復(fù) 雜,若要完成各單機(jī)之間的數(shù)據(jù)同步需要花費(fèi)較長(zhǎng)時(shí)間,系統(tǒng)吞吐率受限,在 此條件下本發(fā)明方法雖然仍舊適用,但其同步效率會(huì)受到影響,因此將使用本 發(fā)明方法的冗余系統(tǒng)的單機(jī)數(shù)量限制在2、 3和4。
M個(gè)單機(jī)通過獨(dú)立的物理通道實(shí)現(xiàn)全連接,其中的任意兩個(gè)單機(jī)之間都進(jìn) 行數(shù)據(jù)交互,交互的數(shù)據(jù)包括通訊數(shù)據(jù)和同步數(shù)據(jù),通訊數(shù)據(jù)的發(fā)送和接收均 可采用緩沖區(qū)來實(shí)現(xiàn)。
如圖1所示,為本發(fā)明方法的流程框圖。若監(jiān)測(cè)到通訊數(shù)據(jù)發(fā)送緩沖區(qū)非 空,則讀取發(fā)送緩沖區(qū)的最先1個(gè)字節(jié)數(shù)據(jù),按照約定的串行通訊幀格式,寫 入移位寄存器,串行通訊數(shù)據(jù)發(fā)送給對(duì)方單機(jī)。同時(shí)還將所述串行通訊數(shù)據(jù)回 環(huán)給自己(自己發(fā)送給自己),并等待接收對(duì)方單沖幾發(fā)送給自己的通訊數(shù)據(jù),將 回環(huán)數(shù)據(jù)與接收數(shù)據(jù)比較后,將比較結(jié)果和接收數(shù)據(jù)寫入接收緩沖區(qū),并通知
處理器讀取,供處理器使用。當(dāng)前1個(gè)字節(jié)數(shù)據(jù)全部移位完成并發(fā)送完畢后, 繼續(xù)讀取發(fā)送緩沖區(qū)的最先1個(gè)字節(jié),重復(fù)上述過程,直至讀空通訊數(shù)據(jù)發(fā)送 緩沖區(qū)。
若監(jiān)測(cè)到通訊數(shù)據(jù)發(fā)送緩沖區(qū)為空,則不進(jìn)行通訊數(shù)據(jù)交互,而是將預(yù)先 設(shè)定好的同步數(shù)據(jù)(譬如0x55)發(fā)送給對(duì)方單機(jī),同時(shí)還將所述同步數(shù)據(jù)回環(huán) 給自己,發(fā)送同步數(shù)據(jù)時(shí),采用與交互通訊數(shù)據(jù)不同的幀格式(譬如校驗(yàn)方式),
訊數(shù)據(jù)。
在發(fā)送同步數(shù)據(jù)時(shí),啟動(dòng)兩個(gè)計(jì)數(shù)器,分別記錄回環(huán)給自己的同步數(shù)據(jù)的 時(shí)間,以及對(duì)方單機(jī)發(fā)送給自己同步數(shù)據(jù)的時(shí)間。通過比較兩個(gè)計(jì)數(shù)器的記錄 時(shí)間以及二者的時(shí)間差,單機(jī)可以明確與對(duì)方單機(jī)的同步時(shí)差關(guān)系。在某一輪同步數(shù)據(jù)交互時(shí),若單機(jī)先接收到自己的回環(huán)同步數(shù)據(jù),后接收 到對(duì)方發(fā)送來的同步數(shù)據(jù),那么單機(jī)先延遲相應(yīng)的時(shí)間(該時(shí)間應(yīng)為后接收到 對(duì)方發(fā)送來的同步數(shù)據(jù)時(shí)刻減去先接收到自己的回環(huán)同步數(shù)據(jù)時(shí)刻的差值)后, 再進(jìn)行下一次同步數(shù)據(jù)交互,經(jīng)過如此反復(fù)多輪同步數(shù)據(jù)交互,兩個(gè)計(jì)數(shù)器的 時(shí)差會(huì)變得很小并穩(wěn)定下來,兩單機(jī)達(dá)到較佳的同步狀態(tài)。若單機(jī)先接收到對(duì) 方發(fā)送來的同步數(shù)據(jù),后接收到自己回環(huán)的同步數(shù)據(jù),那么單機(jī)不再經(jīng)過任何 延遲,而是直接進(jìn)行下一次同步數(shù)據(jù)交互。
當(dāng)然,在上述過程中有可能出現(xiàn)計(jì)數(shù)器溢出的情況,此時(shí)應(yīng)將兩個(gè)計(jì)數(shù)器 同時(shí)清零后重新進(jìn)行下一次的同步數(shù)據(jù)交互。
在數(shù)據(jù)交互過程中,既可以采用同步串行通訊方式,也可以采用異步串行
關(guān)系的高速容錯(cuò)時(shí)鐘,實(shí)現(xiàn)復(fù)雜,因此本發(fā)明方法采用較為簡(jiǎn)單的異步串行通
i禮方式。
實(shí)施例
如圖2所示,為M-2時(shí)兩臺(tái)單機(jī)之間采用本發(fā)明的通訊與同步數(shù)據(jù)交互方 法進(jìn)行數(shù)據(jù)交互的示意圖。對(duì)于^ = 3,4的情況,系統(tǒng)可分解考慮W對(duì)單^l的同 步,其中A^c2m。
如圖2所示,對(duì)于此對(duì)單機(jī)(單機(jī)A和單機(jī)B)中的每一個(gè)單機(jī),均包含 一個(gè)處理單元(包括中央處理器、存儲(chǔ)器等)和一個(gè)通訊單元(包括異步串行 通訊控制器和同步控制邏輯),其中處理單元是執(zhí)行應(yīng)用程序、調(diào)度和重構(gòu)任務(wù)
的計(jì)算機(jī),通訊單元是實(shí)現(xiàn)同步、教:據(jù)交互和同步表決等相關(guān)功能的硬件。
通訊單元分成三個(gè)部分處理單元/通訊單元接口部分、同步控制部分和通 訊控制器部分。其中接口部分提供在處理單元和通訊單元之間有效和有序傳遞 不同大小的信息,同時(shí)還提供處理單元和通訊單元間的流控制以保證不覆蓋有 效信息, 一般可以采用雙端口存儲(chǔ)器或FIFO (先入先出)實(shí)現(xiàn);同步控制部分 提供通訊數(shù)據(jù)與同步數(shù)據(jù)的切換控制,以及同步交互控制處理能力,并提供兩個(gè)通訊單元的的同步機(jī)制;通信鏈路部分提供本地通訊單元和另 一個(gè)通訊單元 交互途徑,以及其自身回環(huán)交互的串行通訊轉(zhuǎn)換與串行通道。
A單機(jī)和B單機(jī)完成復(fù)位與初始化后,由于同步數(shù)據(jù)交互的起始不一致, 因此它們是通過多次同步數(shù)據(jù)交互才能完成相互的漸近同步過程,達(dá)到較佳的 同步狀態(tài)。對(duì)于整個(gè)冗余系統(tǒng)而言,當(dāng)系統(tǒng)中任意一對(duì)單機(jī)之間都有較佳的同 步狀態(tài)后,整個(gè)系統(tǒng)也將處于較佳的同步狀態(tài)。
采用此結(jié)構(gòu)的A單機(jī)和B單機(jī),其總的同步策略基本操作如下通訊單元 通過多輪同步數(shù)據(jù)交互后,可以實(shí)現(xiàn)與對(duì)方單機(jī)通訊單元的緊密同步,A單機(jī) 和B單機(jī)的處理單元通過讀取同步狀態(tài)以及接收同步脈沖,可以實(shí)現(xiàn)較為水^t 的同步。處理單元通過處理單元/通訊單元接口,把通訊單元看作存儲(chǔ)器映射、 帶緩沖器的I/O設(shè)備;如果處理單元希望通過通訊單元與其它單機(jī)執(zhí)行數(shù)據(jù)交 互,它只需寫數(shù)據(jù)到通訊單元的數(shù)據(jù)發(fā)送緩沖區(qū),然后處理單元在一定時(shí)限內(nèi) 可以通過數(shù)據(jù)接收緩沖區(qū)讀取對(duì)方單機(jī)的發(fā)送過來的相應(yīng)通訊數(shù)據(jù);通過多輪 上述同步操作,A單機(jī)和B單機(jī)可以實(shí)現(xiàn)數(shù)據(jù)內(nèi)容和時(shí)序的相互一致。
冗余系統(tǒng)在同步方面采用分層同步的方式,A單機(jī)和B單機(jī)的處理單元間 采用功能同步方案,允許處理器(CPU )以它們自己的速度運(yùn)行代碼一段時(shí)間, 然后在代碼的指定點(diǎn)發(fā)送信息等待對(duì)方處理器追趕上來以獲得同步。A單機(jī)的 處理器運(yùn)行到代碼的某些指定點(diǎn)時(shí)發(fā)送信息給B單機(jī)的處理器,在發(fā)送信息后 A單機(jī)處理器停止執(zhí)行直到接收B單機(jī)處理器返回的這條信息,此時(shí)A單機(jī)的 處理器知道B處理器已經(jīng)達(dá)到這個(gè)相同的點(diǎn),然后就可以繼續(xù)執(zhí)行。采用功能 同步方案使得A單機(jī)處理器和B單機(jī)處理器可以在計(jì)算具備一定結(jié)果后進(jìn)行同 步。A單機(jī)和B單機(jī)的通訊單元間采用筒單的異步串行通訊幀同步方案,保證 通訊單元在相同的時(shí)刻收、發(fā)異步串行通訊同步幀,產(chǎn)生同步脈沖與同步狀態(tài) 分別供A單機(jī)和B單機(jī)處理器使用。通過定義一個(gè)異步串行通訊幀為信息傳輸 單位,A單機(jī)和B單機(jī)可以比較接收到自身回環(huán),以及對(duì)方同步幀的時(shí)間,并 可以基于這個(gè)比較結(jié)果,調(diào)整自己發(fā)送下一條同步數(shù)據(jù)幀的等待時(shí)間從而使A單機(jī)和B單機(jī)的通訊單元同步。由于異步串行通訊幀傳送簡(jiǎn)單,因此A單機(jī)和 B單機(jī)通訊單元間同步頻率快,A單機(jī)和B單機(jī)間同步后的偏差小(雙方產(chǎn)生 同步脈沖的時(shí)刻,以及間隔趨于一致),可以實(shí)現(xiàn)緊密同步。單機(jī)間的同步數(shù)據(jù) 可以預(yù)先設(shè)定,設(shè)定后同步數(shù)據(jù)幀一直是相同的。 A單機(jī)和B單機(jī)的一輪同步操作流程為
A單機(jī)向B單機(jī)發(fā)送同步數(shù)據(jù)時(shí)刻,啟動(dòng)兩個(gè)定時(shí)計(jì)數(shù)器(第一計(jì)數(shù)器 和第二計(jì)數(shù)器),通過回環(huán)通道,等待接收自己發(fā)出的同步數(shù)據(jù),同時(shí)等待B 單機(jī)發(fā)送給自己的同步數(shù)據(jù),當(dāng)收到自己發(fā)出的同步數(shù)據(jù)后停止第 一計(jì)數(shù)器, 收到對(duì)方發(fā)出的同步數(shù)據(jù)后停止第二計(jì)數(shù)器,完成一次同步才喿作,并記錄兩個(gè) 計(jì)數(shù)器的時(shí)差,作為下一次同步操作的時(shí)延依據(jù)。
B單機(jī)B單機(jī)的搡作和A單機(jī)的操作流程一致,發(fā)送同步數(shù)據(jù)后,啟動(dòng) 兩個(gè)定時(shí)計(jì)數(shù)器,通過回環(huán)通道,等待接收自己發(fā)出的同步數(shù)據(jù),同時(shí)等待A 單機(jī)發(fā)給自己的同步數(shù)據(jù),當(dāng)收到自己發(fā)出的同步數(shù)據(jù)后停止第一計(jì)數(shù)器,收 到對(duì)方發(fā)出的同步數(shù)據(jù)后停止第二計(jì)數(shù)器,完成一次同步才喿作,并記錄兩個(gè)計(jì) 數(shù)器時(shí)差,作為下一次同步操作的時(shí)延依據(jù)。
假設(shè)在本輪操作中,A單機(jī)的同步數(shù)據(jù)先發(fā),那么在進(jìn)行下一輪同步數(shù)據(jù) 交互時(shí),A單機(jī)推遲發(fā)出同步數(shù)據(jù)的時(shí)刻,B單機(jī)在完成上一輪同步數(shù)據(jù)交互 后,立即進(jìn)行下一輪同步數(shù)據(jù)交互。在多次上述同步數(shù)據(jù)交互過程中,A單機(jī)、 B單機(jī)各自配置的兩個(gè)計(jì)數(shù)器值逐漸接近,直至達(dá)到較為穩(wěn)定的同步,當(dāng)A單 機(jī)、B單機(jī)在回環(huán)、對(duì)方同步數(shù)據(jù)都就緒時(shí)產(chǎn)生同步脈沖,處理器依據(jù)一定時(shí) 間范圍內(nèi)的同步脈沖個(gè)數(shù),可以判斷系統(tǒng)是否達(dá)成同步。
本發(fā)明說明書中未作詳細(xì)描述的內(nèi)容屬本領(lǐng)域技術(shù)人員的公知技術(shù)。
權(quán)利要求
1、一種熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方法,其特征在于步驟如下(1)設(shè)冗余系統(tǒng)中有M個(gè)單機(jī),4≥M≥2,M個(gè)單機(jī)中任意兩個(gè)單機(jī)之間通過獨(dú)立的物理通道進(jìn)行數(shù)據(jù)交互,所述數(shù)據(jù)包括通訊數(shù)據(jù)和同步數(shù)據(jù),通訊數(shù)據(jù)使用專門的發(fā)送緩沖區(qū)發(fā)送;(2)若單機(jī)的通訊數(shù)據(jù)發(fā)送緩沖區(qū)非空,則讀取通訊數(shù)據(jù)發(fā)送緩沖區(qū)的通訊數(shù)據(jù)發(fā)送給對(duì)方單機(jī),同時(shí)還將所述通訊數(shù)據(jù)回環(huán)給自己,并等待接收對(duì)方單機(jī)發(fā)送給自己的通訊數(shù)據(jù),直至通訊數(shù)據(jù)緩沖區(qū)內(nèi)的通訊數(shù)據(jù)全部發(fā)送完畢;(3)若單機(jī)的通訊數(shù)據(jù)發(fā)送緩沖區(qū)為空,則不進(jìn)行通訊數(shù)據(jù)交互,將同步數(shù)據(jù)發(fā)送給對(duì)方單機(jī),同時(shí)還將所述同步數(shù)據(jù)回環(huán)給自己,并等待接收對(duì)方單機(jī)發(fā)送給自己的同步數(shù)據(jù),在發(fā)送同步數(shù)據(jù)的同時(shí)啟動(dòng)第一計(jì)數(shù)器和第二計(jì)數(shù)器;(4)當(dāng)單機(jī)接收到回環(huán)給自己的同步數(shù)據(jù)時(shí)停止第一計(jì)數(shù)器,當(dāng)單機(jī)接收到對(duì)方單機(jī)發(fā)送給自己的同步數(shù)據(jù)時(shí)停止第二計(jì)數(shù)器;(5)若在第一計(jì)數(shù)器溢出時(shí)未收到回環(huán)給自己的同步數(shù)據(jù),或者在第二計(jì)數(shù)器溢出時(shí)未收到對(duì)方單機(jī)發(fā)送給自己的同步數(shù)據(jù)則根據(jù)通訊數(shù)據(jù)發(fā)送緩沖區(qū)是否為空?qǐng)?zhí)行步驟(2)或步驟(3);(6)若第一計(jì)數(shù)器和第二計(jì)數(shù)器均已停止計(jì)數(shù),則在在后一個(gè)計(jì)數(shù)器停止計(jì)數(shù)時(shí)刻產(chǎn)生同步脈沖,提示兩單機(jī)同步,第一計(jì)數(shù)器和第二計(jì)數(shù)器的計(jì)數(shù)差值即為兩單機(jī)的同步狀態(tài);(7)重復(fù)步驟(2)~(6),若在上一次同步數(shù)據(jù)交互時(shí)步驟(6)中第二計(jì)數(shù)器的值大于第一計(jì)數(shù)器的值,則在本次同步數(shù)據(jù)交互時(shí)步驟(3)中將同步數(shù)據(jù)發(fā)送給對(duì)方單機(jī)之前等待T1時(shí)間,T1為上一次同步數(shù)據(jù)交互時(shí)步驟(6)中第二計(jì)數(shù)器與第一計(jì)數(shù)器的差值;若在上一次同步數(shù)據(jù)交互時(shí)步驟(6)中第二計(jì)數(shù)器的值小于第一計(jì)數(shù)器的值,則在本次同步數(shù)據(jù)交互時(shí)步驟(3)中立即將同步數(shù)據(jù)發(fā)送給對(duì)方單機(jī)。
2、根據(jù)權(quán)利要求1所述的一種熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方 法,其特征在于所述M個(gè)單機(jī)中任意兩個(gè)單機(jī)之間通過獨(dú)立的物理通道進(jìn)行 數(shù)據(jù)交互的方式為異步串行通訊方式。
全文摘要
一種熱備份冗余系統(tǒng)的通訊與同步數(shù)據(jù)交互方法,通訊數(shù)據(jù)和同步數(shù)據(jù)采用同一物理通道進(jìn)行發(fā)送和接收,交互時(shí)優(yōu)先發(fā)送通訊數(shù)據(jù),若通訊數(shù)據(jù)發(fā)送緩沖區(qū)非空則發(fā)送通訊數(shù)據(jù),若通訊數(shù)據(jù)發(fā)送緩沖區(qū)為空則發(fā)送同步數(shù)據(jù),通訊數(shù)據(jù)和同步數(shù)據(jù)的交互模式可以自動(dòng)切換,提高了冗余系統(tǒng)的數(shù)據(jù)交互效率。在進(jìn)行數(shù)據(jù)同步時(shí),對(duì)回環(huán)同步數(shù)據(jù)接收時(shí)刻與對(duì)方發(fā)送同步數(shù)據(jù)的接收時(shí)刻進(jìn)行比較,并只在對(duì)方發(fā)送的同步數(shù)據(jù)滯后于回環(huán)的同步數(shù)據(jù)時(shí)調(diào)整等待計(jì)數(shù)器進(jìn)行數(shù)據(jù)同步,提高了整個(gè)系統(tǒng)的同步性。本發(fā)明方法實(shí)現(xiàn)簡(jiǎn)單,可節(jié)省大量的硬件資源。
文檔編號(hào)H04L1/22GK101588266SQ20091008766
公開日2009年11月25日 申請(qǐng)日期2009年6月30日 優(yōu)先權(quán)日2009年6月30日
發(fā)明者波 劉, 李任欣, 肖愛斌 申請(qǐng)人:北京控制工程研究所