《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于北斗的嵌入式時間統一服務器的設計實現
基于北斗的嵌入式時間統一服務器的設計實現
來源:微型機與應用2014年第6期
呂晨陽,王 建
(南京船舶雷達研究所,江蘇 南京210003)
摘要: 針對實際應用中高精度時間同步的需求,需要設計一種支持多種授時格式的授時服務器,提出了一種基于UM-220T北斗模塊、ARM處理器和CPLD的時間統一服務器。該服務器能夠實現網絡時間協議(NTP)和IRIG-B碼協議。給出了實現過程和測試結果。
關鍵詞: ARM 北斗 NTP IRIG-B
Abstract:
Key words :

摘  要: 針對實際應用中高精度時間同步的需求,需要設計一種支持多種授時格式的授時服務器,提出了一種基于UM-220T北斗模塊、ARM處理器和CPLD的時間統一服務器。該服務器能夠實現網絡時間協議(NTP)和IRIG-B碼協議。給出了實現過程和測試結果。
關鍵詞: 北斗;NTP;IRIG-B;ARM

    現代高技術戰爭需要高精度的時間同步。普通的獨立時鐘通過晶振提供信號,晶振的頻率精度和穩定性都比較差,一般約為10-4~10-5,每天的累計誤差可達十幾秒,需要定期調整[1]。對于聯網的主機,使用網絡時間協議(NTP)對時,精度高、使用方便[1-2]。但由于武器裝備的特殊性,不方便接入互聯網,同時很多裝備需要進行機動,無法接入專用網絡,為滿足時間同步要求,可在系統內架設專用的時間同步服務器,為系統內的眾多主機提供授時服務。時間同步服務器需要高精度的時鐘源,導航衛星授時精度高、獲取容易、易機動[3],滿足授時要求。本文基于實際應用需求,構建以我國自主導航系統——北斗系統為源的時間統一服務器,能進行系統內主機的網絡對時,同時還可提供IRIG-B碼用于專用設備對時。
1 NTP和IRIG-B授時協議
    網絡時間協議NTP(Network Time Protocol)是互聯網普遍使用的時間同步協議,在全世界各地都分布有NTP服務器,對于聯網的計算機可以通過NTP協議進行授時,授時精度對于廣域網可以達到10 ms,對于局域網可以達到250μs[1]。
    NTP協議使用時間戳來進行對時,對于Server/Client模式,設客戶端發出請求的時間戳為T1,服務端接收到的時間戳為T2,服務端響應時間戳為T3,客戶端接收到的時間戳為T4,設客戶端與服務器之間的往返時間相同,則服務器與客戶端的時間偏差θ=[(T2-T1)-(T4-T3)]/2,網絡延遲σ=[(T2-T1)+(T4-T3)]/2。客戶端通過時間偏差和網絡延遲來調整本地時間。
    IRIG-B簡稱B碼,是IRIG串行碼的一種,碼元速率為100 pps,通過碼元的寬度來區分0、1和參考標志。0、1的寬度分別為2 ms和5 ms,參考標志為8 ms。B碼發送時、分、秒、天和年,使用BCD碼進行發送[4]。IRIG-B可以達到比較高的精度,參考文獻[5-6]中采用GPS的1 pps信號進行同步的IRIG-B碼發生器的前沿精度略微低于1 pps信號。
2 系統結構
    系統框圖如圖1所示,主要包括北斗模塊、ARM系統、CPLD和網絡接口4個部分。北斗模塊接收北斗衛星信號,輸出1 pps和NMEA0183導航授時電文。網絡接口進行NTP數據包的收發,同時也是系統的控制終端。IRIG-B發生器通過VHDL在CPLD內部實現,與ARM系統通過SPI總線相連,接收ARM系統提供的時鐘信號,在1 pps信號的同步下生成B碼。ARM系統是本系統的核心,運行Linux操作系統,在此基礎上運行功能所需的應用程序,包括NTP對時程序和IRIG-B碼發生器控制程序。

3 系統硬件設計
    系統北斗模塊選用UM220-T,該模塊是和芯星通推出的一款專用于電信、電力、軍事的高精度授時模塊,具有GPS/BD2雙模模式,輸出兼容NMEA0183協議,在NMEA0183的基礎上增加了北斗專用語句。其1PPS信號的標準差1?滓=20 ns,滿足本應用要求。
    系統硬件設計部分主要包括原理圖和PCB的設計。PCB設計的主要注意事項包括模擬、數字電源的隔離、差分線的等長和阻抗匹配。硬件實物圖如圖2所示。

4 軟件設計
    系統的主要功能需通過軟件實現,軟件設計內容主要包括Linux系統移植、NTP服務器程序的移植、B碼發生器控制應用程序的編寫和IRIG-B碼發生器的VHDL實現。
4.1 NTP服務器軟件移植
    ntp.org提供和維護一個開源的NTP程序,該源程序功能全面、運行穩定,得到了廣泛的應用。上文中提到北斗模塊采用兼容的NMEA0183協議,增加了北斗專用語句。原生NTP程序包不支持北斗專用語句,需對其源代碼進行修改才能使用。
    在Linux系統下從www.ntp.org下載源代碼到本地工作目錄,在工作目錄下新建src目錄,將源代碼解壓到src目錄下,打開src/ntp-x.x.x/ntpd/refclock_nmea.c文件,將文件中的如下代碼:
    strncmp(cp,"$GPRMC",6)==0…strncmp(cp,"$GPGGA",6)==0…strncmp(cp,"$GPGLL",6)==0…strncmp(cp,"$GPXXX",6)==0
    修改為:
    strncmp(cp,"$GPRMC",6)==0||strncmp(cp,"$GNRMC",6)==0||strncmp(cp,"$BDRMC",6)==0)
    strncmp(cp,"$GPGGA",6)==0||strncmp(cp,"$GNGGA",6)==0||strncmp(cp,"$BDGGA",6)==0)
    strncmp(cp,"$GPGLL",6)==0||strncmp(cp,"$GNGLL",6)==0||strncmp(cp,"$BDGLL",6)==0)
    strncmp(cp,"$GPXXX",6)==0||strncmp(cp,"$GNXXX",6)==0||strncmp(cp,"$BDXXX",6)==0)
    NMEA0138協議通過每一行的頭來區分該行數據。對NTP源程序修改以增加北斗專用語句頭,"$GNRMC"、"$GNGGA"、"$GNGLL"、"$GNXXX"表示現在是北斗/GPS雙模,"$BDRMC"、"$BDGGA"、"$BDGLL"、"$BD-
XXX"表示現在是北斗單模。對上述修改文件保存退出。在工作目錄下新建編譯腳本,命名為run,內容為:
    export CC=arm-linux
    ./configure --host=arm-linux --enable-NMEA
    make
保存退出。腳本指定編譯器為arm-linux-gcc,用于ARM平臺的交叉編譯,同時打開NMEA接受支持,用于接收北斗模塊信號。運行腳本,編譯得到目標文件,包括3個文件夾bin、lib、share,把得到的文件拷貝至ARM文件系統相應的文件夾內。NTP服務器通過文件/etc/ntp.conf進行配置,配置文件通過server:127:127:20.u 打開NMEA0138作為時鐘源,u是NMEA的參數設置,包括串口的波特率和使用NMEA的哪條語句作為時間碼,具體配置參照參考文獻[7]。
    測試使用一臺客戶機進行,測試結果如圖3所示,圖中第1列為服務器列表,使用國際標準NTP服務器作為對比,其中GPS_NMEA(0)為本設計的嵌入式時間同步服務器,bogon為客戶端本地時鐘,圖中加星號的為系統自動默認選擇的服務器,從圖中可以看出本服務器性能理想,滿足授時需求。
4.2 IRIG-B碼發生器設計
    為滿足系統內專用設備的需求,設計IRIG-B碼發生器,把北斗時間碼轉換成IRIG-B碼。IRIG-B碼直接采用北斗模塊的1 pps信號作為系統同步時鐘,授時精度與北斗模塊相同。
    IRIG-B碼發生器系統框圖如圖4所示,系統由100 MHz時鐘輸入作為本地時鐘,通過內部分頻模塊產生100 Hz和1 kHz的頻率信號,IRIG-B碼時序如圖5所示,其中碼元速率為1 pps,故分頻產生100 Hz信號作為碼元時鐘,脈沖寬度分別為8 ms、2 ms和5 ms,分頻產生1 kHz用于控制脈沖寬度。發生器通過SPI接口與ARM系統相連,接受ARM系統控制。

    ARM系統通過NTP程序使本地時鐘同步于北斗時鐘,另一個進程運行IRIG-B碼發生器控制程序,在1PPS信號同步下取得本地時鐘,轉換成IRIG-B碼格式,通過SPI接口發送到CPLD內部,程序流程圖如圖6所示。

 

 

4.3 IRIG-B碼實測結果
    IRIG-B碼發生器的測試結果如圖7所示,從圖中可以看出,B碼輸出嚴格同步于1 pps信號,時序符合IRIG-B碼規范。

    采用ARM+CPLD體系構建時間統一服務器,采用Linux和成熟穩定的開源程序,降低了系統的開發難度,提高了系統的可靠性,采用CPLD硬件實現IRIG-B碼發生器,時序精度高,滿足高精度IRIG-B碼授時要求。目前本裝置已應用到實際項目中。
參考文獻
[1] 黃沛芳.基于NTP的高精度時鐘同步系統實現[J].電子技術應用,2009,35(7):122-127.
[2] 宋妍,朱爽.基于NTP的網絡時間服務系統的研究[J].計算機工程與應用,2003,39(36):147-149.
[3] 王文瑜.基于北斗衛星的授時系統研制[D].北京:北京郵電大學,2008.
[4] Standard I.200-04-IRIG serial time code formats[S]. Timing Committee.Telecommunications and Timing Group. Range Commanders Council,US Army White Sands Missile  Range,NM.
[5] 姚軍.利用GPS實現高精度IRIG-B碼的設計[J].遙測遙控,1997,18(2):33-37.
[6] 高林,胡永輝,侯雷.基于ARM+FPGA的IRIG-B碼產生器的研制[J].時間頻率學報,2012,35(4):218-227.
[7] POGO,KELLY W.Generic NMEA GPS receiver[EB/OL].[2013-10-29].http://www.eecis.udel.edu/~mills/ntp/html/drivers/driver20.html.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美成人看片一区二区三区 | 欧美白人和黑人xxxx猛交视频 | 亚洲图片视频在线观看 | 精品91一区二区三区 | 在线观看日本污污ww网站 | 国产真真人女人特级毛片 | 99久久久精品免费观看国产 | 久久欧美成人精品丝袜 | 国产日韩欧美精品在线 | 九九99久麻豆精品视传媒 | 韩国精品视频在线观看 | 呦女精品| 久久精品国内一区二区三区 | 欧洲免费无线码一二区 | 99国产精品久久久久久久成人热 | 精品中文字幕在线观看 | 日本一级全黄大片 | 欧美成本人视频 | 国产亚洲人成网站在线观看 | 欧美成人二区 | 亚洲成a人片在线观看 欧美 | 99日韩精品| 美国三级 | 国产vs久久| 欧美视频自拍偷拍 | 欧美一级毛片无遮无挡 | 性xxx69xxx视频在线观看 | 精品特级一级毛片免费观看 | 国产精选91热在线观看 | 高清成人 | 欧美成人专区 | 亚洲国产成人久久综合区 | 高清毛片一区二区三区 | 韩日一区二区 | 久久精品女人毛片国产 | 特级淫片欧美高清视频蜜桃 | 亚洲国产日韩欧美 | a在线观看欧美在线观看 | 最新国产精品好看的国产精品 | 看一级毛片一区二区三区免费 | 久久se精品一区二区国产 |