使用DP83640實(shí)現(xiàn)標(biāo)準(zhǔn)網(wǎng)絡(luò)IEEE1588的同步
速率校正通過測量跟隨的同步周期并測量每個(gè)消息從 主機(jī)開始與到達(dá)從機(jī)之間的差異進(jìn)行。這給出了從機(jī)頻率相 對于主機(jī)頻率的一個(gè)基本比值并可以用來校正頻率差。因?yàn)?包延時(shí)偏差可能很明顯,這可能使任何單一的速率測量有很 大的不精確性。
例如,如果同步周期每秒8個(gè)同步,誤差在 125ms內(nèi)可能是100us或者接近1000ppm。如果算法是平均 所有速率測量,也許需要成百上千秒來測量速率以得到合理 的估算。使用低廉的振蕩器時(shí)會發(fā)生短期頻率變化,平均時(shí) 間較長會導(dǎo)致不能對這種頻率變化進(jìn)行控制。 可替代的方法是,建議的算法利用平均路徑延時(shí)測量來 檢測短時(shí)等待包時(shí),只使用這些包檢測對主機(jī)的頻率偏移。
如果包滿足一個(gè)好的最小環(huán)回延時(shí)要求,通過比較上一個(gè) “好包”時(shí)間來測量速率。*估“好包”時(shí),需要在質(zhì)量和 數(shù)量上進(jìn)行權(quán)衡。如果質(zhì)量過于嚴(yán)格,就可能無法獲得足夠 的信息來跟蹤頻率變化。但如果不夠嚴(yán)格,速率計(jì)算結(jié)果中 可能包含過量的偏差。
圖3表明用于決定速率的同步消息之間的最基本的關(guān)系。

從這個(gè)圖中,速率比值為
rate_ratio(n) = (T2(n) C T2) / (T1(n) CT1)
另外,為準(zhǔn)備另一個(gè)測量,需要設(shè)置:
T1=T1(n),T2=T2(n)
由于測量中存在誤差,仍然需要一些平均或?yàn)V波測量。
為了簡化,使用指數(shù)移動平均或平滑函數(shù)來跟蹤速率。這個(gè)等式為:
rate_avg(n) = Rate_avg(n-1)
+α(rate_ratio(n) C rate_avg(n-1))
α的典型值通常設(shè)為0.1,但是在某些諸如提高或降低速率的延長周期場合,這個(gè)值可能會有所增加。
2.1.3 時(shí)間校正
確定時(shí)間偏移的典型方法是使用同步消息來確定對主機(jī) 的偏差。常使用平均或?yàn)V波的方式來平滑連接,并避免每次 測量的過量校正。對于時(shí)間校正來說,利用兩個(gè)不同的機(jī)制 來檢測和校正時(shí)間偏差。
第一個(gè)機(jī)制的基本想法是尋找最小延時(shí)。基本算法是在 最近的延時(shí)中檢測最小的主機(jī)到從機(jī)的延時(shí)。為防止過量校 正,也對時(shí)間校正進(jìn)行了限制。這種算法依賴于大量的同步 消息,比IEEE-1588網(wǎng)絡(luò)本身需要的同步報(bào)文更多。另外, 在延時(shí)請求測量之后,算法可能使用主機(jī)到從機(jī)延時(shí)或從機(jī) 到主機(jī)延時(shí)中產(chǎn)生更小偏差的一個(gè)延時(shí)。在一個(gè)方向的流量 變得擁堵的情況下,另一個(gè)方向可以提供更精確的時(shí)間偏差 的測量。這個(gè)方法基于它擁有的最好信息而在每個(gè)周期都進(jìn) 行校正。如果沒有收到真實(shí)的最小延時(shí)消息報(bào)文,這將導(dǎo)致 不適當(dāng)?shù)男U?。原因是算法不能確定測量誤差是由時(shí)間偏差 還是由包延時(shí)偏差引起的。
第二個(gè)時(shí)間校正機(jī)制是嘗試只使用延時(shí)來進(jìn)行校正,前 提是這些延時(shí)已經(jīng)確定為真實(shí)最小延時(shí)包。它有助于避免對 時(shí)間值的無效校正。這個(gè)機(jī)制的基本想法是使用同步和延時(shí) 請求來進(jìn)行時(shí)間校正。對于同步消息,如果主機(jī)到從機(jī)延時(shí) 小于最小平均路徑延時(shí),測量結(jié)果就顯示至少有一個(gè)主機(jī)到 從機(jī)延時(shí)減去最小平均路徑延時(shí)的時(shí)間偏差。這種情況下, 時(shí)間校正是基于偏差測量進(jìn)行的。如果主機(jī)到從機(jī)的延時(shí)高 于最小平均路徑延時(shí),無法知道誤差是由時(shí)間偏差引起的還 是包延時(shí)偏差引起的,所以不會做校正。對于延時(shí)請求消息 也相似,如果從機(jī)到主機(jī)的延時(shí)小于最小平均路徑延時(shí),測 量結(jié)果就顯示有至少為平均路徑延時(shí)減去從機(jī)到主機(jī)延時(shí)的 時(shí)間偏差發(fā)生。注意,這里檢測到的時(shí)間偏差是正的,而主 機(jī)到從機(jī)延時(shí)測量中的結(jié)果是負(fù)的。
兩個(gè)方法都是通過調(diào)節(jié)一段時(shí)間內(nèi)的精準(zhǔn)時(shí)間協(xié)議的時(shí) 鐘速率來進(jìn)行時(shí)間校正。為了避免速率的大波動,每一個(gè)校 正都限制幅值。這將有助于降低由于時(shí)間偏移的快速校正而 引起的時(shí)間間隔誤差。在第二個(gè)機(jī)理中通過保持時(shí)間誤差值 進(jìn)行處理。當(dāng)因接收到的同步或延時(shí)請求引起的新誤差計(jì)算 出來時(shí),如果這個(gè)新誤差代表了一個(gè)更大的偏差,時(shí)間誤差 就更新為新值。否則,時(shí)間誤差保持不變?;跁r(shí)間誤差, 只能進(jìn)行有限的校正并從時(shí)間誤差中去除。因此,在完成校 正之前,偏移測量可能進(jìn)行多次校正。

第二個(gè)機(jī)理很少有無效的校正,但是呈現(xiàn)出更長的無校 正周期;基于速率校正誤差,很可能會出現(xiàn)漂移。盡管第二 個(gè)機(jī)理在重流量和多開關(guān)的條件下顯得更好,但兩者的總體 結(jié)果相似。由于第二個(gè)機(jī)理產(chǎn)生更好的結(jié)果,結(jié)論部分詳述 這些結(jié)果。
3.0 測試平臺
測試時(shí)鐘伺服算法的*估平臺是基于FPGA的常規(guī)*估 平臺,ALP(模擬測試發(fā)射平臺)。ALP平臺包含一個(gè)小的 FPGA來實(shí)現(xiàn)MAC接口、數(shù)據(jù)包緩沖和與DP83640以太網(wǎng)物 理層設(shè)備進(jìn)行通訊的MDIO管理界面。ALP板子包括與PC主 機(jī)通訊的USB接口。在PC主機(jī)上,ALP軟件運(yùn)行PTP協(xié)議來 建立和分析包并控制PHY中的PTP硬件的操作。ALP平臺合 并了支持兩個(gè)獨(dú)立的PHY器件的邏輯和連接。
評論