專利名稱:一種鏈狀網絡的實時通信與時鐘同步方法
技術領域:
本發明涉及一種實時通信與時鐘同步方法,尤其涉及一種基于集總幀和透明時鐘的鏈狀網絡的實時通信與同步方法。
背景技術:
以太網由于其開放性好、應用廣泛及價格低廉的特點,已越來越多地被用于工業現場通信。與傳統的商業以太網相比,應用于工業現場的以太網信息傳輸系統要求具有更高的實時性,進而對作為網絡信息傳輸實時性基礎的系統時鐘同步也提出了更高的要求。目前的以太網信息傳輸系統中多節點的時鐘同步普遍采用IEEE 1588協議,其基本功能是使分布式網絡內的其他時鐘與最精確時鐘保持同步。IEEE 1588協議中定義了一種精確時間協議(PTP,Precision Time ftOtocol),用于對標準以太網或其他采用多播技術的分布式總線系統中的傳感器、執行器以及其他終端設備的時鐘進行亞微秒級同步。透明時鐘模式是IEEE1588v2協議的一種工作方式,其通過計算同步報文在中間設備的駐留時間,對IEEE1588協議報文進行修正和轉發處理,以實現報文在中間設備的透明傳輸,改善網絡對稱性,并減小設備級聯帶來的同步誤差累積,從而可以更為精確地進行時鐘同步。申請號為200710014419. 2,公開號為CN1010173A,發明名稱為“一種實時以太網鏈狀網絡節點間同步的裝置和方法”的中國專利申請提出了一種時間同步方法。在該方法中,各節點測量自己與最后一個節點間的網絡延時。第一個網絡節點周期性地發送同步報文,各節點在收到該同步報文后延時特定的時間后動作,以實現網絡節點間動作的同步性。 在該方法中,各節點內用于延時計時的定時器的頻率存在差異,且沒有進行必要的頻率補償,因此,該方法的同步精度不高,若定時器采用普通晶振,則只能實現微秒級同步。申請號為200910169537. X,公開號為CN101692632,發明名稱為“一種支持透傳時鐘的裝置及方法”的中國專利申請,提出了一種支持透明時鐘的方法及裝置。但該方法主要用于IP傳輸設備,需要在本地IP傳輸設備上額外增加透傳時鐘裝置,從而增加了系統成本和消息處理轉發時間,難以滿足工業控制網絡的實時性要求。申請號為200810217520. 2,公開號為CN101404618A,發明名稱為“實現精確時鐘同步協議中透傳時鐘的系統、裝置和方法”的中國專利申請,公開了一種實現透明時鐘的方法。該方法主要用于路由交換設備,為了獲取精確的時間戳和駐留時間,需要在路由交換設備前、后各增加一個透傳時鐘裝置,從而增大了系統的數據通信周期,降低了系統的實時性。上述技術方案均沒有考慮時鐘同步在以太網鏈狀網絡上實施時的實時通信調度問題。在實際應用中,各設備之間不僅要完成時鐘同步所需的延時測量、時鐘偏差糾正、頻率補償等工作,還需周期性地進行實時通信。若不采用合理的實時通信調度,上述步驟間就會互相干擾,從而使系統通信出現故障,實時性和同步性遭到破壞
發明內容
有鑒于現有技術的上述缺陷,本發明所要解決的技術問題是提供一種鏈狀網絡的實時通信與時鐘同步方法,集合了集總幀傳輸效率高和透明時鐘累積誤差小的優點,解決了兩者結合所帶來的實時通信調度問題,也即帶寬分配問題,從而實現了高效率的數據傳輸和各設備之間的實時通信和高精度時鐘同步,滿足了工業以太網強實時性和高精度時鐘同步的要求。為實現上述目的,本發明提供了一種鏈狀網絡的實時通信與時鐘同步方法,應用于以太網信息傳輸系統中,所述系統包括一個主設備和多個從設備,包括以下步驟A、所述主設備對各從設備進行枚舉和配置,開啟所述各從設備的轉發功能,形成以太網鏈狀網絡結構;B、所述主設備與所述從設備之間,或者所述從設備之間通過交換延時請求報文和延時應答報文,來獲取相關的時間戳,再計算當前設備與下一從設備之間的線路延時并將所述線路延時儲存在所述當前設備中;C、所述主設備發送糾正初始偏差信號報文,所述各從設備接收到所述糾正初始偏差信號報文后,依次完成對本地時鐘的初始偏差糾正;D、所述主設備與所述各從設備之間以集總幀的形式來進行周期性地實時通信,時鐘同步過程嵌在實時通信過程之中。進一步地,所述步驟A進一步包括以下步驟Al、所述主設備發送配置報文OxOlAF,其中,所述配置報文的低字節表示報文類型,所述配置報文的高字節表示從設備號;A2、與所述主設備相連的第一從設備收到所述配置報文后,將所述第一從設備編號為01并開啟所述第一從設備的轉發功能,所述第一從設備將所述配置報文修改為 0x02AF后,轉發給下一從設備,并向所述主設備發送第一配置反饋報文OxOlBF;A3、與所述第一從設備相連的第二從設備收到所述配置報文后,將所述第二從設備編號為02并開啟所述第二從設備的轉發功能,所述第二從設備將所述配置報文修改為 0x03AF后,轉發給下一從設備,并向所述主設備發送第二配置反饋報文0x02BF;A4、以此類推,直至所有從設備均完成網絡配置。進一步地,所述步驟B進一步包括以下步驟Bi、所述主設備向所述第一從設備發送第一延時請求報文,并記錄對應的發送時間作為延時請求發送時間戳tMDelayJte(1 ;所述第一從設備接收所述延時請求報文時記錄對應的接收時間作為延時請求接收時間戳、;所述第一從設備解析所述延時請求報文后,向所述主設備發送延時應答報文,并記錄對應的發送時間作為延時應答發送時間戳 、—所述延時請求接收時間戳、—z^—M和所述延時應答發送時間戳、—z^—一隨所述延時應答報文一起發送給所述主設備;所述主設備收到所述延時應答報文時記錄對應的接收時間作為延時應答接收時間戳tMJtelayltesp ;所述主設備根據所述延時請求發送時間戳、 所述延時請求接收時間戳、所述延時應答發送時間戳和所述延時應答接收時間戳,計算出所述第一從設備與所述主設備之間的線路延時Delay1并儲存在所述主設備中;B2、所述第一從設備向所述主設備發送延時應答報文的同時,向所述第二從設備發送第二延時請求報文,記錄第二延時請求發送時間戳所述第二從設備接收到所述第二延時請求報后重復第一從設備的步驟,并得到第二延時請求接收時間戳tS2 _Delay_Req、第二延時應答發送時間戳、_ Delay _Rs Sp 和第二延時應答接收時間戳述第一從設備根據所述第二延時請求發送時間戳、所述第二延時請求接收時間戳、所述第二延時應答發送時間戳和所述第二延時應答接收時間戳,計算出所述第二從設備與所述第一從設備之間的線路延時Delay2并儲存在所述第一從設備中;B3、以此類推,計算得出所述第K從設備與第k-Ι從設備之間的線路延時Delayk并儲存在所述第k-Ι從設備中,直到計算出所述鏈狀網絡結構最末端的從設備與其前一個從設備之間的線路延時,其中,k > 2。進一步地,所述Delayk的計算公式為
H^S1 Delay Req _ ^M Delay Req) + i^M Delay Resp _ ^S1 Delay Resp)) Z 2,k — 1 日寸
^S1 Delay Req _Delay Re q) +Delay Resp _ ^S1 Delay Resp)) ^ ^ — 2 時其中k為設備編號。進一步地,所述步驟C進一步包括以下步驟Cl、所述主設備發送糾正初始偏差信號報文,所述糾正初始偏差信號報文帶有發送時間戳tM
和所述主設備到所述第一從設備的端到端延時;C2、第k從設備接收到所述糾正初始偏差信號報文時記錄對應的接收時間戳 [°],所述第k從設備解析所述糾正初始偏差信號報文后,提取出所述發送時間戳tM
和
所述端到端延時,并將所述糾正初始偏差信號報文轉發給第k+Ι從設備;記錄轉發時間作為所述第k從設備發送所述糾正初始偏差信號報文的發送時間戳,在所述第k從設備轉發給所述第k+Ι從設備的所述糾正初始偏差信號報文中,將所述第k從設備中的駐留時間、所述第k從設備與所述第k+Ι從設備之間的線路延時累加到中, 得到所述主設備到所述第k+Ι從設備的端到端延時,并用所述主設備到所述第k+Ι從設備的端到端延時Α^μ&Ρ]替代;然后,所述第k從設備糾正初始偏差,其中,k彡2;C3、對每個從設備糾正初始偏差,直至所述鏈狀網絡結構最末端的從設備完成糾正初始偏差。進一步地,所述第k從設備糾正初始偏差進一步為所述第k從設備將當前本地時鐘 Currenttimek 糾正為Q
+ Delayuto8i
+ (Currenttimek - ^
)。進一步地,所述集總幀包括前導符、幀首定界符、幀類型、從設備數據窗口、同步數據窗口和幀檢驗序列。所述前導符、幀首定界符和幀檢驗序列與標準以太網幀相同;所述幀類型用于區別該集總幀是否帶有同步數據;所述從設備數據窗口根據從設備數量η分為 η段,每段包括從設備編號、周期性數據(包括控制指令和實時反饋信息)和非周期性數據 (報警信息和用戶定義的非周期數據);所述同步數據窗口包括時間戳和端到端延時。進一步地,所述步驟D進一步包括以下步驟D1、每隔預定時間,實時通信報文的所述同步數據窗口帶有所述主設備的發送端到所述第一從設備的接收端的延時和發送時間戳tM[N],其中,N表示第N次同步過程,N≥1 ;
D2、第k從設備接收到所述實時通信報文時,記錄對應的接收時間戳、[ΛΠ,所述第k從設備解析所述實時通信報文,并提取出[ΛΠ和tM[N]后,將所述實時通信報文轉發給第k+Ι從設備,記錄對應的轉發時間戳[Α ;在所述k從設備轉發給所述k+Ι從設備的所述實時通信報文中,將所述第k從設備中的駐留時間、所述第k從設備與所述第 k+Ι從設備之間的線路延時累加到中,得到所述主設備到所述第k+Ι從設備的
端到端延時,并用所述端到端延時^^替代所述實時通信報文中的 DelayMtoSt[N];D3、對所述第k從設備進行時鐘校準,直至所述鏈狀網絡結構最末端的從設備完成對本地時鐘的時鐘校準。進一步地,當所述主設備發送實時通信報文時,所述集總幀的所述同步數據窗口的長度為0字節;當所述主設備發送同步報文時,帶有端到端延時和所述主設備的發送時間戳的所述同步數據窗口的長度為6字節。本發明的有益效果在于本發明的方法采用集總幀的方式避免帶寬沖突,最大化地利用以太網帶寬進行用戶數據傳輸。本發明的方法采用IEEE1588精確時鐘同步協議中的透明時鐘來解決以太網鏈狀網絡中的時鐘同步問題,可以減小多級級聯的累積同步誤差,實現高精度時鐘同步。本發明的方法將線路延時測量放在初始化階段進行,并通過對集總幀進行配置, 使主設備不用發送專門的同步報文即可完成時鐘同步,解決了集總幀實時通信方式和透明時鐘同步過程結合所帶來的實時調度問題,滿足了工業以太網強實時性和高精度時鐘同步的要求。以下將結合附圖對本發明的構思、具體結構及產生的技術效果作進一步說明,以充分地了解本發明的目的、特征和效果。
圖1為本發明的一個實施例的以太網信息傳輸系統的結構示意圖。圖2為本發明的一個實施例的實時通信與時鐘同步方法的過程示意圖。圖3為本發明的一個實施例的集總幀的結構示意圖。
具體實施例方式如圖1所示,在本實施例中,以太網信息傳輸系統包括1個主設備和η個從設備 (η >2)。在本實施例中,假設有4個從設備。以太網信息傳輸系統采用環型拓撲結構,各設備之間通過長度為3米的雙絞線連接。主設備的時鐘作為整個網絡系統的時鐘源,而在各從設備中可構建頻率可調的時鐘計數器。在本實施例中,以太網信息傳輸系統的用戶層協議通過DSP實現。DSP采用Texas Instruments公司的TMS320F2812芯片,除了芯片自帶的flash存儲區之外,以太網信息傳輸系統利用擴展的SRAM-IS61LV51216作為DSP運行的數據存儲區。在本實施例中,采用FPGA作為系統的數據鏈路層,并在其中構建頻率可調的時鐘計數器。具體而言,FPGA為Altera公司生產的Cyclone II系列芯片,型號為EP8C8Q208I8N。在本實施例中,物理層通過htel公司的LXT973芯片實現,該芯片帶有2個通信端口,且支持雙絞線和光纖通信兩種通信媒介。圖2為本發明的一個實施例的實時通信與時鐘同步方法的過程示意圖。本發明的實時通信與時鐘同步方法包括以下步驟A、以太網鏈狀網絡結構的配置;在網絡配置開始之前,各從設備未編號,且各從設備的內部轉發功能關閉,整個網絡斷開。系統上電,網絡初始化后,主設備發送配置報文OxOlAF(低字節表示報文類型,AF 為網絡初始化配置報文;高字節表示從設備號)。與主設備相連的從設備收到此配置報文后,將當前從設備編號為01,并開啟當前從設備的轉發功能。當前從設備將配置報文修改為0x02AF后,轉發給下一從設備,并向主設備發送配置反饋報文OxOlBF。與1號從設備相連的從設備收到配置報文后,將當前從設備編號為02,并開啟當前從設備的轉發功能。當前從設備將配置報文修改為0x03AF后,轉發給下一從設備,并向主設備發送配置反饋報文0x02BF。以此類推,所有從設備均做類似操作,直到最后一個從設備完成網絡配置。每個從設備的編號各自存儲在其自身中。B、透明時鐘中線路延時的單次測量;主設備向1號從設備發送延時請求報文Delay_Req,并記錄其對應的發送時間作為延時請求發送時間戳tM Delay Krai。1號從設備接收此延時請求報文時,記錄其對應的接收時間作為延時請求接收時間戳、—MmM。1號從設備解析此延時請求報文后,向主設備發送延時應答報文Delay_ReSp,并記錄對應的發送時間作為延時應答發送時間戳、—Rw。延時請求接收時間戳、和延時應答發送時間戳、隨延時應答報文Delay_Resp 一起發送給主設備。主設備收到延時應答報文Delay_ReSp時,記錄對應的接收時間作為延時應答接收時間戳tM
Delay_Resp°主設備根據上述四個時間戳,也即tM—Delay—_、、—υ——―、、—υ——和 tM—Delay—Kesp, 計算出1號從設備與主設備之間的線路延時Delay1,并儲存在主設備中。在1號從設備與2號從設備之間做類似操作,可計算出2號從設備與1號從設備之間的線路延時Delay2,并將其儲存在1號從設備中。以此類推,直到測出η號從設備與η-1號從設備(在本實施例中,為4號從設備與 3號從設備)之間的線路延時。其中,線路延時Delayk的計算公式為
權利要求
1.一種鏈狀網絡的實時通信與時鐘同步方法,應用于以太網信息傳輸系統中,所述系統包括一個主設備和多個從設備,其特征在于,包括以下步驟A、所述主設備對各從設備進行枚舉和配置,開啟所述各從設備的轉發功能,形成以太網鏈狀網絡結構;B、所述主設備與所述從設備之間,或者所述從設備之間通過交換延時請求報文和延時應答報文,來獲取相關的時間戳,再計算當前設備與下一從設備之間的線路延時并將所述線路延時儲存在所述當前設備中;C、所述主設備發送糾正初始偏差信號報文,所述各從設備接收到所述糾正初始偏差信號報文后,依次完成對本地時鐘的初始偏差糾正;D、所述主設備與所述各從設備之間以集總幀的形式來進行周期性地實時通信,時鐘同步過程嵌在實時通信過程之中。
2.如權利要求1所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述步驟A進一步包括以下步驟Al、所述主設備發送配置報文OxOlAF,其中,所述配置報文的低字節表示報文類型,所述配置報文的高字節表示從設備號;A2、與所述主設備相連的第一從設備收到所述配置報文后,將所述第一從設備編號為 01并開啟所述第一從設備的轉發功能,所述第一從設備將所述配置報文修改為0X02AF后, 轉發給下一從設備,并向所述主設備發送第一配置反饋報文OxOlBF ;A3、與所述第一從設備相連的第二從設備收到所述配置報文后,將所述第二從設備編號為02并開啟所述第二從設備的轉發功能,所述第二從設備將所述配置報文修改為 0x03AF后,轉發給下一從設備,并向所述主設備發送第二配置反饋報文0x02BF ;A4、以此類推,直至所有從設備均完成網絡配置。
3.如權利要求1或2所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述步驟B進一步包括以下步驟Bi、所述主設備向所述第一從設備發送第一延時請求報文,并記錄對應的發送時間作為延時請求發送時間戳tM DelayJte(1 ;所述第一從設備接收所述延時請求報文時記錄對應的接收時間作為延時請求接收時間戳、—^ ;所述第一從設備解析所述延時請求報文后,向所述主設備發送延時應答報文,并記錄對應的發送時間作為延時應答發送時間戳 、—ZXR-;所述延時請求接收時間戳、所述延時應答發送時間戳、—IX一隨所述延時應答報文一起發送給所述主設備;所述主設備收到所述延時應答報文時記錄對應的接收時間作為延時應答接收時間戳tM DelayJtesp ;所述主設備根據所述延時請求發送時間戳、 所述延時請求接收時間戳、所述延時應答發送時間戳和所述延時應答接收時間戳,計算出所述第一從設備與所述主設備之間的線路延時Delay1并儲存在所述主設備中;B2、所述第一從設備向所述主設備發送延時應答報文的同時,向所述第二從設備發送第二延時請求報文,記錄第二延時請求發送時間戳^―—;所述第二從設備接收到所述第二延時請求報后重復第一從設備的步驟,并得到第二延時請求接收時間戳、第二延時應答發送時間戳&, Delay _R& Sp 和第二延時應答接收時間戳;所述第一從設備根據所述第二延時請求發送時間戳、所述第二延時請求接收時間戳、所述第二延時應答發送時間戳和所述第二延時應答接收時間戳,計算出所述第二從設備與所述第一從設備之間的線路延時Delay2并儲存在所述第一從設備中;B3、以此類推,計算得出所述第K從設備與第k-Ι從設備之間的線路延時Delayk并儲存在所述第k-Ι從設備中,直到計算出所述鏈狀網絡結構最末端的從設備與其前一個從設備之間的線路延時,其中,k > 2。
4.如權利要求3所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述Delayk的計算公式為
5.如權利要求4所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述步驟C進一步包括以下步驟Cl、所述主設備發送糾正初始偏差信號報文,所述糾正初始偏差信號報文帶有發送時間戳tM
和所述主設備到所述第一從設備的端到端延時;C2、第k從設備接收到所述糾正初始偏差信號報文時記錄對應的接收時間戳、
,所述第k從設備解析所述糾正初始偏差信號報文后,提取出所述發送時間戳tM
和所述端到端延時,并將所述糾正初始偏差信號報文轉發給第k+Ι從設備;記錄轉發時間作為所述第k從設備發送所述糾正初始偏差信號報文的發送時間戳Z5i
,在所述第k從設備轉發給所述第k+Ι從設備的所述糾正初始偏差信號報文中,將所述第k從設備中的駐留時間、所述第k從設備與所述第k+Ι從設備之間的線路延時累加到中,得到所述主設備到所述第k+Ι從設備的端到端延時D^^^JO],并用所述主設備到所述第k+Ι從設備的端到端延時替代;然后,所述第k從設備糾正初始偏差,其中,k彡2 ;C3、對每個從設備糾正初始偏差,直至所述鏈狀網絡結構最末端的從設備完成糾正初始偏差。
6.如權利要求5所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述第k從設備糾正初始偏差進一步為所述第k從設備將當前本地時鐘Currenttimq糾正為 tM[°] + DelayMtoSi
+ (Currenttimek -、
)。
7.如權利要求1或6所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述集總幀包括前導符、幀首定界符、幀類型、從設備數據窗口、同步數據窗口和幀檢驗序列;所述前導符、所述幀首定界符和所述幀檢驗序列分別與標準以太網幀的前導符、幀首定界符和幀檢驗序列相同;所述幀類型用于區別所述集總幀是否帶有同步數據;所述從設備數據窗口根據所述從設備的數量劃分為多段,每段包括從設備編號、周期性數據和非周期性數據;所述同步數據窗口包括時間戳和端到端延時。
8.如權利要求7所述的鏈狀網絡的實時通信與時鐘同步方法,其中所述步驟D進一步包括以下步驟D1、每隔預定時間,實時通信報文的所述同步數據窗口帶有所述主設備的發送端到所述第一從設備的接收端的延時和發送時間戳tM[N],其中,N表示第N次同步過程,N彡0 ;D2、第k從設備接收到所述實時通信報文時,記錄對應的接收時間戳、[#],所述第k 從設備解析所述實時通信報文,并提取出Ρβ/φ^^^ΛΠ和tM[N]后,將所述實時通信報文轉發給第k+Ι從設備,記錄對應的轉發時間戳^[Λ ;在所述第k從設備轉發給所述第k+Ι從設備的所述實時通信報文中,將所述第k從設備中的駐留時間、所述第k從設備與所述第 k+Ι從設備之間的線路延時累加到中,得到所述主設備到所述第k+Ι從設備的端到端延時,并用所述端到端延時^^替代所述實時通信報文中的DelayMtostW ;D3、對所述第k從設備進行時鐘校準,直至所述鏈狀網絡結構最末端的從設備完成對本地時鐘的時鐘校準。
9.如權利要求8所述的鏈狀網絡的實時通信與時鐘同步方法,其中當所述主設備發送實時通信報文時,所述集總幀的所述同步數據窗口的長度為0字節;當所述主設備發送同步報文時,帶有端到端延時和所述主設備的發送時間戳的所述同步數據窗口的長度為6字節。
全文摘要
本發明公開了一種鏈狀網絡的實時通信與時鐘同步方法,包括以下步驟A、主設備對各從設備進行枚舉和配置,開啟各從設備的轉發功能,形成以太網鏈狀網絡結構;B、主設備與從設備之間,或者從設備之間通過交換延時請求報文和延時應答報文,來獲取相關的時間戳,再計算當前設備與下一從設備之間的線路延時并將線路延時儲存在當前設備中;C、主設備發送糾正初始偏差信號報文,各從設備接收到糾正初始偏差信號報文后,依次完成對本地時鐘的初始偏差糾正;D、主設備與各從設備之間以集總幀的形式來進行周期性地實時通信,時鐘同步過程嵌在實時通信過程之中。本發明的方法解決了兩者結合所帶來的實時通信調度問題。
文檔編號H04L7/00GK102332973SQ201110264368
公開日2012年1月25日 申請日期2011年9月7日 優先權日2011年9月7日
發明者丁懋卿, 丁漢, 吳建華, 熊振華, 許雄 申請人:上海交通大學