本發(fā)明涉及單片機(jī)技術(shù)領(lǐng)域,尤其涉及一種實(shí)時時鐘的處理系統(tǒng)及方法。
背景技術(shù):
時鐘電路就是產(chǎn)生像時鐘一樣準(zhǔn)確運(yùn)動的振蕩電路。任何工作都按時間順序,用于產(chǎn)生這個時鐘的電路就是時鐘電路。實(shí)時時鐘(realtimeclock,rtc)作為系統(tǒng)同步或時間標(biāo)志已被廣泛應(yīng)用于各種電子產(chǎn)品。在微控制單元(microcontrollerunit,mcu)系統(tǒng)中經(jīng)常需要用到rtc,用于滿足在一定工作條件下,實(shí)現(xiàn)精確計時的需求,同時,使用電池供電的設(shè)備,還需要盡可能降低系統(tǒng)的功耗。
rtc的計時時鐘有兩種來源,一種是外部32k時鐘作為時鐘源輸入,另一種是采用內(nèi)部rc振蕩器產(chǎn)生rtc,分別應(yīng)用于不同的場景。通常,外部時鐘可以實(shí)現(xiàn)較高的精度,但需要專用的時鐘,增加了系統(tǒng)和芯片的復(fù)雜度,并降低了可靠性。而采用通用的內(nèi)部rc振蕩器雖簡化了系統(tǒng),便于實(shí)現(xiàn)低功耗控制,但其精度較差,無法實(shí)現(xiàn)對內(nèi)部rc振蕩器的自動硬件校正。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種實(shí)時時鐘的處理系統(tǒng)及方法,可以對內(nèi)部rc振蕩器進(jìn)行自動硬件校正,提供低功耗的高精度實(shí)時時鐘,降低了硬件成本。
為了解決上述問題,本發(fā)明提出了一種實(shí)時時鐘的處理系統(tǒng),所述處理系統(tǒng)包括:
外部時鐘產(chǎn)生模塊,用于產(chǎn)生外部時鐘,作為校準(zhǔn)的參考源時鐘;
rc振蕩器,用于產(chǎn)生實(shí)時時鐘;
外部時鐘計數(shù)器,用于根據(jù)外部時鐘產(chǎn)生模塊產(chǎn)生的外部時鐘進(jìn)行計數(shù);
內(nèi)部時鐘計數(shù)器,用于根據(jù)rc振蕩器產(chǎn)生的實(shí)時時鐘進(jìn)行計數(shù);
時鐘比較器,用于當(dāng)外部時鐘計數(shù)器停止計數(shù)時,將所得外部時鐘計數(shù)值與目標(biāo)值寄存器存儲的期望值進(jìn)行比較,獲得比較結(jié)果;
內(nèi)部校準(zhǔn)寄存器,用于根據(jù)時鐘比較器獲得的比較結(jié)果對內(nèi)部時鐘計數(shù)器進(jìn)行校正;
目標(biāo)值寄存器,用于存儲實(shí)時時鐘的期望值。
優(yōu)選地,所述處理系統(tǒng)還包括:rc校準(zhǔn)寄存器,用于控制rc振蕩器的時鐘輸出檔位,并根據(jù)時鐘比較器獲得的比較結(jié)果進(jìn)行更新。
優(yōu)選地,所述處理系統(tǒng)還包括:休眠控制寄存器,用于停止或啟動外部時鐘產(chǎn)生模塊產(chǎn)生外部時鐘。
優(yōu)選地,所述時鐘比較器還用于將所得外部時鐘計數(shù)值與目標(biāo)值寄存器存儲的期望值進(jìn)行比較,計算實(shí)際時間間隔和期望值之間的偏差,并將該偏差發(fā)送給內(nèi)部校準(zhǔn)寄存器和rc校準(zhǔn)寄存器。
優(yōu)選地,所述內(nèi)部校準(zhǔn)寄存器還用于根據(jù)時鐘比較器獲得的實(shí)際時間間隔和期望值之間的偏差對內(nèi)部時鐘計數(shù)器進(jìn)行校正。
優(yōu)選地,所述rc校準(zhǔn)寄存器還用于根據(jù)時鐘比較器獲得的實(shí)際時間間隔和期望值之間的偏差進(jìn)行更新。
相應(yīng)地,本發(fā)明還提供一種實(shí)時時鐘的處理方法,所述方法包括:
產(chǎn)生外部時鐘,作為校準(zhǔn)的參考源時鐘;
根據(jù)產(chǎn)生的外部時鐘進(jìn)行計數(shù);
當(dāng)停止計數(shù)時,將所得外部時鐘計數(shù)值與期望值進(jìn)行比較,獲得比較結(jié)果;
根據(jù)比較結(jié)果對內(nèi)部時鐘計數(shù)器進(jìn)行校正。
優(yōu)選地,所述將所得外部時鐘計數(shù)值與期望值進(jìn)行比較,獲得比較結(jié)果的步驟,包括:
將所得外部時鐘計數(shù)值與目標(biāo)值寄存器存儲的期望值進(jìn)行比較;
計算實(shí)際時間間隔和期望值之間的偏差。
優(yōu)選地,所述根據(jù)比較結(jié)果對內(nèi)部時鐘計數(shù)器進(jìn)行校正的步驟,包括:
根據(jù)實(shí)際時間間隔和期望值之間的偏差對內(nèi)部時鐘計數(shù)器進(jìn)行校正。
優(yōu)選地,所述方法還包括:根據(jù)比較結(jié)果對rc校準(zhǔn)寄存器進(jìn)行更新。
在本發(fā)明實(shí)施例中,通過mcu系統(tǒng)中的外部高頻率高精度時鐘(非專用32k時鐘)對內(nèi)部rc振蕩器進(jìn)行自動硬件校正,提供低功耗的高精度實(shí)時時鐘,降低了硬件成本,提高了實(shí)時時鐘的精度,降低了系統(tǒng)的功耗。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1是本發(fā)明實(shí)施例的實(shí)時時鐘的處理系統(tǒng)的結(jié)構(gòu)組成示意圖;
圖2是本發(fā)明實(shí)施例的實(shí)時時鐘的處理方法的流程示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是本發(fā)明實(shí)施例的實(shí)時時鐘的處理系統(tǒng)的結(jié)構(gòu)組成示意圖,如圖1所示,該處理系統(tǒng)包括:
外部時鐘產(chǎn)生模塊1,用于產(chǎn)生外部時鐘,作為校準(zhǔn)的參考源時鐘;
rc振蕩器2,用于產(chǎn)生實(shí)時時鐘;
外部時鐘計數(shù)器3,用于根據(jù)外部時鐘產(chǎn)生模塊1產(chǎn)生的外部時鐘進(jìn)行計數(shù);
內(nèi)部時鐘計數(shù)器4,用于根據(jù)rc振蕩器2產(chǎn)生的實(shí)時時鐘進(jìn)行計數(shù);
時鐘比較器5,用于當(dāng)外部時鐘計數(shù)器3停止計數(shù)時,將所得外部時鐘計數(shù)值與目標(biāo)值寄存器7存儲的期望值進(jìn)行比較,獲得比較結(jié)果;
內(nèi)部校準(zhǔn)寄存器6,用于根據(jù)時鐘比較器5獲得的比較結(jié)果對內(nèi)部時鐘計數(shù)器4進(jìn)行校正;
目標(biāo)值寄存器7,用于存儲實(shí)時時鐘的期望值。
其中,外部時鐘計數(shù)器3分別與外部時鐘產(chǎn)生模塊1、內(nèi)部時鐘計數(shù)器4、時鐘比較器5相連接;時鐘比較器5另一端與目標(biāo)值寄存器7相連接;內(nèi)部校準(zhǔn)寄存器6分別與時鐘比較器5、內(nèi)部時鐘計數(shù)器4相連接;內(nèi)部時鐘計數(shù)器4另一端與rc振蕩器2相連接。
如圖1所示,該處理系統(tǒng)還包括:rc校準(zhǔn)寄存器8,用于控制rc振蕩器2的時鐘輸出檔位,并根據(jù)時鐘比較器5獲得的比較結(jié)果進(jìn)行更新。
還包括:休眠控制寄存器9,用于停止或啟動外部時鐘產(chǎn)生模塊1產(chǎn)生外部時鐘。當(dāng)不需要校準(zhǔn)的時候,將外部時鐘關(guān)閉,可以降低系統(tǒng)功耗。
具體實(shí)施中,rc振蕩器2產(chǎn)生持續(xù)的32khz的實(shí)時時鐘,作為實(shí)時時鐘的工作時鐘,rc振蕩器可以選擇不同的時鐘輸出檔位,提供不同頻率的時鐘輸出,設(shè)中心頻率為32768hz,在工作條件(溫度、電壓等)變化導(dǎo)致輸出頻率變化時,可以通過調(diào)整時鐘輸出檔位,將rc振蕩器的輸出頻率校準(zhǔn)到32768hz附近,校準(zhǔn)的范圍在25%以內(nèi),校準(zhǔn)的精度達(dá)到500ppm。
進(jìn)一步地,外部時鐘計數(shù)器3的啟動和停止由內(nèi)部時鐘計數(shù)器4決定。
內(nèi)部時鐘計數(shù)器4根據(jù)rc振蕩器2產(chǎn)生的實(shí)時時鐘進(jìn)行計數(shù)時,在內(nèi)部校準(zhǔn)寄存器6的控制下,周期性發(fā)出脈沖信號(周期為tori),根據(jù)脈沖信號控制外部時鐘計數(shù)器3的啟動和停止。
目標(biāo)值寄存器7用于存儲實(shí)時時鐘的期望值,由mcu設(shè)置,根據(jù)已知外部時鐘的頻率f,設(shè)置期望值為texp*f。
具體地,內(nèi)部校準(zhǔn)寄存器6用于調(diào)整內(nèi)部時鐘計數(shù)器4的計數(shù)上限,由于rc振蕩器的精度較低,經(jīng)過rc校準(zhǔn)寄存器8校準(zhǔn)后的實(shí)際輸出頻率仍偏離32768hz,通過改變內(nèi)部時鐘計數(shù)器4的計數(shù)上限,可以根據(jù)時鐘比較器5獲得的比較結(jié)果對內(nèi)部時鐘計數(shù)器4進(jìn)行校正,使內(nèi)部時鐘計數(shù)器4能夠更加精準(zhǔn)地輸出固定周期的脈沖,校準(zhǔn)的精度能夠達(dá)到30ppm,校準(zhǔn)的范圍可以達(dá)到1000ppm。
在本發(fā)明實(shí)施例中,時鐘比較器5還用于將所得外部時鐘計數(shù)值與目標(biāo)值寄存器7存儲的期望值進(jìn)行比較,計算實(shí)際時間間隔和期望值之間的偏差,并將該偏差發(fā)送給內(nèi)部校準(zhǔn)寄存器6和rc校準(zhǔn)寄存器8。
內(nèi)部校準(zhǔn)寄存器6還用于根據(jù)時鐘比較器5獲得的實(shí)際時間間隔和期望值之間的偏差對內(nèi)部時鐘計數(shù)器4進(jìn)行校正。
rc校準(zhǔn)寄存器8還用于根據(jù)時鐘比較器5獲得的實(shí)際時間間隔和期望值之間的偏差進(jìn)行更新。
在本發(fā)明實(shí)施例中,校準(zhǔn)的模式有兩種:
一種是持續(xù)校準(zhǔn),這種情況下可以持續(xù)監(jiān)控rc振蕩器的輸出頻率,達(dá)到最高的校準(zhǔn)精度,但是功耗較高。
另一種是定時校準(zhǔn),在實(shí)際的工作過程中,如果外部工作環(huán)境變化并不劇烈,rc振蕩器的輸出頻率的變化也會很緩慢,每隔一個固定的時間啟動校準(zhǔn)一次,也能得到足夠的精度,但功耗可以顯著的降低。
兩種模式下,進(jìn)入校準(zhǔn)過程后的工作流程都一樣,過程包括:
內(nèi)部時鐘計數(shù)器4發(fā)出啟動信號,開始第一輪校準(zhǔn)(粗調(diào));
外部時鐘計數(shù)器3開始計數(shù);
內(nèi)部時鐘計數(shù)器4計數(shù)到內(nèi)部校準(zhǔn)寄存器6對應(yīng)的計數(shù)上限之后,內(nèi)部時鐘計數(shù)器4發(fā)出停止信號;
將外部時鐘計數(shù)器3的計數(shù)值與目標(biāo)值寄存器7進(jìn)行對比;
根據(jù)對比的結(jié)果計算出實(shí)際時間間隔和期望值之間的偏差,并根據(jù)這個偏差更新rc校準(zhǔn)寄存器8,完成第一輪校準(zhǔn)??梢詫⒄`差校準(zhǔn)到500ppm以內(nèi)。
內(nèi)部時鐘計數(shù)器4發(fā)出第二輪校準(zhǔn)的啟動信號(細(xì)調(diào));
外部時鐘計數(shù)器3計數(shù);
內(nèi)部時鐘計數(shù)器4計數(shù)到內(nèi)部校準(zhǔn)寄存器6對應(yīng)的計數(shù)上限后,內(nèi)部時鐘計數(shù)器4發(fā)出停止信號;
將外部時鐘計數(shù)器3的計數(shù)值與目標(biāo)值寄存器7進(jìn)行對比,通過計算實(shí)際時間間隔和期望值之間的偏差更新內(nèi)部校準(zhǔn)寄存器6,并記錄下這個偏差;
再重復(fù)一遍細(xì)調(diào)的過程,比較兩次的偏差,選取偏差較小的結(jié)果作為最終校準(zhǔn)的結(jié)果。
最終,通過這兩輪的校準(zhǔn),實(shí)現(xiàn)30ppm以下的高精度實(shí)時時鐘。
相應(yīng)地,本發(fā)明實(shí)施例還提供一種實(shí)時時鐘的處理方法,如圖2所示,該方法包括:
s1,產(chǎn)生外部時鐘,作為校準(zhǔn)的參考源時鐘;
s2,根據(jù)產(chǎn)生的外部時鐘進(jìn)行計數(shù);
s3,當(dāng)停止計數(shù)時,將所得外部時鐘計數(shù)值與期望值進(jìn)行比較,獲得比較結(jié)果;
s4,根據(jù)比較結(jié)果對內(nèi)部時鐘計數(shù)器進(jìn)行校正。
進(jìn)一步地,s3包括:
將所得外部時鐘計數(shù)值與目標(biāo)值寄存器存儲的期望值進(jìn)行比較;
計算實(shí)際時間間隔和期望值之間的偏差。
根據(jù)實(shí)際時間間隔和期望值之間的偏差對內(nèi)部時鐘計數(shù)器進(jìn)行校正、對rc校準(zhǔn)寄存器進(jìn)行更新。
該方法還包括:停止或啟動外部時鐘的產(chǎn)生。當(dāng)不需要校準(zhǔn)的時候,將外部時鐘關(guān)閉,可以降低系統(tǒng)功耗。
具體實(shí)施中,rc振蕩器產(chǎn)生持續(xù)的32khz的實(shí)時時鐘,作為實(shí)時時鐘的工作時鐘,rc振蕩器可以選擇不同的時鐘輸出檔位,提供不同頻率的時鐘輸出,設(shè)中心頻率為32768hz,在工作條件(溫度、電壓等)變化導(dǎo)致輸出頻率變化時,可以通過調(diào)整時鐘輸出檔位,將rc振蕩器的輸出頻率校準(zhǔn)到32768hz附近,校準(zhǔn)的范圍在25%以內(nèi),校準(zhǔn)的精度達(dá)到500ppm。
在s2中,外部時鐘計數(shù)器的啟動和停止由內(nèi)部時鐘計數(shù)器決定。
內(nèi)部時鐘計數(shù)器根據(jù)rc振蕩器產(chǎn)生的實(shí)時時鐘進(jìn)行計數(shù)時,在內(nèi)部校準(zhǔn)寄存器的控制下,周期性發(fā)出脈沖信號(周期為tori),根據(jù)脈沖信號控制外部時鐘計數(shù)器的啟動和停止。
目標(biāo)值寄存器存儲實(shí)時時鐘的期望值由mcu設(shè)置,根據(jù)已知外部時鐘的頻率f,設(shè)置期望值為texp*f。
具體地,內(nèi)部校準(zhǔn)寄存器調(diào)整內(nèi)部時鐘計數(shù)器的計數(shù)上限,由于rc振蕩器的精度較低,經(jīng)過rc校準(zhǔn)寄存器校準(zhǔn)后的實(shí)際輸出頻率仍偏離32768hz,通過改變內(nèi)部時鐘計數(shù)器的計數(shù)上限,可以根據(jù)時鐘比較器獲得的比較結(jié)果對內(nèi)部時鐘計數(shù)器進(jìn)行校正,使內(nèi)部時鐘計數(shù)器能夠更加精準(zhǔn)地輸出固定周期的脈沖,校準(zhǔn)的精度能夠達(dá)到30ppm,校準(zhǔn)的范圍可以達(dá)到1000ppm。
在本發(fā)明實(shí)施例中,時鐘比較器將所得外部時鐘計數(shù)值與目標(biāo)值寄存器存儲的期望值進(jìn)行比較,計算實(shí)際時間間隔和期望值之間的偏差,并將該偏差發(fā)送給內(nèi)部校準(zhǔn)寄存器和rc校準(zhǔn)寄存器。
內(nèi)部校準(zhǔn)寄存器根據(jù)時鐘比較器獲得的實(shí)際時間間隔和期望值之間的偏差對內(nèi)部時鐘計數(shù)器進(jìn)行校正。
rc校準(zhǔn)寄存器根據(jù)時鐘比較器獲得的實(shí)際時間間隔和期望值之間的偏差進(jìn)行更新。
在本發(fā)明實(shí)施例中,校準(zhǔn)的模式有兩種:
一種是持續(xù)校準(zhǔn),這種情況下可以持續(xù)監(jiān)控rc振蕩器的輸出頻率,達(dá)到最高的校準(zhǔn)精度,但是功耗較高。
另一種是定時校準(zhǔn),在實(shí)際的工作過程中,如果外部工作環(huán)境變化并不劇烈,rc振蕩器的輸出頻率的變化也會很緩慢,每隔一個固定的時間啟動校準(zhǔn)一次,也能得到足夠的精度,但功耗可以顯著的降低。
兩種模式下,進(jìn)入校準(zhǔn)過程后的工作流程都一樣,過程包括:
內(nèi)部時鐘計數(shù)器發(fā)出啟動信號,開始第一輪校準(zhǔn)(粗調(diào));
外部時鐘計數(shù)器開始計數(shù);
內(nèi)部時鐘計數(shù)器計數(shù)到內(nèi)部校準(zhǔn)寄存器對應(yīng)的計數(shù)上限之后,內(nèi)部時鐘計數(shù)器發(fā)出停止信號;
將外部時鐘計數(shù)器的計數(shù)值與目標(biāo)值寄存器進(jìn)行對比;
根據(jù)對比的結(jié)果計算出實(shí)際時間間隔和期望值之間的偏差,并根據(jù)這個偏差更新rc校準(zhǔn)寄存器,完成第一輪校準(zhǔn)。可以將誤差校準(zhǔn)到500ppm以內(nèi)。
內(nèi)部時鐘計數(shù)器發(fā)出第二輪校準(zhǔn)的啟動信號(細(xì)調(diào));
外部時鐘計數(shù)器計數(shù);
內(nèi)部時鐘計數(shù)器計數(shù)到內(nèi)部校準(zhǔn)寄存器對應(yīng)的計數(shù)上限后,內(nèi)部時鐘計數(shù)器發(fā)出停止信號;
將外部時鐘計數(shù)器的計數(shù)值與目標(biāo)值寄存器進(jìn)行對比,通過計算實(shí)際時間間隔和期望值之間的偏差更新內(nèi)部校準(zhǔn)寄存器,并記錄下這個偏差;
再重復(fù)一遍細(xì)調(diào)的過程,比較兩次的偏差,選取偏差較小的結(jié)果作為最終校準(zhǔn)的結(jié)果。
最終,通過這兩輪的校準(zhǔn),實(shí)現(xiàn)30ppm以下的高精度實(shí)時時鐘。
在本發(fā)明實(shí)施例中,通過mcu系統(tǒng)中的外部高頻率高精度時鐘(非專用32k時鐘)對內(nèi)部rc振蕩器進(jìn)行自動硬件校正,提供低功耗的高精度實(shí)時時鐘,降低了硬件成本,提高了實(shí)時時鐘的精度,降低了系統(tǒng)的功耗。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于一計算機(jī)可讀存儲介質(zhì)中,存儲介質(zhì)可以包括:只讀存儲器(rom,readonlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁盤或光盤等。
另外,以上對本發(fā)明實(shí)施例所提供的實(shí)時時鐘的處理系統(tǒng)及方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。