基于IEEE1588的時(shí)鐘同步技術(shù)在分布式系統中的應用

發(fā)布時(shí)間:2010-8-21 17:59    發(fā)布者:lavida
1 引言  

以太網(wǎng)技術(shù)的高速發(fā)展為分布式系統在工業(yè)領(lǐng)域的廣泛應用創(chuàng )造了條件。以太網(wǎng)具有成本低、可靠性高、傳輸速度快、通用性強、開(kāi)放性好、發(fā)展潛力大等優(yōu)點(diǎn)。但以太網(wǎng)也存在網(wǎng)絡(luò )的確定性、實(shí)時(shí)性不強等缺陷。隨著(zhù)系統日益龐大復雜,分布化程度越來(lái)越高,對時(shí)鐘同步的要求也逐步提高,雖然隨著(zhù)帶寬的不斷提高以及采用星形網(wǎng)絡(luò )拓撲結構等減少沖突可能的技術(shù)的應用,以太網(wǎng)的確定性、實(shí)時(shí)性有一定程度的提高,但由于以太網(wǎng)自身沖突檢測的載波幀聽(tīng)多路訪(fǎng)問(wèn)(CSMA/CD)機制,設備層和I/O層的數據采集與傳輸問(wèn)題,以及TCP及UDP上的誤差檢測及翻譯障礙等,以太網(wǎng)的實(shí)時(shí)性問(wèn)題并未得到根本解決。仍不能滿(mǎn)足精確定時(shí)的要求。  

網(wǎng)絡(luò )測量和控制系統的精密時(shí)鐘同步協(xié)議標準IEEE1588適用于以太網(wǎng)、CAN總線(xiàn)和PROFIBUS等。IEEE 1588的基本功能是使分布式網(wǎng)絡(luò )內所有從時(shí)鐘與主時(shí)鐘保持同步,該標準定義一種精確時(shí)間協(xié)議PTP(Precision rime Protocol),用于對標準以太網(wǎng)或其他采用多播技術(shù)的分布式總線(xiàn)系統中的傳感器、執行器以及其他終端設備中的時(shí)鐘進(jìn)行微秒級同步。早期的網(wǎng)絡(luò )時(shí)間協(xié)議(NTP)只有軟件,而PTP協(xié)議同時(shí)使用硬件和軟件,從而獲得更精確的定時(shí)同步。PTP針對相對本地化、網(wǎng)絡(luò )化的系統,子網(wǎng)或內部組件相對穩定的環(huán)境,特別適合于分布式系統在工業(yè)自動(dòng)化方面的應用。  

2 時(shí)鐘同步原理  

理論上,為每個(gè)系統節點(diǎn)配備GPS模塊可得到精確的時(shí)間,這樣系統中所有節點(diǎn)的時(shí)鐘就和標準時(shí)間一致。從而達到同步;但分布式系統中節點(diǎn)數量大,GPS設備成本高、能耗大,且結構復雜,抗屏蔽性差,且出于安全性考慮排除大規模使用GPS的時(shí)鐘同步方式。而基于以太網(wǎng)的IEEE 1588是通過(guò)在分布式系統各節點(diǎn)間交換時(shí)間報文的方法達到整個(gè)系統的時(shí)間同步。IEEE 1588通過(guò)交換報文來(lái)確定主時(shí)鐘(Master)和從時(shí)鐘(Slave)之間的時(shí)間偏移及報文傳輸的網(wǎng)絡(luò )延遲。圖1為IEEE 1588原理圖。  


  
由圖1可知,主時(shí)鐘的節點(diǎn)按照定義的間隔時(shí)間(缺省是2 s)周期性地向網(wǎng)絡(luò )上所有從時(shí)鐘節點(diǎn)發(fā)送“同步報文”(Sync),同時(shí)主時(shí)鐘節點(diǎn)記錄同步報文實(shí)際發(fā)送的時(shí)間戳,并在隨后的“跟進(jìn)報文”(Follow-up)中傳送該精確時(shí)間戳TM1。這樣,對傳遞和接收的測量與標準時(shí)間戳的傳播可以分開(kāi)。網(wǎng)絡(luò )上所有其他從時(shí)鐘節點(diǎn)收到上述報文后,記錄同步報文的接收時(shí)間戳TS1,TS1和TM1的偏差中不但包含主從時(shí)鐘的時(shí)間偏差,還包含未知的報文傳輸延遲,分布式系統中每個(gè)節點(diǎn)在網(wǎng)絡(luò )中所處位置、布線(xiàn)方式、布線(xiàn)長(cháng)度以及目前網(wǎng)絡(luò )技術(shù)中的固有問(wèn)題,也將造成測控數據在傳輸過(guò)程中的不同延遲。因此需要進(jìn)一步測量并消除該傳輸延遲。與偏移測量不同,延遲測量是不規則進(jìn)行的,從時(shí)鐘節點(diǎn)按照定義的間隔時(shí)間(缺省值是4~60 s之間的隨機值)向主時(shí)鐘節點(diǎn)發(fā)送一個(gè)“延遲請求”(Dclay Request)報文,同時(shí)記錄該報文的實(shí)際發(fā)送時(shí)間,作為精確的發(fā)送時(shí)間戳TS2,而主時(shí)鐘接收到該報文時(shí)也記下接收時(shí)刻的精確時(shí)間戳TM2,并將該時(shí)間戳在隨后的“延遲響應”(Delay Response)報文中發(fā)送給相應的從時(shí)鐘節點(diǎn)。假設網(wǎng)絡(luò )延遲是對稱(chēng)的,則有以下兩式:  


  
式中,τ為報文的傳輸延遲,△為從時(shí)鐘相對主時(shí)鐘的偏差。  

由式(1)和式(2)可求得:  


  
根據偏差△,調整從時(shí)鐘,實(shí)現對時(shí)。  

3 影響同步精度的因素  

(1)網(wǎng)絡(luò )對稱(chēng)性從圖1看出,分布式系統為計算其網(wǎng)絡(luò )延遲和時(shí)鐘偏移所進(jìn)行的4次測量都是建立在報文的傳輸延遲(Delay)在傳輸方向上是相同的基礎上。但這只是理想的情況,在大網(wǎng)絡(luò )負載的情況下,Delay在傳輸方向上的差異會(huì )越來(lái)越大。造成同步精度的下降。但由于工業(yè)上的分布式系統多為相對本地化、局域網(wǎng)的系統,子網(wǎng)或內部組件相對穩定的環(huán)境,因此可忽略Delay在傳輸方向上的差異。  

(2)網(wǎng)絡(luò )拓撲結構系統測量時(shí),點(diǎn)對點(diǎn)的傳輸能提供最高的精度,網(wǎng)絡(luò )的拓撲結構也會(huì )對同步精度造成影響,當采用Hub連接時(shí),網(wǎng)絡(luò )延遲抖動(dòng)為300~400 ns,當采用交換機時(shí),由于存儲-轉發(fā)機制的影響,網(wǎng)絡(luò )延遲會(huì )隨著(zhù)網(wǎng)絡(luò )負載的變化而變化,因此具有較大的抖動(dòng)值,使得上述網(wǎng)絡(luò )傳輸延遲測量方法精度大大降低。為此,PTP采用邊界時(shí)鐘(Bounday Clock)的方法解決這一問(wèn)題,如圖2所示。在交換機內部與主時(shí)鐘連接的端口可以看成從時(shí)鐘端口,在接收主時(shí)鐘發(fā)送的同步報文后調整自己的本地時(shí)鐘,然后用調整后的時(shí)鐘去同步所有與交換機主時(shí)鐘連接的從時(shí)鐘設備,這樣帶有拓撲結構的連接就變成簡(jiǎn)單的點(diǎn)對點(diǎn)連接,從而有效去除交換機所造成的延遲抖動(dòng)。  


  
(3)晶振的頻率由于產(chǎn)生時(shí)鐘的不同晶體本身的速度是不同的,而且晶體容易受溫度等影響,產(chǎn)生晶振漂移,引起誤差增大,因此需時(shí)從時(shí)鐘的晶振頻率進(jìn)行補償。使從時(shí)鐘的晶振頻率與主時(shí)鐘保持一致。  

4 時(shí)間戳的生成  

基于以上方法,可有效消除主、從時(shí)鐘偏差和報文在網(wǎng)絡(luò )中的傳輸延遲,從而實(shí)現分布式系統的時(shí)鐘同步。同步信息檢測和時(shí)間戳生成方法不同,時(shí)鐘同步精度也不一樣,IEEE802.3中規定以太網(wǎng)幀的基本結構:前導碼、幀起始定界符、目的MAC、源MAC、長(cháng)度、數據和幀校驗序列。其中,前導碼由7個(gè)‘1 0’交替的8位字節組成,用于信號同步;而幀起始定界符包含6位交替的‘1 0’及末位的2個(gè)1,末位的2個(gè)1通知接收端,跟在后面的是幀的實(shí)際字段,表示一幀開(kāi)始。在以太網(wǎng)中,IEEE 1588所定義的各種時(shí)鐘報文(Sync報文等)均以UDP/IP多播包形式發(fā)送的,報文的時(shí)標生成點(diǎn)位于幀起始定界符最后一位,如圖3所示。  


  
IEEE 1588的同步原理決定了時(shí)鐘同步的精度主要取決于時(shí)間戳的精度。時(shí)間戳的加蓋有3種方法:  

(1)硬件加蓋方式 時(shí)間戳主要加蓋在MAC層和PHY層之間的MII(media independent interface)層,這也是最精確的加蓋方式,需用硬件電路實(shí)現。  

(2)軟件加蓋方式 時(shí)間戳加蓋在網(wǎng)絡(luò )的驅動(dòng)層,在網(wǎng)絡(luò )接口的驅動(dòng)程序中實(shí)現,精度略低。  

(3)加蓋在應用層 因為這種方式無(wú)需修改其他系統軟件,所以協(xié)議棧的操作延遲和負載都能對同步精度造成影響,因此同步精度最低。無(wú)論在網(wǎng)絡(luò )驅動(dòng)層還是在MII產(chǎn)生的時(shí)間戳都必須返回到PTP應用層并經(jīng)由系統內核處理,然后才發(fā)送到PTP終端,由此可以看出時(shí)間戳的生成決定了PTP協(xié)議的運行。只有獲得精確的時(shí)間戳才能發(fā)揮IEEE 1588所能達到的時(shí)鐘同步精度。  

以太網(wǎng)自身的CSMMCD機制、上一層通信(如TCP及UDP)上進(jìn)行的誤差檢測及翻譯障礙等,都占用以太網(wǎng)的時(shí)間。因此,用軟件方式產(chǎn)生時(shí)間戳,必須優(yōu)化加蓋時(shí)間戳的驅動(dòng)程序以提高系統內核處理帶有時(shí)間戳報文的運算效率,同時(shí)優(yōu)化報文發(fā)送前在網(wǎng)卡內部的排序,減小程序運行和網(wǎng)絡(luò )負載對收發(fā)報文的影響,從而降低報文發(fā)送過(guò)程中的軟件延遲和抖動(dòng)。  

在以太網(wǎng)中,也可以在物理層放置硬件電路加蓋時(shí)間戳,這樣可以避免協(xié)議棧上部較大的時(shí)間抖動(dòng),消除報文傳輸中的網(wǎng)絡(luò )延遲。由于主從時(shí)鐘不同步的原因除了網(wǎng)絡(luò )延遲外還有時(shí)鐘偏差,可以采用頻率可調時(shí)鐘來(lái)校正從時(shí)鐘相對主時(shí)鐘的時(shí)鐘偏差,根據從時(shí)鐘處得出的自身與主時(shí)鐘的偏差計算出相應的頻率補償值,從而控制時(shí)鐘計數器的數值達到與主時(shí)鐘的同步。硬件電路從物理層獲得每個(gè)發(fā)送和接收報文的比特流,并記錄時(shí)間戳信息,判斷其是否為IEEE 1588相關(guān)協(xié)議報文,如果是相關(guān)報文,則把時(shí)間戳信息傳送給上層軟件,否則丟棄該報文的時(shí)間戳信息。對于100 M以太網(wǎng),由于采用4B/SB編碼和Scrambler技術(shù),只能在物理層與數據鏈路層之間的MII層加蓋時(shí)間戳信息。IEEE 1588時(shí)鐘同步實(shí)現過(guò)程如圖4所示。  


  
5 基于FPGA的硬件同步方案  

因為采用硬件電路獲取時(shí)間戳,從而獲得更高的同步精度,這里采用FPGA實(shí)現時(shí)間戳的獲取和從時(shí)鐘相對主時(shí)鐘的頻率糾偏。分布式系統中節點(diǎn)時(shí)鐘同步模塊的內部結構如圖5所示。  

  
每個(gè)節點(diǎn)包含CPU、以太網(wǎng)媒體訪(fǎng)問(wèn)控制器(MAC)、以太網(wǎng)物理層收發(fā)器(PHY)、FPGA等4種主要器件。物理層收發(fā)器和MAC控制器通過(guò)標準的MII接口相連,CPU通過(guò)總線(xiàn)與MAC控制器和FPGA相連。物理層收發(fā)器、MAC控制器和CPU構成通訊協(xié)議棧完成數據包的發(fā)送和接收。  

為了使從時(shí)鐘的晶振頻率與主時(shí)鐘保持一致,FPGA中需要有一個(gè)頻率可調的時(shí)鐘以實(shí)現晶振糾偏,如圖6所示,由r位頻率補償值寄存器、g位分頻累加器、p位系統時(shí)鐘計數器組成,一個(gè)普通晶體振蕩信號輸入FPGA模塊。在每個(gè)晶振周期,r位頻率補償值寄存器內保存的頻率補償值累加到q位分頻累加器中,與累加器中的值相加。  


  
如果發(fā)生溢出,則在下一個(gè)晶振周期,時(shí)鐘計數器增加一個(gè)增量,這個(gè)增量就是整個(gè)頻率補償時(shí)鐘的分辨率;如果沒(méi)有溢出,則在下一個(gè)晶振周期,時(shí)鐘計數器保持原值。計數器的當前值即為調整后的本地時(shí)鐘。因此可以通過(guò)改變頻率補償值來(lái)改變時(shí)鐘計數器數值增加的頻率,實(shí)現對晶振頻率的補償。q和r越大,頻率補償值的改變對累加器發(fā)生溢出的頻率的影響越小,對晶振頻率的補償越精細。本系統選擇r=32,q=32,p=64。  

使用FPGA不但能夠獲得最精確的時(shí)間戳,而且能夠采用數字電路的方法精確補償從時(shí)鐘的晶振頻率。FPGA的控制器實(shí)現時(shí)鐘調節算法,并由得到的時(shí)間戳和本地時(shí)鐘相比較,得到頻率補償值,從而控制時(shí)鐘計數器數值,補償晶振的頻率。而CPU則主要負責驅動(dòng)MAC控制器完成相關(guān)的通訊功能。  

6 結束語(yǔ)  

采用IEEE 1588精確時(shí)鐘同步協(xié)議的以太網(wǎng)時(shí)鐘同步技術(shù),解決了通用以太網(wǎng)實(shí)時(shí)性和同步性差的問(wèn)題。為基于多播技術(shù)的標準以太網(wǎng)的實(shí)時(shí)應用提供了有效的解決方案。IEEE 1588精確時(shí)鐘同步協(xié)議的制定滿(mǎn)足網(wǎng)絡(luò )化分布式系統的需求,利用IEEE 1588時(shí)鐘同步技術(shù)可以在不增加網(wǎng)絡(luò )負荷的情況下,實(shí)現整個(gè)分布式系統的高精度時(shí)鐘同步,從而可以有效解決分布式系統的實(shí)時(shí)性問(wèn)題,進(jìn)而改善和提高系統的同步精度。
本文地址:http://selenalain.com/thread-23269-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页