王明,侯雷,王昕
?
便攜式NTP測試儀的設(shè)計與實現(xiàn)
王明1,2,3,侯雷1,2,4,王昕1,2,4
(1. 中國科學(xué)院 國家授時中心,西安 710600;2. 中國科學(xué)院 精密導(dǎo)航定位與定時技術(shù)重點實驗室,西安 710600;3. 中國科學(xué)院大學(xué),北京 100049;4.中國科學(xué)院 時間頻率基準(zhǔn)重點實驗室,西安 710600)
傳統(tǒng)的NTP測試儀體積大、功耗高,并且無法滿足遠(yuǎn)距離的測量,所以需要開發(fā)一款便攜式NTP測試儀,以能夠攜帶方便、運(yùn)行穩(wěn)定、適用于各種環(huán)境,同時能對NTP時間服務(wù)器的授時精度進(jìn)行有效檢測。根據(jù)系統(tǒng)功能及性能要求,系統(tǒng)方案采用ARM+FPGA的組合架構(gòu),利用嵌入式技術(shù),采用模塊化設(shè)計思想完成設(shè)計開發(fā)。實驗結(jié)果表明,基于嵌入式系統(tǒng)設(shè)計的便攜式NTP測試儀的測量精度可優(yōu)于0.1ms,滿足較高的工程需求。
便攜式;NTP測試儀;ARM;FPGA
隨著現(xiàn)代通信技術(shù)的快速發(fā)展,網(wǎng)絡(luò)在各個領(lǐng)域都有很重要的應(yīng)用,尤其是在某些特殊的場合,由于條件限制無法接入互聯(lián)網(wǎng)或為了實現(xiàn)信息保密,局域網(wǎng)內(nèi)的計算機(jī)無法通過互聯(lián)網(wǎng)的授時系統(tǒng)自動獲得準(zhǔn)確的UTC時間,但又需要對局域網(wǎng)內(nèi)的計算機(jī)進(jìn)行統(tǒng)一時間配置,這就需要用到NTP時間服務(wù)器,因此,NTP時間服務(wù)器的精確度決定了其所屬網(wǎng)絡(luò)的各個計算機(jī)的定時精確度。網(wǎng)絡(luò)上的時間傳遞,采用的是網(wǎng)絡(luò)時間協(xié)議NTP(network time protocol,NTP)[1],時間源來源于NTP時間服務(wù)器,其自身的時間源根據(jù)NTP協(xié)議中的時鐘參考標(biāo)識符來確定,時間源通常有原子鐘、GPS/北斗(BD)、長波/短波授時系統(tǒng)等[2]。
網(wǎng)絡(luò)授時技術(shù)已經(jīng)深入各個領(lǐng)域,并且不同環(huán)境中的NTP服務(wù)器同樣需要定期或不定期性能指標(biāo)的檢測和標(biāo)定。例如,在NTP時間服務(wù)器出廠時,為了提高其授時精度,必須對它進(jìn)行標(biāo)定,消除系統(tǒng)誤差;在對電力系統(tǒng)中的NTP服務(wù)器檢修時,需要對不同野外環(huán)境的NTP服務(wù)器進(jìn)行測量,確保電力系統(tǒng)的時間統(tǒng)一;在進(jìn)行聯(lián)合作戰(zhàn)指揮時,需要對不同戰(zhàn)場的NTP服務(wù)器進(jìn)行檢測,保證各指揮部之間時間的統(tǒng)一;在金融領(lǐng)域,需要對不同地區(qū)的NTP服務(wù)器進(jìn)行測量,保障各個交易系統(tǒng)的時間統(tǒng)一。
NTP時間服務(wù)器作為網(wǎng)絡(luò)時間的源頭,其性能指標(biāo)至關(guān)重要,新生產(chǎn)的NTP時間服務(wù)器必須經(jīng)過嚴(yán)格測試、標(biāo)定后才能投放市場,否則未經(jīng)測試的NTP時間服務(wù)器的授時精度會有偏差,另外,在某些環(huán)境中,NTP服務(wù)器需要進(jìn)行長時間的工作,一些外部或內(nèi)部的因素影響會造成服務(wù)器的性能指標(biāo)降低,從而影響授時精度。因此,為了避免授時誤差造成的潛在風(fēng)險,測試NTP時間服務(wù)器的授時精確度顯得非常迫切。NTP服務(wù)器分布非常廣泛,在對各種環(huán)境下的NTP時間服務(wù)器進(jìn)行檢測時,需要NTP網(wǎng)絡(luò)測試儀具備體積小、重量輕、功耗低等便于攜帶和長途運(yùn)輸?shù)奶攸c。因此,研制一款便攜式NTP測試儀勢在必行。
1.1 NTP授時原理
NTP授時方式原理采用的是Client與Server模型[3]。如圖1所示,其工作流程為:首先客戶機(jī)打包好NTP數(shù)據(jù)包后發(fā)送給服務(wù)器,該數(shù)據(jù)包中包含了離開客戶機(jī)的時間戳(以客戶機(jī)時間為參照),當(dāng)該數(shù)據(jù)包到達(dá)服務(wù)器時,記錄此時的時間戳為(以服務(wù)器時間為參照),接著處理完后記錄數(shù)據(jù)包離開服務(wù)器的時間戳(以服務(wù)器時間為參照),將這兩個時間戳分別填入數(shù)據(jù)包中,然后立刻把新的數(shù)據(jù)包返回給客戶機(jī),當(dāng)數(shù)據(jù)包到達(dá)客戶機(jī)時,記錄此時的時間戳為(以客戶機(jī)時間為參照),圖1中,為請求NTP服務(wù)器包傳送延時,為NTP回復(fù)包傳輸延時,為服務(wù)器和客戶端之間的時間偏差,為NTP包的往返時間。最后客戶機(jī)用上述4個時間參數(shù)計算兩個時間參數(shù):NTP數(shù)據(jù)包的往返延遲和服務(wù)器與客戶機(jī)之間的時鐘偏差。
圖1 NTP授時原理圖
NTP數(shù)據(jù)包格式如圖2所示。圖2中,Originate timestamp為客戶機(jī)請求服務(wù)器時的時間戳,即時間,Receive timestamp為數(shù)據(jù)包到達(dá)服務(wù)器的時間戳,即時間,Transmit timestamp為服務(wù)器返回給客戶機(jī)的時間戳,即時間。
LIVNModeStartPollPrec Root delay Root dispersion Reference identifier Reference timestamp(64) Originate timestamp(64) Receive timestamp(64) Transmit timestamp(64) Extension field Key/Algorithm identifier Message hash(64 or 128)
。 (2)
根據(jù)式(1),也可表示為
1.2 NTP測試儀系統(tǒng)方案
NTP測試儀基于上述的NTP授時原理,首先在測試儀內(nèi)部建立高精度的本地鐘,采用GPS、BD和其他定時模塊實現(xiàn)本地鐘的時間同步和鐘面校準(zhǔn),再將測試儀充當(dāng)客戶機(jī)角色與服務(wù)器進(jìn)行數(shù)據(jù)交互,這樣便可以計算出測試儀與服務(wù)器的鐘差,即為服務(wù)器的授時精度。本文設(shè)計的NTP測試儀利用GPS/BD作為時間源,采用高穩(wěn)定度的恒溫晶振作為系統(tǒng)的頻率源,通過FPGA可編程邏輯器件實現(xiàn)高精度的本地鐘。測量時,系統(tǒng)先獲得GPS/BD時間源時間后與FPGA本地鐘同步,然后,根據(jù)NTP時間服務(wù)器授時原理,便攜式NTP測試儀發(fā)送NTP協(xié)議包,請求NTP時間服務(wù)器,待服務(wù)器響應(yīng)后,返回重新打包好的NTP協(xié)議包,NTP測試儀根據(jù)返回來的協(xié)議包,提取相關(guān)的時間信息并計算,從而測量出NTP測試儀本地時間與NTP服務(wù)器時間之差,經(jīng)過長時間的數(shù)據(jù)采集和數(shù)據(jù)分析,從而得出NTP服務(wù)器的性能指標(biāo)[4]。
1.3 系統(tǒng)功能及性能
便攜式NTP測試儀的系統(tǒng)功能及性能如下:①系統(tǒng)功能要求:便攜式NTP測試儀的主要功能是測試NTP時間服務(wù)器的授時精度。輔助功能包括通過顯示屏、鍵盤等輸入輸出設(shè)備及接口實現(xiàn)人機(jī)交互功能;②系統(tǒng)接口要求:串口、網(wǎng)絡(luò)接口、USB接口等外部接口用于數(shù)據(jù)的輸入輸出;③系統(tǒng)性能要求:便攜式NTP測試儀的系統(tǒng)性能指標(biāo)為時差測量分辨率為1μs,時間精度優(yōu)于0.1ms。
硬件系統(tǒng)劃分為板級系統(tǒng)和芯片級系統(tǒng)。板級系統(tǒng)主要實現(xiàn)微處理器與各個外設(shè)模塊進(jìn)行數(shù)據(jù)通信。芯片級系統(tǒng)主要用FPGA內(nèi)部的邏輯門陣列實現(xiàn)本地鐘。
2.1 板級系統(tǒng)
板級系統(tǒng)如圖3所示,包括時間源子系統(tǒng)、本地時鐘單元、頻率源、CPU單元、網(wǎng)絡(luò)單元[5]、存儲單元、用戶操作單元和電源單元。
圖3 板級系統(tǒng)框圖
時間源子系統(tǒng)采用GPS/BD定時模塊,此模塊可以提供可見GPS/BD衛(wèi)星數(shù)量、衛(wèi)星狀態(tài)信息、經(jīng)緯度、海拔高度、運(yùn)動速度和UTC時間等數(shù)據(jù)信息。這里主要獲取衛(wèi)星狀態(tài)和UTC時間兩個數(shù)據(jù)信息。此外,需要接入GPS/BD模塊的1PPS接口到本地鐘接口,用來觸發(fā)本地鐘的微秒計數(shù)。
采用FPGA可編程邏輯器件編寫本地時鐘,內(nèi)部設(shè)計微秒級計數(shù)器、秒級計數(shù)器、寄存器等。通過穩(wěn)定的頻率源(恒溫晶振)驅(qū)動時鐘電路。寄存器主要用來模擬SRAM存儲器,可以隨機(jī)訪問各個保存有微秒數(shù)據(jù)和秒數(shù)據(jù)的存儲空間。
CPU子系統(tǒng)是系統(tǒng)的核心部分,它采用ARM微處理器,主要負(fù)責(zé)邏輯事物的管理。微處理器的主要功能如下:① 負(fù)責(zé)GPS/BD數(shù)據(jù)的解調(diào),獲取UTC時間,并將UTC時間通過FSMC接口同步到本地鐘;②負(fù)責(zé)打包NTP協(xié)議包,請求NTP時間服務(wù)器,獲取NTP服務(wù)器時間信息,計算NTP時間服務(wù)器與測試儀的時間差;③ 負(fù)責(zé)將測試的原始數(shù)據(jù)及計算結(jié)果保存到SD卡存儲器;④ 響應(yīng)人機(jī)交互時的信息處理。
用戶接口主要包含鍵盤、顯示屏、鼠標(biāo)等輸入輸出設(shè)備,方便使用者使用設(shè)備。
2.2 芯片級系統(tǒng)
芯片級系統(tǒng),通過硬件邏輯語言Verilog[6]完成本地鐘的設(shè)計。如圖4所示,F(xiàn)PGA主要由I/O接口模塊、微秒計數(shù)器、秒計數(shù)器和寄存器模塊構(gòu)成。FSMC總線接口負(fù)責(zé)FPGA內(nèi)部模塊與CPU通信。I/O接口由16位I/O口組成,可以同時傳送16位數(shù)據(jù),負(fù)責(zé)數(shù)據(jù)的輸入輸出。根據(jù)系統(tǒng)的性能需求,時間分辨率為1μs,F(xiàn)PGA內(nèi)部設(shè)計了微秒計數(shù)器,由外部恒溫晶振驅(qū)動微秒計數(shù)器計數(shù),從而提供1μs的時間分辨率。當(dāng)CPU解調(diào)出GPS/BD的UTC時間后再進(jìn)行同步本地鐘。寄存器分為4組16位數(shù)據(jù)寄存器,每兩個組成一個32位雙字,分別用來保存微秒時間和秒時間值。
圖4 芯片級系統(tǒng)框圖
2.3 具體硬件設(shè)計
系統(tǒng)詳細(xì)組成如圖5所示,主要包含以下部分:ARM核心微處理STM32F407ZG,F(xiàn)PGA/CPLD為協(xié)處理器,存儲電路包含SDRAM(隨機(jī)動態(tài)存儲器)和NandFlash,網(wǎng)絡(luò)部分為10M/100M自適應(yīng)網(wǎng)絡(luò)控制器和RJ45網(wǎng)絡(luò)接口模塊,人機(jī)交互主要包括鍵盤和LCD顯示屏,便攜式NTP時間服務(wù)器時間源采用GPS/BD雙模定時型接收機(jī)。
圖5 系統(tǒng)詳細(xì)組成框圖
系統(tǒng)軟件設(shè)計方面,主要進(jìn)行驅(qū)動和應(yīng)用程序開發(fā)。嵌入式系統(tǒng)設(shè)計,不僅要求高可靠性,而且對實時性要求很高。為此,本系統(tǒng)采用uC/OS II實時操作系統(tǒng)處理各個任務(wù)模塊。uC/OS II(micro control operation system two)是一個可以基于ROM運(yùn)行的、可裁減的、搶占式、實時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器[7]。
3.1 軟件功能模塊
根據(jù)系統(tǒng)的功能和需求,把系統(tǒng)分為以下4個任務(wù):人機(jī)交互管理任務(wù)、本地時鐘源任務(wù)、網(wǎng)絡(luò)任務(wù)和數(shù)據(jù)處理任務(wù),每個任務(wù)又可以劃分為更小子模塊,如圖6所示。
圖6 軟件功能框圖
人機(jī)交互任務(wù)模塊,主要是方便用戶通過鼠標(biāo)鍵盤操作系統(tǒng),并通過顯示屏直觀地顯示出來。系統(tǒng)啟動后,桌面會顯示測量對象、設(shè)置、幫助、桌面狀態(tài)等多個圖標(biāo)。用戶可根據(jù)測試需求進(jìn)入相應(yīng)的程序中進(jìn)行選擇和配置參數(shù)。桌面還會有一些狀態(tài)信息,如電池狀態(tài)、衛(wèi)星狀態(tài)、測試結(jié)果等反饋系統(tǒng)運(yùn)行狀態(tài)的信息。
本地時鐘任務(wù)模塊,主要負(fù)責(zé)GPS/BD時間源時間信息的獲取、本地時鐘的同步、計時等任務(wù)。首先,CPU通過串口獲取GPS/BD衛(wèi)星UTC時間,與此同時,衛(wèi)星模塊1PPS觸發(fā)FPGA微秒計數(shù)器清零計數(shù)。然后,待CPU提取出UTC時間后,將UTC 時間寫入FPGA秒計數(shù)器存儲空間,秒計數(shù)器開始計數(shù)。最后,系統(tǒng)開始本地鐘的計時。
網(wǎng)絡(luò)管理任務(wù)模塊,主要負(fù)責(zé)網(wǎng)絡(luò)通信任務(wù),請求NTP時間服務(wù)器,獲得有關(guān)時間戳,為后面的數(shù)據(jù)處理提供數(shù)據(jù)。
數(shù)據(jù)處理任務(wù)模塊,主要通過NTP協(xié)議算法計算NTP時間服務(wù)器與便攜式NTP測試系統(tǒng)的時間誤差信息,長時間測試,分析NTP時間服務(wù)器的準(zhǔn)確度,數(shù)據(jù)讀寫方面,主要是對原始數(shù)據(jù)和分析后的數(shù)據(jù)保存到內(nèi)部Flash或外部U盤上。
3.2 軟件工作流程
在測量NTP網(wǎng)絡(luò)時間服務(wù)器時,本系統(tǒng)作為客戶端獲取NTP網(wǎng)絡(luò)時間服務(wù)器時間信息,NTP協(xié)議采用傳輸層中的UDP協(xié)議傳輸[8]。NTP時間服務(wù)器測試工作流程如圖7所示。
圖7 NTP時間服務(wù)器測試工作流程
試驗?zāi)康氖菣z測已初步完善的便攜式NTP測試儀系統(tǒng)的性能指標(biāo)。
4.1 實驗設(shè)備
實驗平臺所需的硬件設(shè)備如表1所示。
表1 實驗硬件平臺
4.2 實驗方法
實驗采用比較法進(jìn)行,實驗原理基于NTP服務(wù)器授時的原理。實驗過程如下:采用Time-Acc007和所研制的便攜式NTP測試儀通過路由器連接后,對同一臺網(wǎng)絡(luò)時間服務(wù)器同時進(jìn)行長時間測試,比較分析兩臺測試儀所采集同一時間段內(nèi)的數(shù)據(jù)信息,觀察相同時段內(nèi)兩臺測試儀所測得的時鐘偏差的波動范圍,其中TimeAcc-007時間綜合測試儀作為參考,便攜式NTP測試儀是本次實驗的測試對象,圖8是實驗設(shè)備連接圖。
圖8 實驗設(shè)備連接圖
4.3 實驗結(jié)果
實驗時間為2015年11月4日13:20:00(UTC時間)至2015年11月5日09:40:20(UTC時間),利用便攜式NTP測試儀對網(wǎng)絡(luò)時間服務(wù)器的時間進(jìn)行測量,每1s測量1次,共采集73221個點。通過Matlab繪出的采樣點的離均差(偏離平均值大?。﹫D分別如圖9和10所示,橫坐標(biāo)表示采樣時間點,縱坐標(biāo)表示采樣值偏離平均值大小。
圖9 Time-Acc007離均差圖(平均值:918.87μs)
圖10 便攜式NTP測試儀離均差圖(平均值:648.86μs)
實驗統(tǒng)計結(jié)果如表2所示。
表2 Time-Acc007與便攜式NTP測試儀數(shù)據(jù)對比 μs
實驗結(jié)果表明,便攜式NTP測試儀的波動性比Time-Acc007的波動性小,平均值誤差比Time-Acc007小270.01μs,測量精度優(yōu)于0.1ms。
本文介紹了一種采用ARM+FPGA組合架構(gòu)開發(fā)的便攜式NTP測試儀的設(shè)計方案,通過分析目前實驗測試數(shù)據(jù)可以看出,系統(tǒng)的測量精度優(yōu)于0.1ms,穩(wěn)定性高,能夠滿足較高的工程需要。后續(xù)任務(wù)還需要對系統(tǒng)進(jìn)行多次實驗測試,標(biāo)定其自身的系統(tǒng)差。
[1] 陳敏. 基于NTP 協(xié)議的網(wǎng)絡(luò)時間同步系統(tǒng)的研究與實現(xiàn)[M]. 武漢: 華中科技大學(xué), 2005.
[2] 楊玉婷, 潘英俊. GPS/北斗授時系統(tǒng)軟件的設(shè)計與實現(xiàn)[D]. 重慶: 重慶大學(xué), 2013.
[3] 黃沛芳. 基于NTP的高精度時鐘同步系統(tǒng)實現(xiàn)[J]. 計算機(jī)技術(shù)與應(yīng)用, 2009, 35(7): 122-127.
[4] 孫磊, 邢建平. 基于ARM/GNSS的分布式NTP精度授時服務(wù)器設(shè)計與應(yīng)用[D]. 濟(jì)南: 山東大學(xué), 2009.
[5] 朱升林. 嵌入式網(wǎng)絡(luò)那些事: LwIP協(xié)議深度剖析與實戰(zhàn)演練[M]. 北京: 中國水利水電出版社, 2012.
[6] 江國強(qiáng). EDA技術(shù)與應(yīng)用[M]. 3版. 北京: 電子工業(yè)出版社, 2011.
[7] 劉波文, 孫巖. 嵌入式實時操作系統(tǒng)μCOS-2經(jīng)典實例: 基于STM32處理器[M]. 2版. 北京: 北京航空航天大學(xué)出版社, 2014.
[8] 華清遠(yuǎn)見嵌入式培訓(xùn)中心. 嵌入式Linux應(yīng)用程序開發(fā)標(biāo)準(zhǔn)教程[M]. 2版. 北京: 人民郵電出版社, 2009.
Design and implementation of portable NTP tester
WANG Ming1,2,3, HOU Lei1,2,4, WANG Xin1,2,4
(1. National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;2. Key Laboratory of Precision Navigation and Timing Technology, National Time Service Center, Chinese Academy of Sciences, Xi’an 710600, China;3. University of Chinese Academy of Sciences, Beijing 100049, China; 4. Key Laboratory of Time and Frequency Primary Standards, National Time Service Center,Chinese Academy of Sciences, Xi’an 710600, China)
Traditional NTP tester has disadvantages of big size and high power consumption, and can not satisfy the needs of long distancemeasuring, therefore it is needed to develop a portable tester which is easy to be carried, operates stably, can be applied to various environments, and can effectively detect the time-service precision of the NTP server. To meet the requirements of system function and performance, the architecture of ARM + FPGA is adopted for the system, the embedded technology is used in the design, and the idea of modular design is adopted to complete the design and development. The result shows that the measurement accuracy can be better than 0.1 ms for this portable NTP tester which is based on embedded system design, satisfying the higher engineering demand.
portable; NTP tester; ARM; FPGA
TP393
A
1674-0637(2017)01-0027-09
10.13875/j.issn.1674-0637.2017-01-0027-09
2016-05-18
王明,男,碩士,主要從事導(dǎo)航定位定時終端技術(shù)研究。