一種基于雙環(huán)總線的時間同步方法
【專利摘要】本發(fā)明涉及一種基于雙環(huán)總線的時間同步方法,包括以下步驟:主/從設(shè)備初始化;主設(shè)備將發(fā)送時間封裝到同步消息中,發(fā)送至相鄰從設(shè)備;從設(shè)備i將在一個環(huán)路中接收到同步消息的時刻ti存儲并將發(fā)送同步消息時間ti’封裝到該同步消息中,發(fā)送至從設(shè)備i+1,從設(shè)備i+1保存接收到該同步消息時刻ti+1;同時在另一環(huán)路中,從設(shè)備i+1將發(fā)送另一同步消息到從設(shè)備i的發(fā)送時間si+1和時間ti+1通過該同步消息發(fā)送至從設(shè)備i;從設(shè)備i保存接收消息時刻si;從設(shè)備i計算從設(shè)備i和從設(shè)備i+1間的時鐘偏移量和通信延遲并修正本地時鐘,完成雙環(huán)總線主/從設(shè)備的時間同步。在本發(fā)明的同步消息可以同時發(fā)送到傳輸線路中,并且同步都在一個通信周期內(nèi)完成,有效地提高了實時性;且同步效率高。
【專利說明】—種基于雙環(huán)總線的時間同步方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明應(yīng)用雙環(huán)結(jié)構(gòu)總線提出一種新的設(shè)備間時間同步方法,屬通信【技術(shù)領(lǐng)域】。【背景技術(shù)】
[0002]在工業(yè)控制領(lǐng)域中,為了能夠即時地對異常情況進行檢測與定位,通常需要在管理監(jiān)控設(shè)備和相關(guān)的自動設(shè)備中保持嚴格的時間同步,通過控制系統(tǒng)將事件的發(fā)生次序以及時間及時記錄下來。在傳統(tǒng)的控制系統(tǒng)中,毫秒級的數(shù)據(jù)采樣周期已經(jīng)能夠滿足通常的監(jiān)控需要,但在大規(guī)模工控系統(tǒng)中,隨著現(xiàn)場設(shè)備在規(guī)模上的擴張,系統(tǒng)復(fù)雜度也相對較高,對同步精度的要求也日趨嚴格。例如,在類似于溫度與壓力監(jiān)測的慢速系統(tǒng)中,同步的精度維持在毫秒級,但在高速的現(xiàn)場信息采集系統(tǒng)中,精度需求必須達到毫秒級。因此,精確的時間同步方法已經(jīng)成為工業(yè)控制網(wǎng)絡(luò)中必不可少的關(guān)鍵要素。
[0003]眾所周知,現(xiàn)場設(shè)備主要依賴于串行的異步通信,沒有同步定時上的要求。但近年來隨著總線通信技術(shù)的不斷發(fā)展與大量實時任務(wù)的迫切需求,即時沒有配置內(nèi)部時鐘的現(xiàn)場設(shè)備也需要與服務(wù)器進行同步,這對時間同步精度提出了新的要求。為了解決這個問題,ITU-U、IETF、MEF等組織設(shè)立了相關(guān)的標準,如ΝΤΡ、IEEE1588、IEEE802.1等,這些標準都以傳輸時間戳的方式來實現(xiàn)設(shè)備之間的同步。
[0004]但在高實時的工業(yè)現(xiàn)場,現(xiàn)有的通信方式以及設(shè)備內(nèi)的系統(tǒng)架構(gòu)已不能滿足其對時間精度的要求。因此,本發(fā)明提出了一種基于數(shù)控系統(tǒng)的時間同步控制模型,該模型在雙環(huán)總線結(jié)構(gòu)的基礎(chǔ)上,設(shè)計高精度的時鐘同步功能模塊,以滿足設(shè)備間通信對實時性的要求。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有的時間同步方法在設(shè)備內(nèi)受協(xié)議棧延遲及控制系統(tǒng)架構(gòu)制約而存在實時性的不足,本發(fā)明提供一種面向數(shù)控機床的基于雙環(huán)總線的時間同步控制方法,可以通過單周期的同步消息傳輸降低設(shè)備間通信延遲,提高數(shù)控系統(tǒng)內(nèi)時間同步方法的運行效率,保證數(shù)控系統(tǒng)運行的穩(wěn)定性。
[0006]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下:
[0007]一種基于雙環(huán)總線的時間同步方法,包括以下步驟:
[0008]主/從設(shè)備初始化:從設(shè)備的本地時鐘單元計時器清零,清除其中存儲的時間數(shù)據(jù);主設(shè)備的本地時鐘單元清空內(nèi)部的偏移量數(shù)組和延遲量數(shù)組;
[0009]主設(shè)備通過雙環(huán)總線發(fā)送同步消息時將發(fā)送時間生成時間戳,將其封裝到同步消息中,通過主設(shè)備的兩個端口發(fā)送至相鄰從設(shè)備;
[0010]從設(shè)備i將在一個環(huán)路中接收到同步消息的時刻ti生成時間戳,并存儲到本地時鐘單元;該從設(shè)備發(fā)送同步消息時將發(fā)送時間t/生成時間戳其封裝到該同步消息中,發(fā)送至下一個從設(shè)備i+1,從設(shè)備i+1將接收到該同步消息時刻ti+1所生成的時間戳保存;
[0011]同時,在另一個環(huán)路中,從設(shè)備i+1將發(fā)送另一個同步消息到從設(shè)備i的發(fā)送時間Si+1’生成時間戳,將其和ti+1的時間戳通過該同步消息發(fā)送至從設(shè)備i ;從設(shè)備i將接收到該同步消息時刻Si所生成的時間戳保存;
[0012]從設(shè)備i通過ti+1,V,si+1,,Si四個時間戳計算出從設(shè)備i和從設(shè)備i+1間的時鐘偏移量Irffsrt和通信延遲Tdelay ;從設(shè)備i的本地時鐘單元根據(jù)時鐘偏移量Irffset和通信延遲Tdelay修正本地時鐘,完成雙環(huán)總線主/從設(shè)備的時間同步。
[0013]所述同步消息包括報頭和報體;其中報頭包括:協(xié)議類型、消息類型、消息長度、設(shè)備總數(shù)、標志域、源端口號、序列號;報體包括設(shè)備生成的時間戳。
[0014]所述計算從設(shè)備i和從設(shè)備i+Ι間的時鐘偏移量Irffset和通信延遲Tdelay通過以下公式得到
[0015]Toffdet = ((ti+1-ti' ) +(S1-Si+/ ))/2
[0016]Tdelay =!!-(S1-Si+/ ))/2
[0017]本發(fā)明具有以下有益效果及優(yōu)點:
[0018]1.實時性高。在本發(fā)明中,數(shù)據(jù)傳輸?shù)木€路是環(huán)形通路,同步消息可以同時發(fā)送到傳輸線路中,并且同步都在一個通信周期內(nèi)完成,有效地提高了實時性。
[0019]2.同步效率高。在本發(fā)明中,在原有數(shù)控系統(tǒng)的基礎(chǔ)上針對時間同步過程進行專門模塊設(shè)計和功能劃分的方法,將原有的集中處理方式獨立出來,對同步流程加以分析并有效控制,通過合理的邏輯分層,實現(xiàn)各模塊之間的功能聯(lián)動,來最大限度地減小同步過程的時間開銷。
[0020]3.采用時鐘偏移量和通信延遲計算方法能夠在單個通信周期內(nèi)獲得從設(shè)備間通信的收發(fā)時間戳,從而快速計算出修正設(shè)備時鐘所需的偏移量與通信延遲。
【專利附圖】
【附圖說明】
[0021]圖1為本發(fā)明的同步功能模型抽象層次結(jié)構(gòu)圖;
[0022]圖2為從設(shè)備中時鐘控制模型功能原理結(jié)構(gòu);
[0023]圖3為主設(shè)備時鐘控制模型功能原理結(jié)構(gòu);
[0024]圖4為雙環(huán)總線傳輸結(jié)構(gòu)圖;
[0025]圖5為同步消息報頭結(jié)構(gòu)圖;
[0026]圖6為從設(shè)備時鐘控制模型中各模塊同步消息處理過程;
[0027]圖7為主設(shè)備時鐘控制模型中各模塊同步消息處理過程;
[0028]圖8為時鐘偏移量與通信延遲計算方法圖。
【具體實施方式】
[0029]下面結(jié)合附圖及實施例對本發(fā)明做進一步的詳細說明。
[0030]本發(fā)明所采用的技術(shù)方案如下:
[0031]基于雙環(huán)總線的時間同步模型是指在原有數(shù)控系統(tǒng)的基礎(chǔ)上針對時間同步過程進行專門模塊設(shè)計和功能劃分的方法,將原有的集中處理方式獨立出來,對同步流程加以分析并有效控制,通過合理的邏輯分層,實現(xiàn)各模塊之間的功能聯(lián)動,來最大限度地減小同步過程的時間開銷。
[0032]如圖1所示,根據(jù)深入程度的不同,由現(xiàn)場設(shè)備抽象出的時鐘功能模型可以劃分為三層結(jié)構(gòu):網(wǎng)絡(luò)層,接口層和控制層。接口層與網(wǎng)絡(luò)層之間的通信主要依靠三個數(shù)據(jù)接口:消息接口,時間戳接口和時鐘調(diào)節(jié)接口。同步消息通過時間戳接口記錄收發(fā)時的時間信息并通過消息接口發(fā)送出去,接受同步消息時,相關(guān)的時間信息也是通過時間戳接口讀取。時間同步模塊負責處理通過接口讀取的時間戳信息并計算出與本地時鐘之間的偏移量與延遲??刂凭W(wǎng)絡(luò)中的從設(shè)備會在主設(shè)備發(fā)送的同步消息中讀取到時鐘調(diào)節(jié)信息并通過時鐘調(diào)節(jié)接口與本地時鐘連線。上述單元都是軟件實現(xiàn),在硬件設(shè)備的支持下,對時鐘信息的操作將會更加精確。
[0033]設(shè)備內(nèi)部的時鐘單元主要分為兩個部分:計時器與時鐘調(diào)節(jié)模塊。計時器用于記錄通信過程中的相關(guān)時間開銷,而調(diào)節(jié)模塊則通過同步算法周期性地修正本地時鐘與時鐘源的誤差。這兩部分也是保證設(shè)備間一致性的關(guān)鍵所在。
[0034]而根據(jù)同步過程中的功能定位,主設(shè)備中的主時鐘控制模型與從設(shè)備中的從時鐘控制模型也有著功能上的差異。主時鐘模型是現(xiàn)場的標準時間來源,通過收發(fā)同步消息維護控制系統(tǒng)內(nèi)的時鐘狀態(tài)。從時鐘控制模型負責處理主設(shè)備發(fā)送的同步信息并對從設(shè)備的時鐘做相關(guān)修正。
[0035]如圖2所示,在從設(shè)備的時鐘控制模型中,最為關(guān)鍵的功能模塊是本地時鐘單元。它維護著本地時鐘的正常走時,并利用校準程序?qū)Ρ镜貢r鐘作偏離量上的修正,而偏移量則通過同步消息中的時鐘信息計算得到。本地時鐘單元里同時儲存著進行同步所需的時間數(shù)據(jù),以及時鐘狀態(tài)和對應(yīng)屬性的描述文件。時鐘同步模塊主要用于處理前段接口傳送過來的同步消息,包括對報文的解析,偏移量和通信延遲的計算以及同步算法的調(diào)用。時間數(shù)據(jù)讀寫模塊負責從本地時鐘讀取時間數(shù)據(jù)并進行按約定格式進行封裝從而生成時間戳文件。時間戳處理模塊將帶有時間戳的報文與數(shù)據(jù)封裝為用于網(wǎng)絡(luò)傳輸?shù)南⒏袷剑钠渌O(shè)備接收到的消息進行相應(yīng)的解封。處于時鐘控制模型上層的是通用接口模塊,其中包含了功能消息接口與同步消息接口。這兩個接口共用一個網(wǎng)絡(luò)端口,但在邏輯上有著不同的功能劃分。功能消息接口負責處理功能性的網(wǎng)絡(luò)消息如數(shù)據(jù)報文、控制命令等,并將數(shù)據(jù)信息直接送往設(shè)備中對應(yīng)的功能模塊。而同步消息接口對應(yīng)于特殊格式的同步報文,被時間同步模塊所調(diào)用。
[0036]如圖3所示,與從設(shè)備中的時鐘控制模塊相比,主設(shè)備時鐘控制模型少了同步模塊,增加了時鐘單元里的從設(shè)備偏移量數(shù)組,用于實時更新系統(tǒng)所屬設(shè)備的同步情況。作為時鐘源,主設(shè)備的時鐘控制模型不用參與從設(shè)備之間的同步,取而代之的是獨立出來的主時鐘同步算法與反饋重傳機制,用于修正同步過程中的丟包與誤差。同時,主設(shè)備時鐘單元里有預(yù)設(shè)的同步周期,當一定的通信周期結(jié)束后,同步機制便會啟動,修正設(shè)備間時鐘偏移,保證系統(tǒng)內(nèi)設(shè)備間的一致性。
[0037]如果同步消息在傳輸過程中發(fā)生錯誤或者出現(xiàn)丟包等情況,從設(shè)備控制模型中的同步消息接口會在同步消息報文頭中的標志域中進行標記,記錄出錯的設(shè)備號,等待主設(shè)備進行同步消息重傳。當同步消息遍歷了系統(tǒng)內(nèi)所有從設(shè)備后,主設(shè)備的同步消息會對消息內(nèi)的標志域進行校驗,如果沒有錯誤發(fā)生,則同步完成。如果檢驗到某設(shè)備在同步過程中出錯,則此次同步失敗,重啟此次時間同步。
[0038]本發(fā)明的同步方法包括以下步驟:
[0039]1.初始化[0040]在圖4所示的雙環(huán)總線中,在設(shè)備間的時間同步過程開始前,先對時鐘控制模型做初始化。從設(shè)備中需要將本地時鐘單元中的計時器清零,準備記錄同步消息收發(fā)過程的時間開銷,同時清除時鐘單元中存儲的上一次同步時的時間數(shù)據(jù)。主設(shè)備中的時鐘控制模型還需要清空偏移量數(shù)組和延遲量數(shù)組,以便存放本次同步時的所計算出的與從設(shè)備間的時鐘偏移量和通信延遲。
[0041]本地時鐘單元存有該設(shè)備的時間狀態(tài)信息,能夠記錄設(shè)備上的事件發(fā)生的時間。
[0042]如圖5所示,同步消息包括報頭和報體,其中報頭包括:
[0043]協(xié)議類型:約定了用于傳輸?shù)膮f(xié)議類型。
[0044]消息類型:區(qū)分了該消息的種類,是同步消息或者是其他。
[0045]消息長度:確定了該消息所占用的比特數(shù)。
[0046]設(shè)備總數(shù):包含了一個計數(shù)器和約定的現(xiàn)場從設(shè)備的總數(shù),用于核對是否所有的設(shè)備都收到該消息。
[0047]標志域:記錄出現(xiàn)故障的設(shè)備號,用于反饋給主設(shè)備。
[0048]源端口號:標志發(fā)送該消息的端口號從而確認用于傳輸該消息的環(huán)號。
[0049]序列號:記錄主設(shè)備發(fā)送消息的序列數(shù)。
[0050]而報體用于存放設(shè)備生成的時間戳。
[0051]2.時間同步開始
[0052]如圖7所示,在準備發(fā)送同步消息到從設(shè)備之前,主設(shè)備的時鐘控制模塊從本地時鐘中讀取本機的時間信息作為時間同步消息的發(fā)送時間,將其發(fā)送到時間數(shù)據(jù)讀寫模塊生成對應(yīng)格式的時間戳。然后在時間戳處理模塊中,時間戳被封裝到待傳輸?shù)耐较⒅幸徊魉偷酵ㄓ媒涌谀K中,通用接口模塊確認了該消息為同步消息后,通過調(diào)用同步消息接口模塊將同步消息發(fā)送到通信環(huán)路中。隨后,時鐘控制模塊進入監(jiān)聽狀態(tài),等待同步消息遍歷從設(shè)備后歸來。
[0053]如圖6所示,從設(shè)備的時鐘控制模型對同步消息的處理分為兩個階段:如果從設(shè)備是第一次收到主設(shè)備發(fā)送的同步消息,在本地時鐘單元中讀取收到該消息時的時間信息通過時間數(shù)據(jù)讀取模塊生成對應(yīng)的接收時間戳,在將該同步消息通過通用接口中的同步消息接口模塊發(fā)送到下一個設(shè)備之前,在本地時鐘單元中讀取時間信息生成發(fā)送時間戳,并且通過時間戳處理模塊將接收時間戳和發(fā)送時間戳封裝到同步消息中;當該設(shè)備再次從另一環(huán)路收到同步消息時,如果之前已經(jīng)收到過從某一環(huán)路傳輸來的同步消息,同樣地,記錄下接收時刻并生成時間戳,此時,需要從本地時鐘單元的緩存中讀取上一條消息到達時刻的時間戳一并加到該同步消息,然后發(fā)送到屬于當前環(huán)路的下一個從設(shè)備。在下一從設(shè)備收到該同步消息后,計算兩設(shè)備間通信延遲與時鐘偏移的因子都已滿足,于是調(diào)用時間同步模塊計算出本地時鐘與目標時鐘的偏移量與通信過程中的延遲量,再將結(jié)果發(fā)送到時鐘校準模塊中對本地時鐘進行修正。
[0054]下面結(jié)合圖8對時鐘偏移量與通信延遲的計算作進一步說明。
[0055]在環(huán)路I中的同步消息傳輸中,從設(shè)備i發(fā)送同步消息到從設(shè)備i+Ι時的時間戳為t/,同步消息攜帶此時間戳到達從設(shè)備i+Ι,到達時刻的時間戳為ti+1。而在環(huán)路2中,另一個同步消息被從設(shè)備i+Ι發(fā)送到從設(shè)備i,發(fā)送時刻的時間戳為si+1’,從設(shè)備將時間戳ti+1與si+1’同時隨同步消息發(fā)送到從設(shè)備i中,同步消息到達從設(shè)備i的時刻的時間戳為Si。此時,從設(shè)備有了四個必要的時間戳t/,ti+1,si+1’,Si就能夠通過公式
[0056]Toffset = ((ti+1-t/ ) +(S1-Si+/ ))/2
[0057]Tdelay = ((ti+1-t/ )-(S1-SiV ))/2
[0058]計算出從設(shè)備i與從設(shè)備i+Ι之間的時鐘偏移量與通信延遲,從而進行相關(guān)修正。
[0059]在此過程中,如果同步消息在傳輸過程中發(fā)生錯誤或者出現(xiàn)丟包等情況,從設(shè)備控制模型中的同步消息接口會在同步消息報文頭中的標志域中進行標記,記錄出錯的設(shè)備號,等待主設(shè)備進行同步消息重傳。
[0060]于此同時,控制模型中的通用接口模塊需要對接收到的消息做分類,如果確定是功能消息,則經(jīng)功能消息處理模塊發(fā)送到相應(yīng)的功能模塊中。
[0061]3同步結(jié)束
[0062]當同步消息遍歷了系統(tǒng)內(nèi)所有從設(shè)備后,主設(shè)備的同步消息會對消息內(nèi)的標志域進行校驗,如果沒有錯誤發(fā)生,則同步完成。如果檢驗到某設(shè)備在同步過程中出錯,則此次同步失敗,重啟此次時間同步。
【權(quán)利要求】
1.一種基于雙環(huán)總線的時間同步方法,其特征在于包括以下步驟: 主/從設(shè)備初始化:從設(shè)備的本地時鐘單元計時器清零,清除其中存儲的時間數(shù)據(jù);主設(shè)備的本地時鐘單元清空內(nèi)部的偏移量數(shù)組和延遲量數(shù)組; 主設(shè)備通過雙環(huán)總線發(fā)送同步消息時將發(fā)送時間生成時間戳,將其封裝到同步消息中,通過主設(shè)備的兩個端口發(fā)送至相鄰從設(shè)備; 從設(shè)備i將在一個環(huán)路中接收到同步消息的時刻ti生成時間戳,并存儲到本地時鐘單元;該從設(shè)備發(fā)送同步消息時將發(fā)送時間t/生成時間戳其封裝到該同步消息中,發(fā)送至下一個從設(shè)備i+Ι,從設(shè)備i+Ι將接收到該同步消息時刻ti+1所生成的時間戳保存; 同時,在另一個環(huán)路中,從設(shè)備i+Ι將發(fā)送另一個同步消息到從設(shè)備i的發(fā)送時間si+1’生成時間戳,將其和ti+1的時間戳通過該同步消息發(fā)送至從設(shè)備i ;從設(shè)備i將接收到該同步消息時刻Si所生成的時間戳保存; 從設(shè)備i通過ti+1,t/,si+1’,Si四個時間戳計算出從設(shè)備i和從設(shè)備i+Ι間的時鐘偏移量Ttjffsrt和通信延遲Tdelay;從設(shè)備i的本地時鐘單元根據(jù)時鐘偏移量Irffsrt和通信延遲Tdelay修正本地時鐘,完成雙環(huán)總線主/從設(shè)備的時間同步。
2.根據(jù)權(quán)利要求1所述的一種基于雙環(huán)總線的時間同步方法,其特征在于: 所述同步消息包括報頭和報體;其中報頭包括:協(xié)議類型、消息類型、消息長度、設(shè)備總數(shù)、標志域、源端口號、序列號;報體包括設(shè)備生成的時間戳。
3.根據(jù)權(quán)利要求1所述的一種基于雙環(huán)總線的時間同步方法,其特征在于: 所述計算從設(shè)備i和從設(shè)備i+ι間的時鐘偏移量Irffsrt和通信延遲Tdelay通過以下公式得到
【文檔編號】H04J3/06GK103812589SQ201210445774
【公開日】2014年5月21日 申請日期:2012年11月9日 優(yōu)先權(quán)日:2012年11月9日
【發(fā)明者】林滸, 楊磊, 劉峰, 鄭飂默, 王峰 申請人:中國科學(xué)院沈陽計算技術(shù)研究所有限公司