譚 超,蘇 超,胡詩俊,吳 燕,何旭東
(1.三峽大學電氣與新能源學院,湖北宜昌443002;2.國網(wǎng)黃岡供電公司,湖北黃岡438000)
基于IEEE-1588的高精度時鐘同步系統(tǒng)設(shè)計*
譚超1*,蘇超1,胡詩俊1,吳燕2,何旭東2
(1.三峽大學電氣與新能源學院,湖北宜昌443002;2.國網(wǎng)黃岡供電公司,湖北黃岡438000)
為提高高速鐵路地震預(yù)警系統(tǒng)采集設(shè)備時間同步精度,設(shè)計了基于IEEE-1588的網(wǎng)絡(luò)高精度時鐘同步系統(tǒng)。系統(tǒng)利用STM32+FPGA構(gòu)架搭建硬件平臺,在FPGA中利用PLL延遲測量法實現(xiàn)高精度時間間隔測量,時間間隔測量精度達到600 ps;利用PHY芯片DP83640獲取網(wǎng)絡(luò)PPS時鐘,在STM32中結(jié)合卡爾曼濾波與PID算法,實現(xiàn)網(wǎng)絡(luò)PPS時鐘對本地時鐘的校正,以及對本地PPS相位校正,最終完成同步系統(tǒng)的軟件設(shè)計。測試結(jié)果表明:本設(shè)計時鐘同步誤差優(yōu)于3 ns,且具備長期穩(wěn)定性。
時鐘同步;IEEE-1588;PLL延遲測量法;分布式數(shù)據(jù)采集
高速鐵路地震預(yù)警系統(tǒng)在鐵路沿線及地震帶附近設(shè)置大量地震數(shù)據(jù)采集裝置,通過實時采集數(shù)據(jù),在地震發(fā)生初期對鐵路將受到的破壞進行快速估計和反應(yīng),在鐵路受到地震破壞前減速或停車以降低損失[1]。所以,系統(tǒng)內(nèi)各地震數(shù)據(jù)采集設(shè)備及中央處理單元間的時鐘同步精度是預(yù)警成功與否的關(guān)鍵。目前系統(tǒng)的時鐘同步方案為各設(shè)備單獨配備GPS模塊作為時鐘參考源。由于GPS受他國控制、天氣影響、成本高等原因[2],需要尋求其他解決方案替代或補充現(xiàn)有方案。IEEE-1588全稱為網(wǎng)絡(luò)測量與控制系統(tǒng)精密時鐘同步協(xié)議標準,是一種主從同步系統(tǒng),依靠系統(tǒng)內(nèi)設(shè)備間以太網(wǎng),系統(tǒng)內(nèi)設(shè)備時鐘與主時鐘進行同步[3]。對于高速鐵路地震預(yù)警系統(tǒng)中分布式數(shù)據(jù)采集系統(tǒng),因為采集設(shè)備放置位置以及數(shù)據(jù)通過以太網(wǎng)傳輸?shù)仍颍cGPS相比,IEEE-1588的安全性、可靠性及經(jīng)濟型都更高[3]?;贗EEE-1588協(xié)議的時鐘同步已在各領(lǐng)域中實際應(yīng)用,文獻[4]在數(shù)字化變電站中構(gòu)建的OTN+PTN混合組網(wǎng)內(nèi)精度達到±100 ns,文獻[5]在水下采集領(lǐng)域?qū)崿F(xiàn)精度優(yōu)于1 μs,文獻[6]在智能電網(wǎng)中利用軟件實現(xiàn),精度僅 31 μs。文獻[7-8]設(shè)計了基于DP83640的IEEE-1588硬件實現(xiàn),設(shè)計的時鐘同步系統(tǒng)精度可達到10 ns級別?;诖?,為了提高高速鐵路地震預(yù)警數(shù)據(jù)采集系統(tǒng)同步的可靠性,以及降低IEEE-1588授時過程中,網(wǎng)絡(luò)延遲引起的PPS信號相位抖動誤差,提高同步精度,本文設(shè)計了一套基于IEEE-1588協(xié)議的高精度時鐘同步系統(tǒng)。
1.1時鐘同步系統(tǒng)整體方案
地震預(yù)警系統(tǒng)時鐘同步方案中,中央處理單元包含一個高精度主時鐘,通過GPS或北斗授時等方式與標準時鐘同步。系統(tǒng)中主時鐘與所有從設(shè)備通過以太網(wǎng)相連,傳輸數(shù)據(jù)的同時利用IEEE-1588協(xié)議完成對從設(shè)備的授時,從設(shè)備結(jié)合網(wǎng)絡(luò)授時時鐘與本地時鐘完成時鐘同步功能,從而實現(xiàn)預(yù)警系統(tǒng)中所有設(shè)備時鐘同步。
本文針對系統(tǒng)中從設(shè)備的時鐘同步設(shè)計了硬件電路,在其基礎(chǔ)上設(shè)計軟件實現(xiàn)了高精度時鐘同步系統(tǒng)。
1.2從設(shè)備時鐘同步系統(tǒng)方案
從設(shè)備時鐘同步系統(tǒng)方案如圖1所示,系統(tǒng)主要由STM32單片機、FPGA、恒溫晶振MV180及PHY芯片DP83640組成。
圖1 從設(shè)備時鐘同步系統(tǒng)結(jié)構(gòu)示意圖
DP83640是NS公司推出的首款在PHY層支持IEEE-1588的PHY芯片,從設(shè)備利用DP83640提供的硬件時間戳方法完成IEEE-1588對時可以極大地降低開發(fā)難度以及提高對時精度[3]。STM32單片機通過PHY芯片DP83640與以太網(wǎng)進行連接,并控制DP83640與主時鐘進行對時,將產(chǎn)生的網(wǎng)絡(luò)PPS時鐘傳輸至FPGA。FPGA對恒溫晶振MV180輸出的10 MHz時鐘信號進行倍頻后通過計數(shù)器方式產(chǎn)生設(shè)備本地PPS時鐘。測量恒溫晶振頻率及網(wǎng)絡(luò)PPS時鐘與本地PPS時鐘的相位差由FPGA完成,STM32利用FSMC從FPGA中讀入頻率和相位差測量數(shù)據(jù),并在STM32單片機中完成頻率修正算法和相位修正算法,分別得到頻率修正值和相位修正值;利用頻率修正值控制D/A轉(zhuǎn)換器產(chǎn)生電壓信號,以控制MV180的頻率輸出;STM32通過FSMC將相位修正值傳至FPGA執(zhí)行相位修正。
短時內(nèi),恒溫晶振頻率穩(wěn)定性比網(wǎng)絡(luò)PPS時鐘高,而長期運行中,由于環(huán)境變化及老化誤差等因素,恒溫晶振輸出頻率將產(chǎn)生誤差,從而導致本地PPS時鐘精度下降,需要通過網(wǎng)絡(luò)PPS時鐘進行修正。恒溫晶振頻率誤差會導致本地PPS時鐘與網(wǎng)絡(luò)PPS時鐘相位差發(fā)生變化,不進行修正則誤差將累加。因此,結(jié)合恒溫晶振輸出時鐘與網(wǎng)絡(luò)PPS時鐘的優(yōu)缺點,實現(xiàn)對從設(shè)備恒溫晶振頻率修正算法和本地PPS時鐘相位修正算法是軟件設(shè)計的重點。
為完成恒溫晶振頻率修正,需要測量恒溫晶振頻率特性,研究高精度頻率測量方法及修正方法。
2.1恒溫晶振頻率特性
由于恒溫晶振受溫度和老化誤差等影響,未對晶振進行控制的情況下,輸出頻率會隨環(huán)境變化,長期變演為朝一個方向逐漸偏離基準頻率[9]。圖2是在室內(nèi)環(huán)境進行60 h的實驗結(jié)果。
由圖2可見,晶振誤差在10-9級,隨環(huán)境溫度變化較大,且長期呈現(xiàn)出增加趨勢,因此必須對晶振輸出頻率進行修正。為對恒溫晶振頻率進行控制,首先需要測量MV180的F-V特性曲線,實驗數(shù)據(jù)見表1。
圖2 未修正時恒溫晶振輸出頻率相對誤差
表1MV180F-V修正實驗數(shù)據(jù)表
MV180的F-V特性可擬合為線性關(guān)系,根據(jù)PID算法,僅取比例環(huán)節(jié),則實測關(guān)系表達式為:
式中,F(xiàn)n為修正后MV180輸出頻率,F(xiàn)n-1為修正前輸出頻率,單位為MHz;Vn為單片機通過控制D/A輸出的壓控電壓值,Vn-1為修正前D/A輸出壓控電壓值,單位為V;X為實測數(shù)據(jù)經(jīng)擬合得到的F-V系數(shù),根據(jù)表1數(shù)據(jù)計算得1.43×10-6。
所以頻率修正公式為:
式中,DAn為修正后D/A控制值,DAn-1為修正前D/A控制值,10為晶振輸出頻率目標值10 MHz,12為D/A位數(shù),5為D/A輸出電壓范圍。
2.2恒溫晶振頻率測量方法
由于網(wǎng)絡(luò)PPS時鐘周期為1 s,F(xiàn)PGA利用晶振時鐘對網(wǎng)絡(luò)PPS時鐘周期進行測量,即可得到晶振頻率。測量誤差包括晶振頻率誤差和網(wǎng)絡(luò)PPS時鐘誤差,在頻率修正時對測量值進行處理即可得到較為準確的晶振頻率誤差。
為提高測量精度,設(shè)計采用粗測量與細測量結(jié)合方式。
如圖3所示,Clock_250 M為FPGA利用PLL將恒溫晶振輸出的10 MHz時鐘倍頻產(chǎn)生的250 MHz內(nèi)插時鐘,PPS_NET為接收到的網(wǎng)絡(luò)PPS時鐘信號。T0為以內(nèi)插計數(shù)法直接測量得到結(jié)果,為計數(shù)器數(shù)值與內(nèi)插時鐘的周期4 ns的乘積。內(nèi)插測量法分辨率為4 ns,誤差最大可達8 ns,對守時時鐘精度造成較大影響,所以需要增加時間細測量模塊,對時間t1及t2進行測量。本方法測出的網(wǎng)絡(luò)PPS時鐘周期T=T0+t1-t2。
圖3 網(wǎng)絡(luò)PPS時鐘周期測量方法示意圖
圖4PLL延遲測量法示意圖
細測量采用PLL延遲測量法進行測量。如圖4所示,F(xiàn)PGA利用PLL對晶振時鐘進行倍頻后輸出4個250 MHz的內(nèi)插時鐘,依次延遲500 ps。當觸發(fā)事件上升沿到來時記錄4個內(nèi)插時鐘的狀態(tài)值,s0~s7的8種狀態(tài)分別對應(yīng)觸發(fā)事件落在延遲線內(nèi)的區(qū)域的中間值,即{1000,1100,1110,1111,0111,0011,0001,0000}分別對應(yīng){3.75,3.25,2.75,2.25,1.75,1.25,0.75,0.25}單位為ns。如此,細測量的分辨率為0.5 ns,單次測量誤差小于0.25 ns。由于內(nèi)插時鐘以測量時鐘為基準延遲,所以觸發(fā)事件在前,最后測得T=T0+t1-t2??偟臅r間測量分辨率為0.5 ns,總誤差小于0.5 ns。
2.3恒溫晶振頻率修正方法
MV180的短期穩(wěn)定性很高,長期會漂移;網(wǎng)絡(luò)PPS時鐘長期穩(wěn)定性很高,誤差表現(xiàn)為高斯分布[1,3]。為更精確地計算晶振頻率誤差,本文設(shè)計卡爾曼濾波器??柭鼮V波在對將來測量的誤差進行估計時會將過去測量的估計誤差與新測量的誤差進行合并[10],設(shè)計如下:
式中,狀態(tài)向量X為頻率誤差,Uk為現(xiàn)在狀態(tài)控制量,A、B為一步轉(zhuǎn)移系數(shù),由于認為標準時間秒是恒定的,取 1;Pk|k-1是 Xk|k-1對應(yīng)的協(xié)方差,Pk-1是Xk-1對應(yīng)的協(xié)方差,Q是系統(tǒng)過程方差,MV180短時頻率精度方差為2×10-12,此值取為0.002;Zk為FPGA實際測得的頻率誤差值,Kk為卡爾曼增益,H為觀測系數(shù),取1;R為測量值方差,誤差來源包括授時時鐘誤差、測量誤差及其他誤差,根據(jù)測試結(jié)果分析取5。
計算得到頻率誤差值后,STM32單片機利用式(2)計算得到D/A控制值,用于改變D/A轉(zhuǎn)換器輸入值,以完成恒溫晶振頻率修正功能。
本地PPS時鐘由FPGA對內(nèi)插時鐘組進行計數(shù)產(chǎn)生,會因為恒溫晶振頻率誤差產(chǎn)生相位誤差。本文利用粗測量加細測量的方法測量網(wǎng)絡(luò)PPS時鐘與本地PPS時鐘間相位差值,在STM32單片機中經(jīng)由相位差修正算法處理后得到相位差修正值,由FPGA完成調(diào)相修正。
3.1本地PPS時鐘產(chǎn)生及相位修正
本地PPS時鐘由FPGA對250 MHz內(nèi)插時鐘組計數(shù)產(chǎn)生。在本地PPS產(chǎn)生模塊中另外設(shè)計4路內(nèi)插時鐘,與圖4中所示4路內(nèi)插時鐘后依次延遲500 ps,形成4 ns周期的8路內(nèi)插時鐘組。8路內(nèi)插時鐘分別接入FPGA設(shè)置的程控8路選擇器,輸出接秒計數(shù)器時鐘輸入端,并在計數(shù)器內(nèi)部留有外部調(diào)整數(shù)據(jù)輸入端口,用于步進為4 ns的誤差調(diào)節(jié)。STM32單片機計算出修正參數(shù)后通過FSMC傳至FPGA,控制本地PPS時鐘相位改變,調(diào)整分辨率為0.5 ns。
3.2相位差測量方法
本地PPS時鐘與網(wǎng)絡(luò)PPS時鐘相位差測量方法與晶振頻率測量方法相同,由FPGA采用粗測量與細測量結(jié)合進行測量。測量分辨率為0.5 ns,誤差小于0.5 ns。
3.3本地PPS時鐘相位修正方法
經(jīng)修正后的恒溫晶振輸出頻率在短期和長期都具有較高的可靠性,相位差測量值誤差主要來源于晶振頻率誤差和網(wǎng)絡(luò)PPS時鐘誤差。與頻率修正誤差相同,設(shè)計同式(3)的卡爾曼濾波器,根據(jù)實驗結(jié)果R取0.8,其他參數(shù)保持一致。
FPGA讀取計算所得相位差修正值后對本地PPS時鐘模塊進行調(diào)整,完成本地PPS時鐘相位修正功能。
本文將從設(shè)備守時模塊與主時鐘通過IEEE-1588協(xié)議進行時鐘同步,驗證從設(shè)備恒溫晶振輸出頻率穩(wěn)定性及從設(shè)備時鐘與網(wǎng)絡(luò)PPS時鐘間相位差關(guān)系。
(1)PLL相位延遲精度驗證。將4路PLL內(nèi)插時鐘經(jīng)分頻后分別輸出值相鄰管腳,檢測同相位時兩個管腳輸出時鐘相位差,再分別檢測延遲內(nèi)插時鐘與基準內(nèi)插時鐘相位差。得到結(jié)果如圖5所示,單位為ns,方差均小于0.1。根據(jù)測試所得相位差調(diào)整細測量模塊中各區(qū)域?qū)?yīng)的時間值,即可提高細測量精度。
圖5PLL相位延遲精度
(2)恒溫晶振輸出頻率精度驗證。在室內(nèi)環(huán)境進行60 h實驗,經(jīng)過以100點為周期的動態(tài)平均法濾波后晶振頻率誤差如圖6(a)所示,以卡爾曼濾波所得如圖6(b)所示??梢?,晶振頻率相對保持恒定,誤差集中在±4×10-10內(nèi),并且長期穩(wěn)定,滿足設(shè)計要求。
圖6
(3)本地PPS時鐘相位精度驗證。對本地PPS時鐘與網(wǎng)絡(luò)PPS時鐘之間相位差進行測量,測量結(jié)果如圖7所示,相位差測量值集中在±2.5 ns內(nèi),服從(0,0.8)的正態(tài)分布。相位精度誤差優(yōu)于3 ns,并具有長期穩(wěn)定性。
圖7 相位差誤差測量值
為滿足高速鐵路地震預(yù)警系統(tǒng)中分布式數(shù)據(jù)采集的高精度時間同步需求,本文設(shè)計了基于IEEE-1588的網(wǎng)絡(luò)PPS時鐘同步系統(tǒng),給出了實際的系統(tǒng)構(gòu)成方案及高精度時鐘同步方法。實驗表明,通過此方法從設(shè)備時間同步精度優(yōu)于3 ns,在分布式數(shù)據(jù)采集及無GPS信號等場合有一定的參考價值。
[1]王國新,孫奉劼,王東明.高速鐵路地震預(yù)警時間與預(yù)警區(qū)域和震級的關(guān)系[J].中國鐵道科學,2014(2):120-124.
[2]韓琳,范旭娟,潘登.幾種IEEE 1588對時實現(xiàn)方法的分析與比較[J].測控技術(shù),2013(2):74-76.
[3]文永康,文菠,齊永龍.分布式數(shù)據(jù)采集系統(tǒng)時間同步研究[J].計算機測量與控制,2014(4):1273-1275.
[4]吳維農(nóng),唐夲,卓靈.IEEE1588v2時間同步技術(shù)在新一代電力骨干網(wǎng)中應(yīng)用研究[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應(yīng)用研究[J].測控技術(shù),2012(9):80-83.
[8]王康,胡永輝,何在民.基于DP83640硬件輔助的IEEE1588研究及實現(xiàn)[J].時間頻率學報,2011(1):1-8.
[9]薛沖.基于晶體振蕩器的老化建模及其智能補償[D].西安:西安電子科技大學,2014.
[10]郭應(yīng)時,王暢,張亞岐.噪聲方差對卡爾曼濾波結(jié)果影響分析[J].計算機工程與設(shè)計,2014(2):641-645.
譚超(1982-),男,土家族,湖北利川人,三峽大學電氣與新能源學院,講師/博士,研究方向為電磁場傳感器與測量、微弱信號檢測以及智能儀表設(shè)計,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年碩士學位論文培優(yōu)基金項目(2015PY039)
2015-10-09修改日期:2016-01-08
EEACC:1230G10.3969/j.issn.1005-9490.2016.05.017