侯重遠,江漢紅,芮萬智,劉 亮
(海軍工程大學 電氣與信息工程學院,湖北 武漢 430033)
基于網(wǎng)絡的時間同步技術(shù)是電力監(jiān)測網(wǎng)的支撐技術(shù)之一,廣泛應用于同步測量、同步保護、同步控制、合并單元等場合[1-4],IEC61850 標準也將該技術(shù)作為變電站監(jiān)測網(wǎng)中傳統(tǒng)同步手段的換代技術(shù)[5-6]。
網(wǎng)絡時間同步主要通過NTP(Network Time Protocol)和 PTP(Precision Time Protocol,即 IEEE1588標準)2種技術(shù)途徑實現(xiàn)[7]。目前,電力監(jiān)測網(wǎng)一般使用交換式以太網(wǎng)消除碰撞,提高實時性。NTP技術(shù)的優(yōu)點是不需要交換機中有特殊硬件支持,成本低;但NTP受交換機網(wǎng)絡延遲不對稱性的影響,同步精度一般只能保證ms級[8-9]。PTP則通過在全網(wǎng)所有交換機中植入高精度自守時時鐘,以及在網(wǎng)卡物理(PHY)層植入支持PTP的專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA),使同步精度能夠達到1 μs以內(nèi)[10],適用于相量測量等高精度同步場合。但PTP也存在以下缺點:PTP建立在對以太網(wǎng)ASIC硬件改造的基礎(chǔ)上,因此成本長期居高不下,限制了其廣泛應用;必須全網(wǎng)交換機都支持PTP才能保證同步精度,因此可靠性不及NTP,且時鐘溫度條件苛刻;由于全網(wǎng)交換機必須都支持PTP,因此在高精度測量需求不多的場合,其成本優(yōu)勢不及傳統(tǒng)的串口通信校時、脈沖中斷校時和綜合校時等點對點同步方式[7]。
本文提出了一種可將NTP同步精度提高到17倍的改進協(xié)議 SN-NTP(Switch Networks-NTP),使得同步精度根據(jù)網(wǎng)絡拓撲的不同可達10~100 μs量級。該協(xié)議不需要增加硬件,只利用大部分工業(yè)網(wǎng)絡交換機都已支持的IEEE802.1p優(yōu)先級排隊功能,因此,與IEEE1588相比具有很大成本優(yōu)勢,在電力監(jiān)測網(wǎng)中可以部分替代IEEE1588。未來隨著1 Gbit/s以及更高速以太網(wǎng)技術(shù)在電力監(jiān)測領(lǐng)域的應用,SN-NTP同步精度將進一步提高到μs級,完全滿足IEC61850所規(guī)定的 5 種級別[7,11]的電氣信號同步需求,具有在電力監(jiān)測領(lǐng)域替代IEEE1588的技術(shù)潛力。
NTP一般采用“客戶端-服務器”方式。如圖1所示,先由客戶端向服務器發(fā)送時間同步請求包,包內(nèi)包含發(fā)送時的本地時間T1;請求包經(jīng)各級交換機傳輸,到達服務器后,服務器立即記錄到達時的本地時間T2;接著服務器再向客戶端發(fā)送回復包,包內(nèi)包含T2以及發(fā)送回復包時的本地時間T3;回復包到達客戶端后,客戶端記錄到達時的本地時間T4,至此完成一次網(wǎng)絡同步通信。
圖1 NTP網(wǎng)絡同步機制Fig.1 NTP synchronization mechanism
設(shè)請求包的網(wǎng)絡傳輸延遲為treq,d,回復包的網(wǎng)絡傳輸延遲為tcnf,d,客戶端與服務器的時鐘偏差為toffset,則客戶端計算自身的時間偏差并以此調(diào)整自身時鐘。
顯然,式(1)成立的前提是傳輸延遲的對稱性,即 treq,d與 tcnf,d相等,但交換式以太網(wǎng)無法保證這一點,因此式(1)會引入同步誤差terror:
即實際的時間同步關(guān)系為:
2.1.1 NTP同步誤差的成因分析
NTP數(shù)據(jù)包在交換機中轉(zhuǎn)發(fā)時,必須等到發(fā)送隊列中正在發(fā)送的數(shù)據(jù)幀完全傳輸完才能發(fā)出,該等待時間的不確定性造成了同步誤差。具體如圖2所示,當某時刻NTP數(shù)據(jù)包進入發(fā)送隊列時,盡管NTP數(shù)據(jù)包使用了優(yōu)先級機制(IEEE802.1p),但必須等待優(yōu)先級較低的幀“Frame 0”發(fā)送完。
圖2 NTP同步誤差成因Fig.2 Causes of NTP synchronization error
2.1.2 NTP同步精度計算
NTP同步精度可以表示為式(4)。
其中,n為轉(zhuǎn)發(fā)路徑上所經(jīng)過的交換機個數(shù)。
因以太網(wǎng)最長數(shù)據(jù)包可達1 538 Byte(含幀間間隔 12 Byte),故 max{twait}等于發(fā)送 1 538 Byte 的時間(百兆以太網(wǎng)可達 123 μs,千兆以太網(wǎng)可達 12.3 μs),顯然必須減小max{twait}才能改善同步精度。
2.1.3 同步精度改善方法
本文通過先發(fā)送轉(zhuǎn)發(fā)端口搶占包,再發(fā)送NTP數(shù)據(jù)包的方式來減小max{twait},從而提高同步精度。具體分以下2步。
a.在NTP數(shù)據(jù)包發(fā)送之前,先連續(xù)發(fā)送18n個長度為88 Byte的轉(zhuǎn)發(fā)端口搶占包。所謂轉(zhuǎn)發(fā)端口搶占包是優(yōu)先級低于NTP數(shù)據(jù)包但高于其他數(shù)據(jù)包的以太網(wǎng)最短包,共88 Byte(包含幀間間隔12 Byte和優(yōu)先級標記4 Byte)。顯然,轉(zhuǎn)發(fā)端口搶占包在交換機中會阻塞除NTP數(shù)據(jù)包之外的其他數(shù)據(jù)包在交換機中的轉(zhuǎn)發(fā),從而使得NTP數(shù)據(jù)包即將通過的轉(zhuǎn)發(fā)路徑完全被轉(zhuǎn)發(fā)端口搶占包所占據(jù)。
當轉(zhuǎn)發(fā)端口搶占包的發(fā)送數(shù)量為18n(其中,18=[1 538/88],n為轉(zhuǎn)發(fā)路徑上的交換機數(shù)量)時,可以在最壞的情況下(即轉(zhuǎn)發(fā)端口搶占包在每臺交換機中總是需要等待1 538 Byte傳輸完),確保NTP請求包在傳輸過程中前方總有轉(zhuǎn)發(fā)端口搶占包正在阻塞其他數(shù)據(jù)的傳輸。
b.以最高優(yōu)先級發(fā)送NTP數(shù)據(jù)包,并使其接在所有轉(zhuǎn)發(fā)端口搶占包之后。
由于其他長數(shù)據(jù)包都已被之前發(fā)出的轉(zhuǎn)發(fā)端口搶占包所阻塞,因此NTP數(shù)據(jù)包只需等待正在占據(jù)端口的轉(zhuǎn)發(fā)端口搶占包(最長88 Byte)被發(fā)送完即可獲得端口,如圖3所示。此時,max{twait}僅為發(fā)送88 Byte數(shù)據(jù)包的時間(百兆以太網(wǎng)僅需7.04μs,千兆以太網(wǎng)僅需 0.704μs),由式(4)可知,同步精度約提高到原來的 17倍(1538/88≈17)。
圖3 NTP同步精度改善方法Fig.3 Improvement of NTP synchronization accuracy
根據(jù)2.1節(jié)原理設(shè)計SN-NTP協(xié)議。SN-NTP協(xié)議的時序如圖4所示,其中,為確保服務器每次只為一個客戶端授時,采用了“SN-NTP請求”、“SN-NTP允許”和“SN-NTP完成”的握手機制,以避免多個客戶端的并發(fā)。
圖4 SN-NTP協(xié)議時序Fig.4 Timing sequence of SN-NTP
SN-NTP客戶端和SN-NTP服務器的流程圖分別如圖5、6所示。
圖5 SN-NTP客戶端流程圖Fig.5 Flowchart of SN-NTP client code
圖6 SN-NTP服務器流程圖Fig.6 Flowchart of SN-NTP server code
根據(jù)網(wǎng)絡拓撲和轉(zhuǎn)發(fā)路徑的不同,不同客戶端與服務器之間的同步精度不盡相同,可由式(5)計算:
其中,n1為轉(zhuǎn)發(fā)路徑上100 Mbit/s交換機的個數(shù),n2為1 Gbit/s交換機的個數(shù)。
轉(zhuǎn)發(fā)端口搶占包會對所占端口的其他數(shù)據(jù)包產(chǎn)生阻塞,最大阻塞時間可由式(6)計算:
IEC61850標準根據(jù)采集、控制、保護等應用場合的不同要求,定義了 2~100 ms的網(wǎng)絡延遲要求[7],這些延遲要求對電力監(jiān)測網(wǎng)具有參考意義,必須根據(jù)實際情況部署SN-NTP,以防止影響電力監(jiān)測網(wǎng)的實時性。
試驗平臺為某船舶電站交流側(cè)綜合監(jiān)測系統(tǒng)測試床,其網(wǎng)絡拓撲結(jié)構(gòu)如圖7所示。
圖7 試驗環(huán)境Fig.7 Test environment
交流側(cè)A、B、C三相的監(jiān)測設(shè)備分別接入對應的3臺交換機,網(wǎng)絡速率為100 Mbit/s,均支持IEEE 802.1p協(xié)議;3臺交換機之間以彈性分組環(huán)網(wǎng)模式連接,網(wǎng)絡速率為1Gbit/s,B相交換機與C相交換機之間為環(huán)網(wǎng)的冗備鏈路。
SN-NTP客戶端和SN-NTP服務器分別運行于工控機A和工控機B上,2臺工控機分別連接到B相交換機和C相交換機的百兆端口上。由于冗備鏈路的存在,NTP請求包的轉(zhuǎn)發(fā)路徑為“工控機AB相交換機A相交換機C相交換機工控機B”,NTP回復包則反之。
為測量SN-NTP協(xié)議的同步誤差,本文使用獨立的串口時鐘源通過RS-232串口分別為2臺工控機提供標準時間信號。由于客戶端和服務器的本地時間都已與標準時間同步,故此時兩本地時鐘偏差為 0,即 toffset為 0,根據(jù)式(2)和式(3)得到同步誤差計算公式:
運行SN-NTP客戶端和SN-NTP服務器的工控機均采用x86架構(gòu),Intel Pentium M 1.6 GHz處理器;網(wǎng)卡芯片為支持IEEE802.1p優(yōu)先級功能的Intel 82575網(wǎng)絡控制器,在試驗中工作于100 Mbit/s全雙工模式;采用Intel 82C54計時器作為同步性能試驗用的本地時鐘。
采用VxWorks 6.6操作系統(tǒng)(評估版)作為客戶端和服務器的軟件平臺;TCP/IP協(xié)議棧采用VxWorks自帶的 WRNS(Wind River Network Stack)。使用 WRNS socket中的setsockopt()函數(shù)設(shè)置數(shù)據(jù)包的IEEE802.1p優(yōu)先級標簽,其中,轉(zhuǎn)發(fā)端口搶占包設(shè)定優(yōu)先級“6”,NTP 數(shù)據(jù)包設(shè)定優(yōu)先級“7”,其他數(shù)據(jù)包均不含優(yōu)先級標簽(即最低優(yōu)先級)。
NTP與SN-NTP采用相同的試驗步驟和數(shù)據(jù)處理方法:
a.由客戶端發(fā)起一次網(wǎng)絡同步,并根據(jù)式(7)計算同步誤差,同時記錄本地端口負荷;
b.重復測試10 000次,頻率為1 Hz;
c.將端口負荷率分為0~0.1%、0.1%~0.5%、0.5%~1.0%、1.0%~5.0%、5.0%~10.0% 共 5個區(qū)間,分別以 0、1、2、3、4 表示,把 10 000 組同步誤差數(shù)據(jù)按照此區(qū)間分為5組,并分別找出各組中同步誤差的最大值作為該組的同步精度。
NTP協(xié)議的同步精度如圖8所示,SN-NTP協(xié)議的同步精度如圖9所示。
圖8 NTP同步精度Fig.8 Synchronization accuracy of NTP
圖9 SN-NTP同步精度Fig.9 Synchronization accuracy of SN-NTP
分析如下:
a.由圖8可見,NTP同步精度隨網(wǎng)絡繁忙程度的增大而呈現(xiàn)惡化趨勢,但其精度仍在200 μs以內(nèi),主要原因是由于使用了IEEE802.1p機制;
b.由圖9可見,SN-NTP同步精度為8 μs左右,隨網(wǎng)絡繁忙程度變化僅在5%以內(nèi)浮動,離散性較好;
c.SN-NTP協(xié)議同步精度約為NTP協(xié)議的15~24倍,與理論值(17倍)基本吻合,實測值與理論值的差異主要來自測量誤差、測試時間的充分性、測試代碼執(zhí)行開銷以及模型誤差等因素。
信息網(wǎng)絡技術(shù)的快速發(fā)展與硬件成本大幅降低,是工業(yè)網(wǎng)絡技術(shù)發(fā)展的原動力。在工業(yè)以太網(wǎng)領(lǐng)域,1Gbit/s甚至10Gbit/s以太網(wǎng)正在逐步取代目前100Mbit/s以太網(wǎng)的主流地位。因此,利用成熟通用的網(wǎng)絡硬件,通過軟件算法改進,為工業(yè)網(wǎng)絡需求服務,是本文SN-NTP協(xié)議的出發(fā)點。該方法目前可以達到10~100 μs同步精度,能夠在部分場合替代IEEE1588,在電力監(jiān)測網(wǎng)的設(shè)計中綜合運用這2種技術(shù)將有效降低成本。