文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.180456
中文引用格式: 李永剛,李欣泉,郭力兵,等. 麒麟操作系統平臺軟時統同步方法研究[J].電子技術應用,2018,44(9):129-133.
英文引用格式: Li Yonggang,Li Xinquan,Guo Libing,et al. Research of software time synchronization project on Kylin operating system[J]. Application of Electronic Technique,2018,44(9):129-133.
0 引言
常規采用網絡定時協議主要有網絡定時協議(Network Time Protocol,NTP)和基于IEEE 1588的網絡測量和控制系統的精密時鐘同步協議標準(Precision Time Protocol,PTP)[1]。NTP網絡時間同步方式由于精度僅能達到10 ms量級,在很多系統及設備上難以實現協同工作以及目標的高精度測量與控制[2]。PTP協議采用物理層時間標簽和邊界時鐘等技術在IP/Ethernet架構的網絡上能夠實現亞微秒級的時間同步,理論精度比NTP精確10 000倍[3]。
航天測控系統國產化步伐加快,中心計算機系統全面實現國產化。目前中心機時間統一系統屬于系統故障單點環節,應急切換耗時較長,遠遠不能滿足任務需求,并且一直未找到有效的應急方案來解決時統熱備的問題。麒麟操作系統平臺軟件時統基于IEEE 1588標準的PTP時間同步協議完成系統內各節點的授時與時間同步[4-5],充分利用現有環境中硬件的已有特性,避免了硬件架構的大幅變動,同時減少了硬件采購成本。另一方面,軟件時統采用麒麟操作系統的高精度定時器機制實現硬件時統的脈沖信號與定時器功能,保證精度的同時提高了靈活性。
1 軟時統同步方法設計
1.1 系統拓撲結構
軟件時統基于IEEE 1588標準的PTP時間同步協議完成系統內各節點的授時與時間同步,充分利用現有環境中硬件的已有特性,避免了硬件架構的大幅變動,同時減少了硬件采購成本。另一方面,軟件時統利用操作系統的時間中斷機制實現脈沖信號與定時器功能,保證精度的同時提高了靈活性。拓撲結構如圖1所示。
(1)B碼機
B碼機接收上層時鐘源的時間同步信息,并分發到各B碼終端。且B碼機支持時間信息的設置,從而支持“跳時”等功能。
(2)PTP時鐘服務器
PTP時鐘服務器在B碼傳輸系統中作為B碼終端,接收并解算B碼時間信息。同時,在PTP域中,PTP時鐘服務器還作為PTP主時鐘,解算后的B碼時間信息會被設置到PTP主時鐘上,進而通過PTP邊界時鐘在PTP域中傳遞并同步。
(3)PTP交換機
PTP交換機為支持IEEE 1588標準的以太網交換機。PTP交換機作為PTP域中的邊界時鐘(BC),很大程度減少了以太網幀交換的不確定性對授時精度的影響。PTP交換機處理PTP時鐘服務器的PTP幀后發送給各終端節點,從而實現各節點時間的同步。
(4)終端節點
終端節點為業務應用的工作平臺,其配有支持PTP協議的網卡和PTP服務程序,且操作系統內核要求為實時內核。在PTP域中,終端節點作為從時鐘,接收域中的時鐘信息并同步。同時,終端節點的操作系統為應用提供定時器和脈沖信號功能,從而保證任務準確、同步執行。此外,終端節點基于網卡時鐘,具備一定的守時能力。
1.2 軟時統架構
軟件時統部署于終端節點上,實現PTP協議棧,以及PTP從時鐘管理、脈沖信號和定時器等功能,主要模塊如圖2所示。
(1)軟時統服務程序
軟時統的核外管理程序,負責軟時統各模塊的加載以及PTP服務的配置和管理。
(2)定時器接口
提供基于內核高精度時鐘的定時器調用API,支持一次定時功能。
(3)脈沖信號接口
提供可編程的脈沖信號調用API。
(4)時間信息接口
提供同步時鐘信息調用API。
(5)脈沖信號模塊
基于操作系統高精度時鐘實現可編程的脈沖信號觸發功能,支持需求所述的多種脈沖信號頻率。
(6)PTP時鐘模塊
基于網卡設備的硬件時鐘,實現守時以及網卡時鐘的讀取與設置功能。
2 軟時統同步測試驗證
全面測試基于PTP協議的軟時統的時間同步性能,主要包括脈沖中斷信號(Clock)觸發時延(Delay)和授時精度偏差(Offset)兩部分內容。在進行授時精度偏差(Offset)的測試時,為使數據更具說服力,需要測試其與主時鐘之間的偏差,但由于主時鐘到網卡的偏差無法通過測試軟件來測試,故引入了PTP時間同步板卡來作為橋梁和基準,即通過分別測試PTP時間同步板卡與主時鐘、網卡與PTP時間同步板卡之間的偏差,進而計算出網卡與主時鐘之間的偏差。
2.1 同步測試方法
基于PTP協議的軟時統時間同步性能測試時,需采用高精度主時鐘即PTP時間服務器、基于PCIe接口的PTP高精度時間同步板卡和時間測試儀。高精度主時鐘即PTP時間服務器的支持北斗/GPS/IRIG-B/PTP/地面等多種方式的輸入信號,可選、支持軟件配置。具備16路(選用一塊插件)或32路(選用兩塊插件)B碼時間信號輸出接口;同時標配2路物理上完全隔離的PTP時間信號輸出接口,通過千兆以太網交換機或PTP交換機可擴展支持1 000個以上客戶端。
基于PCIe接口的PTP高精度時間同步板卡,通過PCIe接口直接為服務器授時。支持IEEE 1588-2008授時協議。通過內存I/O映射和專有操作系統時間同步算法,實現業界領先的應用程序授時精度;應用程序可以通過訪問內存方式每秒讀取100萬次以上,讀取的時間精度優于600 ns。時間同步性能測試方案如圖3所示。
2.2 軟時統測試結果分析
2.2.1 軟時統同步測試
設計對比PTP網卡和PTP板卡時間的測試程序,先獲取網卡時間t1,再獲取PCIe PTP板卡時間t2,再獲取網卡時間t3。分別計算網卡和板卡的差值△2=t3-t2及本次取板卡和網卡時間所需要的時間△3=t3-t1。
PCIe PTP板卡與PTP網卡時間偏差測試結果如圖4~圖6所示。
從結果來看,測試中會可能出現△2大于10 μs的情況。為了更好地觀察結果,可將對時的結果排序,只顯示△2大于10 μs后的△2和△3以及△3-△2的結果,如圖7、圖8所示。
從圖4~圖6可以看到,網卡和PCIe PTP板卡的偏差有時會超過20 μs,但此時軟件執行耗時也會很大。為了更清晰地看到軟件引入的誤差與網卡和PCIe PTP板卡之間對時偏差的關聯,按軟件執行時間對測試結果進行排序,并得到圖9~圖11。
從圖9~圖11可以看到,在軟件執行時間為4 μs時,網卡和PCIe PTP板卡之間的偏差在2 μs左右。
綜上,用PCIe PTP板卡評測網卡對時,雖然引入了一定的誤差,但是網卡對PCIe PTP板卡的時間最大偏差是2 μs左右,加上PCIe PTP板卡對網卡的1 μs偏差,那么網卡對GPS的最大偏差也就在3 μs左右,低于對時指標要求的20 μs,符合軟時統指標對服務器高精度時間同步的需求。
2.2.2 軟時統時間中斷測試
采用測試程序,輸出軟時統1 s、16 ms、20 ms、50 ms、256 ms時間中斷延遲情況,數據統計結果如圖12所示,16 ms、20 ms、50 ms、256 ms、1 s中斷延遲分別如圖13、圖14、圖15、圖16、圖17所示。
圖12中,第二行表示最大延遲,單位是微秒;第三行表示測試的次數。從表中可以看到,1 Hz的定時器測試了84 330次,最大延遲是242 μs。
軟時統定時器整體測試結果表明,軟時統的1 s定時器最大延遲242 μs,16 μs定時器最大延遲239 μs,20 ms定時器最大延遲200 μs,50 ms定時器最大延遲298 μs,256 ms定時器最大延遲160 μs。從軟時統各定時器的測試結果來看,99.9%的延遲都在100 μs以內。而硬時統沒有各單項定時器測試的所有延遲數據,能看到10 Hz以上的定時器測試最大延遲都超過了1 ms,超過了指標要求的1 ms的最大延遲需求。
3 結論
通過麒麟操作系統平臺軟時統關鍵技術研究,可以驗證國產平臺下軟件時統關鍵技術的可行性,滿足核心軟硬件國產化自主可控的總體需求;軟件時統可部署運行于測量船中心機環境,通過軟件技術實現硬件時統板卡的功能,既能解決測量船中心機時統熱備的問題,又能靈活便捷部署于軟件開發測試平臺機房,滿足軟件開發、維護和測試的需求。
本文首次提出將當前主流的軟件時統關鍵技術引入國產平臺時統建設中,取代硬件時統板卡的功能,研究實現麒麟操作系統上PTP時間同步技術,為海上測控軟件系統未來的優化升級進行積極探索。
參考文獻
[1] 任宏,王志林,羅純哲.時統對事精度測量設備的設計與研究[J].電子技術應用,2009(10):131-134.
[2] 沈迎春.海軍指控系統授時技術研究[J].船舶電子工程,2005(2):42-44.
[3] 孫東,孫君亮,李連登.C/S方式軟件時統的研究與開發[J].電訊技術,2006,46(1):165-167.
[4] 金湘力.GPS對時功能在電力系統自動化中的應用[J].山西電力,2010(2):36-38.
[5] 張九賓,張丕狀,杜坤坤.無線分布式測試系統時間統一技術的研究[J].核電子與探測技術,2010,30(3):380-384.
作者信息:
李永剛1,李欣泉2,郭力兵1,李祥明1,毛 文1
(1.中國衛星海上測控部,江蘇 江陰214431;2.航天工程大學,北京101400)