1 引言
以太網技術的高速發(fā)展為分布式系統(tǒng)在工業(yè)領域的廣泛應用創(chuàng)造了條件。以太網具有成本低、可靠性高、傳輸速度快、通用性強、開放性好、發(fā)展?jié)摿Υ蟮葍?yōu)點。但以太網也存在網絡的確定性、實時性不強等缺陷。隨著系統(tǒng)日益龐大復雜,分布化程度越來越高,對時鐘同步的要求也逐步提高,雖然隨著帶寬的不斷提高以及采用星形網絡拓撲結構等減少沖突可能的技術的應用,以太網的確定性、實時性有一定程度的提高,但由于以太網自身沖突檢測的載波幀聽多路訪問(CSMA/CD)機制,設備層和I/O層的數(shù)據(jù)采集與傳輸問題,以及TCP及UDP上的誤差檢測及翻譯障礙等,以太網的實時性問題并未得到根本解決。仍不能滿足精確定時的要求。
網絡測量和控制系統(tǒng)的精密時鐘同步協(xié)議標準IEEE1588適用于以太網、CAN總線和PROFIBUS等。IEEE 1588的基本功能是使分布式網絡內所有從時鐘與主時鐘保持同步,該標準定義一種精確時間協(xié)議PTP(Precision rime Protocol),用于對標準以太網或其他采用多播技術的分布式總線系統(tǒng)中的傳感器、執(zhí)行器以及其他終端設備中的時鐘進行微秒級同步。早期的網絡時間協(xié)議(NTP)只有軟件,而PTP協(xié)議同時使用硬件和軟件,從而獲得更精確的定時同步。PTP針對相對本地化、網絡化的系統(tǒng),子網或內部組件相對穩(wěn)定的環(huán)境,特別適合于分布式系統(tǒng)在工業(yè)自動化方面的應用。
2 時鐘同步原理
理論上,為每個系統(tǒng)節(jié)點配備GPS模塊可得到精確的時間,這樣系統(tǒng)中所有節(jié)點的時鐘就和標準時間一致。從而達到同步;但分布式系統(tǒng)中節(jié)點數(shù)量大,GPS設備成本高、能耗大,且結構復雜,抗屏蔽性差,且出于安全性考慮排除大規(guī)模使用GPS的時鐘同步方式。而基于以太網的IEEE 1588是通過在分布式系統(tǒng)各節(jié)點間交換時間報文的方法達到整個系統(tǒng)的時間同步。IEEE 1588通過交換報文來確定主時鐘(Master)和從時鐘(Slave)之間的時間偏移及報文傳輸?shù)木W絡延遲。圖1為IEEE 1588原理圖。
由圖1可知,主時鐘的節(jié)點按照定義的間隔時間(缺省是2 s)周期性地向網絡上所有從時鐘節(jié)點發(fā)送“同步報文”(Sync),同時主時鐘節(jié)點記錄同步報文實際發(fā)送的時間戳,并在隨后的“跟進報文”(Follow-up)中傳送該精確時間戳TM1。這樣,對傳遞和接收的測量與標準時間戳的傳播可以分開。網絡上所有其他從時鐘節(jié)點收到上述報文后,記錄同步報文的接收時間戳TS1,TS1和TM1的偏差中不但包含主從時鐘的時間偏差,還包含未知的報文傳輸延遲,分布式系統(tǒng)中每個節(jié)點在網絡中所處位置、布線方式、布線長度以及目前網絡技術中的固有問題,也將造成測控數(shù)據(jù)在傳輸過程中的不同延遲。因此需要進一步測量并消除該傳輸延遲。與偏移測量不同,延遲測量是不規(guī)則進行的,從時鐘節(jié)點按照定義的間隔時間(缺省值是4~60 s之間的隨機值)向主時鐘節(jié)點發(fā)送一個“延遲請求”(Dclay Request)報文,同時記錄該報文的實際發(fā)送時間,作為精確的發(fā)送時間戳TS2,而主時鐘接收到該報文時也記下接收時刻的精確時間戳TM2,并將該時間戳在隨后的“延遲響應”(Delay Response)報文中發(fā)送給相應的從時鐘節(jié)點。假設網絡延遲是對稱的,則有以下兩式:
根據(jù)偏差△,調整從時鐘,實現(xiàn)對時。
3 影響同步精度的因素
(1)網絡對稱性從圖1看出,分布式系統(tǒng)為計算其網絡延遲和時鐘偏移所進行的4次測量都是建立在報文的傳輸延遲(Delay)在傳輸方向上是相同的基礎上。但這只是理想的情況,在大網絡負載的情況下,Delay在傳輸方向上的差異會越來越大。造成同步精度的下降。但由于工業(yè)上的分布式系統(tǒng)多為相對本地化、局域網的系統(tǒng),子網或內部組件相對穩(wěn)定的環(huán)境,因此可忽略Delay在傳輸方向上的差異。
(2)網絡拓撲結構系統(tǒng)測量時,點對點的傳輸能提供最高的精度,網絡的拓撲結構也會對同步精度造成影響,當采用Hub連接時,網絡延遲抖動為300~400 ns,當采用交換機時,由于存儲-轉發(fā)機制的影響,網絡延遲會隨著網絡負載的變化而變化,因此具有較大的抖動值,使得上述網絡傳輸延遲測量方法精度大大降低。為此,PTP采用邊界時鐘(Bounday Clock)的方法解決這一問題,如圖2所示。在交換機內部與主時鐘連接的端口可以看成從時鐘端口,在接收主時鐘發(fā)送的同步報文后調整自己的本地時鐘,然后用調整后的時鐘去同步所有與交換機主時鐘連接的從時鐘設備,這樣帶有拓撲結構的連接就變成簡單的點對點連接,從而有效去除交換機所造成的延遲抖動。
(3)晶振的頻率由于產生時鐘的不同晶體本身的速度是不同的,而且晶體容易受溫度等影響,產生晶振漂移,引起誤差增大,因此需時從時鐘的晶振頻率進行補償。使從時鐘的晶振頻率與主時鐘保持一致。
4 時間戳的生成
基于以上方法,可有效消除主、從時鐘偏差和報文在網絡中的傳輸延遲,從而實現(xiàn)分布式系統(tǒng)的時鐘同步。同步信息檢測和時間戳生成方法不同,時鐘同步精度也不一樣,IEEE802.3中規(guī)定以太網幀的基本結構:前導碼、幀起始定界符、目的MAC、源MAC、長度、數(shù)據(jù)和幀校驗序列。其中,前導碼由7個‘1 0’交替的8位字節(jié)組成,用于信號同步;而幀起始定界符包含6位交替的‘1 0’及末位的2個1,末位的2個1通知接收端,跟在后面的是幀的實際字段,表示一幀開始。在以太網中,IEEE 1588所定義的各種時鐘報文(Sync報文等)均以UDP/IP多播包形式發(fā)送的,報文的時標生成點位于幀起始定界符最后一位,如圖3所示。
IEEE 1588的同步原理決定了時鐘同步的精度主要取決于時間戳的精度。時間戳的加蓋有3種方法:
(1)硬件加蓋方式 時間戳主要加蓋在MAC層和PHY層之間的MII(media independent interface)層,這也是最精確的加蓋方式,需用硬件電路實現(xiàn)。
(2)軟件加蓋方式 時間戳加蓋在網絡的驅動層,在網絡接口的驅動程序中實現(xiàn),精度略低。
(3)加蓋在應用層 因為這種方式無需修改其他系統(tǒng)軟件,所以協(xié)議棧的操作延遲和負載都能對同步精度造成影響,因此同步精度最低。無論在網絡驅動層還是在MII產生的時間戳都必須返回到PTP應用層并經由系統(tǒng)內核處理,然后才發(fā)送到PTP終端,由此可以看出時間戳的生成決定了PTP協(xié)議的運行。只有獲得精確的時間戳才能發(fā)揮IEEE 1588所能達到的時鐘同步精度。
以太網自身的CSMMCD機制、上一層通信(如TCP及UDP)上進行的誤差檢測及翻譯障礙等,都占用以太網的時間。因此,用軟件方式產生時間戳,必須優(yōu)化加蓋時間戳的驅動程序以提高系統(tǒng)內核處理帶有時間戳報文的運算效率,同時優(yōu)化報文發(fā)送前在網卡內部的排序,減小程序運行和網絡負載對收發(fā)報文的影響,從而降低報文發(fā)送過程中的軟件延遲和抖動。
在以太網中,也可以在物理層放置硬件電路加蓋時間戳,這樣可以避免協(xié)議棧上部較大的時間抖動,消除報文傳輸中的網絡延遲。由于主從時鐘不同步的原因除了網絡延遲外還有時鐘偏差,可以采用頻率可調時鐘來校正從時鐘相對主時鐘的時鐘偏差,根據(jù)從時鐘處得出的自身與主時鐘的偏差計算出相應的頻率補償值,從而控制時鐘計數(shù)器的數(shù)值達到與主時鐘的同步。硬件電路從物理層獲得每個發(fā)送和接收報文的比特流,并記錄時間戳信息,判斷其是否為IEEE 1588相關協(xié)議報文,如果是相關報文,則把時間戳信息傳送給上層軟件,否則丟棄該報文的時間戳信息。對于100 M以太網,由于采用4B/SB編碼和Scrambler技術,只能在物理層與數(shù)據(jù)鏈路層之間的MII層加蓋時間戳信息。IEEE 1588時鐘同步實現(xiàn)過程如圖4所示。
5 基于FPGA的硬件同步方案
因為采用硬件電路獲取時間戳,從而獲得更高的同步精度,這里采用FPGA實現(xiàn)時間戳的獲取和從時鐘相對主時鐘的頻率糾偏。分布式系統(tǒng)中節(jié)點時鐘同步模塊的內部結構如圖5所示。
每個節(jié)點包含CPU、以太網媒體訪問控制器(MAC)、以太網物理層收發(fā)器(PHY)、FPGA等4種主要器件。物理層收發(fā)器和MAC控制器通過標準的MII接口相連,CPU通過總線與MAC控制器和FPGA相連。物理層收發(fā)器、MAC控制器和CPU構成通訊協(xié)議棧完成數(shù)據(jù)包的發(fā)送和接收。
為了使從時鐘的晶振頻率與主時鐘保持一致,F(xiàn)PGA中需要有一個頻率可調的時鐘以實現(xiàn)晶振糾偏,如圖6所示,由r位頻率補償值寄存器、g位分頻累加器、p位系統(tǒng)時鐘計數(shù)器組成,一個普通晶體振蕩信號輸入FPGA模塊。在每個晶振周期,r位頻率補償值寄存器內保存的頻率補償值累加到q位分頻累加器中,與累加器中的值相加。
如果發(fā)生溢出,則在下一個晶振周期,時鐘計數(shù)器增加一個增量,這個增量就是整個頻率補償時鐘的分辨率;如果沒有溢出,則在下一個晶振周期,時鐘計數(shù)器保持原值。計數(shù)器的當前值即為調整后的本地時鐘。因此可以通過改變頻率補償值來改變時鐘計數(shù)器數(shù)值增加的頻率,實現(xiàn)對晶振頻率的補償。q和r越大,頻率補償值的改變對累加器發(fā)生溢出的頻率的影響越小,對晶振頻率的補償越精細。本系統(tǒng)選擇r=32,q=32,p=64。
使用FPGA不但能夠獲得最精確的時間戳,而且能夠采用數(shù)字電路的方法精確補償從時鐘的晶振頻率。FPGA的控制器實現(xiàn)時鐘調節(jié)算法,并由得到的時間戳和本地時鐘相比較,得到頻率補償值,從而控制時鐘計數(shù)器數(shù)值,補償晶振的頻率。而CPU則主要負責驅動MAC控制器完成相關的通訊功能。
6 結束語
采用IEEE 1588精確時鐘同步協(xié)議的以太網時鐘同步技術,解決了通用以太網實時性和同步性差的問題。為基于多播技術的標準以太網的實時應用提供了有效的解決方案。IEEE 1588精確時鐘同步協(xié)議的制定滿足網絡化分布式系統(tǒng)的需求,利用IEEE 1588時鐘同步技術可以在不增加網絡負荷的情況下,實現(xiàn)整個分布式系統(tǒng)的高精度時鐘同步,從而可以有效解決分布式系統(tǒng)的實時性問題,進而改善和提高系統(tǒng)的同步精度。
責任編輯:gt
-
FPGA
+關注
關注
1629文章
21738瀏覽量
603459 -
收發(fā)器
+關注
關注
10文章
3428瀏覽量
106008 -
控制器
+關注
關注
112文章
16367瀏覽量
178109
發(fā)布評論請先 登錄
相關推薦
評論