基于FAST的TSN交換(6)基于FPGA的PTP時間同步實現v2
發布時間:2019-04-02
 土舞; 時間同步是TSN交換實現的前提雜相。802.1AS規範定義了TSN網絡同步吃山的方法,其基本思路還是利用IEEE 1588v讀了2定義的PTP協議,将網絡中(zhōng)所有的時間從設備與時間主設備的時間進雜業行同步。在基于FAST流水線的TSN實現中(zhōng)什歌,與PTP協議相關的邏輯主要有接收控制邏輯(RX匠國C),PTP-UDA模塊以及PTP-UDO模塊海南。這三個模塊密切協同實現PTP時間同步而不需要軟件參南煙與。
一(yī)、FAST-TSN-04的PTP實現作子模型
&玩書nbsp; 在FAST-TSN-04的PTP藍你協議實現模型如下(xià)圖所示,主要由RxC、PTP-UDA大中和PTP-UDO模塊組成。其中(zhōng)RxC模塊位于花計FPGA OS内部,是FAST平台固有的邏輯,而PTP-UDA和PTP-UD樂如O是FAST擴展的流水線模塊,隻有需要支持音靜PTP協議的流水線才需要嵌入這兩個模塊。
圖1 FAST-TSN-04的PTP實現模型
(1)主要功能模塊
&nbs離訊p; 每個從接口接收的分(fēn)組首先進入RxC海房模塊。RxC模塊首先不加區分(fēn)的爲每個分(fēn)組打紙山上48比特接收時間戳。接收時間戳被填寫在分(fēn)上議組的元數據中(zhōng),随着分(fēn)組一議會(yī)同進入FAST流水線處理。由于接口時鍾頻(pín)率爲125愛多MHz,因此時間戳的精度爲8ns。RxC模塊位于輸入緩存之前,因此輸出緩存的笑數擁塞和調度機制不影響接收時間戳标記的準确度。
&nb呢長sp; PTP-UDA模塊位于FAST流水線的開(k黑月āi)始,負責PTP協議的處理。根據軟件配明白置,PTP-UDA可以工(gōng)作在時間主模式或是時間從模式著坐。PTP-UDA内部的狀态機控制整個時間同步火新過程,由于時間同步完全由硬件實現,因此同步過程中(zhōng)不讀靜需要followup消息,主從之間隻交換sync、delay_req和dela東靜y-resp三類消息,關于PTP消息詳細的交數輛互流程以及offset的計算已有大(dà)量文章介紹,本文不再贅述。年話
分能 若PTP-UDA工(gōng)作在時間從模式,她計則每次同步都會産生(shēng)一(yī)個本地時技農鍾與主時鍾的偏差offset,該offset用員秒于修正本地的全局時間。PTP-UDO模塊位于輸出緩存之後,PTP-UDO模塊根得數據輸出分(fēn)組元數據中(zhōng)協議标準類型(PST)來判斷站小該分(fēn)組是否爲PTP的sync/delay-req/delay-res坐亮p分(fēn)組。
如果輸出分玩校(fēn)組是上述PTP分(fēn)組,則該分(fēn)組吧要在PTP協議頭中(zhōng)會攜帶透明時鍾民店(Transparent Clock)字段TC,P身很TP-UDO模塊會根據分(fēn)組頭部攜帶的時間戳信行煙息,當前時間信息計算分(fēn)組從PTP-UDA黃農發出經交換緩存和輸出緩存的延時,将該延時累計到透明時鍾字拿訊段中(zhōng)。如果分(fēn)組不是上述PTP分(fēn)組路南,則PTP-UDO模塊将該分(fēn)組發出而不做任何修改。
(2)多時鍾域時鍾同步
在基裡腦于FPGA的FAST千兆交換實現過程中(zhōng),FPG內黃A内部最多有2N+1個時鍾域,其中(zhōng)N爲接口數目。其中(z喝房hōng)每個千兆接口都有一(yī)個獨立的接收冷對時鍾,該時鍾頻(pín)率與通信對端的發送時鍾一(yī)緻。每個接音慢口都有一(yī)個發送時鍾,負責将數據通過GMII/RGMII接口發送給PH說放Y芯片。同時還有一(yī)個獨立于接收和發送我民接口時鍾的核心時鍾,作爲FAST流水線的工(g來服ōng)作時鍾。
&n樂照bsp;雖然FAST-TSN-04的接口時鍾和核睡湖心時鍾都額定爲125MHz,但可能存在細微的差别。例如兩個20ppm了務的125MHz晶振,設基于這兩個晶振的時間每秒偏差爲裡鐘D,則:
Dmax=8ns*(125M*(1+20p高技pm)-125M*(1-20ppm))=40us
因此FPGA内部不同時鍾域就視的時間信息之間也需要同步,片上跨時鍾域的時間同步有單信号同步和多信号同步等方式會店,這裏不再贅述。
二、PTP協議同步實現
(1)時間信息的标記和處理
&n書很bsp; 基于RxC、PTP-UDA和PTP靜我-UDO模塊的FAST-TSN-04的PTP時間同步實現原理如下(北計xià)圖所示。每個sync/delay車友_req/delay-resp的協議分(fēn)組都由PTP-UDA妹拿發出和接收。
FAS我年T-TSN-04需要發送PTP分(fēn)組時, PTP-UDA産生(草村shēng)PTP分(fēn)組,并将分(fēn)組從PTP-UDA離(lí)資女開(kāi)的時間t0填寫到分(fēn)組的元數據低分中(zhōng),假設該分(fēn)組到達PTP-UDO時間爲t又就1,則該分(fēn)組在交換機内部的延時将會填寫到分(fēn)組的透明討雨時鍾域TC中(zhōng),随分(fēn白爸)組從網絡接口發出。
圖2 PTP協議分(fēn)組處理流程
FAST間來-TSN-04接收PTP分(fēn)組時首先将接收時樹懂間戳t2填寫到分(fēn)組元數據中(zhōng),然後送到F習友AST流水線的PTP-UDA模塊,設PTP-UDA模塊收到分(fēn)組的內房時間爲t3。後續的PTP分(fēn)組處理有兩種情況。
體那
&nbs體什p; 一(yī)是分(fēn)組的目的MAC是到術本地接口MAC地址,則該分(fēn)組會送到本地PTP動數-UDA處理。本地PTP-UDA首先對分(fēn)組的透明時鍾身行域進行修正,增加值爲該分(fēn)組進入FPGA後的延時t3-t2,然後開們再對分(fēn)組數進行解析,根據PTP協議要求進行後續處理那秒。
&銀市nbsp;二是分(fēn)組目的不是本地MAC,即該分(fēn就學)組需要被TSN交換機轉發。PTP-UDA不處理該分(fēn)組,直接将分站關(fēn)組送FAST流水線進行後續交換處理。設分(fēn)組到達輸出接口的P學通TP-UDO時間爲t4,則分(fēn)組呢風在交換機中(zhōng)的延時t4-t2将化空被累加到TC域中(zhōng)。
(2)同步計算快看關鍵時間點的獲取
&nb光草sp; 基于PTP的時間同步原理如下(xià)圖所示,時國藍間從設備通過與時間主設備的三種類型分(fēn)組的交互獲取四個樹白關鍵的時間點信息,T1,T2,T3和T4,并根據這些算房關鍵時間點信息計算自己時間與時間主設備時間的偏差off金很set,并根據這個偏差調整自己的時間計數器。
圖3 一(yī)次PTP協議時間同步的過程
&nbs玩來p; 時間從設備與時間主設備的交互并獲取四個關鍵時間雪她點的詳細方法如下(xià)表所示,時間點标記參見圖1。火坐
(3)全局時間的表示與修正
我(wǒ鄉知)(wǒ)們将在後續文章中(zhōng),對TSN的CQF轉發模型,動討以及PTP UDA、PTPUDO以及CFQ風家 UDO模塊的功能實現進行詳細介紹。
呢信 PTP主和PTP從設備的全局時間計數器t謝兵ime_cnt均在PTP-UDA内部維護,長度爲48比特。每隔8ns姐錢加1,因此計數器計數的時長超過200天,這對于TSN交換吧電原型系統來說已經足夠。
&樹子nbsp;TSN交換系統複位時,time_cnt置爲全0,并随時鍾自由增加。又年從設備在第一(yī)次接收到sync同步幀時,将自己的time爸海_cnt設置爲T1,後續同步過程使用off歌請set修正自己的time_cnt計數器。此外(wài),在每個時鍾同步為空周期内,每個TSN設備的time_cnt要與外(wài)圍時鍾域的時間進行一(站輛yī)次同步。
三、進一(yī)步讨論
&nbs得歌p;(1)端系統PTP處理的實現
&nb報樹sp; 在TSN網絡中(zhōng),時間主設備可以是志裡TSN交換機,也可以是具有高精度時間的終端設放制備。由于FAST架構的核心就是基于軟硬件協同的方式進行分(藍師fēn)組處理,FPGA OS内部已經嵌入DMA通道,實現與CPU軟件進生吧行通信,因此基于FAST擴展流水線的PTP協議處理可在拿方便的在網卡上實現,而且不需要任何軟件參與。
去上
(2)PTP話又同步頻(pín)率
 的照; 由于所有的PTP同步邏輯由FPGA硬件實現,不會給軟件增加黃麗開(kāi)銷,因此在規模有限的TSN網絡中(zhōng),樂街可以增加同步的頻(pín)度。根據上述分(f音唱ēn)析,當兩個節點的晶振精度都爲20ppm時,每秒時間偏差可達40us。若新草将同步間隔縮小(xiǎo)到1ms,則同步誤差可縮小(xiǎo)到40ns左右上算,可以滿足絕大(dà)多數TSN場景的需求