基于DP83640的精確時鐘同步協(xié)議實現(xiàn)
傳統(tǒng)測量系統(tǒng)使用集中式的體系結(jié)構(gòu),這種結(jié)構(gòu)把儀器與主計算機置于彼此相近的位置。這類系統(tǒng)會有定時約束要求,可通過編程和采用有確定反應(yīng)時間的通信技術(shù)滿足這一要求。今天的許多測量應(yīng)用對測試系統(tǒng)有日益嚴格的定時要求。此外,越來越多的應(yīng)用要求系統(tǒng)采用把設(shè)備布散于不同地點的的分布式體系結(jié)構(gòu)。標準網(wǎng)絡(luò)技術(shù)能很好適應(yīng)分布式系統(tǒng),但這些技術(shù)所使用的定時規(guī)范對測量應(yīng)用尚不夠嚴格,從而導(dǎo)致適用于網(wǎng)絡(luò)測量和控制系統(tǒng)的精密時鐘同步協(xié)議,即IEEE1588標準的開發(fā)。
LXI規(guī)范規(guī)定,對于A類或B類儀器需要實現(xiàn)IEEE1588精密時鐘同步。對IEEE1588精密時鐘同步的實現(xiàn),將采用硬件部分與協(xié)議部分分離、軟件部分與協(xié)議分離的PTP體系結(jié)構(gòu),這樣可以減少運行時對處理器的要求。這個協(xié)議只占用少量的網(wǎng)絡(luò)帶寬,卻可以達到微秒級的同步精度,在實驗室環(huán)境下,這個精度甚至可以提高到數(shù)十納秒。
LXI規(guī)范規(guī)定,對于A類或B類儀器需要實現(xiàn)IEEE1588精密時鐘同步。對IEEE1588精密時鐘同步的實現(xiàn),將采用硬件部分與協(xié)議部分分離、軟件部分與協(xié)議分離的PTP體系結(jié)構(gòu),這樣可以減少運行時對處理器的要求。這個協(xié)議只占用少量的網(wǎng)絡(luò)帶寬,卻可以達到微秒級的同步精度,在實驗室環(huán)境下,這個精度甚至可以提高到數(shù)十納秒。
IEEE1588同步協(xié)議
IEEE1588標準規(guī)定了一個將分散在測量和控制系統(tǒng)內(nèi)的分離節(jié)點上獨立運行的時鐘同步到一個高精度和準確度的時鐘上的協(xié)議。這些時鐘是在一個通信網(wǎng)絡(luò)中互相通信的。按這個基本格式,這個協(xié)議要形成樹形的管理,使系統(tǒng)內(nèi)的這些時鐘產(chǎn)生一個主從關(guān)系。在一個給定子網(wǎng)中包括多個節(jié)點,第一個節(jié)點都有一個時鐘,時鐘之間經(jīng)同網(wǎng)絡(luò)連接。IEEE1588規(guī)定了子網(wǎng)的劃分規(guī)則,它是按時鐘的級別劃分子網(wǎng),一個子網(wǎng)只有一個1級或2級時鐘。在一個子網(wǎng)中只有一個主時鐘,從時鐘從主時鐘得到時間,所有時鐘最終都是從一個稱為祖母時鐘那里得到它的時間。
系統(tǒng)中的一個時鐘可選為主時鐘,由主時鐘向從時鐘發(fā)送同步報文,通過報文傳遞時鐘信息。IEEE1588定義了四種同步報文Sync、Follow_up、Delay_request、Delay_response,和一組管理報文。
同步過程分為兩個階段:偏移測量階段和延遲測量階段。偏移測量階段用來修正主時鐘和從屬時鐘的時間差。在這個偏移修正過程中,主時鐘周期性發(fā)出一個確定的同步信息(Sync),一般為每兩秒一次,它包含了一個時間印章(time stamp),精確地描述了數(shù)據(jù)包發(fā)出的預(yù)計時間。如圖1所示,假設(shè)同步之前主時鐘的時間為Tm=1050s,而從屬時鐘的時間為Ts=1000s。
系統(tǒng)中的一個時鐘可選為主時鐘,由主時鐘向從時鐘發(fā)送同步報文,通過報文傳遞時鐘信息。IEEE1588定義了四種同步報文Sync、Follow_up、Delay_request、Delay_response,和一組管理報文。
同步過程分為兩個階段:偏移測量階段和延遲測量階段。偏移測量階段用來修正主時鐘和從屬時鐘的時間差。在這個偏移修正過程中,主時鐘周期性發(fā)出一個確定的同步信息(Sync),一般為每兩秒一次,它包含了一個時間印章(time stamp),精確地描述了數(shù)據(jù)包發(fā)出的預(yù)計時間。如圖1所示,假設(shè)同步之前主時鐘的時間為Tm=1050s,而從屬時鐘的時間為Ts=1000s。
主時鐘測量出發(fā)送的準確時間TM1,而從屬時鐘測量出接收的準確時間TS1。由于信息包含的是預(yù)計的發(fā)出時間而不是真實的發(fā)出時間,所以主時鐘在Sync信息發(fā)出后發(fā)出一個Follow_up信息,該信息加了一個時間印章,準確地記載了Sync信息的真實發(fā)出時間TM1。這樣一來,從屬時鐘使用Follow_up信息中的真實發(fā)出時間和接收方的真實接收時間,可以計算出從屬時鐘與主時鐘之間的偏移。
延遲測量階段用來測量網(wǎng)絡(luò)傳輸造成的延遲時間。使用IEEE1588定義的延遲請求信息包測量網(wǎng)絡(luò)的傳輸延時。如圖2所示,從屬時鐘在收到Sync信息后,在TS3時刻發(fā)出延遲請求信息包Delay_req,主時鐘收到Delay_req后在延遲響應(yīng)信息包印章出準確的接收時間TM3,并發(fā)送給從屬時鐘,因此從屬時鐘就可以非常準確地計算出網(wǎng)絡(luò)延時。
延遲測量階段用來測量網(wǎng)絡(luò)傳輸造成的延遲時間。使用IEEE1588定義的延遲請求信息包測量網(wǎng)絡(luò)的傳輸延時。如圖2所示,從屬時鐘在收到Sync信息后,在TS3時刻發(fā)出延遲請求信息包Delay_req,主時鐘收到Delay_req后在延遲響應(yīng)信息包印章出準確的接收時間TM3,并發(fā)送給從屬時鐘,因此從屬時鐘就可以非常準確地計算出網(wǎng)絡(luò)延時。
可以使用偏移測量和延遲測量獲得的數(shù)據(jù)直接修正從屬時鐘,但這樣估計的值存在較大的估計方差。為了獲得更佳的估計精度,需要對偏移測量和延遲測量獲得的數(shù)據(jù)進行信號處理。信號處理過程如圖3所示。首先對時間印章差值進行模式分類,分類的目的是為了獲得網(wǎng)絡(luò)隨機延遲條件下時間印章差值的幾個類聚,可以通過人工神經(jīng)網(wǎng)絡(luò)算法實現(xiàn)模式分類。對每個類中的數(shù)據(jù)進行方差計算,選取方差最小的類作為真實的網(wǎng)絡(luò)偏移數(shù)據(jù),再對該類中的數(shù)據(jù)進行最小二乘估計,用估計值修正從屬時鐘。
DP83640芯片
DP83640芯片是一款由美國國家半導(dǎo)體公司推出的集成IEEE1588精確時鐘協(xié)議硬件支持功能的以主網(wǎng)收發(fā)器。芯片內(nèi)置高精度IEEE1588時鐘,并設(shè)有由硬件執(zhí)行的時間標記功能,可為接收及發(fā)送信息包印上標記。
DP83640主要包括PHY以太網(wǎng)物理層接口、IEEE1588包檢測和處理模塊、IEEE1588控制和IEEE1588時鐘。
DP83640主要包括PHY以太網(wǎng)物理層接口、IEEE1588包檢測和處理模塊、IEEE1588控制和IEEE1588時鐘。
PHY以太網(wǎng)物理層接口
PHY以太網(wǎng)物理層接口向下連接以太網(wǎng)通信媒介,向上通過MII和MDIO與MAC控制器相連。
DP83640通過硬件支持提供以下三個嚴格時間基礎(chǔ):IEEE1588同步時鐘產(chǎn)生、時鐘同步包時間印章、通過GPIO的事件觸發(fā)和時間印章。
DP83640通過硬件支持提供以下三個嚴格時間基礎(chǔ):IEEE1588同步時鐘產(chǎn)生、時鐘同步包時間印章、通過GPIO的事件觸發(fā)和時間印章。
IEEE1588同步時鐘
DP83640為基于同步協(xié)議要求更新IEEE1588時鐘提供了幾種機制,這些方法包括:直接讀/寫、加/減調(diào)整、頻率調(diào)整、臨時頻率控制。
時鐘由以下域構(gòu)成:秒(32位),納秒(30位),亞納秒 (單位是2-32ns)。時間值的直接設(shè)置可以通過設(shè)定一個新的時間值完成,以納秒為單位的步進調(diào)整值可以加到當前值,調(diào)整值可以是正的或負的。
通過編程一個速率調(diào)整值可以使時鐘以調(diào)整過的頻率操作。通過包括一個速率調(diào)整持續(xù)時間,時鐘還可以被編程執(zhí)行臨時調(diào)整頻率值。速率調(diào)整允許在每參考時鐘周期以2-32ns量級進行校正。頻率調(diào)整允許時鐘修正時間累計偏差,避免由時間值步進調(diào)整引起的任何潛在副作用。
用于更新時鐘值的方法可能依賴于時鐘值的不同而異。比如,在起初開始嘗試同步時,時鐘可能相差很遠,因此需要采用步進調(diào)整或直接設(shè)置時間,以后當時鐘非常接近時,臨時速率調(diào)整方法可能是最佳選擇。
IEEE1588時鐘輸出:DP83640提供一個同步時鐘信號給外部設(shè)備使用。輸出時鐘信號可以是250MHz除以N之后的任意頻率,N從2到255。提供頻率從125HMz到980.4KHz。
IEEE1588時鐘輸入:IEEE1588PTP邏輯依靠一個由內(nèi)部相位發(fā)生模塊(PGM)產(chǎn)生的125MHz名義參考時鐘操作。但是也可用選擇使用PGM時鐘的分頻,或者使用一個不超過125MHz的外部參考時鐘。
時鐘由以下域構(gòu)成:秒(32位),納秒(30位),亞納秒 (單位是2-32ns)。時間值的直接設(shè)置可以通過設(shè)定一個新的時間值完成,以納秒為單位的步進調(diào)整值可以加到當前值,調(diào)整值可以是正的或負的。
通過編程一個速率調(diào)整值可以使時鐘以調(diào)整過的頻率操作。通過包括一個速率調(diào)整持續(xù)時間,時鐘還可以被編程執(zhí)行臨時調(diào)整頻率值。速率調(diào)整允許在每參考時鐘周期以2-32ns量級進行校正。頻率調(diào)整允許時鐘修正時間累計偏差,避免由時間值步進調(diào)整引起的任何潛在副作用。
用于更新時鐘值的方法可能依賴于時鐘值的不同而異。比如,在起初開始嘗試同步時,時鐘可能相差很遠,因此需要采用步進調(diào)整或直接設(shè)置時間,以后當時鐘非常接近時,臨時速率調(diào)整方法可能是最佳選擇。
IEEE1588時鐘輸出:DP83640提供一個同步時鐘信號給外部設(shè)備使用。輸出時鐘信號可以是250MHz除以N之后的任意頻率,N從2到255。提供頻率從125HMz到980.4KHz。
IEEE1588時鐘輸入:IEEE1588PTP邏輯依靠一個由內(nèi)部相位發(fā)生模塊(PGM)產(chǎn)生的125MHz名義參考時鐘操作。但是也可用選擇使用PGM時鐘的分頻,或者使用一個不超過125MHz的外部參考時鐘。
包時間印章
IEEE1588發(fā)送包解析器和時間印章:IEEE1588發(fā)送解析器監(jiān)視發(fā)送包數(shù)據(jù)以檢測IEEE1588 V1和V2事件消息。發(fā)送解析器能夠檢測直接在Layer2層傳輸?shù)囊蕴W(wǎng)數(shù)據(jù)包以及UDP/IPv4和UDP/IPv6數(shù)據(jù)包PTP事件消息。當檢測到PTP事件消息時,器件將捕獲發(fā)送時間印章并且提供給軟件。因為軟件知道包發(fā)送的順序,所以只記錄時間印章。器件可以緩存4個時間印章。
IEEE1588接收包解析器和時間印章:IEEE1588接收解析器監(jiān)視接收包數(shù)據(jù)以檢測IEEE1588 V1和V2事件消息。接收解析器能夠檢測直接在Layer2層傳輸?shù)囊蕴W(wǎng)數(shù)據(jù)包以及UDP/IPv4和UDP/IPv6數(shù)據(jù)包PTP事件消息。當檢測到PTP事件消息時,器件將捕獲接收時間印章并且提供給軟件。除時間印章以外,器件還將記錄16位的序列號,4位的消息類型,而且為PTP事件消息的20-29字節(jié)生成一個12位的復(fù)述值。器件可以緩存4個時間印章。當一個接收時間印章準備好以后可以產(chǎn)生一個中斷。
接收時間印章插入:DP836400能夠通過在接收到的數(shù)據(jù)包中插入時間印章遞送時間印章給軟件。這允許使用一種簡單的方法遞送數(shù)據(jù)包給軟件而不需要匹配時間印章到正確的數(shù)據(jù)包。這種方法免去了通過串行管理接口(SMI)讀取接收時間印章的必要。
IEEE1588接收包解析器和時間印章:IEEE1588接收解析器監(jiān)視接收包數(shù)據(jù)以檢測IEEE1588 V1和V2事件消息。接收解析器能夠檢測直接在Layer2層傳輸?shù)囊蕴W(wǎng)數(shù)據(jù)包以及UDP/IPv4和UDP/IPv6數(shù)據(jù)包PTP事件消息。當檢測到PTP事件消息時,器件將捕獲接收時間印章并且提供給軟件。除時間印章以外,器件還將記錄16位的序列號,4位的消息類型,而且為PTP事件消息的20-29字節(jié)生成一個12位的復(fù)述值。器件可以緩存4個時間印章。當一個接收時間印章準備好以后可以產(chǎn)生一個中斷。
接收時間印章插入:DP836400能夠通過在接收到的數(shù)據(jù)包中插入時間印章遞送時間印章給軟件。這允許使用一種簡單的方法遞送數(shù)據(jù)包給軟件而不需要匹配時間印章到正確的數(shù)據(jù)包。這種方法免去了通過串行管理接口(SMI)讀取接收時間印章的必要。
DP83640內(nèi)部寄存器
DP83640內(nèi)部寄存器與DM9000等網(wǎng)絡(luò)接口芯片寄存器不同之處,主要在物理層控制狀態(tài)寄存器中,關(guān)于頁寄存器的定義(14H-1FH將頁寄存器分成0-6頁):0頁為物理層擴展寄存器,1頁為測試寄存器,2頁為鏈接診斷寄存器,3頁為保留,4頁為PTP1588基本寄存器,5頁和6頁都是PTP1588配置寄存器。
基于DP83640的1588實現(xiàn)
由于DP83640提供了底層時間印章的捕獲功能,1588協(xié)議實現(xiàn)的工作將主要集中在軟件上。
主時鐘節(jié)點將執(zhí)行下面過程:a.1在每個時間間隔(默認2秒),讀取當前時間值,根據(jù)1588協(xié)議規(guī)定,構(gòu)建Sync報文;a.2發(fā)送Sync報文;a.3從83640寄存器中獲得Sync報文發(fā)送的準確時間,構(gòu)建Follow_up報文,并發(fā)送;b.在任意時刻,監(jiān)聽Delay_req消息,一旦收到,構(gòu)建Delay_resp報文,并發(fā)送。
從時鐘節(jié)點將執(zhí)行下面過程:a.1監(jiān)聽來自主時鐘節(jié)點的Sync消息;a.2監(jiān)聽來自主時鐘節(jié)點的Follow_up消息;a.3進行偏移測量計算,設(shè)置本地時鐘值;b.1根據(jù)1588標準產(chǎn)生發(fā)送Delay_req報文的時間,并在此時間構(gòu)建Delay_req報文并發(fā)送;b.2根據(jù)Delay_resp中的時間印章,計算延遲時間,修正本地時鐘值。c.多次獲取時間差值樣本后,用模式分類方式,估計本地時鐘值并對其修正。
主時鐘節(jié)點將執(zhí)行下面過程:a.1在每個時間間隔(默認2秒),讀取當前時間值,根據(jù)1588協(xié)議規(guī)定,構(gòu)建Sync報文;a.2發(fā)送Sync報文;a.3從83640寄存器中獲得Sync報文發(fā)送的準確時間,構(gòu)建Follow_up報文,并發(fā)送;b.在任意時刻,監(jiān)聽Delay_req消息,一旦收到,構(gòu)建Delay_resp報文,并發(fā)送。
從時鐘節(jié)點將執(zhí)行下面過程:a.1監(jiān)聽來自主時鐘節(jié)點的Sync消息;a.2監(jiān)聽來自主時鐘節(jié)點的Follow_up消息;a.3進行偏移測量計算,設(shè)置本地時鐘值;b.1根據(jù)1588標準產(chǎn)生發(fā)送Delay_req報文的時間,并在此時間構(gòu)建Delay_req報文并發(fā)送;b.2根據(jù)Delay_resp中的時間印章,計算延遲時間,修正本地時鐘值。c.多次獲取時間差值樣本后,用模式分類方式,估計本地時鐘值并對其修正。
隨著LXI總線技術(shù)越來越多的應(yīng)用到測試領(lǐng)域中,解決分布式測量中同步總是的1588協(xié)議也越來越受到人們的關(guān)注。DP83640在芯片物理層之內(nèi)集成了IEEE1588高精度時間協(xié)議,為LXI B類及A類儀器的設(shè)計者們提供了一個方便的平臺。這種采用“COTS”產(chǎn)品的設(shè)計方式降低了設(shè)計成本,縮短了周期,也將為更多的人所喜聞樂見。
北京航天測控技術(shù)開發(fā)公司位于北京石景山產(chǎn)業(yè)園區(qū),是中國航天科工測控中心、武器裝備測試與綜合保障技術(shù)中心,國防科技工業(yè)自動化測試技術(shù)研究應(yīng)用中心,主要業(yè)務(wù)為軍工領(lǐng)域測控裝備和維修保障信息化裝備研發(fā)生產(chǎn)、導(dǎo)彈通用測試平臺、系統(tǒng)集成、工業(yè)控制、基礎(chǔ)測試測量儀器產(chǎn)品和軟件與信息化產(chǎn)品。公司在以武器裝備測試與綜合保障技術(shù)為代表的測控領(lǐng)域,取得了突出成績,產(chǎn)品及服務(wù)覆蓋部隊、航天、航空、兵器、核工業(yè)、船舶、電子等軍用領(lǐng)域和民航飛機、石油、汽車、化工、電力、鐵路等民用領(lǐng)域。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。