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