安賽
(1.煤炭科學技術研究院有限公司 安全分院, 北京 100013;2.煤炭資源高效開采與潔凈利用國家重點實驗室, 北京 100013)
隨著人工智能、物聯網、云計算、大數據等技術在礦山的快速應用與發展,越來越多的礦用分布式采集系統接入礦用工業環網,為礦山的安全生產、管理決策提供了重要的數據支撐與基礎保障[1-3]。礦用分布式采集系統的時鐘同步是其正常運行的關鍵[4],實現統一的時間基準是后續數據處理的前提。
目前,常用的時鐘同步技術有北斗[5-6]、GPS、NTP(Network Time Protocol,網絡時間協議)[7-8]、IEEE 1588V2[9-11]、本地后備時鐘和同步線[12]等,見表1。北斗及GPS均是通過天線接收衛星信號獲取納秒級精度的絕對時鐘及經緯度、海拔高度信息,可提供時鐘秒脈沖、串口ACSII碼時間報文、IRIG-B碼等格式的時間信息,但需要部署在能接收到衛星信號的場所,無法直接應用于井下;NTP采用簡單網絡協議為局域網、廣域網設備提供毫秒級的時鐘同步精度;IEEE 1588V2采用網絡對稱性及延時測量技術實現主從時鐘同步,具有數據幀少、算法簡單、移植方便等特點,可提供納秒級的時鐘同步精度;本地后備時鐘能夠以極低的成本為本地設備提供秒級的時鐘同步精度;同步線方式需要單獨布置信號線,其時鐘同步精度與線纜的長度、分布電容、分布電阻有關。

表1 常用的時鐘同步技術Table 1 Common clock synchronization technologies
單一的時鐘同步技術由于其精度及應用局限性,無法滿足礦用分布式采集系統高精度、高可靠性的時鐘同步性能要求。根據礦用分布式采集系統架構特點,本文提出了基于北斗+IEEE 1588V2+本地后備時鐘的三級協同時鐘同步方案。北斗為整個系統提供高精度絕對時鐘,系統中各采集節點通過IEEE 1588V2協議及本地后備時鐘與北斗保持時鐘同步。
礦用分布式采集系統時鐘同步方案原理如圖1所示。北斗授時服務器接收北斗系統提供的納秒級精度的絕對時鐘,并作為主時鐘通過井下環網為所有采集節點授時;各采集節點軟件實現IEEE 1588V2協議,接收主時鐘的授時進而調整本地的64位時間戳寄存器;本地后備時鐘為各采集節點提供秒級精度的時間戳初值,便于各采集節點以最短時間實現與北斗授時服務器的同步。

圖1 礦用分布式采集系統時鐘同步方案原理Fig.1 Principle of clock synchronization scherne for mine distributed acquisition system
該方案能兼容礦用分布式采集系統硬件架構,適用性強;只需要額外部署1臺北斗授時服務器作為主時鐘,同時采集節點軟件移植IEEE 1588V2協議,無需其他硬件投入,成本低;北斗授時服務器由于不可控因素失效后,只要井下工業環網與采集節點能夠正常運行,IEEE 1588V2會按照最佳主時鐘(Best Master Clock,BMC)算法設置1臺優先級最高的采集節點作為主時鐘,其他采集節點作為從時鐘依然與主時鐘保持時鐘同步,魯棒性強。
北斗授時服務器為地面設備,不需要考慮防爆問題,因此選用T600-BDGOCXC工業用授時服務器,該服務器支持IEEE 1588V2協議。采集節點時鐘同步硬件部分采用STM32F407+DP83848實現,如圖2所示。STM32F407內部集成以太網MAC接口的時間戳單元,硬件支持IEEE 1588V2協議,使用MII網絡接口連接PHY芯片DP83848。本地后備時鐘采用STM32F407內部RTC(Real-time Clock,實時時鐘)實現,使用后備紐扣電池防止掉電后RTC丟失時間信息。

圖2 采集節點時鐘同步硬件電路Fig.2 Hardware circuit of clock synchronization in acquisition node
IEEE 1588V2協議的移植與實現是礦用分布式采集系統時鐘同步方案的核心。該協議實現時鐘同步的原理[13-16]如圖3所示。

圖3 IEEE 1588V2時鐘同步原理Fig.3 Principle of IEEE 1588V2 clock synchronization
(1) 根據定義的時鐘間隔,北斗授時服務器(主時鐘)周期性地給采集節點(從時鐘)發送同步報文,并且記錄同步報文發送時刻為t1,隨后將時間戳t1與跟隨報文打包發送給采集節點。采集節點收到北斗授時服務器發送的同步報文后,記錄收到報文的時刻為t2。
(2) 采集節點收到跟隨報文后,解析并記錄報文中攜帶的時間戳t1,隨后向北斗授時服務器發送延時請求報文,并記錄延時請求報文發送時刻為t3。北斗授時服務器收到延時請求報文并記錄收到報文的時刻為t4,然后將時間戳t4打包通過延時請求應答報文發送給采集節點。
(3) 采集節點根據時間偏差Toffset=(t2-t1+t3-t4)/2和傳輸延遲Tdelay=(t2-t1+t4-t3)/2更新64位時間戳寄存器。每次上電時,將本地后備時鐘的時間信息寫入時間戳寄存器,以便采集節點用最短時間實現與主時鐘的同步。
基于IEEE1588 V2協議的采集節點軟件架構如圖4所示。操作系統層使用RTX-V4.73實現實時多任務調度處理;固件使用STM32官方函數庫V3.5版;網絡協議棧使用LWIP-1.4.1提供基于UDP的網絡協議處理;IEEE 1588V2基于PTPd-2.0.0開源協議棧實現;應用層實現系統初始化操作和各業務邏輯處理。

圖4 采集節點軟件架構Fig.4 Software architecture of acquisition node
時鐘同步測試方案如圖5所示。每隔2 s將各采集節點的主從狀態、時間偏差Toffset等參數通過串口發送至PC,便于后期統計分析。

(a) 測試方案①
(1) 測試方案①模擬北斗授時服務器與采集節點通過交換機直連的情況。開啟采集節點1的本地后備時鐘,采集節點1上電1 min后時間偏差統計結果如圖6所示。可看出時鐘同步精度≤162 ns;|Toffset|≤25 ns的次數為365,|Toffset|≤50 ns的次數為652。關閉采集節點1的本地后備時鐘,上電后約需10 min達到162 ns的時鐘同步精度,表明采用本地后備時鐘可降低采集節點初次同步所需時間。

圖6 方案①測試結果Fig.6 Test results of the first scheme
(2) 測試方案②模擬北斗授時服務器與采集節點1通過三級交換機連接的情況。采集節點1的時間偏差統計結果如圖7所示。可看出時鐘同步精度≤565 ns;|Toffset|≤25 ns的次數為97,|Toffset|≤50 ns的次數為198。

(3) 在測試方案②情況下斷開北斗授時服務器與交換機的網線,模擬北斗授時服務器失效的情況。采集節點2運行狀態如圖8所示(fcaf6afffe00230f、0080e1fffe373655分別為北斗授時服務器、采集節點2的時鐘id)。斷開網線后,采集節點2狀態由slave(從時鐘)更改為master(主時鐘),master id由北斗授時服務器的id更改為采集節點2的id。

圖8 采集節點2運行狀態Fig.8 Running status of acquisition node 2
采集節點1運行狀態如圖9所示(0080e1fffe373659為采集節點1的時鐘id)。斷開網線瞬間,采集節點1狀態由slave(從時鐘)變為master(主時鐘);經過3個周期后,采集節點1狀態恢復并保持為slave(從時鐘);優先級高的采集節點2升級為主時鐘繼續為采集節點1授時。

圖9 采集節點1運行狀態Fig.9 Running status of acquisition node 1
為了提高礦用分布式采集系統時鐘同步精度和可靠性,提出了基于北斗+IEEE 1588V2+本地后備時鐘的三級協同時鐘同步方案。北斗授時服務器部署在地面,作為主時鐘提供納秒級精度的絕對時鐘;通過IEEE 1588V2將北斗的絕對時鐘同步到各采集節點;本地后備時鐘給各采集節點提供秒級精度的時間戳初值,便于各采集節點用最短時間實現與主時鐘的同步。測試結果表明:北斗授時服務器與采集節點通過交換機直連的情況下,1 min后時鐘同步精度達162 ns;北斗授時服務器與采集節點通過三級交換機連接的情況下,時鐘同步精度為565 ns;在北斗授時服務器失效的情況下,優先級高的采集節點升級為主時鐘并為其余采集節點授時,具有較強的可靠性。