本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種主用主控板與備用主控板之間時間同步的方法及裝置。
背景技術(shù):
傳統(tǒng)的時間同步方案為每個基站配置全球定位系統(tǒng)(Global Positionging System簡稱為GPS)或者北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou Navigation Satellite System簡稱為BD)設(shè)備,因此每一個基站需要配置一個時間源,成本高昂。從成本方面考慮,采用承載網(wǎng)網(wǎng)絡(luò)傳輸高精度的時間同步信息成為未來的發(fā)展趨勢。隨著承載技術(shù)的不斷演進,時間同步網(wǎng)向電信網(wǎng)絡(luò)運營商提供時間同步信息的需求越來越迫切。
針對相關(guān)技術(shù)中實現(xiàn)時間同步的方案成本高昂的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種主用主控板與備用主控板之間時間同步的方法及裝置,以至少解決相關(guān)技術(shù)中實現(xiàn)時間同步的方案成本高昂的問題。
根據(jù)本發(fā)明的一個方面,提供了一種主用主控板與備用主控板之間時間同步的方法,包括:在主控板狀態(tài)中決策出的主用主控板與備用主控板之間進行精確時間同步協(xié)議PTP報文轉(zhuǎn)發(fā)時,每隔第一預(yù)設(shè)時間獲取發(fā)送與接收所述PTP報文時的多個時間戳;基于所述多個時間戳采用預(yù)設(shè)規(guī)則計算所述主用主控板與所述備用主控板之間的時間補償值;依據(jù)所述時間補償值修正所述備用主控板相對于所述主用主控板的時間偏差。
進一步地,每隔第一預(yù)設(shè)時間獲取發(fā)送與接收所述PTP報文時的多個時間戳包括:在所述備用主控板接收所述主用主控板發(fā)送的所述PTP報文中的第一報文時,獲取所述第一報文中攜帶的在發(fā)送所述第一報文時的第一時間戳T1以及在接收所述第一報文時的第二時間戳T2;在所述備用主控板向所述主控板發(fā)送所述PTP報文中的第二報文時,獲取發(fā)送所述第二報文時的第三時間戳T3;在所述備用主控板接收所述主用主控板發(fā)送的所述PTP報文中的第三報文時,獲取所述第三報文中攜帶的在發(fā)送所述第三報文時的第四時間戳T4。
進一步地,通過以下方式獲取所述時間補償值包括:時間延遲值=[(T2+T4)-(T1+T3)]/2;所述時間補償值=(T2-T1)-時間延遲值。
進一步地,所述方法還包括:每隔第二預(yù)設(shè)時間獲取所述主控板的狀態(tài),在所述主控板為主用主控板且所述主用主控板在執(zhí)行倒換成功時,將所述主用主控板的狀態(tài)切換到備用主控板的狀態(tài);在所述主控板為備用主控板且所述備用主控板在執(zhí)行倒換成功時,將所述備用主控板的狀態(tài)切換到主用主控板的狀態(tài)。
進一步地,所述主用主控板的狀態(tài)切換到備用主控板的狀態(tài)包括:鎖存所述主用主控板當前時間戳,并關(guān)閉所述主用主控板的所述PTP報文的發(fā)送,并將所述主控板的狀態(tài)修改為備用主控板狀態(tài);將所述第二報文寫入所述備用主控板中,并觸發(fā)所述第二報文的發(fā)送。
進一步地,將所述備用主控板的狀態(tài)切換到主用主控板的狀態(tài)包括:鎖存所述主用主控板當前時間戳,并關(guān)閉所述備用主控板的所述PTP報文的發(fā)送,并停止所述補償值的計算以及所述時間偏差的修整以及將所述主控板的狀態(tài)修改為備用主控板狀態(tài);將所述第一報文和所述第三報文寫入所述主用主控板中,并觸發(fā)所述第一報文和所述第三報文的發(fā)送。
進一步地,所述第二預(yù)設(shè)時間小于所述第一預(yù)設(shè)時間。
根據(jù)本發(fā)明的另一個方面,提供了一種主用主控板與備用主控板之間時間同步的裝置,包括:獲取模塊,用于在主控板狀態(tài)中決策出的主用主控板與備用主控板之間進行精確時間同步協(xié)議PTP報文轉(zhuǎn)發(fā)時,每隔第一預(yù)設(shè)時間獲取發(fā)送與接收所述PTP報文時的多個時間戳;計算模塊,用于基于所述多個時間戳采用預(yù)設(shè)規(guī)則計算所述主用主控板與所述備用主控板之間的時間補償值;修正模塊,用于依據(jù)所述時間補償值修正所述備用主控板相對于所述主用主控板的時間偏差。
進一步地,所述獲取模塊包括:第一獲取單元,用于在所述備用主控板接收所述主用主控板發(fā)送的所述PTP報文中的第一報文時,獲取所述第一報文中攜帶的在發(fā)送所述第一報文時的第一時間戳T1以及在接收所述第一報文時的第二時間戳T2;第二獲取單元,用于在所述備用主控板向所述主控板發(fā)送所述PTP報文中的第二報文時,獲取發(fā)送所述第二報文時的第三時間戳T3;第三獲取單元,用于在所述備用主控板接收所述主用主控板發(fā)送的所述PTP報文中的第三報文時,獲取所述第三報文中攜帶的在發(fā)送所述第三報文時的第四時間戳T4。
進一步地,通過以下方式獲取所述時間補償值包括:時間延遲值=[(T2+T4)-(T1+T3)]/2;所述時間補償值=(T2-T1)-時間延遲值。
通過本發(fā)明,對于主控板中狀態(tài)為主用主控板和備用主控板,采用PTP報文的轉(zhuǎn)發(fā),進而每隔第一預(yù)設(shè)時間獲取發(fā)送與接收該PTP報文時的多個時間戳,根據(jù)該多個時間戳以及預(yù)設(shè)規(guī)則計算出用主控板與備用主控板之間的時間補償值,通過該補償值來修正備用主控板相對于主用主控板的時間偏差,可見本發(fā)明采用了軟件的方式來實現(xiàn)時間的同步,解決了相關(guān)技術(shù)中實現(xiàn)時間同步的方案成本高昂的問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例的主用主控板與備用主控板之間時間同步的方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的主用主控板與備用主控板之間時間同步的裝置結(jié)構(gòu)框圖;
圖3是根據(jù)本發(fā)明可選實施例的通過PTP報文實現(xiàn)備、主用主控板時間同步的的裝置結(jié)構(gòu)框圖;
圖4是根據(jù)本發(fā)明可選實施例的T1,T2,T3,T4時戳產(chǎn)生機制的示意圖;
圖5是根據(jù)本發(fā)明可選實施例的初始狀態(tài)控制方法的流程圖;
圖6是根據(jù)本發(fā)明可選實施例的1秒定時器控制的流程圖;
圖7是根據(jù)本發(fā)明可選實施例的100毫秒定時器控制的流程圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
本實施例提供了一種主用主控板與備用主控板之間時間同步的方法,圖1是根據(jù)本發(fā)明實施例的主用主控板與備用主控板之間時間同步的方法的流程圖,如圖1所示,該方法的步驟包括:
步驟S102:在主控板狀態(tài)中決策出的主用主控板與備用主控板之間進行精確時間同步協(xié)議 (Precision Time Protocol簡稱為PTP)報文轉(zhuǎn)發(fā)時,每隔第一預(yù)設(shè)時間獲取發(fā)送與接收PTP報文時的多個時間戳;
步驟S104:基于多個時間戳采用預(yù)設(shè)規(guī)則計算主用主控板與備用主控板之間的時間補償值;
步驟S106:依據(jù)時間補償值修正備用主控板相對于主用主控板的時間偏差。
通過本實施例中的上述步驟S102至步驟S106,對于主控板中狀態(tài)為主用主控板和備用主控板,采用PTP報文的轉(zhuǎn)發(fā),進而每隔第一預(yù)設(shè)時間獲取發(fā)送與接收該PTP報文時的多個時間戳,根據(jù)該多個時間戳以及預(yù)設(shè)規(guī)則計算出用主控板與備用主控板之間的時間補償值,通過該補償值來修正備用主控板相對于主用主控板的時間偏差,可見本實施例采用了軟件的方式來實現(xiàn)時間的同步,解決了相關(guān)技術(shù)中實現(xiàn)時間同步的方案成本高昂的問題。
對于本實施例中涉及到的每隔第一預(yù)設(shè)時間獲取發(fā)送與接收PTP報文時的多個時間戳的方式,在本實施例的一個可選實施方式中,可以通過如下方式來實現(xiàn):
步驟S11:在備用主控板接收主用主控板發(fā)送的PTP報文中的第一報文時,獲取第一報文中攜帶的在發(fā)送第一報文時的第一時間戳T1以及在接收第一報文時的第二時間戳T2;
步驟S12:在備用主控板向主控板發(fā)送PTP報文中的第二報文時,獲取發(fā)送第二報文時的第三時間戳T3;
步驟S13:在備用主控板接收主用主控板發(fā)送的PTP報文中的第三報文時,獲取第三報文中攜帶的在發(fā)送第三報文時的第四時間戳T4。
基于上述時間戳,可以通過以下方式獲取時間補償值包括:
時間延遲值=[(T2+T4)-(T1+T3)]/2;
時間補償值=(T2-T1)-時間延遲值。
需要說明的是,上述基于時間戳獲取時間補償值的方式,僅僅是用來進行舉例說明的,其他通過獲取時間戳而得到時間補償值的方式也是在本發(fā)明的保護范圍之內(nèi)。
在本實施例的另一個可選實施方式中,本實施例的方法還可以還包括:
步驟S22:每隔第二預(yù)設(shè)時間獲取主控板的狀態(tài),在主控板為主用主控板且主用主控板在執(zhí)行倒換成功時,將主用主控板的狀態(tài)切換到備用主控板的狀態(tài);
步驟S23:在主控板為備用主控板且備用主控板在執(zhí)行倒換成功時,將備用 主控板的狀態(tài)切換到主用主控板的狀態(tài)。
其中,步驟S22中的主用主控板的狀態(tài)切換到備用主控板的狀態(tài)的方式,可以通過如下方式來實現(xiàn):鎖存主用主控板當前時間戳,并關(guān)閉主用主控板的PTP報文的發(fā)送,并將主控板的狀態(tài)修改為備用主控板狀態(tài);將第二報文寫入備用主控板中,并觸發(fā)第二報文的發(fā)送。
步驟S23中的將備用主控板的狀態(tài)切換到主用主控板的狀態(tài)的方式,在本實施例的方式可以通過如下方式來實現(xiàn):鎖存主用主控板當前時間戳,并關(guān)閉備用主控板的PTP報文的發(fā)送,并停止補償值的計算以及時間偏差的修整以及將主控板的狀態(tài)修改為備用主控板狀態(tài);將第一報文和第三報文寫入主用主控板中,并觸發(fā)第一報文和第三報文的發(fā)送。
對于上述步驟S22和步驟S23,在本實施例的一個應(yīng)用場景中可以是:主控板主轉(zhuǎn)備過程中,鎖存當前時間戳,由軟件關(guān)閉該PTP端口的PTP報文發(fā)送,同時將PTP端口狀態(tài)修改切換為slave狀態(tài)。由CPU預(yù)先將delay_req報文格式寫入FPGA寄存器中,并啟動發(fā)送delay_req報文。
主控板備轉(zhuǎn)主過程中,鎖存當前時間戳,由軟件關(guān)閉該PTP端口PTP報文的發(fā)送,并停止時間偏差計算及偏差修正。同時將該PTP端口狀態(tài)修改為master。由CPU預(yù)先將sync及delay_resp報文格式寫入FPGA寄存器中,并啟動sync及delay_resp報文發(fā)送。
此外,需要說明的是,對于本實施例的中涉及到的第二預(yù)設(shè)時間小于第一預(yù)設(shè)時間。例如,該第二預(yù)設(shè)時間可以是100毫秒,而第一預(yù)設(shè)時間為1秒,當然對于第一預(yù)設(shè)和第二預(yù)設(shè)的取值,這里僅僅是舉例說明,可以根據(jù)實際情況進行相應(yīng)的取值。
在本實施例中還提供了一種主用主控板與備用主控板之間時間同步的裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”“單元”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
圖2是根據(jù)本發(fā)明實施例的主用主控板與備用主控板之間時間同步的裝置結(jié)構(gòu)框圖,如圖2所示,該裝置包括:獲取模塊22,用于在主控板狀態(tài)中決策出的主用主控板與備用主控板之間進行精確時間同步協(xié)議PTP報文轉(zhuǎn)發(fā)時,每隔第一預(yù)設(shè)時間獲取發(fā)送與接收PTP報文時的多個時間戳;計算模塊24,與獲取模塊22耦合連接,用于基于多個時間戳采用預(yù)設(shè)規(guī)則計算主用主控板與備用主控板之間的時間補償值;修正模塊26,與計算模塊24耦合連接,用于依據(jù)時間補償值修正備用主控板相對于主用主控板的時間偏差。
可選地,獲取模塊22包括:第一獲取單元,用于在備用主控板接收主用主控板發(fā)送的PTP報文中的第一報文時,獲取第一報文中攜帶的在發(fā)送第一報文時的第一時間戳T1以及在接收第一報文時的第二時間戳T2;第二獲取單元,用于在備用主控板向主控板發(fā)送PTP報文中的第二報文時,獲取發(fā)送第二報文時的第三時間戳T3;第三獲取單元,用于在備用主控板接收主用主控板發(fā)送的PTP報文中的第三報文時,獲取第三報文中攜帶的在發(fā)送第三報文時的第四時間戳T4。
可選地,通過以下方式獲取時間補償值包括:時間延遲值=[(T2+T4)-(T1+T3)]/2;時間補償值=(T2-T1)-時間延遲值。
可選地,本裝置還可以包括:第一切換模塊,用于每隔第二預(yù)設(shè)時間獲取主控板的狀態(tài),在主控板為主用主控板且主用主控板在執(zhí)行倒換成功時,將主用主控板的狀態(tài)切換到備用主控板的狀態(tài);第二切換模塊,用于在主控板為備用主控板且備用主控板在執(zhí)行倒換成功時,將備用主控板的狀態(tài)切換到主用主控板的狀態(tài)。
可選地,該第一切換模塊,用于鎖存主用主控板當前時間戳,并關(guān)閉主用主控板的PTP報文的發(fā)送,并將主控板的狀態(tài)修改為備用主控板狀態(tài);將第二報文寫入備用主控板中,并觸發(fā)第二報文的發(fā)送。
該第二切換模塊,用于鎖存主用主控板當前時間戳,并關(guān)閉備用主控板的PTP報文的發(fā)送,并停止補償值的計算以及時間偏差的修整以及將主控板的狀態(tài)修改為備用主控板狀態(tài);將第一報文和第三報文寫入主用主控板中,并觸發(fā)第一報文和第三報文的發(fā)送。
下面結(jié)合本發(fā)明的可選實施例對本發(fā)明進行舉例說明;
本可選實施例提供了一種通過精確時間協(xié)議(Precision Time ProTocol簡稱為PTP)報文實現(xiàn)備、主用主控板時間同步的方法。
在本可選實施例為了實現(xiàn)備用主控板跟蹤主用主控時鐘,確保主、備板的系統(tǒng)參考時鐘相同,將主、備用主控板分別虛擬為PTP協(xié)議交互的兩個PTP端口,在物理線路上可以看成完全對稱的,符合PTP協(xié)議使用條件。因此將主用主控板虛擬成一個master端口,備用主控板虛擬成一個slave端口,使用主控板上的以太網(wǎng)交換處理芯片傳遞PTP協(xié)議報文,由軟件根據(jù)PTP協(xié)議算法計算slave端相對于master端的偏差,進而進行調(diào)整??梢姳究蛇x實施例不需要支持BMC算法,只需根據(jù)主控板狀態(tài)配置端口的master/slave狀態(tài),因此不需要構(gòu)造announce報文進行協(xié)商端口的master/slave狀態(tài)。
圖3是根據(jù)本發(fā)明可選實施例的通過PTP報文實現(xiàn)備、主用主控板時間同 步的的裝置結(jié)構(gòu)框圖,如圖3所示,主用主控板與備用主控板包括:以太網(wǎng)交換處理單元、CPU處理單元及現(xiàn)場可編程門陣列(Field-Programmade GaTe Array簡稱為FPGA)處理單元;
該以太網(wǎng)交換處理單元的功能由專用的以太網(wǎng)交換處理芯片或者CPU完成PTP報文轉(zhuǎn)發(fā)處理,并識別出報文類型,完成主、備用板之間的PTP報文轉(zhuǎn)發(fā),需要說明的是,在本可選實施例中報文擁塞時間可以忽略不計,因此可以看成主控板主備FPGA之間的報文收、發(fā)處理,延時小,得到的同步精度高。
該CPU處理單元,用于在主控板競爭決策出主、備用狀態(tài)之后,創(chuàng)建虛擬PTP端口,完成基本的參數(shù)配置。其中,在master端,構(gòu)造需要發(fā)送的sync報文(Synchronous PackeT,同步報文)及delay_resp報文(Delay RequesT PackeT,延時請求報文);在slave端口,構(gòu)造需要發(fā)送的delay_req報文(Delay RequesT PackeT,延時響應(yīng)報文),并寫到FPGA處理單元寄存器,且使能各報文發(fā)送。
該CPU處理還用于在slave端從FPGA處理單元寄存器獲取T1、T2、T3、T4時間戳,根據(jù)算法計算相對于主用主控板的時間偏差,并寫入FPGA處理單元邏輯計數(shù)器,從而實現(xiàn)跟蹤主用主控板時間戳的要求。
圖4是根據(jù)本發(fā)明可選實施例的T1,T2,T3,T4時戳產(chǎn)生機制的示意圖,如圖4所示,1秒定時器定時從FPGA中讀取T1,T2,T3,T4時戳,并完成OffseT計算并寫FPGA完成時間同步,具體地,在master發(fā)送端,定時時間到,由FPGA處理單元在報文中打上T1時戳發(fā)送Sync報文。在slave接收端,由FPGA接收Sync報文,打報文接收時戳T2,并在報文中提取出時戳T1。另外在接收到sync報文后,F(xiàn)PGA立即發(fā)送delay_req報文,打上T3時戳。在master接收端,由FPGA接收delay_req報文,記錄時戳T4;并將T4時戳插入delay_resp報文傳遞給slave;在slave接收端,由FPGA接收delay_resp報文,提取出時戳T4;因此slave端FPGA處理單元可以提取T1、T2、T3、T4時戳,供CPU處理單元計算時間偏差。
本可選實施例還涉及到另一種定時器,100毫秒定時器,該100毫秒定時器用于實時輪詢主控板主、備狀態(tài),根據(jù)主、備狀態(tài)變化切換PTP端口狀態(tài)及配置,而在主控倒換過程中,在主控板雙主或雙備狀態(tài)只鎖存倒換前的時間戳,停止時間偏差計算及偏差修正。
其中,CPU處理單元采用一個100ms定時器,用于實時輪詢主控板主、備狀態(tài)。若本板當前是主用板,主用板發(fā)生倒換,如果倒換未完成,繼續(xù)判斷是否發(fā)生倒換;否則倒換完成,切換到備用板狀態(tài),獲取時間補償值。若本板當前是是備用板,備用主控檢測到發(fā)生倒換,且倒換未完成,繼續(xù)判斷是否發(fā)生倒換;否則倒換完成,獲取時間補償值。
其中,主控板主轉(zhuǎn)備過程中,鎖存當前時間戳,由軟件關(guān)閉該PTP端口的PTP報文發(fā)送,同時將PTP端口狀態(tài)修改切換為slave狀態(tài)。由CPU預(yù)先將delay_req報文格式寫入FPGA寄存器中,并啟動發(fā)送delay_req報文。
主控板備轉(zhuǎn)主過程中,鎖存當前時間戳,由軟件關(guān)閉該PTP端口PTP報文的發(fā)送,并停止時間偏差計算及偏差修正。同時將該PTP端口狀態(tài)修改為master。由CPU預(yù)先將sync及delay_resp報文格式寫入FPGA寄存器中,并啟動sync及delay_resp報文發(fā)送。
通過上述本可選實施例可知,主、備主控板物理位置上完全是雙向?qū)ΨQ的,因此可以將PTP協(xié)議應(yīng)用在主、備板時間同步。通過以太網(wǎng)交換處理芯片進行PTP報文轉(zhuǎn)發(fā),進行PTP報文協(xié)商,用于完成主控板主、備板時間跟蹤功能。
下面結(jié)合附圖對本可選實施例進行詳細的說明;
圖5是根據(jù)本發(fā)明可選實施例的初始狀態(tài)控制方法的流程圖,如圖5所示,該方法的步驟包括:
步驟S502:主控板上電;
步驟S504:判斷是否主用主控板,在判斷結(jié)果為是時執(zhí)行步驟S506,在判斷結(jié)果為否時,執(zhí)行步驟S508;
步驟S506:主用主控板配置約定端口號的PTP master端口;
步驟S508:備用主控板配置約定端口號的PTP slave端口。
需要說明的是,本可選實施例中的主用主控板,默認配置一個端口狀態(tài)為master PTP端口。配置基本PTP端口基本參數(shù),采用一步法,使用以太報文封裝格式,報文發(fā)送間隔采用PTP協(xié)議定義的默認參數(shù),構(gòu)造需要發(fā)送的sync報文及delay_resp報文格式。
該PTP端口的基本參數(shù)配置如下:
延遲測量方式:一步法;
PTP協(xié)議包格式:1588OverETH;
Sync消息發(fā)送間隔:0,每秒發(fā)送一個sync包;
源端口ID:預(yù)先分配好的端口ID;
CPU保存該PTP端口的配置數(shù)據(jù)及狀態(tài),用于定時器輪詢該PTP端口的時戳。構(gòu)造需要發(fā)送的sync報文及delay_resp報文格式,預(yù)先寫FPGA寄存器。
備用主控板,配置一個PTP端口,端口狀態(tài)為slave,配置基本PTP端口基 本參數(shù),采用一步法使用以太報文封裝格式,報文發(fā)送間隔采用PTP協(xié)議定義的默認參數(shù),配置端口識別信息。delay_req報文格式由CPU預(yù)先寫入FPGA寄存器中。
該PTP端口的基本參數(shù)配置如下:
延遲測量方式:一步法;
PTP協(xié)議包格式:1588OverETH;
delay_req消息發(fā)送間隔:1,每秒發(fā)送2個包;
源端口ID:預(yù)先分配好的端口ID;
CPU處理單元保存該PTP端口的配置數(shù)據(jù)及狀態(tài),用于定時器輪詢該PTP端口的時戳。構(gòu)造需要發(fā)送的delay_req報文格式,由CPU預(yù)先寫進FPGA寄存器。
圖6是根據(jù)本發(fā)明可選實施例的1秒定時器控制的流程圖,如圖6所示,該控制包括:
步驟S602:1秒定時器時間到;
步驟S604:判斷是否備用主控板;在判斷結(jié)果為是時,執(zhí)行步驟S606,在判斷結(jié)果為否時,結(jié)束;
步驟S606:從PFGA處理單元讀取T1,T2,T3,T4時間戳;
步驟S608:計算時間offset補償值,并寫入FPGA。
在上述圖6中的控制流程中,slave端從FPGA處理單元寄存器獲取T1、T2、T3、T4時戳,根據(jù)算法計算相對于主用主控板的時間偏差,并寫入FPGA處理單元邏輯計數(shù)器,從而實現(xiàn)跟蹤主用主控板時間戳的要求。其中,F(xiàn)PGA處理單元實現(xiàn)一個1MS定時器,根據(jù)CPU處理單元配置的PTP報文發(fā)送頻率定時發(fā)送PTP報文。為了實現(xiàn)快速測量,delay延時機制報文的收發(fā)都分別由主、備主控板的FPGA來實現(xiàn)。FPGA處理單元實現(xiàn)一個1MS定時器,在發(fā)送端口,F(xiàn)PGA根據(jù)CPU處理單元配置的PTP報文發(fā)送頻率定時發(fā)送PTP報文,打相應(yīng)時戳。在接收端,F(xiàn)PGA過濾并解決該端口的PTP報文,提取相應(yīng)時戳。
CPU處理單元維護一個1S定時器,若本板為主用板,不作任何處理,本主板是備用板且不為倒換狀態(tài),輪詢預(yù)先約定的PTP slave端口,從FPGA中讀取時間戳T1、T2、T3及T4;根據(jù)下面兩個表達式,計算Delay與OffseT的值。
Delay=[(T2+T4)-(T1+T3)]/2
OffseT=(T2-T1)-Delay
軟件計算OffseT,將計算的OffseT寫入FPGA處理單元,由FPGA來修正備用主控板從時間,達到時間同步的目的。
圖7是根據(jù)本發(fā)明可選實施例的100毫秒定時器控制的流程圖,如圖7所示,該控制流程包括:
步驟S702:100ms定時器時間到;
步驟S704:判斷當前是否主用;在判斷為是時執(zhí)行步驟S706,在判斷為否時,執(zhí)行步驟S714;
步驟S706:判斷是否主轉(zhuǎn)備,在判斷結(jié)果為是時,執(zhí)行步驟S708;在判斷結(jié)果為否時結(jié)束;
步驟S708:關(guān)閉PTP報文;
步驟S710:判斷是否主轉(zhuǎn)備完成,在判斷結(jié)果為是時執(zhí)行步驟S712;在判斷結(jié)果為否時,執(zhí)行步驟S704;
步驟S712:備用配置約定端口號的PTP slave端口,然后結(jié)束;
步驟S714:判斷是否備轉(zhuǎn)主,在判斷結(jié)果為是時,執(zhí)行步驟S716,在判斷結(jié)果為否時,結(jié)束;
步驟S716:關(guān)閉PTP報文;
步驟S718:判斷是否備轉(zhuǎn)注完成;在判斷為是時,執(zhí)行步驟S720,在判斷結(jié)果為否時,執(zhí)行步驟S714;
步驟S720:備用配置約定端口的PTP slave端口,然后結(jié)束。
在上圖7中的控制過程中,時鐘軟件需要采用一個100ms定時器,用于實時輪詢主控板主、備狀態(tài),軟件根據(jù)主、備狀態(tài)完成PTP端口狀態(tài)的切換及相應(yīng)配置的處理。若本板當前是主用板,主用板發(fā)生倒換,如果倒換未完成,繼續(xù)判斷是否倒換;否則倒換完成,切換到備用板狀態(tài),獲取時間補償值。若本板當前是是備用板,備用主控檢測到發(fā)生倒換,且倒換未完成,繼續(xù)判斷是否倒換;否則倒換完成,獲取時間補償值;其中,主控板主轉(zhuǎn)備狀態(tài),軟件需要關(guān)閉該PTP端口的PTP報文發(fā)送。若主轉(zhuǎn)備完成,則將PTP端口狀態(tài)修改切換為slave狀態(tài)。由CPU預(yù)先將delay_req報文格式寫入FPGA寄存器中,并啟動發(fā)送delay_req報文。主控板備轉(zhuǎn)主狀態(tài),軟件首先關(guān)閉該PTP端口PTP報文的發(fā)送。并停止計算時間偏差的計算及偏差修正。若備轉(zhuǎn)主完成,則將該PTP端口狀態(tài)修改為master。由CPU預(yù)先將sync及delay_resp報文格式寫入FPGA寄存器中,并啟動sync及delay_resp報文發(fā)送。
可見,通過本可選實施例能有效實現(xiàn)備用主控板跟蹤主用主控板時間的功能。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
上述僅為本發(fā)明的可選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。