專利名稱:一種精確時間同步協(xié)議的實現(xiàn)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡通信領(lǐng)域,尤其涉及一種精確時間同步協(xié)議的實現(xiàn)裝置。
背景技術(shù):
在目前的工業(yè)控制過程中,由于工業(yè)控制網(wǎng)絡中各時鐘之間的不同或者同步誤差大給工業(yè)控制造成了一系列的問題。為了解決網(wǎng)絡中各時鐘的同步問題。現(xiàn)有技術(shù)提供了多種可以支持網(wǎng)絡時鐘同步的協(xié)議,如網(wǎng)絡時間協(xié)議(Network Time Protocol,NTP)、簡單網(wǎng)絡時間協(xié)議(Simple Network Time Protocol, SNTP)等。但這些支持網(wǎng)絡時鐘同步的協(xié)議的共同不足是時鐘同步精度不高,一般都是毫秒級,不能很好的滿足現(xiàn)代工業(yè)控制,如電力行業(yè)、軌道交通等的應用需求。為了解決上述問題,具有共同利益的信息技術(shù)、自動控制、人工智能、測試測量等領(lǐng)域的工程技術(shù)人員倡議成立了網(wǎng)絡精密時鐘同步委員會,該網(wǎng)絡精密時鐘同步委員會制訂了網(wǎng)絡測量和控制系統(tǒng)的精密時鐘同步協(xié)議標準(IEEE1588標準),IEEE1588的精密時鐘協(xié)議(Precision Time Synchronization Protocol,PTP)能夠?qū)崿F(xiàn)高精度的以太網(wǎng)時間同步,取得了很好的網(wǎng)絡時鐘同步精度,顯著的提高了網(wǎng)絡的定時同步指標。但是ΙΕΕΕ1588的PTP協(xié)議僅定義了同步的規(guī)范,現(xiàn)有技術(shù)沒有提供PTP協(xié)議的具體實現(xiàn)裝置,使得該PTP協(xié)議難以得到推廣。
發(fā)明內(nèi)容
本發(fā)明實施例提供了一種精確時間同步協(xié)議的實現(xiàn)裝置,旨在通過該精確時間同步協(xié)議的實現(xiàn)裝置運行PTP協(xié)議,以達到網(wǎng)絡中各時鐘的高精度同步的問題。本發(fā)明實施例是這樣實現(xiàn)的,一種精確時間同步協(xié)議的實現(xiàn)裝置,所述裝置包括系統(tǒng)初始化單元,用于對精確時間同步PTP協(xié)議的實現(xiàn)裝置進行初始化;人機交互單元,用于提供一種或者多種交互接口,以供用戶與PTP協(xié)議的實現(xiàn)裝置進行交互;協(xié)議引擎單元,用于運行PTP協(xié)議,根據(jù)PTP協(xié)議組織各種PTP報文,并根據(jù)PTP 協(xié)議在主時鐘設備和從時鐘設備之間交互PTP報文,根據(jù)各PTP報文的發(fā)送時間戳和接收時間戳實現(xiàn)主時鐘設備和從時鐘設備之間的時鐘同步;硬件通訊單元,用于對所述協(xié)議引擎單元組織的各種PTP報文打上時間戳,并將打上了時間戳的PTP報文在主時鐘設備和從時鐘設備之間進行傳輸。在本發(fā)明實施例中,提供了一種新的PTP協(xié)議的實現(xiàn)裝置,通過該PTP協(xié)議的實現(xiàn)裝置在網(wǎng)絡中運行PTP協(xié)議,以實現(xiàn)網(wǎng)絡中各時鐘的高精度同步,從而解決了目前工業(yè)控制上由于時鐘之間的不同步或者同步誤差大導致的各種問題。
圖1是適用本發(fā)明提供的PTP協(xié)議的實現(xiàn)裝置的網(wǎng)絡結(jié)構(gòu)圖;圖2是本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的結(jié)構(gòu)框圖;圖3是本發(fā)明實施例提供的主時鐘設備和從時鐘設備間的PTP報文交互的流程示意圖;圖4是本發(fā)明實施例提供的硬件通訊單元的結(jié)構(gòu)示意圖;圖5是本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的詳細架構(gòu)圖;圖6是本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的啟動流程圖。
具體實施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明實施例中,提供了一種新的PTP協(xié)議的實現(xiàn)裝置,以在網(wǎng)絡中實現(xiàn)PTP協(xié)議,滿足網(wǎng)絡中時鐘的高精度同步需求。本發(fā)明提供了一種精確時間同步協(xié)議的實現(xiàn)裝置,所述裝置包括 系統(tǒng)初始化單元,用于對精確時間同步PTP協(xié)議的實現(xiàn)裝置進行初始化,為PTP協(xié)議的運行做準備;人機交互單元,用于提供一種或者多種交互接口,以供用戶與PTP協(xié)議的實現(xiàn)裝置進行交互;協(xié)議引擎單元,用于運行PTP協(xié)議,根據(jù)PTP協(xié)議組織各種PTP報文,并根據(jù)PTP 協(xié)議在主時鐘設備和從時鐘設備之間交互PTP報文,根據(jù)各PTP報文的發(fā)送時間戳和接收時間戳實現(xiàn)主時鐘設備和從時鐘設備之間的時鐘同步;硬件通訊單元,用于對所述協(xié)議引擎單元組織的各種PTP報文打上時間戳,并將打上了時間戳的PTP報文在主時鐘設備和從時鐘設備之間進行傳輸。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。圖1示出了適用本發(fā)明提供的PTP協(xié)議的實現(xiàn)裝置的網(wǎng)絡結(jié)構(gòu),多個從時鐘設備與主時鐘設備連接,主時鐘設備與各從時鐘設備之間可以通過PTP報文進行通信。在本發(fā)明另一實施例中,多個從時鐘設備也可以與多個主時鐘設備連接。圖2示出了本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該PTP協(xié)議的實現(xiàn)裝置可以用于通信設備,如計算機設備等,可以是運行于這些設備內(nèi)的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨立的掛件集成到這些設備中或者運行于這些設備的應用系統(tǒng)中,其中系統(tǒng)初始化單元1對PTP協(xié)議的實現(xiàn)裝置進行初始化,以為PTP協(xié)議的運行做好準備。在本發(fā)明實施例中,系統(tǒng)初始化單元1主要用于對定時器、系統(tǒng)日志單元、配置模塊等進行初始化。其中初始化包括但不限于資源分配、創(chuàng)建定時器、創(chuàng)建消息隊列以及初始化系統(tǒng)日志等。其中定時器用于完成PTP協(xié)議交互時的邏輯操作,保證PTP協(xié)議的正常運轉(zhuǎn)。 消息隊列用于為用戶提供一個外部的API接口,使得用戶可以通過該API接口獲取PTP協(xié)議運轉(zhuǎn)過程中發(fā)生的異常信息。
其中需要分配的資源包括但不限于內(nèi)存、數(shù)據(jù)結(jié)構(gòu)、消息隊列等,如為PTP時鐘數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存、為外部主時鐘(Foreign Master)分配內(nèi)存。其中PTP時鐘數(shù)據(jù)結(jié)構(gòu)用于定量描述當前時鐘的屬性,對規(guī)范中定義的每一個數(shù)據(jù)集的成員進行了包含,記錄時鐘同步過程中發(fā)生的事件,時鐘端口的狀態(tài)和數(shù)值等。Foreign Master用于存儲外部主時鐘設備發(fā)送的同步報文。其中!^oreignMaster 是針對本地時鐘節(jié)點而言的,所有從時鐘設備接收到的外部主時鐘的同步報文都需要被存放在為foreign Master分配的內(nèi)存中,用于BMC算法處理。人機交互單元2提供一種或者多種交互接口,以供用戶與PTP協(xié)議的實現(xiàn)裝置進行交互。其中提供的交互接口包括但不限于參數(shù)配置接口和用于測試的應用程序編程接口(Application Programming Interface, API)。該人機交互單元2包括配置模塊21和測試模塊22。其中配置模塊21提供參數(shù)配置接口,接收用戶輸入的配置請求,并根據(jù)該配置請求對PTP協(xié)議的實現(xiàn)裝置的系統(tǒng)參數(shù)進行配置。其中可以配置的系統(tǒng)參數(shù)包括但不限于本地時鐘參數(shù)屬性和用戶自定義參數(shù)兩部分。由于需要配置的系統(tǒng)參數(shù)在現(xiàn)有的IEEE 1588-2008規(guī)范中有規(guī)定,在此不再贅述。該配置模塊21根據(jù)配置請求對PTP協(xié)議的實現(xiàn)裝置的系統(tǒng)參數(shù)進行配置的方式包括但不限于文件配置方式、數(shù)據(jù)庫配置方式、WEB配置方式等。其中文件配置方式的具體流程如下該配置模塊21為用戶提供文件配置接口,用戶通過該文件配置接口輸入配置文件,并將該配置文件存儲至該設置有PTP協(xié)議的實現(xiàn)裝置的系統(tǒng)的文件系統(tǒng)中,在需要通過PTP協(xié)議的實現(xiàn)裝置運行PTP協(xié)議時,則直接讀取該配置文件中的內(nèi)容,并將該配置文件中配置的數(shù)值賦值到時鐘數(shù)據(jù)結(jié)構(gòu)中的對應變量,以便 PTP協(xié)議的實現(xiàn)裝置使用。舉例說明如下假設配置文件名為cfgFile. txt,則該配置文件cfgFile. txt里的內(nèi)容為用戶配置的系統(tǒng)參數(shù)。系統(tǒng)上電后首先打開該配置文件cfgFile. txt,然后將該配置文件 cfgFile. txt中的所有字符讀取到內(nèi)存中,解析每一個參數(shù)的完整性以及其對應的數(shù)值,將該數(shù)值分別對應賦值給時鐘數(shù)據(jù)結(jié)構(gòu)中的對應的變量,以便被PTP協(xié)議的實現(xiàn)裝置使用。如果該配置文件cfgFile. txt不存在,則PTP協(xié)議的實現(xiàn)裝置將使用一組默認的數(shù)值來賦值給時鐘數(shù)據(jù)結(jié)構(gòu)中的對應的變量,然后將該默認的數(shù)值寫到文件中,作為后續(xù)的配置文件。其中配置文件中存儲有用戶配置的PTP協(xié)議的實現(xiàn)裝置的系統(tǒng)參數(shù)。數(shù)據(jù)庫配置方式、WEB配置方式與文件配置方式類似,不同之處僅在于采用數(shù)據(jù)庫存儲用戶配置的PTP 協(xié)議的實現(xiàn)裝置的系統(tǒng)參數(shù)。在此不再一一舉例說明。測試模塊22提供用于測試的API接口,接收用戶輸入的測試請求,并對該測試請求指定的PTP協(xié)議的功能進行測試。該測試模塊22進行測試的過程如下首先調(diào)用一個測試程序入口,進入到一個測試界面,該測試節(jié)目包括多種功能測試入口,如定時器測試、系統(tǒng)日志測試、組播測試、消息隊列測試以及PTP消息測試等。然后等待用戶輸入測試選項,測試完畢退出到主界面等待再次輸入。協(xié)議引擎單元3運行PTP協(xié)議,根據(jù)PTP協(xié)議組織各種PTP報文,并根據(jù)PTP協(xié)議在主時鐘設備和從時鐘設備之間交互PTP報文,根據(jù)各PTP報文的發(fā)送時間戳和接收時間戳實現(xiàn)主時鐘設備和從時鐘設備之間的時鐘同步。
該協(xié)議引擎單元3包括定時器31、PTP報文處理模塊32、網(wǎng)絡通訊模塊33、同步算法模塊34和時鐘處理模塊35。其中定時器31為PTP協(xié)議的運行提供定時功能。該定時器31包括但不限于同步間隔定時器、接收超時定時器和延遲請求間隔定時器等三種類型的定時器。其中同步間隔定時器用于控制主時鐘設備向從時鐘設備發(fā)送同步報文的間隔時間。如當PTP時鐘端口切換到PTP_MASTER狀態(tài)后,程序?qū)油介g隔定時器,然后設置定時的時間間隔為指定的時間,定時的間隔時間是預先配置好的,然后程序通過輪詢的方式查看定時的時間間隔是否到,如果到了,那么將該定時時間重新設置為指定的時間,并且發(fā)送同步報文到從時鐘。接收超時定時器用于控制從時鐘設備從主時鐘設備接收同步報文的間隔時間。如當PTP時鐘端口狀態(tài)切換到PTP_SLAVE狀態(tài)后,程序?qū)咏邮粘瑫r定時器,然后設置定時的時間間隔為指定的時間,定時的間隔時間是預先配置好的,然后程序通過輪詢的方式查看定時的時間間隔是否到,如果到了還沒有收到PTP同步報文,那么將PTP時鐘端口切換到 PTP_MASTER狀態(tài),否則在該時間間隔內(nèi)接收到了同步報文,那么將該定時時間重新設置為指定的時間。延遲請求間隔定時器用于記錄從時鐘設備向主時鐘設備發(fā)送延遲請求報文的間隔時間。如當從時鐘接收到某一條同步報文后,將會啟動延遲請求間隔定時器,然后將時間間隔設置為同步報文間隔周期的整數(shù)倍,該整數(shù)倍是預先設置好的。然后通過輪詢的方式查詢該定時時間是否到,如果到,那么將時間間隔重新設置為同步報文間隔周期的整數(shù)倍, 并會發(fā)送延遲請求報文給主時鐘設備。在本發(fā)明實施例中,同步間隔定時器、接收超時定時器和延遲請求間隔定時器等三種類型的定時器可以采用同一個定時器實現(xiàn),也可以采用不同的定時器實現(xiàn)。PTP報文處理模塊32根據(jù)PTP協(xié)議組織并封裝各種PTP報文,通過網(wǎng)絡通訊模塊 32發(fā)送PTP報文,或從網(wǎng)絡通訊模塊32接收PTP報文,并獲取各PTP報文的發(fā)送時間戳和接收時間戳。在本發(fā)明實施例中,PTP報文處理模塊32根據(jù)PTP協(xié)議組織的PTP報文包括但不限于同步報文、跟隨報文、延遲請求報文和延遲響應報文。其中同步報文是由主時鐘設備周期性的發(fā)送至從時鐘設備的報文。在本發(fā)明實施例中,主時鐘設備中的PTP報文處理模塊32組織并封裝同步報文,通過網(wǎng)絡通訊模塊33發(fā)送封裝后的同步報文。從時鐘設備的PTP報文處理模塊32在接收到主時鐘設備發(fā)送的同步報文時,獲取接收到該同步報文時的時間戳(以后都稱為同步報文接收時間戳)。跟隨報文也是由主時鐘設備周期性的發(fā)送至從時鐘設備的報文,該跟隨報文中包含了同步報文的發(fā)送時間戳(以后都稱為同步報文發(fā)送時間戳)。跟隨報文和同步報文具有跟隨性,同步報文發(fā)送后預定時間會發(fā)送跟隨報文。延遲請求報文是由從時鐘設備周期性的發(fā)送至主時鐘設備的報文。在本發(fā)明實施例中,從時鐘設備的PTP報文處理模塊32組織延遲請求報文,并在將延遲請求發(fā)送至主時鐘設備的報文,獲取發(fā)送延遲請求報文時的時間戳(以后都稱為延遲報文發(fā)送時間戳)。延遲響應報文是主時鐘設備在接收到從時鐘設備發(fā)送的延遲請求報文后向從時鐘設備發(fā)送的報文,該延遲響應報文中包含了主時鐘設備接收到延遲請求報文的時間戳
7(以后都稱為延遲報文接收時間戳)。從時鐘設備的PTP報文處理模塊32在接收到主時鐘設備發(fā)送的延遲響應報文時, 獲取該延遲響應報文中包含的主時鐘設備接收到延遲請求報文的時間戳。同步算法模塊34根據(jù)PTP報文處理模塊32獲取的各種PTP報文的發(fā)送時間戳和接收時間戳計算從時鐘設備與主時鐘設備之間的時鐘偏差和延遲。在本發(fā)明實施例中,同步算法模塊34根據(jù)PTP報文處理模塊32獲取的同步報文發(fā)送時間戳、同步報文接收時間戳、延遲報文發(fā)送時間戳和延遲報文接收時間戳計算從時鐘設備與主時鐘設備之間的時鐘偏差和延遲。請參閱圖3,為本發(fā)明實施例提供的主時鐘設備和從時鐘設備間的PTP報文交互的流程示意圖,詳述如下1、主時鐘設備在tl時刻向從時鐘設備發(fā)送同步報文,從時鐘設備在t2時刻接收到主時鐘設備發(fā)送的同步報文。2、主時鐘設備在發(fā)送同步報文后,在預設時間后發(fā)送包含有同步報文發(fā)送時間戳 tl的跟隨報文,從時鐘設備接收到該跟隨報文后,通過解析該跟隨報文即可獲取該跟隨報文包含的同步報文發(fā)送時間戳tl。3、從時鐘設備在t3時刻向主時鐘設備發(fā)送延遲請求報文,主時鐘設備在t4時刻接收到從時鐘設備發(fā)送的延遲請求報文。4、主時鐘設備在接收到從時鐘設備發(fā)送的延遲請求報文后,向從時鐘設備發(fā)送包含延遲報文接收時間戳t4的延遲響應報文。根據(jù)圖3所示的主時鐘設備和從時鐘設備間的PTP報文交互流程,得到同步算法如下Offset = (t2-tl)-one_way_delay ;one_way_delay = [ (t2_tl) + (t4_t3)]/2 ;根據(jù)上述兩個公式,即可得到Offset = [(t2-tl)-(t4-t3)]/2 ;其中Offset為從時鐘設備與主時鐘設備之間的時鐘偏差,one_Way_delay為從時鐘設備與主時鐘設備之間的時鐘延遲。tl為同步報文發(fā)送時間戳,t2為同步報文接收時間戳,t3為延遲報文發(fā)送時間戳,t4為延遲報文接收時間戳。在本發(fā)明實施例中,由于主時鐘設備會周期性的向從時鐘設備發(fā)送同步報文和跟隨報文,從時鐘設備也會周期性的向主時鐘設備發(fā)送延遲請求報文,在主時鐘設備和從時鐘設備之間就會周期性的執(zhí)行圖3所示的同步過程,同步過程反復執(zhí)行,最終將會使從時鐘設備與主時鐘設備之間時鐘、頻率和相位的一致。時鐘處理模塊35根據(jù)同步算法模塊34計算得到的從時鐘設備與主時鐘設備之間的時鐘偏差和延遲調(diào)整從時鐘設備與主時鐘設備之間的時鐘偏差、相位和頻率。其具體過程如下當某一個時鐘接入到一個子網(wǎng)后,系統(tǒng)會很快進入到一個穩(wěn)定的狀態(tài)。其中一個穩(wěn)定的狀態(tài)是指PTP時鐘可以進行長時間的PTP協(xié)議交互的狀態(tài),如主時鐘M狀態(tài)(PTP_ MASTER)、從時鐘S狀態(tài)(PTP_SLAVE)、或者被動狀態(tài)(PTP_PASSIVE)。其中被動狀態(tài)在PTP 規(guī)范文中可以理解為虛擬斷開狀態(tài),在被動狀態(tài)下,只接收PTP報文,而不發(fā)送任何的PTP 報文。
從時鐘每次接收到同步報文和跟隨報文后,會完成一次偏差測量計算,從時鐘每次發(fā)送了延遲請求報文和接收到了該延遲請求相關(guān)的延遲響應報文后,會完成一次延遲測試計算。由 Offset = (t2_tl)_one_way_delay 可知,Offset 只禾口 one_way_delay 有關(guān)。為了得到較為精確的Offset,則需要對one_Way_delay進行適當?shù)奶幚恚乖?ne_Way_delay 的值更精確。在本發(fā)明實施例中,可以采用現(xiàn)有技術(shù)提供的多種算法對0ne_Way_delay進行處理,也可以采用本發(fā)明實施例提供的如下方法對0ne_Way_delay進行處理在本發(fā)明實施例中,為了處理網(wǎng)絡突發(fā)流量帶來的抖動,通過連續(xù)計算3次或者更多次的0ne_Way_ delay,放在一個隊列中,然后過濾較大的異常數(shù)值和對多次計算的數(shù)值進行取平均值的方式來得到one_Way_delay,這樣就可以減少網(wǎng)絡突發(fā)流量導致的0ne_Way_delay數(shù)值異常, 進而導致Offset異常。得到了比較理想的Offset數(shù)值后,通過計算從時鐘和主時鐘之間的偏差比率,再根據(jù)該偏差比率即可計算得到從時鐘和主時鐘之間的一個相位差和頻率差。如可以根據(jù)該偏差比率通過PHY芯片提供的一個計算方式來得到從時鐘和主時鐘之間的一個相位差和
頻率差。在得到了從時鐘與主時鐘之間的時鐘差、相位差和頻率差三個參數(shù)的偏差值后, 即可將該偏差值補償?shù)綇臅r鐘。硬件通訊單元(圖未示出)對協(xié)議引擎單元3組織的各種PTP報文打上時間戳, 并將打上了時間戳的PTP報文在主時鐘設備和從時鐘設備之間進行傳輸。在本發(fā)明實施例中,在主時鐘設備中,該硬件通訊單元對協(xié)議引擎單元3組織的同步報文打上時間戳(即為同步報文發(fā)送時間戳)后,傳輸至從時鐘設備,并在協(xié)議引擎單元3組織好包含有同步報文發(fā)送時間戳的跟隨報文后,將該跟隨報文傳輸至從時鐘設備, 同時該硬件通訊單元在接收到從時鐘設備發(fā)送的延遲請求報文時,將該延遲請求報文傳輸至協(xié)議引擎單元3,并在協(xié)議引擎單元3組織好包含有延遲請求報文接收時間戳的延遲響應報文時,將該延遲響應報文傳輸至從時鐘設備。在從時鐘設備中,該硬件通訊單元將接收到的主時鐘設備發(fā)送的同步報文和跟隨報文傳輸至從時鐘設備中的協(xié)議引擎單元3,在協(xié)議引擎單元3組織好延遲請求報文后,將該延遲請求報文傳輸至主時鐘設備,同時將接收到的主時鐘設備發(fā)送的延遲響應報文傳輸至從時鐘設備的協(xié)議引擎單元3。請參閱圖4,為本發(fā)明實施例提供的硬件通訊單元的結(jié)構(gòu)示意圖。該硬件通訊單元包括用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,UDP)傳輸層、網(wǎng)絡連接協(xié)議(Internet Protocol, IP)傳輸層、數(shù)據(jù)鏈路層(Media Access Control, MAC) 傳輸層和物理層(也稱PHY傳輸層)。在主時鐘設備中,在協(xié)議引擎單元3組織好PTP報文后,該PTP報文依次經(jīng)UDP傳輸層、IP傳輸層、MAC傳輸層和PHY傳輸層傳輸至從時鐘設備中。從時鐘設備中的PHY傳輸層接收到PTP報文后,依次經(jīng)MAC傳輸層、IP傳輸層、UDP傳輸層傳輸至從時鐘設備的協(xié)議引擎單元3。在本發(fā)明實施例中,硬件通訊單元可以在MAC傳輸層或者PHY傳輸層為協(xié)議引擎單元3組織的各種PTP報文打上時間戳。通過在MAC傳輸層或者PHY傳輸層為協(xié)議引擎單元3組織的各種PTP報文打上時間戳,可以極大的提高網(wǎng)絡中的時鐘同步精度。優(yōu)選地,在PHY傳輸層為協(xié)議引擎單元3組織的各種PTP報文打上時間戳,可最大限度的提高網(wǎng)絡中的時鐘同步精度。在本發(fā)明另一實施例中,該PTP協(xié)議的實現(xiàn)裝置還包括操作系統(tǒng)抽象單元5。該操作系統(tǒng)抽象單元5提供操作系統(tǒng)的標準接口,通過該操作系統(tǒng)的標準接口調(diào)用對應操作系統(tǒng)的組件,以使PTP協(xié)議的實現(xiàn)裝置與硬件層進行通訊。其中操作系統(tǒng)抽象單元5提供的操作系統(tǒng)的標準接口包括但不限于文件輸入輸出接口(文件10)、格式化輸入輸出接口(格式化10)、網(wǎng)絡接口、網(wǎng)絡輸入輸出接口(網(wǎng)絡10)、中斷管理、時間管理、定時管理、任務管理、同步管理、消息管理、內(nèi)存管理和系統(tǒng)斷言等。在本發(fā)明實施例中,操作系統(tǒng)抽象單元5提供的操作系統(tǒng)的標準接口由構(gòu)成不同操作系統(tǒng)的基本組件組成,這樣PTP協(xié)議的實現(xiàn)裝置可以直接通過操作系統(tǒng)抽象單元5提供的操作系統(tǒng)的標準接口調(diào)用操作系統(tǒng)的組件,實現(xiàn)與硬件層的通訊。在本發(fā)明實施例中, 由于操作系統(tǒng)抽象單元5提供的操作系統(tǒng)的標準接口由構(gòu)成不同操作系統(tǒng)的基本組件組成,從而用戶無需對本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置進行任何修改,即可將本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置移植到多種操作系統(tǒng)。在本發(fā)明另一實施例中,該操作系統(tǒng)抽象單元5僅提供了操作系統(tǒng)的標準接口, 當需要將本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置移植到指定的操作系統(tǒng)時,用戶只需根據(jù)指定的操作系統(tǒng)的組件實現(xiàn)操作系統(tǒng)抽象單元5提供的操作系統(tǒng)的標準接口,就可以將本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置移植到該指定的操作系統(tǒng),從而給跨系統(tǒng)移植帶來了極大的便利。在本發(fā)明另一實施例中,該裝置還包括系統(tǒng)日志單元6。該系統(tǒng)日志單元6以日志的形式記錄PTP協(xié)議的實現(xiàn)裝置在運行PTP協(xié)議的過程中發(fā)生的事件。這樣根據(jù)系統(tǒng)日志單元6記錄的信息,可以方便、快速的對PTP協(xié)議的實現(xiàn)裝置進行故障分析和維護。為了進一步說明本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置,請參閱圖5,為本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的詳細架構(gòu),詳述如下在圖5所示的PTP協(xié)議的實現(xiàn)裝置中,用戶調(diào)用該PTP協(xié)議實現(xiàn)裝置的外部接口來啟動并運行PTP協(xié)議。其中外部接口包括系統(tǒng)初始化單元(圖未示出)、人機交互單元 (圖未示出)、協(xié)議引擎單元和系統(tǒng)日志單元。其中人機交互單元包括配置模塊和測試模塊。其中協(xié)議引擎單元是PTP協(xié)議的實現(xiàn)裝置的核心,該協(xié)議引擎單元完全遵守IEEE 1588規(guī)范的要求,其包括多種協(xié)議引擎組件,如定時器、PTP報文處理模塊、網(wǎng)絡通訊模塊、 同步算法模塊和時鐘處理模塊。其中時鐘處理模塊還包括時間處理模塊和系統(tǒng)相關(guān)模塊, 其中系統(tǒng)相關(guān)模塊如時間戳處理等。該裝置還包括操作系統(tǒng)抽象單元,該操作系統(tǒng)抽象單元提供了操作系統(tǒng)的標準接口,這些操作系統(tǒng)的標準接口可以由構(gòu)成不同操作系統(tǒng)的基本組件組成,也可以在需要時由用戶實現(xiàn),這樣就可以使本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置移植到任意的操作系統(tǒng)。如網(wǎng)絡通訊模塊使用了操作系統(tǒng)的套接字訪問,時鐘處理模塊通過操作系統(tǒng)中的IO子系統(tǒng)的接口來調(diào)用,定時器的實現(xiàn)也是基于指定的操作系統(tǒng)中的組件來實現(xiàn)。本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置的工作流程主要包括啟動流程和PTP的同步流程,圖6示出了 PTP協(xié)議的實現(xiàn)裝置的啟動流程,簡述如下
10
在步驟SlOl中,為PTP協(xié)議的實現(xiàn)裝置分配系統(tǒng)資源。其中需要分配的系統(tǒng)資源包括但不限于需要分配的資源包括但不限于內(nèi)存、數(shù)據(jù)結(jié)構(gòu)、消息隊列等,如為PTP時鐘數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存、為外部主時鐘(Foreign Master)分配內(nèi)存。在為PTP協(xié)議的實現(xiàn)裝置分配系統(tǒng)資源時,需要為自定義的時鐘節(jié)點數(shù)據(jù)結(jié)構(gòu)、 系統(tǒng)日志、定時器、配置參數(shù)等分配系統(tǒng)資源。在步驟S102中。判斷資源分配是否成功,如果是,執(zhí)行步驟S103,否則結(jié)束啟動流程。在步驟S103中,讀取PTP協(xié)議的實現(xiàn)裝置的配置的系統(tǒng)參數(shù)。其中配置參數(shù)是指用戶通過配置模塊為PTP協(xié)議的實現(xiàn)裝置配置的參數(shù)。該配置參數(shù)可以以文本文件的形式存儲在運行PTP協(xié)議的主機文件系統(tǒng)中,也可以以數(shù)據(jù)庫的形式存儲在運行PTP協(xié)議的主機的數(shù)據(jù)庫系統(tǒng)中。該配置參數(shù)用于對PTP協(xié)議的實現(xiàn)裝置的固有屬性進行變更。在步驟S104中,判斷配置參數(shù)是否讀取成功,如果是,執(zhí)行步驟S106,否則,執(zhí)行步驟S105。在步驟S105中,加載默認的配置參數(shù),并將默認的配置參數(shù)寫入文件。在步驟S106中,根據(jù)配置參數(shù)對定時器和消息隊列進行初始化處理。其中定時器是通過底層指定的操作系統(tǒng)提供的定時機制來是實現(xiàn)的。消息隊列也是通過底層指定的操作系統(tǒng)提供的機制實現(xiàn)的,主要用于對事件消息進行發(fā)送和接收,提供用戶接口。在步驟S107中,啟動協(xié)議引擎任務。在本發(fā)明實施例中,協(xié)議引擎任務是通過底層指定的操作系統(tǒng)提供的機制來實現(xiàn)的,主要作用是將PTP協(xié)議的實現(xiàn)裝置以一個任務來執(zhí)行,操作系統(tǒng)可以管理該任務。在步驟S108中,判斷協(xié)議引擎任務是否啟動成功,如果是,則結(jié)束PTP協(xié)議的實現(xiàn)裝置的啟動流程,如果否,則先釋放分配的系統(tǒng)資源后,再結(jié)束PTP協(xié)議的實現(xiàn)裝置的啟動流程。由于PTP的同步流程在IEEE 1588規(guī)范中已有定義,因此,在此不再贅述。本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置可以適用于多種網(wǎng)絡,如電網(wǎng)等,以實現(xiàn)網(wǎng)絡中時鐘的高精度同步。本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲于一計算機可讀取存儲介質(zhì)中,所述的存儲介質(zhì),如ROM/RAM、磁盤、光盤等。本發(fā)明實施例通過提供一種新的PTP協(xié)議的實現(xiàn)裝置,通過該PTP協(xié)議的實現(xiàn)裝置在網(wǎng)絡中運行PTP協(xié)議,以實現(xiàn)網(wǎng)絡中各時鐘的高精度同步,從而解決了目前工業(yè)控制上由于時鐘之間的不同步或者同步誤差大導致的各種問題。同時本發(fā)明實施例提供的PTP 協(xié)議的實現(xiàn)裝置可以方便、快捷的在各種操作系統(tǒng)進行移植。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種精確時間同步協(xié)議的實現(xiàn)裝置,其特征在于,所述裝置包括系統(tǒng)初始化單元,用于對精確時間同步PTP協(xié)議的實現(xiàn)裝置進行初始化;人機交互單元,用于提供一種或者多種交互接口,以供用戶與PTP協(xié)議的實現(xiàn)裝置進行交互;協(xié)議引擎單元,用于運行PTP協(xié)議,根據(jù)PTP協(xié)議組織各種PTP報文,并根據(jù)PTP協(xié)議在主時鐘設備和從時鐘設備之間交互PTP報文,根據(jù)各PTP報文的發(fā)送時間戳和接收時間戳實現(xiàn)主時鐘設備和從時鐘設備之間的時鐘同步;硬件通訊單元,用于對所述協(xié)議引擎單元組織的各種PTP報文打上時間戳,并將打上了時間戳的PTP報文在主時鐘設備和從時鐘設備之間進行傳輸。
2.如權(quán)利要求1所述的裝置,其特征在于,所述協(xié)議引擎單元包括定時器,用于為PTP協(xié)議的運行提供定時功能;PTP報文處理模塊,用于根據(jù)PTP協(xié)議組織并封裝各種PTP報文,通過網(wǎng)絡通訊模塊發(fā)送PTP報文,或從網(wǎng)絡通訊模塊接收PTP報文,并獲取各PTP報文的發(fā)送時間戳和接收時間戳;同步算法模塊,用于根據(jù)所述PTP報文處理模塊獲取的各種PTP報文的發(fā)送時間戳和接收時間戳計算從時鐘設備與主時鐘設備之間的時鐘偏差和延遲;時鐘處理模塊,用于根據(jù)所述同步算法模塊計算得到的從時鐘設備與主時鐘設備之間的時鐘偏差和延遲調(diào)整從時鐘設備與主時鐘設備之間的時鐘偏差、相位和頻率。
3.如權(quán)利要求2所述的裝置,其特征在于,定時器的類型包括同步間隔定時器、接收超時定時器和延遲請求間隔定時器,采用同一定時器或者不同定時器實現(xiàn)所述同步間隔定時器、接收超時定時器和延遲請求間隔定時器。
4.如權(quán)利要求1所述的裝置,其特征在于,所述硬件通訊單元包括UDP傳輸層、IP傳輸層、MAC傳輸層和PHY傳輸層。
5.如權(quán)利要求4所述的裝置,其特征在于,硬件通訊單元在所述MAC傳輸層或者PHY傳輸層為所述協(xié)議引擎單元組織的各種PTP報文打上時間戳。
6.如權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括操作系統(tǒng)抽象單元,用于提供操作系統(tǒng)的標準接口,通過操作系統(tǒng)的標準接口調(diào)用對應操作系統(tǒng)的組件,以使PTP協(xié)議的實現(xiàn)裝置與硬件層進行通訊。
7.如權(quán)利要求6所述的裝置,其特征在于,所述操作系統(tǒng)抽象單元提供的操作系統(tǒng)的標準接口由構(gòu)成不同操作系統(tǒng)的基本組件組成,或者所述操作系統(tǒng)抽象單元僅提供操作系統(tǒng)的標準接口,當需要將所述PTP協(xié)議的實現(xiàn)裝置移植到指定的操作系統(tǒng)時,根據(jù)指定的操作系統(tǒng)的組件實現(xiàn)所述操作系統(tǒng)抽象單元提供的操作系統(tǒng)的標準接口。
8.如權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括系統(tǒng)日志單元,用于以日志的形式記錄PTP協(xié)議的實現(xiàn)裝置在運行PTP協(xié)議的過程中發(fā)生的事件。
9.如權(quán)利要求1所述的裝置,其特征在于,所述人機交互單元包括配置模塊,用于提供參數(shù)配置接口,接收用戶輸入的配置請求,并根據(jù)該配置請求對 PTP協(xié)議的實現(xiàn)裝置的系統(tǒng)參數(shù)進行配置;測試模塊,提供用于測試的應用程序編程接口,接收用戶輸入的測試請求,并對該測試請求指定的PTP協(xié)議的功能進行測試。
全文摘要
本發(fā)明適用于網(wǎng)絡通信領(lǐng)域,提供了一種精確時間同步協(xié)議的實現(xiàn)裝置,所述裝置包括系統(tǒng)初始化單元,用于對PTP協(xié)議的實現(xiàn)裝置進行初始化,為PTP協(xié)議的運行做準備;人機交互單元,用于提供一種或者多種交互接口,以供用戶與PTP協(xié)議的實現(xiàn)裝置進行交互;協(xié)議引擎單元,用于運行PTP協(xié)議;硬件通訊單元,用于對所述協(xié)議引擎單元組織的各種PTP報文打上時間戳,并將打上了時間戳的PTP報文在主時鐘設備和從時鐘設備之間進行傳輸。通過本發(fā)明實施例提供的PTP協(xié)議的實現(xiàn)裝置在網(wǎng)絡中運行PTP協(xié)議,以實現(xiàn)網(wǎng)絡中各時鐘的高精度同步,從而解決了目前工業(yè)控制上由于時鐘之間的不同步或者同步誤差大導致的各種問題。
文檔編號H04L29/06GK102447553SQ20101050755
公開日2012年5月9日 申請日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者熊威, 陳志列 申請人:研祥智能科技股份有限公司