文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190161
中文引用格式: 馬昭,葛文雙,胡愛蘭,等. 基于PTP授時(shí)的高可靠時(shí)間統(tǒng)一系統(tǒng)的應(yīng)用研究[J].電子技術(shù)應(yīng)用,2019,45(5):38-42.
英文引用格式: Ma Zhao,Ge Wenshuang,Hu Ailan,et al. Application research of high reliability time unified system based on PTP strategy[J]. Application of Electronic Technique,2019,45(5):38-42.
0 引言
隨著計(jì)算機(jī)和通信技術(shù)的飛速發(fā)展,時(shí)間統(tǒng)一系統(tǒng)在測控、航天、工業(yè)控制等領(lǐng)域的應(yīng)用越來越廣泛,例如,時(shí)間統(tǒng)一系統(tǒng)為指揮控制系統(tǒng)、航空航天信息處理系統(tǒng)、工業(yè)控制網(wǎng)絡(luò)等提供精確、可靠、統(tǒng)一的時(shí)間,同時(shí),各應(yīng)用領(lǐng)域?qū)λ璧臅r(shí)間統(tǒng)一系統(tǒng)的性能要求也越來越高[1-2]。
時(shí)間統(tǒng)一系統(tǒng)的主要功能是提供標(biāo)準(zhǔn)的時(shí)間和脈沖中斷信號,使其所處的信息系統(tǒng)有一個(gè)統(tǒng)一的時(shí)間標(biāo)準(zhǔn)。目前在時(shí)間統(tǒng)一系統(tǒng)中應(yīng)用最廣泛的時(shí)間同步協(xié)議是NTP協(xié)議,但是該協(xié)議的同步精度為毫秒級,無法滿足高精度要求的應(yīng)用場景[3-4]。并且,在NTP協(xié)議的條件下,系統(tǒng)主時(shí)鐘一般都是固定的,一旦系統(tǒng)中的主時(shí)鐘出現(xiàn)異常,整個(gè)系統(tǒng)的授時(shí)就會癱瘓,所以,提升時(shí)間統(tǒng)一系統(tǒng)的魯棒性也是一個(gè)亟需解決的問題。因此,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)高精度、高可靠性的時(shí)間統(tǒng)一系統(tǒng),提升時(shí)間統(tǒng)一系統(tǒng)的同步精度、魯棒性,對于測控、航天、工業(yè)控制等領(lǐng)域具有重大現(xiàn)實(shí)意義。
1 系統(tǒng)架構(gòu)
本文基于PTP協(xié)議構(gòu)建了一個(gè)高可靠的時(shí)間統(tǒng)一系統(tǒng),系統(tǒng)由時(shí)間服務(wù)器和時(shí)統(tǒng)軟件兩部分組成。在本系統(tǒng)中,PTP時(shí)間服務(wù)器為整個(gè)系統(tǒng)的時(shí)間源,時(shí)統(tǒng)軟件接收時(shí)間源的同步信號,校正本地時(shí)間。PTP時(shí)間服務(wù)器通過網(wǎng)絡(luò)交換機(jī)連接服務(wù)器,服務(wù)器配置專用網(wǎng)卡來接收網(wǎng)絡(luò)傳輸?shù)腜TP信號;安裝于服務(wù)器上的時(shí)統(tǒng)軟件獲得網(wǎng)卡的時(shí)間信息,進(jìn)行解碼并輸出對時(shí)信號和脈沖中斷信號。系統(tǒng)架構(gòu)圖如圖1所示。
2 基于PTP授時(shí)的雙機(jī)熱備的實(shí)現(xiàn)
為了解決時(shí)間同步精度較低、魯棒性較差等問題,本系統(tǒng)采用PTP協(xié)議進(jìn)行網(wǎng)絡(luò)授時(shí),且本系統(tǒng)采用兩臺時(shí)間服務(wù)器及BMC算法來實(shí)現(xiàn)系統(tǒng)的雙機(jī)熱備功能。
2.1 PTP同步原理
PTP協(xié)議的時(shí)間戳記錄在MAC層,消除了在NTP協(xié)議中一直存在的協(xié)議棧的延遲和抖動(dòng),從而提高授時(shí)精度。PTP協(xié)議主要通過4種類型的報(bào)文來測量時(shí)鐘偏差和網(wǎng)絡(luò)延時(shí),分別是:Sync報(bào)文、Follow_Up報(bào)文、Delay_Req報(bào)文、Delay_Resp報(bào)文[5-7]。其具體的時(shí)間同步過程如圖2所示。
具體原理如下:
(1)主時(shí)鐘在t1時(shí)刻發(fā)送Sync消息:如果為1588 one-step機(jī)制,則Sync消息包含有發(fā)送時(shí)間;如果為1588 two-step機(jī)制,則Sync消息僅發(fā)送發(fā)送時(shí)間值的估計(jì)值,即t1的估計(jì)值,然后在Follow_Up消息中再發(fā)送精確的t1值。
(2)從時(shí)鐘記下收到Sync消息的時(shí)間t2,然后在t3時(shí)刻發(fā)送Delay_Req消息。
(3)主時(shí)鐘記下收到Delay_Req消息的時(shí)間t4,然后發(fā)送攜帶t4值的Delay_Resp消息給從時(shí)鐘。
(4)假設(shè)主從時(shí)鐘之間的鏈路延遲是對稱的,從時(shí)鐘根據(jù)已知的t1、t2、t3、t4值,計(jì)算出Offset值與Delay值。
計(jì)算過程如下:
假設(shè)從時(shí)鐘超前主時(shí)鐘的值為Offset,則有:
則本地時(shí)間糾正值為本地時(shí)間值減去Offset值與Delay值之和。
2.2 雙機(jī)熱備實(shí)現(xiàn)原理
在時(shí)間統(tǒng)一系統(tǒng)中,主時(shí)鐘的異常會導(dǎo)致整個(gè)系統(tǒng)的授時(shí)癱瘓。在航天、測控、工業(yè)控制等領(lǐng)域,這種情況的出現(xiàn)對所需授時(shí)的信息系統(tǒng)的影響是致命的,它可能會帶來無法挽回的損失。因此,在這些要求較高的應(yīng)用領(lǐng)域中實(shí)現(xiàn)時(shí)間統(tǒng)一系統(tǒng)的雙機(jī)熱備,并進(jìn)一步達(dá)到雙機(jī)切換的無縫銜接,是十分有必要的。對此問題的解決,BMC算法提供了很好的理論依據(jù)。雙機(jī)熱備原理圖如圖3所示。
2.2.1 雙機(jī)熱備工作模式
在BMC算法的理論基礎(chǔ)上,為了防止算法運(yùn)行過程中受到無法預(yù)測的干擾而導(dǎo)致系統(tǒng)授時(shí)出現(xiàn)故障,本系統(tǒng)共實(shí)現(xiàn)了兩種雙機(jī)熱備工作模式。兩種雙機(jī)熱備工作模式的實(shí)現(xiàn)原理如下:
(1)手動(dòng)設(shè)置主時(shí)鐘
根據(jù)本系統(tǒng)實(shí)際工作環(huán)境,網(wǎng)絡(luò)授時(shí)采用發(fā)送/接收組播數(shù)據(jù)包的模式進(jìn)行相關(guān)報(bào)文的交互,因此,PTP時(shí)間服務(wù)器運(yùn)行狀態(tài)穩(wěn)定后(鎖定后),可將其中一臺設(shè)置為組播模式,其余的設(shè)置為單播模式,且將所有的PTP時(shí)間服務(wù)器設(shè)置為較高的同一優(yōu)先級。
通過如上的設(shè)置,實(shí)現(xiàn)了當(dāng)前網(wǎng)絡(luò)中只有一臺設(shè)備發(fā)包,進(jìn)而實(shí)現(xiàn)熱備功能。其中,保持為組播模式的PTP時(shí)間服務(wù)器為主時(shí)鐘,單播模式的為備時(shí)鐘。另外,傳輸模式中單播與組播模式可無縫切換無需重啟服務(wù),保障了運(yùn)行的可靠性。
(2)自動(dòng)選擇主時(shí)鐘
①正常工作情況
首先,整個(gè)時(shí)間統(tǒng)一系統(tǒng)會選擇一臺PTP時(shí)間服務(wù)器作為主時(shí)鐘,該模式的工作原理為:當(dāng)PTP時(shí)間服務(wù)器開機(jī)并鎖定后,均從時(shí)統(tǒng)專網(wǎng)上獲取時(shí)間報(bào)文,并從中解析出所需的參數(shù)值,再根據(jù)BMC算法的相應(yīng)參數(shù)值進(jìn)行判斷,符合相應(yīng)條件的即為主時(shí)鐘(Master),其余的為從時(shí)鐘(Slave)。然后,主時(shí)鐘對整個(gè)系統(tǒng)進(jìn)行授時(shí)。
②異常工作情況
主時(shí)鐘(Master)發(fā)生故障或物理鏈路波動(dòng)導(dǎo)致授時(shí)精度下降時(shí),系統(tǒng)會根據(jù)BMC算法的判定結(jié)果選定新的主時(shí)鐘,即主時(shí)鐘(Master)自動(dòng)切換為數(shù)據(jù)質(zhì)量較好的從時(shí)鐘(Slave)。
2.2.2 最佳主時(shí)鐘算法
BMC算法能夠?qū)φ麄€(gè)時(shí)間統(tǒng)一系統(tǒng)進(jìn)行自適應(yīng)授時(shí)調(diào)整,它包括數(shù)據(jù)集比較算法和端口狀態(tài)決策算法[7-9]。
(1)數(shù)據(jù)集比較算法
在PTP時(shí)間統(tǒng)一系統(tǒng)中,每個(gè)協(xié)議節(jié)點(diǎn)定期向其他協(xié)議節(jié)點(diǎn)發(fā)送的Announce報(bào)文中攜帶了該節(jié)點(diǎn)及其父節(jié)點(diǎn)的時(shí)鐘質(zhì)量信息[10]。數(shù)據(jù)集比較算法的比較對象是端口收到的時(shí)鐘質(zhì)量信息和本地時(shí)鐘default DS數(shù)據(jù)集[11]。其需比較的具體信息及比較流程如圖4、圖5所示,圖中A、B分別代表端口收到的時(shí)鐘質(zhì)量信息和本地時(shí)鐘default DS數(shù)據(jù)集。
(2)端口狀態(tài)決策算法
端口狀態(tài)決策算法的數(shù)據(jù)來源為:本地時(shí)鐘默認(rèn)數(shù)據(jù)(D0)、PTP端口最佳報(bào)文(Erbest)、最佳報(bào)文(Ebest)。對于任一PTP端口r,對其收到的來自其他PTP端口的有效報(bào)文,依次使用數(shù)據(jù)集比較算法,就可以得到PTP端口最佳報(bào)文(Erbest)[11-12]。然后,對每個(gè)端口的Erbest依次使用數(shù)據(jù)集比較算法,就可以得到Ebest。
根據(jù)從這3個(gè)數(shù)據(jù)源得到數(shù)據(jù)的比較以及對本地時(shí)鐘等級的判定,系統(tǒng)得出本地端口應(yīng)處的狀態(tài),包括主時(shí)鐘狀態(tài)(M1、M2、M3)、從時(shí)鐘狀態(tài)(S1)、待機(jī)狀態(tài)(P1、P2)。端口狀態(tài)決策流程圖如圖6所示。
3 實(shí)驗(yàn)結(jié)果
本系統(tǒng)的實(shí)驗(yàn)環(huán)境由2臺PTP時(shí)間服務(wù)器和相應(yīng)的時(shí)統(tǒng)軟件組成,按照如圖1所示系統(tǒng)架構(gòu)圖進(jìn)行部署。根據(jù)PTP時(shí)鐘優(yōu)先級設(shè)置規(guī)則,PTP時(shí)間服務(wù)器為本系統(tǒng)內(nèi)主時(shí)鐘(設(shè)置為高優(yōu)先級),時(shí)統(tǒng)軟件為從時(shí)鐘(優(yōu)先級設(shè)置為255,無法被選擇為主時(shí)鐘)。
完成整個(gè)系統(tǒng)的部署后,首先對本系統(tǒng)進(jìn)行精度測試。將標(biāo)準(zhǔn)時(shí)鐘源的授時(shí)信號輸出到示波器上,再選擇本系統(tǒng)中一臺服務(wù)器,在服務(wù)器上利用時(shí)統(tǒng)軟件測試工具獲得的授時(shí)信號經(jīng)串口輸出到示波器上,調(diào)整示波器并進(jìn)行上升沿的對比,得出兩者的時(shí)延誤差。系統(tǒng)測試結(jié)構(gòu)圖如圖7所示,測試結(jié)果如圖8所示。
如圖8所示,本系統(tǒng)通過時(shí)統(tǒng)軟件獲取的穩(wěn)定時(shí)延誤差大概為710 ns,遠(yuǎn)遠(yuǎn)低于NTP協(xié)議的毫秒級誤差,滿足本系統(tǒng)自身的高精度要求。
然后,對本系統(tǒng)進(jìn)行魯棒性測試。本系統(tǒng)正常運(yùn)行時(shí),隨機(jī)選擇一時(shí)刻(本測試中為7時(shí)59分59秒),將PTP時(shí)間服務(wù)器1與網(wǎng)絡(luò)交換機(jī)斷開連接,測試結(jié)果如表1所示。
由表1可以看出,將PTP時(shí)間服務(wù)器1斷開連接,對系統(tǒng)的運(yùn)行并無影響,系統(tǒng)并未出現(xiàn)時(shí)間斷續(xù)、跳變等異常情況,滿足本系統(tǒng)自身的高魯棒性要求。
另外,在本系統(tǒng)中,服務(wù)器接收PTP信號需配置專用網(wǎng)卡,為了使系統(tǒng)性能測試結(jié)果更加詳細(xì),更能體現(xiàn)出本系統(tǒng)的授時(shí)精度情況,在進(jìn)行了上述兩項(xiàng)測試之后,對本系統(tǒng)中所使用的網(wǎng)卡進(jìn)行了自守時(shí)的測試,大概收集了16個(gè)小時(shí)的數(shù)據(jù),使用MATLAB將數(shù)據(jù)轉(zhuǎn)化為曲線圖,得出了如圖9所示的自守時(shí)精度及其一階擬合情況。
由圖9可得本系統(tǒng)所使用網(wǎng)卡的每秒時(shí)間漂移大概為80 ns(由圖中直線斜率得出),即隨著系統(tǒng)使用時(shí)間的增長,本系統(tǒng)所使用的專用網(wǎng)卡對系統(tǒng)的授時(shí)精度有一定的影響。
4 結(jié)論
本文通過對基于PTP授時(shí)的高可靠時(shí)間統(tǒng)一系統(tǒng)進(jìn)行理論研究、設(shè)計(jì)論證,實(shí)現(xiàn)了一套基于PTP授時(shí)的、適用可靠性要求較高的雙機(jī)熱備時(shí)間統(tǒng)一系統(tǒng),提出了手動(dòng)設(shè)置主時(shí)鐘與自動(dòng)選擇主時(shí)鐘兩種雙機(jī)熱備工作模式。本研究充分利用實(shí)際物理環(huán)境,篩選使用場景,并進(jìn)行了系統(tǒng)的搭建、系統(tǒng)的性能測試。結(jié)果表明,對比以往的時(shí)間統(tǒng)一系統(tǒng),本系統(tǒng)的時(shí)間同步精度為納秒級,大大提升了時(shí)間統(tǒng)一系統(tǒng)的授時(shí)精度;并且在雙機(jī)熱備自動(dòng)切換的基礎(chǔ)上,增加了人工主動(dòng)切換模式,進(jìn)一步提高了系統(tǒng)的魯棒性。此外,在性能測試中,對本系統(tǒng)中所使用的專用網(wǎng)卡進(jìn)行了自守時(shí)精度測試,也進(jìn)一步展示了本系統(tǒng)相比于以往時(shí)間統(tǒng)一系統(tǒng)的性能優(yōu)化情況。
參考文獻(xiàn)
[1] 張楊敏,郭勇,謝興紅.嵌入式高精度GPS異地時(shí)間測量系統(tǒng)的設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010,36(2):19-22.
[2] 王娜,慕德俊.分布式試驗(yàn)系統(tǒng)管理中的時(shí)鐘同步技術(shù)研究[J].電子技術(shù)應(yīng)用,2006,32(12):25-27.
[3] 黃沛芳.基于NTP的高精度時(shí)鐘同步系統(tǒng)實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2009,35(7):122-124,127.
[4] 李永剛,李欣泉,郭力兵,等.麒麟操作系統(tǒng)平臺軟時(shí)統(tǒng)同步方法研究[J].電子技術(shù)應(yīng)用,2018,44(9):129-133.
[5] 李德駿,汪港,楊燦軍,等.基于NTP和IEEE1588海底觀測網(wǎng)時(shí)間同步系統(tǒng)[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2014,59(1):1-7.
[6] 劉見,靳紹平,李敏,等.基于IEEE-1588協(xié)議的高精度時(shí)鐘對時(shí)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(4):48-51.
[7] 孫中尉.IEEE1588高精度網(wǎng)絡(luò)時(shí)間同步應(yīng)用研究[D].西安:中國科學(xué)院大學(xué)(中國科學(xué)院國家授時(shí)中心),2010.
[8] 魏亞敏,李軼,張申,等.礦山物聯(lián)網(wǎng)時(shí)間同步系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2017,43(1):81-83.
[9] 黃健,劉鵬,楊瑞民.IEEE1588精確時(shí)鐘同步協(xié)議從時(shí)鐘設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2010,36(7):94-97,108.
[10] 王冠.IEEE1588v2時(shí)鐘同步技術(shù)的研究與實(shí)現(xiàn)[D].武漢:武漢郵電科學(xué)研究院,2011.
[11] 李紅亮.基于PTP協(xié)議的高精度網(wǎng)絡(luò)時(shí)間同步系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].天津:天津大學(xué)軟件學(xué)院,2012.
[12] 庾智蘭,李智.精確時(shí)鐘同步協(xié)議最佳主時(shí)鐘算法[J].電力自動(dòng)化設(shè)備,2009,16(11):74-77.
作者信息:
馬 昭,葛文雙,胡愛蘭,張瑞權(quán),張志成
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京100083)