在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 電源與新能源 > 設(shè)計應(yīng)用 > 基于FPGA的高精度同步時鐘系統(tǒng)設(shè)計

            基于FPGA的高精度同步時鐘系統(tǒng)設(shè)計

            作者: 時間:2018-08-30 來源:網(wǎng)絡(luò) 收藏

            摘要: 介紹了精密時鐘同步協(xié)議(PTP)的原理。本文精簡了該協(xié)議,設(shè)計并實現(xiàn)了一種低成本、高精度的時鐘同步系統(tǒng)方案。該方案中,本地時鐘單元、時鐘協(xié)議模塊、發(fā)送緩沖、接收緩沖以及系統(tǒng)打時標(biāo)等功能都在中實現(xiàn)。經(jīng)過,該方案能夠?qū)崿F(xiàn)ns級同步精度。該方案成本低,并且易于擴(kuò)展,非常適合局域網(wǎng)絡(luò)時鐘同步的應(yīng)用領(lǐng)域。

            本文引用地址:http://www.biyoush.com/article/201808/388116.htm

            在很多大型物理實驗和工業(yè)應(yīng)用中,時鐘同步技術(shù)都扮演著舉足輕重的作用。比如在中國四川錦屏暗物質(zhì)探測實驗中,需要為多個獨立探測裝置提供相應(yīng)的時間信息,這些探測器包括中心探測器(HpGe)、液氬反符合探測器、實驗室外部宇宙線反符合探測器[1]。又比如在大亞灣中微子實驗中,需要為三個實驗廳的子探測器提供同步時鐘和時間戳,也需要為未來的長基線中微子振蕩實驗提供同步時鐘和時間戳[2]。

            為此,本文基于可編程邏輯器件,設(shè)計了一套高精度、低成本、易于擴(kuò)展的時間戳同步系統(tǒng)。

            1 PTP協(xié)議簡介

            PTP精密時鐘定時協(xié)議又稱為IEEE 1588協(xié)議。它的基本功能是利用基于時間戳的報文通信的方法,使得分布式網(wǎng)絡(luò)中的所有的時鐘都與特定的某個時鐘保持精確同步。IEEE 1588協(xié)議可以用軟件實現(xiàn),也可以用專門的硬件實現(xiàn)。很顯然,用硬件實現(xiàn)能達(dá)到更高的精度。本文中的同步系統(tǒng)就是基于純硬件實現(xiàn)的。

            IEEE 1588協(xié)議中定義了5種類型的傳輸報文[3]:同步報文(sync)、跟隨報文(follow_up)、延時請求報文(delay_req)、延時響應(yīng)報文(delay_resp)和管理報文(management)。其中前4種報文主要用于時間戳交換,具體的時間戳交換的過程示意圖如圖1所示。

            圖1 PTP協(xié)議同步過程示意圖

            如圖1所示,時間戳同步過程包括主節(jié)點和從節(jié)點,主節(jié)點和從節(jié)點都利用晶振維持本地時鐘。同步的目的是使從節(jié)點的本地時鐘的時間戳與主節(jié)點本地時鐘的時間戳達(dá)到相對同步。未同步時,從節(jié)點相對主節(jié)點有一個時間偏差offset。同步的過程能夠計算出這個偏差。

            主時鐘周期性地向從時鐘發(fā)送同步報文SYNC,這個報文中沒有任何有效數(shù)據(jù),但是當(dāng)SYNC發(fā)出時,主節(jié)點能夠記錄下來時間戳t1,當(dāng)從節(jié)點接收到SYNC,從節(jié)點能夠記錄下來時間戳t2。為了讓從節(jié)點也知道t1,稍后主節(jié)點向從節(jié)點發(fā)送跟隨報文FOLLOW_UP,這個報文中包含了t1這個有效數(shù)據(jù)。

            然后,為了計算主節(jié)點到從節(jié)點的延時,在從節(jié)點接收到FOLLOW_UP后一段時間,從節(jié)點向主節(jié)點發(fā)送一個DELAY_REQ報文。和SYNC類似,當(dāng)DELAY_REQ離開時得到時間戳t3,當(dāng)DELAY_REQ到達(dá)主節(jié)點時,主節(jié)點得到時間戳t4。一段時間后,主節(jié)點再向從節(jié)點發(fā)送DELAY_RESP報文,這個報文中包含了t4,從而從節(jié)點得到了4個時間戳t1~t4。

            有了以上4個時間戳之后,假設(shè)主節(jié)點到從節(jié)點與從節(jié)點到主節(jié)點傳輸和網(wǎng)絡(luò)延時不變,可以得到傳輸延時和時鐘偏差的計算方法:

            如果PTP主從鏈路對稱,即Dm2s=Ds2m=delay,則:

            由以上分析方法可知,PTP主從節(jié)點鏈路對稱與否會影響offset的計算,從而會影響時間戳的同步精度。

            另外,由于主節(jié)點和從節(jié)點需要用本地晶振維護(hù)本地時鐘。而隨著時間的積累,晶振存在頻率漂移,并且不同晶振的固有頻率也會有偏差,這兩個屬性都會影響時鐘同步的精度。

            為了實現(xiàn)高精度時間同步,設(shè)計同步系統(tǒng)時應(yīng)該同時考慮到主從節(jié)點鏈路的對稱性和晶振的特性。

            2 電子學(xué)設(shè)計

            時鐘同步系統(tǒng)的整體結(jié)構(gòu)設(shè)計如圖2所示。

            圖2 時鐘同步系統(tǒng)的硬件結(jié)構(gòu)圖

            本方案中主節(jié)點和從節(jié)點使用同一塊硬件電路,在設(shè)計的時候,硬件電路板上設(shè)計了一個跳線器,可以選擇一塊硬件電路是主節(jié)點或者從節(jié)點。為了保證主從節(jié)點的鏈路對稱, PCB電路板時鐘收發(fā)路徑以及PTP報文收發(fā)路徑的長度都應(yīng)該用蛇形線設(shè)計來保證長度一致。另外,為了消除晶振的頻率漂移以及頻率偏差帶來的影響,本方案中從節(jié)點不使用本地晶振,而是直接使用主節(jié)點傳輸來時鐘信號作為時間戳的時鐘,也就是說主節(jié)點和從節(jié)點使用了同源時鐘。

            雖然主從節(jié)點使用的本地clock是同源的,但是由于clock的傳輸路徑的差異,主從節(jié)點的clock是有相位差異的。這個相位差如果不考慮在設(shè)計方案中的話,會嚴(yán)重影響整個時鐘系統(tǒng)能夠?qū)崿F(xiàn)的同步精度。如圖3所示,如果系統(tǒng)中沒有考慮主從節(jié)點的本地clock的相位差,也就是圖中phase,那時鐘系統(tǒng)所能達(dá)到的同步精度最好也就是相位差的值。假設(shè),主從節(jié)點的周期T為100 ns,主從節(jié)點的相位差為60 ns,那說明同步系統(tǒng)所能達(dá)到的最高精度為60 ns。

            圖3 主從節(jié)點時鐘相位差測量的重要性示意圖

            為了進(jìn)一步提高時間戳同步的精度,必須設(shè)計相位測量模塊,消除主從時鐘相位差對時間戳的同步精度帶來的影響。所以,主節(jié)點中包括了相位鑒別芯片以及ADC芯片,用來精確測量主從節(jié)點時間戳的時鐘相位差。

            有了這個相位差測量模塊,就真的可以消除主從節(jié)點時間戳的時鐘相位差帶來的影響嗎?答案是肯定的。圖4為主從節(jié)點時鐘傳播示意圖,AD8302即為本文中所用的相位鑒別芯片。

            圖4 主從節(jié)點時鐘傳播示意圖

            我們已經(jīng)知道,為了使從節(jié)點與主節(jié)點的時間戳實現(xiàn)精確同步,最直接的方法就是算出盡量精確的offset值,也就是要得出盡量精確的t1~t4的值。

            圖4中,Clk1為主節(jié)點晶振時鐘,Clk2為從節(jié)點從主節(jié)點接收到的時鐘,由于有一段長的傳播路徑,因而Clk2相對Clk1會有一個相位差。為了在主節(jié)點測量相位差,Clk3是從節(jié)點將Clk2直接發(fā)送到主節(jié)點而得到的時鐘,因而Clk3相對于Clk2又會有一個相位差。具體Clk1~Clk3的示意圖如圖5所示。

            圖5 主從節(jié)點時鐘關(guān)系圖

            對于時間戳t1而言,t1指的是SYNC包從主節(jié)點發(fā)出的時刻,觸發(fā)時鐘為Clk1,而時間戳?xí)r鐘是主節(jié)點的系統(tǒng)時鐘Clk1,因而t1是精確的。對于時間戳t2而言,t2指的是SYNC包到達(dá)從節(jié)點的時刻,觸發(fā)時鐘為Clk2,而時間戳?xí)r鐘是從節(jié)點的系統(tǒng)時鐘Clk2,因而t2也是精確的。對于時間戳t3而言,t3指的是DELAY_REQ包從從節(jié)點觸發(fā)出的時刻,觸發(fā)時鐘為Clk2,而時間戳?xí)r鐘為從節(jié)點的系統(tǒng)時鐘Clk2,因而t3也是精確的。對于時間戳t4而言,t4指的是DELAY_REQ包到達(dá)主節(jié)點時的時刻,觸發(fā)時鐘為Clk3,而時間戳?xí)r鐘為主節(jié)點的系統(tǒng)時鐘Clk1,因而t4不是精確的,是有偏差的。由圖5的時鐘關(guān)系圖可知,精確的t4p應(yīng)該在t4之前:

            可見,相位差測量模塊在整個時間戳同步方案中取到了舉足輕重的作用。

            3 固件程序設(shè)計

            3.1 主節(jié)點固件設(shè)計

            主節(jié)點的固件結(jié)構(gòu)框圖如圖6所示,A/D控制模塊和相位測量模塊是用來控制幅相鑒別芯片和ADC芯片。發(fā)送緩沖的作用是將主節(jié)點時鐘同步協(xié)議中的通信報文以曼徹斯特編碼方式發(fā)送出去,接收緩沖的作用是從接收路徑中解碼出相應(yīng)的通信報文。本地時鐘模塊的作用就是維護(hù)一個本地時鐘。主節(jié)點時鐘同步協(xié)議的主要作用是控制報文的發(fā)送和接收。

            圖6 主節(jié)點固件結(jié)構(gòu)框圖

            圖7為主節(jié)點時鐘同步協(xié)議模塊的狀態(tài)機(jī)轉(zhuǎn)換圖。

            圖7 主節(jié)點同步協(xié)議模塊的狀態(tài)機(jī)轉(zhuǎn)換圖

            idle狀態(tài)下,當(dāng)檢測到pps信號的上升沿,則開始整個同步周期。首先,開始ADC的讀取操作,當(dāng)?shù)鹊紸D_ready=’1’,則說明ADC的數(shù)據(jù)已經(jīng)準(zhǔn)備好,然后進(jìn)行讀取保存即可。然后,進(jìn)入到sync狀態(tài),這個狀態(tài)下,主節(jié)點會向從節(jié)點發(fā)送SYNC同步包,之后模塊進(jìn)入sync_wait狀態(tài)。等一段固定的時間之后,模塊進(jìn)入follow狀態(tài),在這個狀態(tài)下,主節(jié)點會向從節(jié)點發(fā)送FOLLOW_UP同步包。之后模塊進(jìn)入after_follow_wait,等待一段固定的時間之后,模塊進(jìn)入delay_req_pre,這個狀態(tài)下,主節(jié)點會通知從節(jié)點可以發(fā)DELAY_REQ包了。之后,模塊等待DELAY_REQ包,如果很長時間都沒有等到DELAY_REQ包,即等待超時,則模塊返回idle狀態(tài);如果接收到了DELAY_REQ包,主節(jié)點就向從節(jié)點發(fā)送DELAY_RESP。最后,等一段時間后,模塊返回到idle狀態(tài)。

            3.2 從節(jié)點固件設(shè)計

            從節(jié)點固件的結(jié)構(gòu)框圖如圖8所示,相位部分計算模塊用來計算出前文說到的phase值,offset計算模塊的作用是用t1~t4和phase值計算出精確的offset值。從節(jié)點時鐘同步協(xié)議的主要作用是控制報文的發(fā)送和接收和更新本地時鐘。

            圖8 從節(jié)點固件結(jié)構(gòu)框圖

            圖9為從節(jié)點時鐘同步協(xié)議模塊的狀態(tài)機(jī)轉(zhuǎn)換圖。

            圖9 從節(jié)點時鐘同步協(xié)議模塊的狀態(tài)機(jī)轉(zhuǎn)換圖

            當(dāng)處在idle狀態(tài)時,從節(jié)點監(jiān)測接收到的數(shù)據(jù)流,直到監(jiān)測到sync包后立即進(jìn)入wait_follow狀態(tài)。在wait_follow狀態(tài),從節(jié)點同樣監(jiān)測接收的數(shù)據(jù)流,直到監(jiān)測到follow_up包后,立即進(jìn)入wait_pre狀態(tài),如果在這個狀態(tài)很久都沒有接收到follow_up包,將等待超時返回到idle狀態(tài)。同樣,wait_pre狀態(tài)下,直到監(jiān)測到delay_req_pre包后,跳入delay_req狀態(tài);如果等待超時,則返回idle狀態(tài)。delay_req狀態(tài)下,從節(jié)點向主節(jié)點發(fā)送delay_req包后立即進(jìn)入wait_delay_resp狀態(tài)。在wait_delay_resp狀態(tài)下,監(jiān)測到delay_resp包后,從節(jié)點立即進(jìn)入phase_cacul狀態(tài);如果長時間沒有監(jiān)測到delay_resp包,則返回idle狀態(tài)。在phase_cacul狀態(tài)下,開始相位差計算模塊后,立即進(jìn)入wait_phase_result狀態(tài)。在wait_phase_result狀態(tài)下,等到相位測量結(jié)果準(zhǔn)備好后,進(jìn)入delay_cacul狀態(tài);如果長時間,相位結(jié)果都沒有準(zhǔn)備好,或者相位結(jié)果錯誤,則返回idle狀態(tài)。在delay_cacul狀態(tài)下,開啟offset計算模塊后,進(jìn)入wait_result狀態(tài)。在wait_result狀態(tài)下,當(dāng)檢測到偏移測量結(jié)果準(zhǔn)備好信號后,進(jìn)入offset_update狀態(tài);否則返回到idle狀態(tài)。在offset_update狀態(tài)下,從節(jié)點時鐘同步協(xié)議向本地時鐘模塊發(fā)送偏移校正信號,從而更新從節(jié)點的本地時鐘,然后進(jìn)入idle狀態(tài)。

            4 結(jié)果

            實際環(huán)境包括一個主節(jié)點和一個從節(jié)點,之間用光纖連接。示波器用來觀察主節(jié)點和從節(jié)點輸出的pps信號。由于主從節(jié)點的時鐘相位不一致,示波器觀察到的就是這個相位差。pps上升沿到來時,主從節(jié)點時間戳通過串口模塊輸出給PC機(jī)。通過對比示波器測得的主從相位差以及pps上升沿主從時間戳的差值,就可以得出真實的時間戳同步精度。

            本次測試使用了三種不同長度(3 m、6 m、5.15 m)的光纖,然后通過觀察在不同長度光纖下的實驗結(jié)果,從而可以判斷時鐘同步系統(tǒng)所能達(dá)到的精度。主從節(jié)點相位差直方圖以及相應(yīng)的時間戳的差值直方圖略——編者注。

            由這三種不同長度光纖所得出的結(jié)果來看,本文實現(xiàn)的同步時鐘系統(tǒng)的時間戳同步精度可達(dá)1 ns。

            結(jié)語

            本方案實現(xiàn)的時鐘同步系統(tǒng),以IEEE 1588協(xié)議中基于時間戳的報文通信為基本原理,在純硬件電路()中實現(xiàn)。通過在主節(jié)點添加了相位差測試模塊,消除了主從節(jié)點相位不同的影響,最后實現(xiàn)的時間戳同步精度高達(dá)1ns。

            本文設(shè)計出來的時鐘同步系統(tǒng)所需成本低,同步精度非常高,非常適合應(yīng)用在需要高精度時間戳的場合。



            關(guān)鍵詞: 測試 FPGA

            評論


            相關(guān)推薦

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

            關(guān)閉