本發(fā)明屬于實(shí)時(shí)時(shí)鐘技術(shù)領(lǐng)域,尤其涉及一種實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置及方法。
背景技術(shù):
實(shí)時(shí)時(shí)鐘可以提供精確的實(shí)時(shí)時(shí)間,或者為電子系統(tǒng)提供精確的時(shí)間基準(zhǔn),因此,實(shí)時(shí)時(shí)鐘在需要精準(zhǔn)定時(shí)的電子產(chǎn)品中應(yīng)用廣泛。
實(shí)時(shí)時(shí)鐘的核心是晶體振蕩器(晶振),晶振的標(biāo)準(zhǔn)頻率為32768Hz,而由于晶振的固有頻率偏差或晶振頻率隨溫度變化產(chǎn)生頻率誤差,造成實(shí)時(shí)時(shí)鐘計(jì)時(shí)誤差。為了減小計(jì)時(shí)誤差,采用誤差補(bǔ)償方案對(duì)計(jì)時(shí)誤差進(jìn)行補(bǔ)償,現(xiàn)有的誤差補(bǔ)償方案以N秒(N>1)為補(bǔ)償周期,補(bǔ)償后的N秒時(shí)間是精確的,但是每1秒時(shí)間仍存在誤差,因此,現(xiàn)有補(bǔ)償方案不適用于對(duì)1秒時(shí)間有精確要求的場(chǎng)合。因此,現(xiàn)有技術(shù)在面對(duì)計(jì)時(shí)時(shí)間要求為1秒時(shí)無(wú)法通過(guò)實(shí)時(shí)時(shí)鐘誤差補(bǔ)償實(shí)現(xiàn)1秒時(shí)間的精確計(jì)時(shí)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置,旨在解決現(xiàn)有技術(shù)在面對(duì)計(jì)時(shí)時(shí)間要求為1秒時(shí)無(wú)法通過(guò)實(shí)時(shí)時(shí)鐘誤差補(bǔ)償實(shí)現(xiàn)1秒時(shí)間的精確計(jì)時(shí)的問(wèn)題。
本發(fā)明是這樣實(shí)現(xiàn)的,一種實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置,所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的輸出端與計(jì)時(shí)邏輯電路的輸入端相連;所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置包括晶體振蕩器和低速定時(shí)累加器;當(dāng)在預(yù)設(shè)補(bǔ)償周期內(nèi)不進(jìn)行誤差補(bǔ)償時(shí),所述低速定時(shí)累加器對(duì)所述晶體振蕩器產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù);所 述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置還包括高頻振蕩器、高速定時(shí)累加器以及控制模塊。
所述晶體振蕩器的輸出端與所述低速定時(shí)累加器的時(shí)鐘信號(hào)輸入端相連,所述高頻振蕩器的輸出端與所述高速定時(shí)累加器的時(shí)鐘信號(hào)輸入端相連,所述控制模塊的第一控制信號(hào)輸出端與所述低速定時(shí)累加器的控制信號(hào)輸入端相連,所述控制模塊的第二控制信號(hào)輸出端與所述高速定時(shí)累加器的控制信號(hào)輸入端相連,所述低速定時(shí)累加器的輸出端與所述高速定時(shí)累加器的輸出端共接形成所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的輸出端。
所述高頻振蕩器產(chǎn)生高于所述晶體振蕩器振蕩頻率的時(shí)鐘信號(hào)。
所述控制模塊在一個(gè)預(yù)設(shè)補(bǔ)償周期內(nèi)計(jì)算所述低速定時(shí)累加器和所述高速定時(shí)累加器分別所對(duì)應(yīng)的低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù),并使所述低速定時(shí)累加器在所述預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)所述低速周期補(bǔ)償個(gè)數(shù)對(duì)所述晶體振蕩器產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),當(dāng)所述低速定時(shí)累加器計(jì)數(shù)完成后,所述控制模塊發(fā)出使能信號(hào)使所述高速定時(shí)累加器在所述預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)所述高速周期補(bǔ)償個(gè)數(shù)對(duì)所述高頻振蕩器產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)。
所述預(yù)設(shè)補(bǔ)償周期為0.5秒。
所述計(jì)時(shí)邏輯電路根據(jù)所述低速定時(shí)累加器進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和所述高速定時(shí)累加器進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
本發(fā)明的另一目的還在于提供一種實(shí)時(shí)時(shí)鐘誤差補(bǔ)償方法,所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償方法包括:
控制模塊在一個(gè)預(yù)設(shè)補(bǔ)償周期內(nèi)計(jì)算低速定時(shí)累加器和高速定時(shí)累加器分別所對(duì)應(yīng)的低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。
控制模塊使所述低速定時(shí)累加器在所述預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)所述低速周期補(bǔ)償個(gè)數(shù)對(duì)晶體振蕩器產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)。
當(dāng)所述低速定時(shí)累加器計(jì)數(shù)完成后,所述控制模塊發(fā)出使能信號(hào)使所述高速定時(shí)累加器在所述預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)所述高速周期補(bǔ)償個(gè)數(shù)對(duì)所述高頻振 蕩器產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)。
所述預(yù)設(shè)補(bǔ)償周期為0.5秒。
計(jì)時(shí)邏輯電路根據(jù)所述低速定時(shí)累加器進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和所述高速定時(shí)累加器進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
本發(fā)明中,實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的補(bǔ)償周期為0.5秒,使得誤差補(bǔ)償后的0.5秒計(jì)時(shí)精確,因此,實(shí)時(shí)時(shí)鐘的每1秒計(jì)時(shí)也是精確的。同時(shí),所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置包括高頻振蕩器和高速定時(shí)累加器,由于高頻振蕩器產(chǎn)生的時(shí)鐘信號(hào)頻率遠(yuǎn)大于晶體振蕩器的振蕩頻率,因此,采用高速定時(shí)累加器進(jìn)行誤差補(bǔ)償實(shí)現(xiàn)了對(duì)實(shí)時(shí)時(shí)鐘誤差的高精度補(bǔ)償。
附圖說(shuō)明
圖1是本發(fā)明一實(shí)施例提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置結(jié)構(gòu)示意圖;
圖2是本發(fā)明另一實(shí)施例提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置結(jié)構(gòu)示意圖;
圖3是本發(fā)明另一實(shí)施例提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償方法流程圖;
圖4是圖3所示S100步驟的具體步驟流程圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1示出了本發(fā)明實(shí)施例提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的結(jié)構(gòu),為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,詳述如下:
實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的輸出端與計(jì)時(shí)邏輯電路800的輸入端相連,實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置包括晶體振蕩器100和低速定時(shí)累加器200,其中,當(dāng)在預(yù)設(shè)補(bǔ)償周期內(nèi)不進(jìn)行誤差補(bǔ)償時(shí),低速定時(shí)累加器200對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)。
實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置還包括高頻振蕩器300、高速定時(shí)累加器400以及控制模塊500。
晶體振蕩器100的輸出端與低速定時(shí)累加器200的時(shí)鐘信號(hào)輸入端相連,高頻振蕩器300的輸出端與高速定時(shí)累加器400的時(shí)鐘信號(hào)輸入端相連,控制模塊500的第一控制信號(hào)輸出端與低速定時(shí)累加器200的控制信號(hào)輸入端相連,控制模塊500的第二控制信號(hào)輸出端與高速定時(shí)累加器400的控制信號(hào)輸入端相連,低速定時(shí)累加器200的輸出端與高速定時(shí)累加器400的輸出端共接形成實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的輸出端。
高頻振蕩器300產(chǎn)生高于晶體振蕩器振蕩頻率的時(shí)鐘信號(hào)。
高速定時(shí)累加器400在預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)。預(yù)設(shè)補(bǔ)償周期為0.5秒。
控制模塊500在一個(gè)預(yù)設(shè)補(bǔ)償周期內(nèi)計(jì)算低速定時(shí)累加器200和高速定時(shí)累加器400分別所對(duì)應(yīng)的低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù),并使低速定時(shí)累加器200在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)低速周期補(bǔ)償個(gè)數(shù)對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)(即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償),當(dāng)?shù)退俣〞r(shí)累加器200計(jì)數(shù)完成后,控制模塊500發(fā)出使能信號(hào)使高速定時(shí)累加器400在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)高速周期補(bǔ)償個(gè)數(shù)對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)(即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償)。
計(jì)時(shí)邏輯電路800根據(jù)低速定時(shí)累加器200進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和高速定時(shí)累加器400進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí),所得到的計(jì)時(shí)時(shí)間作為實(shí)時(shí)時(shí)鐘的計(jì)時(shí)時(shí)間。
其中,晶體振蕩器100的時(shí)鐘周期T為1/f秒,其中f為晶體振蕩器100的振蕩頻率。高頻振蕩器300可為高頻RC振蕩電路,高頻振蕩器300的振蕩頻率可大于或等于10MHz。
控制模塊500在一個(gè)預(yù)設(shè)補(bǔ)償周期內(nèi)計(jì)算低速定時(shí)累加器200和高速定時(shí)累加器400分別所對(duì)應(yīng)的低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)具體為:控制 模塊500計(jì)算晶體振蕩器100的頻率與標(biāo)準(zhǔn)頻率之間的相對(duì)誤差,在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)相對(duì)誤差計(jì)算對(duì)應(yīng)的時(shí)間偏差,并根據(jù)時(shí)間偏差計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。
具體的,晶體振蕩器100的標(biāo)準(zhǔn)振蕩頻率為32768Hz,由于溫度變化、石英晶體的制造工藝誤差等原因,晶體振蕩器100的頻率往往存在誤差,晶體振蕩器100的頻率相對(duì)于標(biāo)準(zhǔn)頻率的相對(duì)誤差表達(dá)式為:
其中,單位PPM為一百萬(wàn)分之一。
具體的,控制模塊500計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù),并使低速定時(shí)累加器200和高速定時(shí)累加器400分別進(jìn)行周期補(bǔ)償?shù)倪^(guò)程為:
首先,控制模塊500計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。晶體振蕩器100的頻率為f,根據(jù)相對(duì)誤差ERR的計(jì)算公式,可得晶體振蕩器100的頻率與標(biāo)準(zhǔn)頻率之間的相對(duì)誤差為:在0.5秒的預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)應(yīng)的時(shí)間偏差為:Terr=0.5*ERR,則低速定時(shí)累加器200需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:N=Terr·10-6/T,當(dāng)N為負(fù)數(shù)時(shí),低速周期補(bǔ)償個(gè)數(shù)A取N的整數(shù)部分減一,當(dāng)N為正數(shù)時(shí),低速周期補(bǔ)償個(gè)數(shù)A取N的整數(shù)部分,由于低速定時(shí)累加器200產(chǎn)生的補(bǔ)償誤差為:[(Terr·10-6/T)-A]T,因此高速定時(shí)累加器400需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:四舍五入取整數(shù)為B,即高速周期補(bǔ)償個(gè)數(shù)為B。
在得到低速周期補(bǔ)償個(gè)數(shù)A和高速周期補(bǔ)償個(gè)數(shù)B后,控制模塊500使低速定時(shí)累加器200根據(jù)低速周期補(bǔ)償個(gè)數(shù)A對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)(即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償),當(dāng)?shù)退俣〞r(shí)累加器200計(jì)數(shù)完成后,控制模塊500發(fā)出使能信號(hào)使高速定時(shí)累加器400根據(jù)高速周期補(bǔ)償個(gè)數(shù)B對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù) (即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償)。最后,在預(yù)設(shè)補(bǔ)償周期內(nèi),計(jì)時(shí)邏輯電路根據(jù)低速定時(shí)累加器200進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和高速定時(shí)累加器400進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
為清楚解釋本實(shí)施例,以下結(jié)合具體應(yīng)用實(shí)例對(duì)本實(shí)施例作進(jìn)一步說(shuō)明:
首先,控制模塊500計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。晶體振蕩器100的頻率為32771Hz,根據(jù)相對(duì)誤差ERR的計(jì)算公式,可得晶體振蕩器100的頻率與標(biāo)準(zhǔn)頻率之間的相對(duì)誤差為91.55PPM,在0.5秒的預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)應(yīng)的時(shí)間偏差為45.775PPM(91.55PPM*0.5),則低速定時(shí)累加器200需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:45.775*10-6*32771Hz=1.5,取整數(shù)部分為1,即低速周期補(bǔ)償個(gè)數(shù)為1,低速定時(shí)累加器200需要增加計(jì)數(shù)1個(gè)低速時(shí)鐘周期,由于低速定時(shí)累加器200少補(bǔ)償了0.5/32771秒,因此高速定時(shí)累加器400需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:0.5/(32771*TH),設(shè)定高頻振蕩器300的頻率TH為10MHz,則高速周期補(bǔ)償個(gè)數(shù)取整數(shù)為153,即高速定時(shí)累加器400需要計(jì)數(shù)153個(gè)高速時(shí)鐘周期。
在得到低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)后,控制模塊500使低速定時(shí)累加器200對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行增加計(jì)數(shù),增加計(jì)數(shù)個(gè)數(shù)為1(即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償),當(dāng)?shù)退俣〞r(shí)累加器200計(jì)數(shù)完成后,控制模塊500發(fā)出使能信號(hào)使高速定時(shí)累加器400對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)個(gè)數(shù)為153(即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償)。最后,在預(yù)設(shè)補(bǔ)償周期內(nèi),計(jì)時(shí)邏輯電路800根據(jù)低速定時(shí)累加器200進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和高速定時(shí)累加器400進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
此外,如圖2所示,本發(fā)明實(shí)施例所提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置還包括使能模塊600和補(bǔ)償存儲(chǔ)模塊700。
控制模塊500的第一控制信號(hào)輸出端與補(bǔ)償存儲(chǔ)模塊700的低速周期補(bǔ)償個(gè)數(shù)信息輸入端相連,補(bǔ)償存儲(chǔ)模塊700的低速周期補(bǔ)償個(gè)數(shù)信息輸出端與低 速定時(shí)累加器200的控制信號(hào)輸入端相連;控制模塊500的第二控制信號(hào)輸出端包括使能信號(hào)輸出端和高速周期補(bǔ)償個(gè)數(shù)信息輸出端,控制模塊500的使能信號(hào)輸出端與使能模塊600的輸入端相連,控制模塊500的高速周期補(bǔ)償個(gè)數(shù)信息輸出端與補(bǔ)償存儲(chǔ)模塊700的高速周期補(bǔ)償個(gè)數(shù)信息輸入端相連,使能模塊600的輸出端與高頻振蕩器300的使能信號(hào)輸入端相連,補(bǔ)償存儲(chǔ)模塊700的高速周期補(bǔ)償個(gè)數(shù)信息輸出端與高速定時(shí)累加器400的控制信號(hào)輸入端相連。
使能模塊600將控制模塊500發(fā)出的使能信號(hào)輸出至高頻振蕩器300。
補(bǔ)償存儲(chǔ)模塊700存儲(chǔ)低速周期補(bǔ)償個(gè)數(shù)信息和高速周期補(bǔ)償個(gè)數(shù)信息,并輸出低速周期補(bǔ)償個(gè)數(shù)信息和高速周期補(bǔ)償個(gè)數(shù)信息分別至低速定時(shí)累加器200和高速定時(shí)累加器400。
具體的,低速定時(shí)累加器200根據(jù)低速周期補(bǔ)償個(gè)數(shù)對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù)(即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償),當(dāng)?shù)退俣〞r(shí)累加器200完成周期補(bǔ)償后,控制模塊500發(fā)出使能信號(hào)至使能模塊600,使能模塊600將接收到的使能信號(hào)輸出至高頻振蕩器300,使高頻振蕩器300開(kāi)始工作,高速定時(shí)累加器400接收到高頻振蕩器300發(fā)出的時(shí)鐘信號(hào)后對(duì)其周期個(gè)數(shù)進(jìn)行計(jì)數(shù)(即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償)。當(dāng)高速定時(shí)累加器400完成周期補(bǔ)償后,控制模塊500控制使能信號(hào)發(fā)生電平翻轉(zhuǎn),即由原來(lái)的低電平變?yōu)楦唠娖交蛴稍瓉?lái)的高電平變?yōu)榈碗娖?,以使高頻振蕩器300停止工作。
在本實(shí)施例中,由于每隔0.5秒即對(duì)實(shí)時(shí)時(shí)鐘進(jìn)行計(jì)時(shí)誤差校正,因此,實(shí)時(shí)時(shí)鐘的每0.5秒計(jì)時(shí)均是精確的,其每1秒計(jì)時(shí)也是精確的。高速周期補(bǔ)償個(gè)數(shù)在四舍五入取整時(shí)帶來(lái)誤差,因此高速定時(shí)累加器400在進(jìn)行周期補(bǔ)償時(shí)產(chǎn)生的最大時(shí)間偏差為0.5TH,因此,實(shí)時(shí)時(shí)鐘在預(yù)設(shè)補(bǔ)償周期即0.5秒內(nèi)的計(jì)時(shí)偏差最大為0.5TH,由于高頻振蕩器300的振蕩頻率大于或等于10MHz,因此實(shí)時(shí)時(shí)鐘在0.5秒時(shí)間內(nèi)產(chǎn)生的最大誤差為:高頻振蕩器 300的振蕩頻率越高則誤差越小,實(shí)現(xiàn)了對(duì)實(shí)時(shí)時(shí)鐘的高精度誤差補(bǔ)償。同時(shí),在低速定時(shí)累加器200完成周期補(bǔ)償后,高頻振蕩器300才開(kāi)始工作,即高速定時(shí)累加器400才開(kāi)始進(jìn)行周期補(bǔ)償,高速定時(shí)累加器400的補(bǔ)償時(shí)間最長(zhǎng)為晶體振蕩器100的1個(gè)時(shí)鐘周期,因此,高頻振蕩器300的工作時(shí)間最長(zhǎng)約為30微秒,大大降低了實(shí)時(shí)時(shí)鐘的功耗。
圖3示出了本發(fā)明實(shí)施例提供的實(shí)時(shí)時(shí)鐘誤差補(bǔ)償方法的實(shí)現(xiàn)流程,該實(shí)時(shí)時(shí)鐘誤差補(bǔ)償方法是基于上述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置而實(shí)現(xiàn)的,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,詳述如下:
在步驟S100中,控制模塊500在一個(gè)預(yù)設(shè)補(bǔ)償周期內(nèi)計(jì)算低速定時(shí)累加器200和高速定時(shí)累加器400分別所對(duì)應(yīng)的低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。
優(yōu)選的,預(yù)設(shè)補(bǔ)償周期為0.5秒,在預(yù)設(shè)補(bǔ)償周期內(nèi),低速定時(shí)累加器200對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),高速定時(shí)累加器400對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)頻率大于或等于10MHz。
優(yōu)選的,補(bǔ)償存儲(chǔ)模塊700存儲(chǔ)低速周期補(bǔ)償個(gè)數(shù)信息和高速周期補(bǔ)償個(gè)數(shù)信息,并輸出低速周期補(bǔ)償個(gè)數(shù)信息和高速周期補(bǔ)償個(gè)數(shù)信息分別至低速定時(shí)累加器200和高速定時(shí)累加器400。
具體的,如圖4所示,步驟S100還具體包括以下步驟:
S101.控制模塊500計(jì)算晶體振蕩器100的頻率與標(biāo)準(zhǔn)頻率之間的相對(duì)誤差;
S102.控制模塊500在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)相對(duì)誤差計(jì)算對(duì)應(yīng)的時(shí)間偏差;
S103.控制模塊500根據(jù)時(shí)間偏差計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。
在步驟S200中,控制模塊500使低速定時(shí)累加器200在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)低速周期補(bǔ)償個(gè)數(shù)對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償。
在步驟S300中,當(dāng)?shù)退俣〞r(shí)累加器200補(bǔ)償完成后,控制模塊500發(fā)出使能信號(hào)使高速定時(shí)累加器400在預(yù)設(shè)補(bǔ)償周期內(nèi)根據(jù)高速周期補(bǔ)償個(gè)數(shù)對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償。
具體的,當(dāng)?shù)退俣〞r(shí)累加器200完成周期補(bǔ)償后,控制模塊500發(fā)出使能信號(hào)至使能模塊600,使能模塊600將接收到的使能信號(hào)輸出至高頻振蕩器300,使高頻振蕩器300開(kāi)始工作,高速定時(shí)累加器400接收到高頻振蕩器300發(fā)出的時(shí)鐘信號(hào)后對(duì)其周期個(gè)數(shù)進(jìn)行計(jì)數(shù),即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償。當(dāng)高速定時(shí)累加器400完成周期補(bǔ)償后,控制模塊500控制使能信號(hào)發(fā)生電平翻轉(zhuǎn),即由原來(lái)的低電平變?yōu)楦唠娖交蛴稍瓉?lái)的高電平變?yōu)榈碗娖剑允垢哳l振蕩器300停止工作。
具體的,計(jì)時(shí)邏輯電路800根據(jù)低速定時(shí)累加器200進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和高速定時(shí)累加器400進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
為清楚解釋本實(shí)施例,以下結(jié)合具體應(yīng)用實(shí)例對(duì)本實(shí)施例作進(jìn)一步說(shuō)明:
首先,控制模塊500計(jì)算低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)。晶體振蕩器100的頻率為32765Hz,根據(jù)相對(duì)誤差ERR的計(jì)算公式,可得晶體振蕩器100的頻率與標(biāo)準(zhǔn)頻率之間的相對(duì)誤差為-91.55PPM,在0.5秒的預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)應(yīng)的時(shí)間偏差為-45.775PPM(-91.55PPM*0.5),則低速定時(shí)累加器200需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:-45.775*10-6*32765Hz=-1.5,取整數(shù)部分減一為-2,即低速周期補(bǔ)償個(gè)數(shù)為-2,低速定時(shí)累加器200需要減少計(jì)數(shù)2個(gè)低速時(shí)鐘周期,由于低速定時(shí)累加器200少補(bǔ)償了0.5/32765秒,因此高速定時(shí)累加器400需要補(bǔ)償?shù)闹芷趥€(gè)數(shù)為:0.5/(32765*TH),設(shè)定高頻振蕩器300的頻率TH為10MHz,則高速周期補(bǔ)償個(gè)數(shù)取整數(shù)為153,即高速定時(shí)累加器400需要計(jì)數(shù)153個(gè)高 速時(shí)鐘周期。
在得到低速周期補(bǔ)償個(gè)數(shù)和高速周期補(bǔ)償個(gè)數(shù)后,控制模塊500使低速定時(shí)累加器200在預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)晶體振蕩器100產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行減少計(jì)數(shù),減少計(jì)數(shù)個(gè)數(shù)為2(即低速定時(shí)累加器200進(jìn)行周期補(bǔ)償),當(dāng)?shù)退俣〞r(shí)累加器200計(jì)數(shù)完成后,控制模塊500發(fā)出使能信號(hào)使高速定時(shí)累加器400在預(yù)設(shè)補(bǔ)償周期內(nèi)對(duì)高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)的周期個(gè)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)個(gè)數(shù)為153(即高速定時(shí)累加器400進(jìn)行周期補(bǔ)償)。最后,計(jì)時(shí)邏輯電路800根據(jù)低速定時(shí)累加器200進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)和高速定時(shí)累加器400進(jìn)行周期計(jì)數(shù)所得到的周期個(gè)數(shù)進(jìn)行計(jì)時(shí)。
本發(fā)明中,實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置的補(bǔ)償周期為0.5秒,使得誤差補(bǔ)償后的0.5秒計(jì)時(shí)精確,因此,實(shí)時(shí)時(shí)鐘的每1秒計(jì)時(shí)也是精確的。同時(shí),所述實(shí)時(shí)時(shí)鐘誤差補(bǔ)償裝置包括高頻振蕩器300和高速定時(shí)累加器400,由于高頻振蕩器300產(chǎn)生的時(shí)鐘信號(hào)頻率遠(yuǎn)大于晶體振蕩器100的振蕩頻率,因此,采用高速定時(shí)累加器400進(jìn)行誤差補(bǔ)償實(shí)現(xiàn)了對(duì)實(shí)時(shí)時(shí)鐘誤差的高精度補(bǔ)償。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。