博客專欄

EEPW首頁 > 博客 > 以太網(wǎng)中時間同步的那點事

以太網(wǎng)中時間同步的那點事

發(fā)布人:FPGA小師兄 時間:2023-01-16 來源:工程師 發(fā)布文章

愛因斯坦說:時間是人類認(rèn)知的錯覺。

海德格爾說:時間是人類存在的核心。

對于普通人來講,時間就是大腦神經(jīng)元中記憶碎片構(gòu)建的意識。正是由于神經(jīng)元的記憶特征,才能在“現(xiàn)在”隨時的回憶“過去”。也就是說“過去”存在于“現(xiàn)在”之中,“過去”也就是“現(xiàn)在”,沒有“現(xiàn)在”也就沒有“過去”,更沒有所謂的“將來”。

然而,如何去衡量什么是“過去”“現(xiàn)在”和“將來”呢?

我們的祖先曾經(jīng)利用過圭表、日晷、銅壺滴漏和焚香計時的方法來記錄時間,從此有了時辰的概念;根據(jù)地球、月球和太陽相互轉(zhuǎn)動和自轉(zhuǎn)的周期產(chǎn)生了更長的年、月、日的時間概念。


今天,時間的衡量已經(jīng)到了更為精確的程度。我們使用石英振蕩器來產(chǎn)生更為精確的“秒”、“微秒”、“納秒”等更小的時間單位,甚至利用原子吸收或釋放能量時發(fā)出的電磁波來計時,即原子鐘。現(xiàn)在用在原子鐘里的元素有氫(Hydrogen)、銫(Cesium)、銣(rubidium)等。原子鐘的精度可以達(dá)到每2000萬年才誤差1秒。這為天文、航海、宇宙航行提供了強有力的保障。

如今,普通的FPGA開發(fā)板采用晶振來提供時間的計量,在某些場景下采用原子鐘實現(xiàn)更高精度更穩(wěn)定的時鐘源。

采用FPGA對時間進(jìn)行操作的方向主要包含兩個,一個是使用FPGA對時間間隔進(jìn)行測量;另外一個方向就是對不同系統(tǒng)的時間進(jìn)行同步。第一個方向可以實現(xiàn)幾皮秒甚至零點幾皮秒的測試精度(Wang H , Zhang M , Yao Q . A new realization of time-to-digital converters based on FPGA internal routing resources.[J]. IEEE Trans Ultrason Ferroelectr Freq Control, 2013, 60(9):1787-1795.),第二個方向則可以實現(xiàn)納秒級及亞納秒的同步。本文主要介紹FPGA實現(xiàn)的時間同步。

時間同步的重要性

時間同步,自古有之。閏年(Leap Year)就是為了彌補因人為歷法規(guī)定造成的年度天數(shù)與地球?qū)嶋H公轉(zhuǎn)周期的時間差而設(shè)立的。而穿越劇中的故事情節(jié),也必須有時間同步的概念后才能把事情敘述明白。

但在網(wǎng)絡(luò)中,尤其是5G時代,對時間同步的要求越來越高。目前5G通信網(wǎng)的時鐘同步發(fā)展正處于標(biāo)準(zhǔn)建議階段,5G通信網(wǎng)對時鐘源、以及時鐘傳遞、末級節(jié)點時鐘同步性能要求有顯著提升,部分節(jié)點同步性能要求可能達(dá)到10~30納秒水平,末級節(jié)點可能在百納秒級水平。時間同步,比較重要的一個環(huán)節(jié)就是要有一個時間的基準(zhǔn)源,GPS和北斗定位系統(tǒng),除了定位之外,還有一個超級重要的功能就是授時功能,就是提供一個大家都可以接收到的基準(zhǔn)時鐘(后續(xù)介紹的1588時鐘同步就必須要有一個基準(zhǔn)時鐘)。


另外,在航空航天和工業(yè)控制等領(lǐng)域,時間同步也起著越來越重要的作用。

數(shù)千架無人機(jī)組成的無人接表演需要時鐘同步


時間同步技術(shù)研究現(xiàn)狀

目前主流以太網(wǎng)時間同步技術(shù)主要基于NTP[1]、IEEE1588[2]、以及AS6802[3]三種時間同步協(xié)議來進(jìn)行實現(xiàn)。NTP協(xié)議作為最早提出的時間同步協(xié)議,被廣泛應(yīng)用于傳統(tǒng)以太網(wǎng)中,其同步精度可以達(dá)到毫秒級,但隨著實時網(wǎng)絡(luò)研究的興起,航天航空、工業(yè)控制等領(lǐng)域?qū)崟r性的需求不再滿足于毫秒級的同步精度。

IEEE標(biāo)準(zhǔn)委員會于2002年通過的IEEE1588高精度時間同步協(xié)議相比NTP協(xié)議,其時間同步精度可以達(dá)到亞微秒級,有效解決了實時網(wǎng)絡(luò)中時間同步精度不滿足的問題。自從IEEE1588時間同步協(xié)議提出以來,得到了廣泛的認(rèn)可,許多廠商更是基于IEEE1588開發(fā)出了各自的產(chǎn)品[4]。目前,More Than IP 公司和 Arasan公司相繼推出了支持IEEE1588協(xié)議的MAC模塊,可實現(xiàn)精度為50ns的時鐘同步[5][6];Hirschmann公司采用FPGA芯片實現(xiàn)IEEE1588時間同步的方式,其同步精度可達(dá)60ns[7]。IEEE 1588協(xié)議雖然可以提供很高的同步精度,但無法對于網(wǎng)絡(luò)中潛在的故障節(jié)點進(jìn)行容錯過濾,同時IEEE1588協(xié)議中定義的主從時間同步模型,其時間同步精度過于依賴主時鐘的穩(wěn)定性,存在一定的局限性。

2011年頒布的開放標(biāo)準(zhǔn)AS6802[8],它繼承了IEEE1588協(xié)議中的透明時鐘機(jī)制[9],同時在同步處理過程中,增加了一系列容錯機(jī)制[10],有效解決了IEEE 1588協(xié)議無法進(jìn)行容錯處理的缺陷;同時AS6802中引入了全局時間基準(zhǔn),網(wǎng)絡(luò)節(jié)點的時間同步以其本地時間與全局時間基準(zhǔn)的差值作為依據(jù),來進(jìn)行時間同步。因此同步精度[11]受網(wǎng)絡(luò)中故障節(jié)點的影響。由于AS6802協(xié)議提出時間相對較晚,目前其相應(yīng)的產(chǎn)品主要被TTTech公司壟斷,用于汽車、飛機(jī)、航天航空系統(tǒng)中關(guān)鍵控制信號的傳輸;而在國內(nèi),AS6802協(xié)議的研究主要在各大航天所、研究所與高校的預(yù)研項目中進(jìn)行開發(fā)研究,尚處于理論研究階段。2011年,北京航空航天大學(xué)劉晚春[12]等人在SAE AS6802標(biāo)準(zhǔn)形成之際,對AS6802協(xié)議的時間同步機(jī)制進(jìn)行了分析研究,并在特定的網(wǎng)絡(luò)場景下,對其進(jìn)行了仿真驗證,為本設(shè)計提供了重要的理論基礎(chǔ);2013年,電子科技大學(xué)郭愛英[14]提出了一種基于FPGA的AS6802協(xié)議的實現(xiàn)方案,并對其進(jìn)行了板級調(diào)試,但其在板級調(diào)試過程中,未能考慮實際情況下PHY側(cè)引入時延,且缺少TTE的網(wǎng)絡(luò)通信場景驗證,尚不能投入實際應(yīng)用之中;2017年,北京交通大學(xué)毛軼針對AS6802協(xié)議中定義的容錯機(jī)制展開研究,設(shè)計了一套時間觸發(fā)以太網(wǎng)容錯時鐘同步機(jī)制,并對其完成了仿真驗證[15],為本設(shè)計中容錯機(jī)制的引入,具有很好的借鑒作用。AS6802協(xié)議的高精度、高容錯特性使其很好的適用于汽車、航天航空等具有高實時性、高可靠性需求的領(lǐng)域[16],因此對于AS6802協(xié)議進(jìn)行研究,早日開發(fā)出能投入實際應(yīng)用的產(chǎn)品,是國內(nèi)學(xué)者急切需要解決的事情。

【參考文獻(xiàn)】

[1] 趙龍. 基于NTP協(xié)議的網(wǎng)絡(luò)授時研究[D].遼寧: 遼寧工程技術(shù)大學(xué), 2006.

[2] IEEE Standard for a Precision ClockSynchronization Protocol for Networked Measurement and Control Systems. 2002.

[3] SAETechnical Standard. SAE AS6802[S]. SAE International. 2011-11.

[4] 曹強.OTN網(wǎng)絡(luò)中基于IEEE1588的高精度時間同步的研究與實現(xiàn)[D].上海交通大學(xué),2015.

[5] 宋仕坤. 基于以太網(wǎng)MAC IP核的IEEE1588協(xié)議的設(shè)計與實現(xiàn)[D].西安電子科技大學(xué),2017.

[6] More Than IP Altera InternationalLimited 1588 Tri-Speed Ethernet MAC Core Product Brief. http://www.altera.com/products/ip/ampp/morethanip/documents/m-mtip-trimode1588macpbvl.0.pdf. 2006

[7] FastEthernet1588.ArasanChipSystemsInc.

http://arasan.com/products/wireline-interface/ethernet/fast-ethernet-ieee-1588/. 2010

[8] Precision ClockSynchronization-IEEE1588White Paper. Andreas Dreher,DirkMohl.

[9] 蘭杰,朱曉飛,陳亞,李峭.時間觸發(fā)以太網(wǎng)標(biāo)準(zhǔn)研究[J].航空標(biāo)準(zhǔn)化與質(zhì)量,2013(05):24-27+56.

[10] 高鵬飛. 時間觸發(fā)以太網(wǎng)交換機(jī)設(shè)計[D].西安電子科技大學(xué),2014.

[11] 蘭杰,熊華鋼,李峭.時間觸發(fā)以太網(wǎng)時鐘同步的容錯方法分析[J].計算機(jī)工程與設(shè)計,2015,36(01):11-16.

[12] 楊俊雄,徐亞軍,何鋒,劉志丹.時鐘同步精度對TTE實時性影響研究[J].電光與控制,2016,23(08):33-38.

[13] 劉晚春,李峭,何鋒,熊華鋼.時間觸發(fā)以太網(wǎng)同步及調(diào)度機(jī)制的研究[J].航空計算技術(shù),2011,41(04):122-127.

[14] 郭愛英.時間觸發(fā)以太網(wǎng)同步技術(shù)的研究與實現(xiàn)[D].電子科技大學(xué),2013.

[15] 毛軼.時間觸發(fā)以太網(wǎng)容錯時鐘同步機(jī)制的研究與硬件實現(xiàn)[D].北京交通大學(xué),2017.

[16] Steinbach T, Lim H T, Korf F, et al. Tomorrow's In-Car Interconnect? A Competitive Evaluation of IEEE 802.1 AVB and Time-Triggered Ethernet (AS6802)[C]// Vehicular Technology Conference. IEEE, 2012:1-5.

1588時間同步原理

如果不進(jìn)行時間同步,任由系統(tǒng)中的各個時鐘自由運行,由于計時器件所使用的晶振存在相位或者頻率漂移(例如受到溫度影響,器件老化等因素),那么結(jié)果可能如下圖虛線所示。


石英晶振精度的相對偏差常用PPM表示,其物理意義為精度偏差是標(biāo)稱頻率的百萬分之一,即1 ppm的晶振頻偏將會導(dǎo)致每秒鐘產(chǎn)生1微秒的計時誤差;而市面上常見的石英晶振,其溫度漂移可達(dá)到1 ppm/攝氏度甚至更高,若讓其自由運行,最終時間將會產(chǎn)生很大的偏差。時間同步的目的是定期修正自由時鐘的時間偏差,將其時間值約束在標(biāo)準(zhǔn)時鐘的附近,如圖中紅線所示。一個只包含主時鐘和從時鐘的PTP系統(tǒng)通過交互PTP信息來實現(xiàn)主從時鐘間的同步,其基本同步報文交互過程如下圖所示。




以上公式得以成立的基本前提是假設(shè)主從時鐘上下行鏈路延遲相等,即圖2中Sync和Delay_Req在傳輸線路上所消耗的時間是一樣的。但在實際應(yīng)用中,即使在主從時鐘直接相連的情況下,下行時延和上行時延在納秒這一量級上都是不對等的,如果中間跨越了其它網(wǎng)絡(luò)設(shè)備,這一不對等性將會擴(kuò)大到微秒甚至毫秒量級,對最終的同步精度產(chǎn)生很大的影響,所以IEEE 1588不能較好的適用于對非對稱性網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。在實際應(yīng)用中為了進(jìn)一步提高精度,需要盡可能的將打時間戳的位置選取到靠近物理連線的地方,并且需要采取適當(dāng)?shù)乃惴ɑ蛲獠垦a償?shù)姆绞絹頊p小這種雙向時延不對稱性帶來的同步誤差。

傳播時延的不對稱性是影響1588時鐘同步性能的主要因素。有研究表明,采用某種方法實現(xiàn)主從時鐘上下行鏈路延遲盡可能相等的前提下,能夠提升1588時鐘同步的精度及其同步的穩(wěn)定性。


在TSN的802.1AS協(xié)議及其REV協(xié)議中,明確定義了1588同步實現(xiàn)的具體方式和細(xì)節(jié),但因其有主時鐘的緣故,制定了相應(yīng)的BMCA(最佳主時鐘選擇)算法及冗余策略來實現(xiàn)其可靠性。

盡管目前對設(shè)備靈活性和智能化的需求已成為無線網(wǎng)絡(luò)研究的熱點,但有線網(wǎng)絡(luò)在具有傳感器和執(zhí)行器設(shè)備的實時網(wǎng)絡(luò)中仍占有不可替代的地位。通過時鐘同步系統(tǒng)將一個具有不同設(shè)備和協(xié)議的混合有線/無線通信系統(tǒng)集成在一起,將成為未來的主流。時間敏感網(wǎng)絡(luò)(TSN)服務(wù)等技術(shù)有助于實現(xiàn)混合系統(tǒng)中的實時數(shù)據(jù)交互和時間同步。但是,由于效率低下,對于處理小型數(shù)據(jù)以太網(wǎng)幀和耗時的轉(zhuǎn)發(fā)過程,限制了其在底層設(shè)備中的發(fā)展。因此,有線網(wǎng)絡(luò)的時間同步機(jī)制仍然是必要的。除了精度和準(zhǔn)確性,算法簡單、性能更穩(wěn)定、成本更低、通信資源占用率更低將是時間同步技術(shù)在有線網(wǎng)絡(luò)領(lǐng)域的突破方向。(需要注意的是,此處所提的TSN中時間同步技術(shù)并非特指1588時間同步技術(shù),而是指未來可能在TSN中應(yīng)用的時間同步技術(shù))

6802時間同步原理

相對于IEEE1588時間同步而言,AS6802協(xié)議在實現(xiàn)網(wǎng)絡(luò)中各個設(shè)備之間的時間同步時,并沒有選取某一個網(wǎng)絡(luò)設(shè)備的時間作為最佳主時間,而是采用了分布式的時間同步方法,并且AS6802協(xié)議有很強大的容錯機(jī)制(AS6802可以用嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)證明來證明其可靠性),保證了時間同步的穩(wěn)定可靠。

PCF業(yè)務(wù)是由AS6802協(xié)議規(guī)定的,用于時間同步的協(xié)議幀,其類型域為0x891d,其幀結(jié)構(gòu)如圖所示,PCF幀內(nèi)容說明如下表中內(nèi)容。


PCF幀與標(biāo)準(zhǔn)以太網(wǎng)幀完全兼容,其實現(xiàn)AS6802協(xié)議功能的字段都在以太網(wǎng)幀的payload域,在PCF幀中我們稱其為PCF域。PCF域的具體內(nèi)容見下圖。

其中,Integration_Cycle表示同步的整合周期,表示目前的時間是同步集群周期的第幾個基本周期。Membership_New表示PCF幀的成員向量,4字節(jié),每個端系統(tǒng)SM會對應(yīng)1比特,這樣支持的SM數(shù)目最多為32個。Sync_Priority表示PCF幀的優(yōu)先級,在AS6802同步中,CM不接收來自優(yōu)先級不同的SM的幀,SM和SC不受優(yōu)先級的影響,可以接收不同優(yōu)先級CM的PCF幀。Sync_Domain表示同步域,在同一個同步域下的AS6802設(shè)備之間才可以進(jìn)行PCF幀的交換。Type表示PCF幀的類型。PCF有三種類型的幀:冷啟動幀(CS),冷啟動應(yīng)答幀(CA)和同步幀(IN)。Transparent_Clock表示透明時鐘,這樣有利于同步的級聯(lián)與擴(kuò)展。

AS6802協(xié)議具體建立同步過程如下圖,具體步驟如下:

(1)TTE網(wǎng)絡(luò)中的設(shè)備啟動,進(jìn)入非同步狀態(tài);

(2)TTE網(wǎng)絡(luò)中SM是同步過程的發(fā)起者,首先向網(wǎng)絡(luò)中的CM發(fā)送CS幀;

(3)CM將收到的CS幀進(jìn)行固化后,向SM回復(fù)CS幀;

(4)SM對收到的CS幀同樣進(jìn)行固化處理,然后等待一個事先預(yù)設(shè)的固定時延即CS_offset后發(fā)送應(yīng)答CA幀;

(5)CM將SM發(fā)來的應(yīng)答CA幀進(jìn)行固化后,向SM回復(fù)CA幀;自身進(jìn)入等待IN幀狀態(tài),并啟動等待IN超時計數(shù),其上限值為事先設(shè)定的常量即Wait_IN_timeout;

(6)SM收到CM發(fā)來的CA幀后對其進(jìn)行固化處理,然后等待一個事先預(yù)設(shè)的固定時延即CA_offset后發(fā)送IN幀;

(7)CM在Wait_IN_timeout時間內(nèi)收到SM發(fā)來的IN幀,則進(jìn)入同步狀態(tài),并且校準(zhǔn)本地時間同時向SM回復(fù)IN幀,否則CM重新回到失步狀態(tài);

(8)SM收到CM發(fā)來的IN幀后,進(jìn)入同步狀態(tài)并且校準(zhǔn)本地時間,否則進(jìn)入失步狀態(tài)。

在不同廠家設(shè)備實現(xiàn)6802同步時,CA幀的接收窗口的問題往往是其中最關(guān)鍵的問題。

時間同步精度的測量

對于時間同步精度的測量,往往是采用秒脈沖的方式進(jìn)行。在不同的兩個系統(tǒng)板卡上各引出一條按照各自板卡上同步后的時鐘計量1秒時間出來的脈沖信號到同一個示波器上,通過對比相應(yīng)的秒脈沖時間偏差進(jìn)而得到同步時鐘的偏差。如下圖,筆者實驗室實現(xiàn)的千兆以太網(wǎng)模式下6802同步或者1588同步可以實現(xiàn)10ns的同步誤差,百兆以太網(wǎng)模式下則可以實現(xiàn)40ns左右的同步誤差。

百兆模式下時間同步精度40ns

千兆模式下時間同步精度10ns

1588同步和6802同步的對比

一、應(yīng)用場景

1、1588:多用于分布式網(wǎng)絡(luò)拓補結(jié)構(gòu)中,各網(wǎng)絡(luò)節(jié)點功能有主次之分,且網(wǎng)絡(luò)拓補環(huán)境較為穩(wěn)定,不經(jīng)常改變;

2、6802:多用于網(wǎng)絡(luò)節(jié)點功能相似的拓補結(jié)構(gòu)中,可適應(yīng)網(wǎng)絡(luò)拓補環(huán)境中經(jīng)常添加網(wǎng)絡(luò)節(jié)點或者移除網(wǎng)絡(luò)節(jié)點的情況。

二、實現(xiàn)方式

1、IEEE 1588 多采用軟、硬件結(jié)合的方式,實現(xiàn)高精度的時鐘同步。軟件部分實現(xiàn) BMC 算法和 PTP 其他同步算法,硬件則主要負(fù)責(zé)時間戳的精確獲取。

2、SAE AS6802協(xié)議定義了3種以太網(wǎng)封裝的PCF同步幀,可完全采用硬件實現(xiàn)。

三、影響同步精度因素

1、IEEE 1588打時間戳的精確度以及上下行時延的對稱性是直接影響時鐘同步的精度。

2、SAE AS6802協(xié)議透明時鐘的精確度直接影響時鐘同步的精度。

四、同步幀區(qū)別

1、IEEE1588 標(biāo)準(zhǔn)定義了10種PTP報文實現(xiàn)時鐘同步,包括事件報文和通用PTP報文。

2、SAE AS6802協(xié)議定義了3種以太網(wǎng)幀實現(xiàn)時鐘同步,包括CS、CA、IN幀。

五、瓶頸

1、AS6802 中定義的單個集群最多只能包括32個SM。所以對于節(jié)點數(shù)目龐大的集群,如果使用 AS6802 同步技術(shù)實現(xiàn)所有節(jié)點間的時鐘同步,需要把這個復(fù)雜集群劃分為多個邏輯子集群。這種劃分使得透明時鐘的計算不僅包括多個SC,而且可能跨越多個子集群,這種情況會導(dǎo)致集群中最大鏈路延遲的計算量大且透明時鐘的精確度低。

2、IEEE 1588標(biāo)準(zhǔn)是以傳輸線路的對稱性為前提進(jìn)行的延時測量,如果系統(tǒng)節(jié)點數(shù)目較多,規(guī)模龐大結(jié)構(gòu)復(fù)雜,網(wǎng)絡(luò)的對稱性就會變差,同步精度就會降低,為此IEEE 1588v2中定義了透明時鐘、延遲測量和非對稱性補償機(jī)制,有效減小了網(wǎng)絡(luò)非對稱性對時鐘同步精度的影響。當(dāng)網(wǎng)絡(luò)中節(jié)點數(shù)目較多時,最優(yōu)主時鐘算法的計算量較大,這不僅損耗較多的系統(tǒng)整體資源,而且要求主站具有很高的數(shù)據(jù)運算和處理能力。

全文完。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: 以太網(wǎng) 時間同步

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉