Acts校時(shí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)。
【背景技術(shù)】
[0002]ACTS時(shí)間同步技術(shù)在電話網(wǎng)絡(luò)中得到廣泛的應(yīng)用,ACTS協(xié)議的校時(shí)原理,ACTS客戶端的MODEM通過電話網(wǎng)撥通ACTS服務(wù)器的MODEM,兩個(gè)MODEM建立起通路后,ACTS客戶端與ACTS服務(wù)器通過ACTS協(xié)議的交互,使ACTS客戶端與ACTS服務(wù)器的時(shí)間達(dá)到同步。
[0003]ACTS報(bào)文基本交互流程:
[0004].ACTS客戶端進(jìn)行撥號(hào),建立校時(shí)通道。
[0005].通道建立后,ACTS服務(wù)器向ACTS客戶端發(fā)送ACTS協(xié)議幀。
[0006].ACTS客戶端接收ACTS協(xié)議幀后,轉(zhuǎn)發(fā)給ACTS服務(wù)器。
[0007].ACTS服務(wù)器收到ACTS返回幀,計(jì)算出線路的時(shí)延。
[0008].ACTS服務(wù)器根據(jù)線路的時(shí)延,延遲發(fā)送ACTS協(xié)議幀。
[0009].ACTS客戶端收取到ACTS協(xié)議后,判斷ACTS協(xié)議的OTM是否為“#”,如果為則為校時(shí)幀進(jìn)行校時(shí),如果為則為協(xié)議幀繼續(xù)轉(zhuǎn)發(fā)協(xié)議幀。
[0010]ACTS協(xié)議的時(shí)碼格式如下:
[0011]JJJJJ YR-MO-DA HH:MM:SS TT L UTlmsADV UTC(NIST)
[0012]<0TM>
[0013]JJJJJ:簡(jiǎn)化儒略歷碼;
[0014]YR - MO - DA:年月日,都是兩位;
[0015]HH: MM: SS:時(shí)分秒,UTC 時(shí)間;
[0016]TT:00to 99,標(biāo)準(zhǔn)時(shí)間(Standard Time)為 00,夏令時(shí)時(shí)間(Daylight SavingTime)為50。ST與DST之間的轉(zhuǎn)換,在數(shù)字上有個(gè)過渡。過渡方法請(qǐng)參考原著。服務(wù)器應(yīng)可以自動(dòng)捕捉ST到DST的轉(zhuǎn)換;
[0017]L:潤(rùn)秒提示。O:本月無潤(rùn)秒,1:本月正潤(rùn)秒,產(chǎn)生本月的最后一分鐘;2:本月負(fù)潤(rùn)秒,產(chǎn)生本月的最后一分鐘;
[0018]UTl:UTC轉(zhuǎn)成UTl的校正因子;
[0019]msADV:5位時(shí)延補(bǔ)償值,默認(rèn)為45.0ms,如果收到連續(xù)三次0TM,時(shí)延補(bǔ)償值將變成計(jì)算值;
[0020]UTC(NIST):表明當(dāng)前接收到的UTC時(shí)間來自NIST,包含在每次的時(shí)間碼中;
[0021 ] OTM:時(shí)延補(bǔ)償值為估算值時(shí)OTM時(shí)碼標(biāo)志為*,時(shí)延補(bǔ)償值為計(jì)算值時(shí)OTM時(shí)碼標(biāo)志為#。
[0022]基于ACTS時(shí)間同步技術(shù)的時(shí)延補(bǔ)償值的計(jì)算方式參見圖1。圖1左側(cè)ACTS幀數(shù)據(jù)為ACTS服務(wù)器每秒的發(fā)送幀,OTM時(shí)碼標(biāo)志在Tl時(shí)刻發(fā)送,上圖右側(cè)ACTS幀數(shù)據(jù)為ACTS服務(wù)器的接收幀,OTM時(shí)碼標(biāo)志在T2時(shí)刻進(jìn)行接收,根據(jù)T2與Tl計(jì)算出線路時(shí)延Delay,ACTS服務(wù)器根據(jù)Delay計(jì)算出下次發(fā)送ACTS協(xié)議的時(shí)刻,發(fā)送幀采用準(zhǔn)秒機(jī)制,每秒發(fā)送一幀,ACTS客戶端接收到ACTS協(xié)議后,判斷ACTS協(xié)議的OTM時(shí)碼標(biāo)志是否為“#”,如果為則為校時(shí)幀,進(jìn)行校時(shí),如果為則為協(xié)議幀,ACTS客戶端轉(zhuǎn)發(fā)該協(xié)議幀。
[0023]如果ACTS服務(wù)器采用準(zhǔn)秒的方式進(jìn)行發(fā)送,ACTS客戶端的校時(shí)時(shí)間較長(zhǎng),這樣由于時(shí)延的變化在授時(shí)過程中產(chǎn)生的誤差較大,并且采用準(zhǔn)秒的方式不能智能的控制授時(shí)時(shí)間,因此使用傳統(tǒng)的算法使用ACTS協(xié)議進(jìn)行授時(shí)時(shí)不能很好的控制ACTS精度。
【發(fā)明內(nèi)容】
[0024]本發(fā)明所要解決的技術(shù)問題是,改進(jìn)ACTS協(xié)議的交互規(guī)則,使誤差降低到最小,提高ACTS的精度。
[0025]本發(fā)明解決所述技術(shù)問題采用的技術(shù)方案是,ACTS校時(shí)方法,包括下述步驟:
[0026]DACTS服務(wù)器在Tl時(shí)刻發(fā)送包含OTM時(shí)碼標(biāo)志的協(xié)議幀,記錄發(fā)送時(shí)刻Tl,Tl為小數(shù)秒時(shí)間;
[0027]2)客戶端收到協(xié)議幀后立刻向ACTS服務(wù)器返回回送幀,ACTS服務(wù)器接收回送幀,記錄OTM時(shí)碼標(biāo)志到達(dá)的時(shí)刻T2,T2為小數(shù)秒時(shí)間;
[0028]3)如果T2大于Tl,則說明OTM時(shí)碼標(biāo)志到達(dá)時(shí)間沒有跨秒,則以TimeTotal =(T2-TD/2計(jì)算時(shí)延總和值TimeTotal ;
[0029]如果T2小于Tl則說明OTM時(shí)碼標(biāo)志到達(dá)時(shí)間已經(jīng)跨秒,則以TimeTotal =(Τ2+10000-Τ1)/2 計(jì)算時(shí)延總和值 TimeTotal ;
[0030]4)若計(jì)算時(shí)延總和值TimeTotal在預(yù)設(shè)的范圍內(nèi),貝Ij認(rèn)為該線路時(shí)延有效,進(jìn)入步驟5);若計(jì)算時(shí)延總和值TimeTotal超出預(yù)設(shè)的范圍內(nèi),則認(rèn)為該線路時(shí)延無效,進(jìn)入步驟6);
[0031]5)校時(shí)計(jì)數(shù)器累計(jì)值加一,然后判斷校時(shí)計(jì)數(shù)器累計(jì)值是否大于預(yù)設(shè)的校時(shí)計(jì)數(shù)器閾值,若是則進(jìn)入步驟7),若否返回步驟I);
[0032]6)校時(shí)無效計(jì)數(shù)器累計(jì)值加一,然后判斷校時(shí)無效計(jì)數(shù)器累計(jì)值是否大于預(yù)設(shè)的無效計(jì)數(shù)器閾值,若是則斷開與從時(shí)鐘的連接,若否返回步驟I);
[0033]7) ACTS服務(wù)器將OTM時(shí)碼標(biāo)志置為校時(shí)標(biāo)記,并計(jì)算下次OTM時(shí)碼標(biāo)志的發(fā)送時(shí)間,然后進(jìn)入步驟8);
[0034]8)在步驟7)計(jì)算得到的時(shí)刻,ACTS服務(wù)器向客戶端發(fā)送校時(shí)幀;
[0035]9)客戶端收到步驟8)的校時(shí)幀后,對(duì)自身時(shí)間進(jìn)行校正。
[0036]本發(fā)明的有益效果是,提高了校時(shí)精度,縮短了校時(shí)時(shí)間,增強(qiáng)了客戶端校時(shí)的及時(shí)性。
【附圖說明】
[0037]圖1是現(xiàn)有技術(shù)的ACTS時(shí)延補(bǔ)償值計(jì)算方式示意圖。
[0038]圖2是本發(fā)明的ACTS時(shí)延補(bǔ)償值計(jì)算方式示意圖。
[0039]圖3是本發(fā)明的ACTS校時(shí)幀校時(shí)方式示意圖。
[0040]圖4是本發(fā)明的工作流程圖。
【具體實(shí)施方式】
[0041]參見圖2?4。
[0042]本發(fā)明包括下述步驟:
[0043]DACTS服務(wù)器在Tl時(shí)刻發(fā)送包含OTM時(shí)碼標(biāo)志的協(xié)議幀,記錄發(fā)送時(shí)刻Tl,Tl為小數(shù)秒時(shí)間;
[0044]2)客戶端收到協(xié)議幀后立刻向ACTS服務(wù)器返回回送幀,ACTS服務(wù)器接收回送幀,記錄OTM時(shí)碼標(biāo)志到達(dá)的時(shí)刻T2,T2為小數(shù)秒時(shí)間;
[0045]3)如果T2大于Tl,則說明OTM時(shí)碼標(biāo)志到達(dá)時(shí)間沒有跨秒,則以TimeTotal =(T2-TD/2計(jì)算時(shí)延總和值TimeTotal ;
[0046]如果T2小于Tl則說明OTM時(shí)碼標(biāo)志到達(dá)時(shí)間已經(jīng)跨秒,則以TimeTotal =(Τ2+10000-Τ1)/2 計(jì)算時(shí)延總和值 TimeTotal ;