IEEE1588和高精度時(shí)間同步的方法
2,第二步主節(jié)點(diǎn)向從節(jié)點(diǎn)發(fā)送一個(gè)“跟隨”(Follow_up)報(bào)文,這個(gè)報(bào)文包含先前的同步報(bào)文準(zhǔn)確的發(fā)送時(shí)間的標(biāo)記。從節(jié)點(diǎn)利用這兩個(gè)時(shí)間標(biāo)記可以得到它與主節(jié)點(diǎn)的延遲,據(jù)此可調(diào)整它的時(shí)鐘的頻率。
3,從節(jié)點(diǎn)向主節(jié)點(diǎn)發(fā)送“延時(shí)請求”(Delay_Request報(bào)文(延時(shí)請求報(bào)文的間隔是獨(dú)立設(shè)置的,一般應(yīng)較同步報(bào)文間隔長),這個(gè)報(bào)文是由從節(jié)點(diǎn)記錄它的準(zhǔn)確發(fā)送時(shí)間,由主節(jié)點(diǎn)打上準(zhǔn)確的接收時(shí)間標(biāo)記。
4,主節(jié)點(diǎn)向從節(jié)點(diǎn)返回一個(gè)“延時(shí)響應(yīng)”(Delay_ Response)報(bào)文,這個(gè)報(bào)文帶著先前的“延時(shí)請求”報(bào)文的準(zhǔn)確的接收時(shí)間標(biāo)記,從節(jié)點(diǎn)利用這個(gè)時(shí)間和由它所記錄的準(zhǔn)確的發(fā)送時(shí)間,可計(jì)算出主節(jié)點(diǎn)和從節(jié)點(diǎn)之間的傳輸延遲并調(diào)整它的時(shí)鐘漂移誤差。
圖2 偏移的校正
圖3 傳輸延時(shí)的測量
圖2,圖3例示主節(jié)點(diǎn)與從節(jié)點(diǎn)之間報(bào)文的交換,圖中的時(shí)間也僅是為了理解假設(shè)的,不代表實(shí)際情況(IEEE1588中表示時(shí)間使用64位數(shù),可以精確地表示絕對時(shí)間)。圖2表示經(jīng)過兩次同步可以校正主節(jié)點(diǎn)與從節(jié)點(diǎn)之間的偏差。但無法計(jì)算傳輸延時(shí)。
經(jīng)過延時(shí)報(bào)文的請求和應(yīng)答以及同步報(bào)文的時(shí)間標(biāo)記,可以計(jì)算出兩個(gè)方向的平均傳輸延時(shí),在以后的計(jì)算中就可使用。實(shí)際上偏移與延時(shí)值的測量是互相影響的,要經(jīng)過多次測量和計(jì)算,才會逐步收斂到接近實(shí)際值。測量時(shí)間間隔的選取很重要,選擇間隔短時(shí)通信負(fù)荷較重,間隔過長則不能保證同步的精度,所以同步和延時(shí)的測量間隔應(yīng)根據(jù)同步要求和系統(tǒng)配置選擇。
IEEE1588并沒有規(guī)定使用的網(wǎng)絡(luò),但從通信的負(fù)荷和時(shí)間要求來說,以太網(wǎng)是比較適合的網(wǎng)絡(luò),當(dāng)前實(shí)際的實(shí)現(xiàn)也差不多都是基于以太網(wǎng)的網(wǎng)絡(luò)。以上四種PTP報(bào)文都是基于IP多點(diǎn)通信(Multicast),它不限于Ethernet,并且可用于任何支持多點(diǎn)通信的總線系統(tǒng)。多點(diǎn)通信提供簡單化的優(yōu)點(diǎn),IP地址管理不需要在PTP節(jié)點(diǎn)上實(shí)現(xiàn),這樣可以進(jìn)一步擴(kuò)展到很大數(shù)目的PTP節(jié)點(diǎn)。
4 本地時(shí)鐘的考慮
PTP協(xié)議可能達(dá)到很高的同步精度,組成龐大的同步系統(tǒng),但實(shí)際系統(tǒng)可以根據(jù)需要達(dá)到的精度和功能組建??梢赃x用1級或2級時(shí)鐘作為主時(shí)鐘,也可選用3級,4級時(shí)鐘,可按價(jià)格和性能需要綜合考慮。但作為普通節(jié)點(diǎn)本地時(shí)鐘的振蕩器,出于成本考慮基本上只能選擇石英晶體振蕩器。但石英晶振的頻率會隨溫度,機(jī)械因素和老化漂移,其中最主要的影響是溫度,典型的不補(bǔ)償?shù)氖⒕д竦臏囟蕊h移是1PPM/C0,如果同步間隔是2秒,則溫度上升1度在每個(gè)同步間隔會產(chǎn)生2微秒的誤差。但通過對晶振的熱環(huán)境的控制,可以明顯降低漂移。
從上面論述也可知道如果本地時(shí)鐘的振蕩頻率稍有偏離,就會造成時(shí)間的偏離,而且時(shí)間的偏離是累計(jì)的會越來越大,雖然通過同步報(bào)文的計(jì)算可以校正時(shí)間,但本地時(shí)間的頻繁校正會打亂本地時(shí)鐘的連續(xù)性,使需要定時(shí)處理的任務(wù)像PID調(diào)節(jié),通過時(shí)間段計(jì)量脈沖的速度測量等應(yīng)用陷入混亂。所以在PTP系統(tǒng)內(nèi)使用頻率可調(diào)的晶振,通過頻率的校正使本地時(shí)鐘的頻率與主時(shí)鐘同步。對這種晶振的要求是0.01%精度和0.02%的頻率可調(diào)范圍。同時(shí)PTP并不在接收同步報(bào)文后立即校正本地時(shí)鐘的時(shí)間,而是將這個(gè)偏移作為一個(gè)數(shù)據(jù)保存在端口中,通過本地時(shí)間加偏移值得到正確時(shí)間。
同時(shí)PTP定義的外部定時(shí)信號是可選特性,支持這個(gè)特性的主時(shí)鐘另外提供10MHZ頻率的曼徹斯特編碼的時(shí)鐘信號,在每秒的邊界信號跳變給出秒信號。這個(gè)定時(shí)信號可用于校正時(shí)鐘頻率。
5 關(guān)于邊界時(shí)鐘
從上面的同步原理很容易看到,在計(jì)算偏移時(shí)需要用到傳輸延時(shí),這個(gè)延時(shí)是以前得到的測量值計(jì)算的結(jié)果,如果延時(shí)是穩(wěn)定的,就能代表當(dāng)次測量的延時(shí),偏移的測量就準(zhǔn)確。反之延時(shí)的起伏將直接影響同步的精度。點(diǎn)對點(diǎn)連接可提供最高的精度,帶路由器會增加網(wǎng)絡(luò)抖動,在PTP系統(tǒng)內(nèi)通過交換機(jī)連接時(shí),由于交換機(jī)在傳送報(bào)文時(shí)需要存儲和排隊(duì),不可避免出現(xiàn)傳遞的延遲,而且這個(gè)延遲隨排隊(duì)報(bào)文的多少,報(bào)文的大小而變。為了解決這個(gè)問題通常使用支持IEEE1588的交換機(jī)作為邊界時(shí)鐘,支持IEEE的交換機(jī)內(nèi)部包含了一個(gè)PTP時(shí)鐘,由于它是直接接收主時(shí)鐘報(bào)文的,它與主時(shí)鐘的傳輸延時(shí)不存在排隊(duì)與存儲的問題,所以在需要分支時(shí)通常使用帶邊界時(shí)鐘的交換機(jī)。
6 時(shí)鐘的評價(jià)和最佳時(shí)鐘算法概要
最佳時(shí)鐘算法是1588協(xié)議的很重要的部分,1588雖然是適用于局域網(wǎng)的協(xié)議,但它沒有限制網(wǎng)絡(luò)的結(jié)構(gòu),范圍,設(shè)備數(shù)目和選用。對于任意結(jié)構(gòu)的網(wǎng)絡(luò)怎樣確定祖母時(shí)鐘,主時(shí)鐘,時(shí)間基準(zhǔn)怎樣逐級傳遞到各節(jié)點(diǎn),以取得盡可能好的時(shí)鐘精度,就是最佳時(shí)鐘算法要達(dá)到的目標(biāo)。1588的算法是動態(tài)運(yùn)行的,即在時(shí)鐘同步系統(tǒng)運(yùn)行中根據(jù)實(shí)時(shí)數(shù)據(jù)不斷計(jì)算,動態(tài)調(diào)整各節(jié)點(diǎn)和端口的狀態(tài),也就會調(diào)整時(shí)間的傳遞路線。所以在當(dāng)前主時(shí)鐘故障或性能下降時(shí),系統(tǒng)可能會選擇其它更合適的節(jié)點(diǎn)替代它作為主時(shí)鐘。由于這部分內(nèi)容相對復(fù)雜,這里只介紹相關(guān)的基礎(chǔ)概念。
評論