譚 超,蘇 超,胡詩俊,吳 燕,何旭東
(1.三峽大學電氣與新能源學院,湖北宜昌443002;2.國網黃岡供電公司,湖北黃岡438000)
基于IEEE-1588的高精度時鐘同步系統設計*
譚超1*,蘇超1,胡詩俊1,吳燕2,何旭東2
(1.三峽大學電氣與新能源學院,湖北宜昌443002;2.國網黃岡供電公司,湖北黃岡438000)
為提高高速鐵路地震預警系統采集設備時間同步精度,設計了基于IEEE-1588的網絡高精度時鐘同步系統。系統利用STM32+FPGA構架搭建硬件平臺,在FPGA中利用PLL延遲測量法實現高精度時間間隔測量,時間間隔測量精度達到600 ps;利用PHY芯片DP83640獲取網絡PPS時鐘,在STM32中結合卡爾曼濾波與PID算法,實現網絡PPS時鐘對本地時鐘的校正,以及對本地PPS相位校正,最終完成同步系統的軟件設計。測試結果表明:本設計時鐘同步誤差優于3 ns,且具備長期穩定性。
時鐘同步;IEEE-1588;PLL延遲測量法;分布式數據采集
高速鐵路地震預警系統在鐵路沿線及地震帶附近設置大量地震數據采集裝置,通過實時采集數據,在地震發生初期對鐵路將受到的破壞進行快速估計和反應,在鐵路受到地震破壞前減速或停車以降低損失[1]。所以,系統內各地震數據采集設備及中央處理單元間的時鐘同步精度是預警成功與否的關鍵。目前系統的時鐘同步方案為各設備單獨配備GPS模塊作為時鐘參考源。由于GPS受他國控制、天氣影響、成本高等原因[2],需要尋求其他解決方案替代或補充現有方案。IEEE-1588全稱為網絡測量與控制系統精密時鐘同步協議標準,是一種主從同步系統,依靠系統內設備間以太網,系統內設備時鐘與主時鐘進行同步[3]。對于高速鐵路地震預警系統中分布式數據采集系統,因為采集設備放置位置以及數據通過以太網傳輸等原因,與GPS相比,IEEE-1588的安全性、可靠性及經濟型都更高[3]。基于IEEE-1588協議的時鐘同步已在各領域中實際應用,文獻[4]在數字化變電站中構建的OTN+PTN混合組網內精度達到±100 ns,文獻[5]在水下采集領域實現精度優于1 μs,文獻[6]在智能電網中利用軟件實現,精度僅 31 μs。文獻[7-8]設計了基于DP83640的IEEE-1588硬件實現,設計的時鐘同步系統精度可達到10 ns級別。基于此,為了提高高速鐵路地震預警數據采集系統同步的可靠性,以及降低IEEE-1588授時過程中,網絡延遲引起的PPS信號相位抖動誤差,提高同步精度,本文設計了一套基于IEEE-1588協議的高精度時鐘同步系統。
1.1時鐘同步系統整體方案
地震預警系統時鐘同步方案中,中央處理單元包含一個高精度主時鐘,通過GPS或北斗授時等方式與標準時鐘同步。系統中主時鐘與所有從設備通過以太網相連,傳輸數據的同時利用IEEE-1588協議完成對從設備的授時,從設備結合網絡授時時鐘與本地時鐘完成時鐘同步功能,從而實現預警系統中所有設備時鐘同步。
本文針對系統中從設備的時鐘同步設計了硬件電路,在其基礎上設計軟件實現了高精度時鐘同步系統。
1.2從設備時鐘同步系統方案
從設備時鐘同步系統方案如圖1所示,系統主要由STM32單片機、FPGA、恒溫晶振MV180及PHY芯片DP83640組成。

圖1 從設備時鐘同步系統結構示意圖
DP83640是NS公司推出的首款在PHY層支持IEEE-1588的PHY芯片,從設備利用DP83640提供的硬件時間戳方法完成IEEE-1588對時可以極大地降低開發難度以及提高對時精度[3]。STM32單片機通過PHY芯片DP83640與以太網進行連接,并控制DP83640與主時鐘進行對時,將產生的網絡PPS時鐘傳輸至FPGA。FPGA對恒溫晶振MV180輸出的10 MHz時鐘信號進行倍頻后通過計數器方式產生設備本地PPS時鐘。測量恒溫晶振頻率及網絡PPS時鐘與本地PPS時鐘的相位差由FPGA完成,STM32利用FSMC從FPGA中讀入頻率和相位差測量數據,并在STM32單片機中完成頻率修正算法和相位修正算法,分別得到頻率修正值和相位修正值;利用頻率修正值控制D/A轉換器產生電壓信號,以控制MV180的頻率輸出;STM32通過FSMC將相位修正值傳至FPGA執行相位修正。
短時內,恒溫晶振頻率穩定性比網絡PPS時鐘高,而長期運行中,由于環境變化及老化誤差等因素,恒溫晶振輸出頻率將產生誤差,從而導致本地PPS時鐘精度下降,需要通過網絡PPS時鐘進行修正。恒溫晶振頻率誤差會導致本地PPS時鐘與網絡PPS時鐘相位差發生變化,不進行修正則誤差將累加。因此,結合恒溫晶振輸出時鐘與網絡PPS時鐘的優缺點,實現對從設備恒溫晶振頻率修正算法和本地PPS時鐘相位修正算法是軟件設計的重點。
為完成恒溫晶振頻率修正,需要測量恒溫晶振頻率特性,研究高精度頻率測量方法及修正方法。
2.1恒溫晶振頻率特性
由于恒溫晶振受溫度和老化誤差等影響,未對晶振進行控制的情況下,輸出頻率會隨環境變化,長期變演為朝一個方向逐漸偏離基準頻率[9]。圖2是在室內環境進行60 h的實驗結果。
由圖2可見,晶振誤差在10-9級,隨環境溫度變化較大,且長期呈現出增加趨勢,因此必須對晶振輸出頻率進行修正。為對恒溫晶振頻率進行控制,首先需要測量MV180的F-V特性曲線,實驗數據見表1。

圖2 未修正時恒溫晶振輸出頻率相對誤差

表1MV180F-V修正實驗數據表
MV180的F-V特性可擬合為線性關系,根據PID算法,僅取比例環節,則實測關系表達式為:

式中,Fn為修正后MV180輸出頻率,Fn-1為修正前輸出頻率,單位為MHz;Vn為單片機通過控制D/A輸出的壓控電壓值,Vn-1為修正前D/A輸出壓控電壓值,單位為V;X為實測數據經擬合得到的F-V系數,根據表1數據計算得1.43×10-6。
所以頻率修正公式為:

式中,DAn為修正后D/A控制值,DAn-1為修正前D/A控制值,10為晶振輸出頻率目標值10 MHz,12為D/A位數,5為D/A輸出電壓范圍。
2.2恒溫晶振頻率測量方法
由于網絡PPS時鐘周期為1 s,FPGA利用晶振時鐘對網絡PPS時鐘周期進行測量,即可得到晶振頻率。測量誤差包括晶振頻率誤差和網絡PPS時鐘誤差,在頻率修正時對測量值進行處理即可得到較為準確的晶振頻率誤差。
為提高測量精度,設計采用粗測量與細測量結合方式。
如圖3所示,Clock_250 M為FPGA利用PLL將恒溫晶振輸出的10 MHz時鐘倍頻產生的250 MHz內插時鐘,PPS_NET為接收到的網絡PPS時鐘信號。T0為以內插計數法直接測量得到結果,為計數器數值與內插時鐘的周期4 ns的乘積。內插測量法分辨率為4 ns,誤差最大可達8 ns,對守時時鐘精度造成較大影響,所以需要增加時間細測量模塊,對時間t1及t2進行測量。本方法測出的網絡PPS時鐘周期T=T0+t1-t2。

圖3 網絡PPS時鐘周期測量方法示意圖

圖4PLL延遲測量法示意圖
細測量采用PLL延遲測量法進行測量。如圖4所示,FPGA利用PLL對晶振時鐘進行倍頻后輸出4個250 MHz的內插時鐘,依次延遲500 ps。當觸發事件上升沿到來時記錄4個內插時鐘的狀態值,s0~s7的8種狀態分別對應觸發事件落在延遲線內的區域的中間值,即{1000,1100,1110,1111,0111,0011,0001,0000}分別對應{3.75,3.25,2.75,2.25,1.75,1.25,0.75,0.25}單位為ns。如此,細測量的分辨率為0.5 ns,單次測量誤差小于0.25 ns。由于內插時鐘以測量時鐘為基準延遲,所以觸發事件在前,最后測得T=T0+t1-t2。總的時間測量分辨率為0.5 ns,總誤差小于0.5 ns。
2.3恒溫晶振頻率修正方法
MV180的短期穩定性很高,長期會漂移;網絡PPS時鐘長期穩定性很高,誤差表現為高斯分布[1,3]。為更精確地計算晶振頻率誤差,本文設計卡爾曼濾波器。卡爾曼濾波在對將來測量的誤差進行估計時會將過去測量的估計誤差與新測量的誤差進行合并[10],設計如下:

式中,狀態向量X為頻率誤差,Uk為現在狀態控制量,A、B為一步轉移系數,由于認為標準時間秒是恒定的,取 1;Pk|k-1是 Xk|k-1對應的協方差,Pk-1是Xk-1對應的協方差,Q是系統過程方差,MV180短時頻率精度方差為2×10-12,此值取為0.002;Zk為FPGA實際測得的頻率誤差值,Kk為卡爾曼增益,H為觀測系數,取1;R為測量值方差,誤差來源包括授時時鐘誤差、測量誤差及其他誤差,根據測試結果分析取5。
計算得到頻率誤差值后,STM32單片機利用式(2)計算得到D/A控制值,用于改變D/A轉換器輸入值,以完成恒溫晶振頻率修正功能。
本地PPS時鐘由FPGA對內插時鐘組進行計數產生,會因為恒溫晶振頻率誤差產生相位誤差。本文利用粗測量加細測量的方法測量網絡PPS時鐘與本地PPS時鐘間相位差值,在STM32單片機中經由相位差修正算法處理后得到相位差修正值,由FPGA完成調相修正。
3.1本地PPS時鐘產生及相位修正
本地PPS時鐘由FPGA對250 MHz內插時鐘組計數產生。在本地PPS產生模塊中另外設計4路內插時鐘,與圖4中所示4路內插時鐘后依次延遲500 ps,形成4 ns周期的8路內插時鐘組。8路內插時鐘分別接入FPGA設置的程控8路選擇器,輸出接秒計數器時鐘輸入端,并在計數器內部留有外部調整數據輸入端口,用于步進為4 ns的誤差調節。STM32單片機計算出修正參數后通過FSMC傳至FPGA,控制本地PPS時鐘相位改變,調整分辨率為0.5 ns。
3.2相位差測量方法
本地PPS時鐘與網絡PPS時鐘相位差測量方法與晶振頻率測量方法相同,由FPGA采用粗測量與細測量結合進行測量。測量分辨率為0.5 ns,誤差小于0.5 ns。
3.3本地PPS時鐘相位修正方法
經修正后的恒溫晶振輸出頻率在短期和長期都具有較高的可靠性,相位差測量值誤差主要來源于晶振頻率誤差和網絡PPS時鐘誤差。與頻率修正誤差相同,設計同式(3)的卡爾曼濾波器,根據實驗結果R取0.8,其他參數保持一致。
FPGA讀取計算所得相位差修正值后對本地PPS時鐘模塊進行調整,完成本地PPS時鐘相位修正功能。
本文將從設備守時模塊與主時鐘通過IEEE-1588協議進行時鐘同步,驗證從設備恒溫晶振輸出頻率穩定性及從設備時鐘與網絡PPS時鐘間相位差關系。
(1)PLL相位延遲精度驗證。將4路PLL內插時鐘經分頻后分別輸出值相鄰管腳,檢測同相位時兩個管腳輸出時鐘相位差,再分別檢測延遲內插時鐘與基準內插時鐘相位差。得到結果如圖5所示,單位為ns,方差均小于0.1。根據測試所得相位差調整細測量模塊中各區域對應的時間值,即可提高細測量精度。

圖5PLL相位延遲精度
(2)恒溫晶振輸出頻率精度驗證。在室內環境進行60 h實驗,經過以100點為周期的動態平均法濾波后晶振頻率誤差如圖6(a)所示,以卡爾曼濾波所得如圖6(b)所示。可見,晶振頻率相對保持恒定,誤差集中在±4×10-10內,并且長期穩定,滿足設計要求。

圖6
(3)本地PPS時鐘相位精度驗證。對本地PPS時鐘與網絡PPS時鐘之間相位差進行測量,測量結果如圖7所示,相位差測量值集中在±2.5 ns內,服從(0,0.8)的正態分布。相位精度誤差優于3 ns,并具有長期穩定性。

圖7 相位差誤差測量值
為滿足高速鐵路地震預警系統中分布式數據采集的高精度時間同步需求,本文設計了基于IEEE-1588的網絡PPS時鐘同步系統,給出了實際的系統構成方案及高精度時鐘同步方法。實驗表明,通過此方法從設備時間同步精度優于3 ns,在分布式數據采集及無GPS信號等場合有一定的參考價值。
[1]王國新,孫奉劼,王東明.高速鐵路地震預警時間與預警區域和震級的關系[J].中國鐵道科學,2014(2):120-124.
[2]韓琳,范旭娟,潘登.幾種IEEE 1588對時實現方法的分析與比較[J].測控技術,2013(2):74-76.
[3]文永康,文菠,齊永龍.分布式數據采集系統時間同步研究[J].計算機測量與控制,2014(4):1273-1275.
[4]吳維農,唐夲,卓靈.IEEE1588v2時間同步技術在新一代電力骨干網中應用研究[J].計算機測量與控制,2014(8):2533-2535,2545.
[5]Joaquín Del Río,Daniel Mihai Toma,Shahram Shariat-Panahi,et al. Smart IEEE-1588 GPS Clock Emulator for Cabled Ocean Sensors[J].IEEEJournalofOceanicEngineering,2014,39(2):269-275.
[6]Pallares-Lopez V,Moreno-Munoz A,Rosa JJGDL,et al.Synchrophasor for Smart Grid with IEEE 1588-2008 Synchronism[J]. Przeglad Elektrotechniczny,2012,88(1A):31-36.
[7]劉兆慶,潘邵武,張毅剛.基于DP83640的IEEE 1588應用研究[J].測控技術,2012(9):80-83.
[8]王康,胡永輝,何在民.基于DP83640硬件輔助的IEEE1588研究及實現[J].時間頻率學報,2011(1):1-8.
[9]薛沖.基于晶體振蕩器的老化建模及其智能補償[D].西安:西安電子科技大學,2014.
[10]郭應時,王暢,張亞岐.噪聲方差對卡爾曼濾波結果影響分析[J].計算機工程與設計,2014(2):641-645.

譚超(1982-),男,土家族,湖北利川人,三峽大學電氣與新能源學院,講師/博士,研究方向為電磁場傳感器與測量、微弱信號檢測以及智能儀表設計,ctgutc@ctgu.edu.cn。
Design of High Precision Time Synchronization System Based on IEEE-1588*
TAN Chao1*,SU Chao1,HU Shijun1,WU Yan2,HE Xudong2
(1.College of Electrical Engineering and New Energy,China Three Gorges University,Yichang Hubei 443002,China;2.State Grid Huanggang Power Supply Company,Huanggang Hubei 438000,China)
In order to improve the precision of data acquisition equipment of the earthquake early warning system for high speed railway,a high precision time synchronization system based on IEEE-1588 is designed.The system uses STM32+FPGA structure to set up a hardware,and it achieves high precision time interval measurement based on PLL delay measurement in FPGA,of which measurement accuracy is 600 ps.The system obtains network time by PHY chip DP83640,and combines Kalman filtering and PID algorithm in STM32 to correct local time and PPS phase by network time to complete software design of the synchronization system.The test result shows that error of time synchronization is less than 3 ns and stability maintains for a long-term.
time synchronization;IEEE-1588;PLL delay measurement;distributed data acquisition
TH714
A
1005-9490(2016)05-1103-05
項目來源:三峽大學2015年碩士學位論文培優基金項目(2015PY039)
2015-10-09修改日期:2016-01-08
EEACC:1230G10.3969/j.issn.1005-9490.2016.05.017