0731-84728105
15116127200
基于FAST的TSN交換(6)基于FPGA哥多的PTP時(shí)間同步實現v2
發布時(shí)間:2019-04-02
     時銀從(shí)間同步是TSN交換實現的前提。802.1AS規範定義了TS兵窗N網絡同步的方法,其基本思路還是利用IEEE 1588v2定義的PT笑件P協議,将網絡中所有的時(shí)間從設備與時(shí)間主設暗為備的時(shí)間進行同步。在基于FAST流水線的呢司TSN實現中,與PTP協議相關的邏輯主要有接收控制邏輯(RXC),輛家PTP-UDA模塊以及PTP-UDO模塊。這三個模塊密切協同習西實現PTP時(shí)間同步而不(bù)需要軟件參與。 高她
一、FAST-TSN-04的PTP實現模型
   是上;   在FAST-TSN家木-04的PTP協議實現模型如(rú)下圖所示,主要由R對妹xC、PTP-UDA和PTP-UDO模塊組成。其中RxC模塊位于分就FPGA OS内部,是FAST平台固有的邏輯,而PTP-UDA和PTP木妹-UDO是FAST擴展的流水線模塊,隻有需要支持PTP短也協議的流水線才需要嵌入這兩個模塊。

圖1 FAST-TSN-04的PTP實現模型 事喝
   (1)主要拿用功能模塊
     每個從接窗玩口接收的分組首先進入RxC模塊。RxC模塊首先不(b科熱ù)加區分的為(wèi)每個分組打上48比動事特接收時(shí)間戳。接收時(shí)間戳被填寫在分組的元數據中,随着南到分組一同進入FAST流水線處理。由于接口時(shí)鐘(z弟請hōng)頻率為(wèi)125MHz,因此時(shí)間戳的精度為(wèi)會動8ns。RxC模塊位于輸入緩存之前,因此輸出緩存的擁塞和調度機制不(bù)影地愛響接收時(shí)間戳标記的準确度。
     PT見金P-UDA模塊位于FAST流水線的開(k影亮āi)始,負責PTP協議的處理。根據軟件配置,PTP光坐-UDA可以工(gōng)作在時(shí)間主模式或是時(shí)麗行間從模式。PTP-UDA内部的狀态機控制整個時(shí)間大為同步過程,由于時(shí)間同步完全由硬件實現,因笑下此同步過程中不(bù)需要followup消息,主從之間隻交換syn金學c、delay_req和delay-resp三類消息,關于PT事我P消息詳細的交互流程以及offset的計算已有大(dà)量文章介紹,本文討窗不(bù)再贅述。
     若PT美裡P-UDA工(gōng)作在時(shí)間從模式數務,則每次同步都會(huì)産生一個本地時(來家shí)鐘(zhōng)與主時(shí)鐘(zhōng)的偏差o體那ffset,該offset用于修正本地的全局時(shí)間。老服PTP-UDO模塊位于輸出緩存之後,PTP-UDO模塊根據輸出分組元數據數說中協議标準類型(PST)來判斷該分組是否為(wèi)PT門火P的sync/delay-req/delay-resp分匠話組。
   &nbs美我p; 如(rú)果輸出分組是上述PTP分組如笑,則該分組在PTP協議頭中會(huì)攜帶透明時(shí)鐘(zhōng就嗎)(Transparent Clock)字段TC,PTP-UDO模塊會(h呢友uì)根據分組頭部攜帶的時(shí)間戳信息,當前時短現(shí)間信息計算分組從PTP-UDA發出經交換緩存和輸出緩存的延時(匠科shí),将該延時(shí)累計到透明時(shí)鐘(zhōn窗我g)字段中。如(rú)果分組不(bù)是上述離哥PTP分組,則PTP-UDO模塊将該分組發出而不(bù)做任何錯那修改。
   (2)多時(又南shí)鐘(zhōng)域時(shí)鐘(zhōng)同步
     在基于月吧FPGA的FAST千兆交換實現過程中,FPGA内部最多有2N+1個時動鐵(shí)鐘(zhōng)域,其中N為(wèi)接區內口數目。其中每個千兆接口都有一個獨立的接收時(shí)鐘(zhōng),該白湖時(shí)鐘(zhōng)頻率與通(tōng)信對火暗端的發送時(shí)鐘(zhōng)一緻。每個接口都有一個小畫發送時(shí)鐘(zhōng),負責将歌雜數據通(tōng)過GMII/RGMII接口發送給PHY芯片。同時(s刀下hí)還有一個獨立于接收和發送接口時(shí)鐘(zhōng)的核心時(shí女光)鐘(zhōng),作為(wèi)FAST流水線的工(gō黃吃ng)作時(shí)鐘(zhōng)。 器上
    &nbs舞問p;雖然FAST-TSN-04的接口時(shí)鐘(zhōng)和核心時(民不shí)鐘(zhōng)都額定為(wèi)125MHz術厭,但可能存在細微的差别。例如(rú)兩個20ppm的12上也5MHz晶振,設基于這兩個晶振的時(shí)間每秒偏差為(wèi)D,則:能懂 Dmax=8ns*(125M*(1+20ppm)-125M*(1-20pp自計m))=40us 因此FPGA内部不(bù)同時(shí)鐘(zh章黃ōng)域的時(shí)間信息之間也需要同步,片上跨時(shí)鐘(z遠謝hōng)域的時(shí)間同步有單信号同步和多信号同步等方式,這裡不海森(bù)再贅述。
二、PTP協議同步實現
   (1)時(shí)間信息媽劇的标記和處理
   &nbs化拍p; 基于RxC、PTP-UDA和PTP-UDO模塊的FA開機ST-TSN-04的PTP時(shí)間同步實現原理如(rú)下圖所匠朋示。每個sync/delay_req/delay-resp的協議分組都由PT數民P-UDA發出和接收。
   白大;  FAST-TSN-04需要發送PTP計我分組時(shí), PTP-UDA産生PTP分組,并将分組從師計PTP-UDA離開(kāi)的時(shí)間t0填寫到分組的元數據中,假厭長設該分組到達PTP-UDO時(shí)間為還麗(wèi)t1,則該分組在交換機内部的延時(shí)将會(huì)填寫到路錢分組的透明時(shí)鐘(zhōng)域TC中,随分組從網絡接口發出。 還藍

圖2 PTP協議分組處理流程
    信上  FAST-TSN-04接收PTP分組時(shí)首先将接收時(s場人hí)間戳t2填寫到分組元數據中,然後送到FAST懂還流水線的PTP-UDA模塊,設PTP-UDA模塊收到分組的時(sh火街í)間為(wèi)t3。後續的PTP分組處理有兩種情況。科習
   &nb雨新sp; 一是分組的目的MAC是本地接口MAC地址,則該道討分組會(huì)送到本地PTP-UDA處理。本地PTP-UDA首先嗎吃對分組的透明時(shí)鐘(zhōng)域進行費刀修正,增加值為(wèi)該分組進入FPGA後的延時(shí區還)t3-t2,然後再對分組數進行解析,根據PTP協議要求進理習行後續處理。
    討問; 二是分組目的不(bù)是本地MAC,即該分組需要草錢被TSN交換機轉發。PTP-UDA不(bù)處理該分組,直接将分組送FAST流山商水線進行後續交換處理。設分組到達輸出接口的PTP-UD雨要O時(shí)間為(wèi)t4,則分組在交換機睡山中的延時(shí)t4-t2将被累加到TC域中。
   (2)同步計算關鍵時(去的shí)間點的獲取
   拿動  基于PTP的時(s購藍hí)間同步原理如(rú)下圖所示,時(shí)間從設市樹備通(tōng)過與時(shí)間主設備的三種類型分組的交互獲取四個關鍵的時現遠(shí)間點信息,T1,T2,T3和T4,并影短根據這些關鍵時(shí)間點信息計算自己時(shí)間與時(shí)紙們間主設備時(shí)間的偏差offset,并根據現窗這個偏差調整自己的時(shí)間計數器(qì)。

圖3 一次PTP協議時(shí)間同步的過程 也對
    &nb裡有sp;時(shí)間從設備與時(shí)間主設備的交互并獲取四個關鍵時(員這shí)間點的詳細方法如(rú)下表所示,時(shí)間點标記參見事山圖1。
   (3)全局時些分(shí)間的表示與修正
   快照;  我們(men)将在後續文章中,對信作TSN的CQF轉發模型,以及PTP UDA、PTPUDO以及CFQ UDO模塊用腦的功能實現進行詳細介紹。
    &nb業校sp;PTP主和PTP從設備的全局時(shí)間計數器(qì)ti車相me_cnt均在PTP-UDA内部維護,長(ch話西áng)度為(wèi)48比特。每隔8ns加1,因此計數器(qì)計自個數的時(shí)長(cháng)超過200天,這對妹兒于TSN交換原型系統來說(shuō)已經足夠。森對
     TSN交換跳東系統複位時(shí),time_cnt置為(wèi)全0,并随時(s店也hí)鐘(zhōng)自由增加。從設備在第一次接收到短放sync同步幀時(shí),将自己的time_cnt設置為(wèi)T1,後續兒在同步過程使用offset修正自己的time_cnt計數器(員女qì)。此外,在每個時(shí)鐘(zhōng)廠店同步周期内,每個TSN設備的time_c熱些nt要與外圍時(shí)鐘(zhōng)域的時(shí)間進行一次喝草同步。
三、進一步讨論
   (1)事嗎端系統PTP處理的實現
  &nbs可影p;  在TSN網絡中,時(shí美時)間主設備可以是TSN交換機,也可以是具有高精度時(shí)間的終端器數設備。由于FAST架構的核心就是基于軟硬件協同的方式進行分組看師處理,FPGA OS内部已經嵌入DMA通(tōng)道河如,實現與CPU軟件進行通(tōng)信,因此基于FAST擴展流水線綠火的PTP協議處理可方便的在網卡上實現,而且不(bù)需要任何軟件參與。聽弟
   (2)PT區慢P同步頻率
    &n刀舊bsp;由于所有的PTP同步邏輯由FPGA硬件實現,不(bù懂不)會(huì)給軟件增加開(kāi)銷,因此在規模有行場限的TSN網絡中,可以增加同步的頻度。根據上述分草雜析,當兩個節點的晶振精度都為(wèi)20ppm時(shí),遠美每秒時(shí)間偏差可達40us。若将同步間隔縮小到1ms美明,則同步誤差可縮小到40ns左右,可以滿足絕大(dà)多數TSN場景的房通需求