馬小龍





摘要:地鐵的北極星時鐘系統(tǒng)為地鐵公司控制中心調(diào)度員、車站值班員、各部門的工作人員及乘客提供統(tǒng)一的標(biāo)準(zhǔn)時間信息,為地鐵其它系統(tǒng)的設(shè)備提供統(tǒng)一的標(biāo)準(zhǔn)時間信號。北極星時鐘系統(tǒng)的設(shè)置保證了地鐵運(yùn)行計(jì)時準(zhǔn)確,同時也極大提高了運(yùn)營服務(wù)質(zhì)量。為加深對北極星時鐘系統(tǒng)的認(rèn)知,在發(fā)生時間突變時能夠分辨出是Server標(biāo)準(zhǔn)時間故障還是Client系統(tǒng)自身故障,需根據(jù)接口協(xié)議,對時鐘系統(tǒng)Server發(fā)送的報(bào)文進(jìn)行分析,確認(rèn)標(biāo)準(zhǔn)時間正確與否。對RS-422和NTP協(xié)議的研究有助于協(xié)助其他系統(tǒng)進(jìn)行授時。
關(guān)鍵詞:地鐵;北極星時鐘系統(tǒng);RS-422;NTP;報(bào)文分析
1研究背景
2018年3月17日,機(jī)場線時鐘系統(tǒng)GPS天線故障,失去GPS標(biāo)準(zhǔn)時間信號,信號泰雷茲系統(tǒng)開始使用本系統(tǒng)內(nèi)NTP服務(wù)器作為授時源。3月18日,GPS天線維修完畢,開始為信號泰雷茲系統(tǒng)授時,此時,信號系統(tǒng)發(fā)生時間突變(見圖1),所有列車發(fā)生瞬時車載故障。
圖1信號系統(tǒng)時間突變
時鐘系統(tǒng)平時不顯眼,但是極為重要,沒有時鐘系統(tǒng),信號系統(tǒng)會出現(xiàn)紊亂導(dǎo)致列車無法準(zhǔn)確行駛,乘客無法得知候車和乘車時間,視頻錄像無法準(zhǔn)確還原,話費(fèi)賬單統(tǒng)計(jì)錯誤等等。因此,有必要通過接口協(xié)議和報(bào)文,對時間信號進(jìn)行深入剖析。
2RS-422及NTP接口協(xié)議
機(jī)場線北極星時鐘系統(tǒng)一級母鐘接收GPS信號,采用RS-422接口向傳輸、公務(wù)電話、專用電話、廣播、PIS、電源、集中告警、FAS等系統(tǒng)和外專業(yè)提供標(biāo)準(zhǔn)時間信號。
同時,本系統(tǒng)一級母鐘與二級母鐘之間采用NTP協(xié)議校時,通過共線的10M/100M以太網(wǎng)傳輸通道進(jìn)行校時和網(wǎng)管信息傳遞。
2.1RS-422接口協(xié)議和報(bào)文
2.1.1RS-422接口協(xié)議
RS-422接口的最大傳輸距離約為1219米,其最大傳輸速率為10Mb/s。其傳輸速率與平衡雙絞線的長度成反比,在100kb/s的速率以下時,才可能達(dá)到最大傳輸距離。因此,只有在很短的距離下才能獲得最高速率傳輸。一般100米長的雙絞線上所能獲得的最大傳輸速率僅為1Mb/s。本系統(tǒng)使用的RS-422接口參數(shù)設(shè)置為
①輸出接口:標(biāo)準(zhǔn)RS-422端口
②波特率:9600bit/s
③數(shù)據(jù)位:8位④起始位:1位⑤停止位:1位
⑥校驗(yàn)位:無
⑦工作方式:異步
⑧傳輸距離:不大于1200米
2.1.2RS-422接口報(bào)文報(bào)文詳述:
時鐘系統(tǒng)在整秒時刻向負(fù)載系統(tǒng)發(fā)送10毫秒級精度的時間信號。報(bào)文格式:
2.2NTP接口協(xié)議和報(bào)文
2.2.1NTP接口協(xié)議
時鐘系統(tǒng)采用10M/100M以太網(wǎng)接口向?qū)S脽o線、視頻監(jiān)控、信號、AFC、ISCS、SCADA等系統(tǒng)和外專業(yè)提供標(biāo)準(zhǔn)時間信號。通信協(xié)議采用國際通用的網(wǎng)絡(luò)時間協(xié)議,即NTP協(xié)議。
隨著網(wǎng)絡(luò)拓?fù)涞娜找鎻?fù)雜,整個網(wǎng)絡(luò)內(nèi)設(shè)備的時間同步將變得十分重要。如果僅依靠網(wǎng)絡(luò)管理員手動修改系統(tǒng)時間,不僅工作量巨大,而且也無法保證時間的準(zhǔn)確性。網(wǎng)絡(luò)時間協(xié)議(NTP)的出現(xiàn)就是為了解決網(wǎng)絡(luò)內(nèi)設(shè)備系統(tǒng)時鐘的同步問題。NTP協(xié)議是一種通過Internet服務(wù)于計(jì)算機(jī)時鐘的時間同步協(xié)議。它提供了一種時間同步機(jī)制,能在龐大而復(fù)雜多樣的Internet中用光速調(diào)整時間分配。它使用的是可返回時間設(shè)計(jì),分布式子網(wǎng)內(nèi)的時間服務(wù)器能自我組織操作、分層管理配置,經(jīng)過有線或無線的方式同步子網(wǎng)內(nèi)的邏輯時鐘達(dá)到國家標(biāo)準(zhǔn)時間。此外,通過本地路由選擇運(yùn)算法則及時間后臺程序,服務(wù)器可以重新分配標(biāo)準(zhǔn)時間。
2.2.2NTP接口報(bào)文
NTP報(bào)文格式如上圖所示,它的字段含義參考如下:
1)LI:閏秒標(biāo)識器,占用2個bits,值為0表示無leap秒調(diào)整;1表示一天的最后一分鐘為61秒;2表示一天的最后一分鐘為59秒;3表示時鐘未被同步;為其他值時NTP本身不做處理。
2)VN:占用3個bits,表示NTP的版本號,現(xiàn)在為4。
3)Mode:工作模式,占用3個bits,表示設(shè)備的NTP工作模式。不同的值所表示的含義分別是:
0:未定義
1:主動對等體模式
2:被動對等體模式
3:客戶模式
4:服務(wù)器模式
5:廣播模式或組播模式
6:此報(bào)文為NTP控制報(bào)文
7:預(yù)留給內(nèi)部使用。
4)stratum(層):系統(tǒng)時鐘的層數(shù),占用8個bits。取值范圍為0~255,它代表著時鐘的準(zhǔn)確度。層數(shù)值的含義分別是
0:未指定或無效
1-16:1表示時鐘準(zhǔn)確度最高,準(zhǔn)確度從1到16依次遞減,層數(shù)為16的時鐘處于未同步狀態(tài),不能作為參考時鐘
17-255:保留。
1)Poll:NTP報(bào)文輪詢間隔,占用8個bits,表示連續(xù)的NTP報(bào)文之間的時間間隔。
2)Precision:NTP時鐘精度,占用8個bits。
3)RootDelay:根時延,占用8個bits,表示在主參考源之間往返的總共時延。
4)RootDispersion:根離散,占用8個bits,表示系統(tǒng)時鐘相對于主參考時鐘的最大誤差。
5)ReferenceIdentifier:時鐘源標(biāo)識,占用8個bits,用來標(biāo)識特殊的時鐘參考源。
6)參考時間戳:占用64個bits,表示上次設(shè)置或糾正系統(tǒng)時鐘的時間。
7)原始時間戳:占用64個bits,表示請求離開服務(wù)器客戶端的時間,。
8)接受時間戳:占用64個bits,表示客戶端請求以64位時間戳格式到達(dá)服務(wù)器的時間。
9)傳送時間戳:占用64個bits,表示服務(wù)器回復(fù)離開服務(wù)器的時間。
10)認(rèn)證符(可選項(xiàng)):占用96個bits。
3Client接收的實(shí)際報(bào)文解析
3.1RS-422接口實(shí)際報(bào)文解析
在Client哈里斯公務(wù)、專用電話網(wǎng)管電腦上安裝串口調(diào)試助手軟件,設(shè)置好波特率等參數(shù)后,點(diǎn)擊開始,即可看到Client端所接收到的RS-422串口報(bào)文:
該報(bào)文為16進(jìn)制表示,可將其翻譯為十進(jìn)制:
5C2018032115040283
根據(jù)RS-422串口協(xié)議可得出,Server發(fā)送給Client系統(tǒng)的標(biāo)準(zhǔn)時間為2018年3月21日15點(diǎn)04分02秒,83為校驗(yàn)位。
3.2NTP接口實(shí)際報(bào)文解析
NTP報(bào)文通過網(wǎng)絡(luò)進(jìn)行傳輸,需使用Wireshark軟件捕捉其報(bào)文,并進(jìn)行分析。
視頻監(jiān)視系統(tǒng)中傳輸?shù)腘TP報(bào)文如下:
根據(jù)上圖,可以看出NTP授時順序?yàn)镃lient首先發(fā)送一個NTP請求報(bào)文,Server回發(fā)一個應(yīng)答報(bào)文,即可對Client進(jìn)行授時。
該報(bào)文為16進(jìn)制表示,需先將其翻譯為2進(jìn)制,然后根據(jù)需要翻譯成所需要的信息。接下來解析幾個比較重要的值:
3.2.1Client和Server的MAC地址
由EthernetII部分可知,Server的MAC地址為00:03:b9:71:40:4b,Client的MAC地址為9c:b6:54:1d:48:a8。
3.2.2Client和Server的IP地址
由InternetProtocolVersion4部分可知,Server的IP地址為192.6.61.8,Client的IP地址為192.6.61.11。
3.2.3UDP端口
由UserDatagramProtocol部分可知,Server的UDP端口為123,Client的UDP端口為64576。
3.2.4NTP版本號及模式
Client發(fā)送報(bào)文的NTP協(xié)議部分第一個字節(jié)為13,翻譯成二進(jìn)制為00010011。NTP版本號占用3-5bit,也就是010,翻譯成十進(jìn)制為2,也就是當(dāng)前使用的NTP版本為2;NTP模式占用6-8bit,也就是011,翻譯成十進(jìn)制為3,也就是當(dāng)前Clinet的NTP模式為客戶模式。
Server發(fā)送報(bào)文的NTP協(xié)議部分第一個字節(jié)為14,翻譯成二進(jìn)制為00010100。NTP版本號占用3-5bit,也就是010,翻譯成十進(jìn)制為2,也就是當(dāng)前使用的NTP版本為2;NTP模式占用6-8bit,也就是100,翻譯成十進(jìn)制為4,也就是當(dāng)前Clinet的NTP模式為服務(wù)器模式。
以上信息與實(shí)際設(shè)備使用的NTP版本、MAC地址、IP地址相符。
3.2.5NTP時鐘層數(shù)
Client發(fā)送報(bào)文的NTP協(xié)議部分第二個字節(jié)為00,即其時鐘層數(shù)為0,不可參考。
Server發(fā)送報(bào)文的NTP協(xié)議部分第二個字節(jié)為01,即其時鐘層數(shù)為1,準(zhǔn)確度最高,可參考。
3.2.6ReferenceID
47505300字段表示參考時鐘標(biāo)識符,查詢asiii碼表可知其意為“GPS.”,即該系統(tǒng)授時的時間源為GPS標(biāo)準(zhǔn)時間。
3.2.7ReferenceTimestamp
de5b35c0c872af39為時間戳。
先處理高位32bit“de5b35c0”,將其轉(zhuǎn)換為10進(jìn)制3730519488,由于NTP時間和UTC時間起始不同,需要將該時間減少70年(1900年到1970年)2208988800(0x83AA7E80),則為1521530688,使用UTC轉(zhuǎn)換器得到2018-03-207:24:48UTC(格林威治時間),2018-03-2015:24:48UTC+8(北京時間)。
再處理低位32bit“c872af39”,將其轉(zhuǎn)換為10進(jìn)制3362959161,根據(jù)公式計(jì)算usec=lsw*232.830644/1000000=782999us=0.782999s。
綜上所述,故NTP參考時間戳“de5b35c0c872af39”轉(zhuǎn)換成UTC時間為2018-03-2015:24:48.782999UTC+8(北京時間)。
4結(jié)語
此項(xiàng)研究,大大加深了維護(hù)人員對時鐘系統(tǒng)的認(rèn)知。在無授時源時,可人為搭建NTPServer,為NTPClient授時,當(dāng)授時出現(xiàn)錯誤時,可查看授時軟件Log日志或抓包,追溯相應(yīng)的報(bào)文,查看是否標(biāo)準(zhǔn)時間有誤,快速判斷故障點(diǎn)。
參考文獻(xiàn):
[1]戴俊勉劉暢鐘宇,廣鐵集團(tuán)數(shù)據(jù)網(wǎng)NTP系統(tǒng)優(yōu)化研究,鐵道通信信號,2015,51(6):61-63。
[2]DavidL.Mills,“NetworkTimeProtocol(Version3)Specification,ImplementationandAnalysis”,UniversityofDelaware,March1992。