專利名稱:實時時鐘寬范圍溫度誤差補償方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及半導(dǎo)體技術(shù)領(lǐng)域,特別是一種實時時鐘(RTC,Real-Time Clock)寬范圍溫度誤差補償方法及其誤差補償系統(tǒng)。
背景技術(shù):
如今隨著科技的進步,對現(xiàn)有的嵌入式領(lǐng)域中時鐘的精度提出了更高的要求,以滿足更嚴(yán)格更精準(zhǔn)的實時應(yīng)用。而影響時鐘精度的因素有兩個,第一個是石英晶振本身的誤差,第二個是環(huán)境溫度變化所帶來的誤差。前一種是器件自身固有的誤差,比較恒定可以通過補償?shù)姆椒ǖ窒?。后一種需要建立溫度和晶振頻率的數(shù)學(xué)模型來進行補償,以抵消
掉誤差影響。目前,對時鐘誤差的解決方法通常有硬件補償和軟件補償兩種方法。硬件補償是由集成電路公司將補償算法集成到芯片內(nèi)部,由硬件自身直接完成補償,無需開發(fā)人員關(guān)心。硬件補償雖然具有精度高補償范圍廣的優(yōu)點,但是其價格較高,不適宜在一些對成本比較敏感的產(chǎn)品中應(yīng)用。軟件補償是采用程序加算法的方法嵌入到CPU中,通過軟件算法對其進行補償。軟件補償?shù)某杀鞠鄬Φ土?,適合應(yīng)用于一些低成本的開發(fā),但是其溫度補償?shù)姆秶邢?,是其致命的缺點。圖2為石英晶振溫度誤差曲線示意圖。圖中虛線為晶振未校準(zhǔn)時誤差的溫度曲線,實線為晶振校準(zhǔn)后的標(biāo)準(zhǔn)溫度曲線。石英晶振的精度誤差與溫度的關(guān)系方程如下acc = dev+K X (T-T0)2其中,acc為需要補償?shù)恼`差,dev為晶振在曲線頂點時的誤差,T0為晶振曲線頂點時的溫度(通常這個曲線頂點溫度為25°C),T為晶振的工作溫度,K為曲線系數(shù),該系數(shù)根據(jù)廠家提供的晶振系數(shù)相關(guān)。理論上,采用軟件補償?shù)姆椒▽r鐘誤差進行補償,只要依據(jù)上面的關(guān)系方程,預(yù)先測得該石英晶振的曲線頂點誤差dev、曲線頂點溫度Ttl和曲線系數(shù)K,即可實現(xiàn)對時鐘誤差的精確補償。但是,一方面目前市場上的產(chǎn)品主要出于成本考慮,所采用的用以存儲誤差補償 acc的補償寄存器一般為只支持無符號數(shù)字的寄存器。這使得誤差補償acc最小只能補償 Oppm0當(dāng)需要補償?shù)恼`差小于Oppm時,該產(chǎn)品就無法繼續(xù)對時鐘進行誤差補償了?;谶@一原因,我們可以根據(jù)上面所給出的石英晶振精度誤差與溫度的關(guān)系方程推導(dǎo)出,時鐘的溫度補償范圍r。-V^7^^r^r。+V^7^。另一方面,由于產(chǎn)品設(shè)計用以記錄補償誤差acc和曲線頂點誤差dev的位數(shù)是有限的。這使得補償誤差acc和曲線頂點誤差dev的設(shè)置范圍也是有限的。因此,在實際使用中,補償誤差acc和曲線頂點誤差dev的設(shè)置是有上限的。以常見的STM32F10XXX時鐘為例,使用軟件補償方法對其進行補償校準(zhǔn)。該時鐘芯片晶振的標(biāo)準(zhǔn)頻率Ftl為32768Hz、曲線頂點誤差dev根據(jù)芯片手冊給出的范圍為 0ppm-121ppm(這主要是因為該款時鐘芯片為曲線頂點誤差dev提供的是6位字節(jié))、曲線頂點溫度Ttl為25V、曲線系數(shù)K為-0. 04ppm/°C 2。根據(jù)上述時鐘溫度補償范圍計算式可以得到該款時鐘芯片的溫度補償范圍為-30°C< T < 80°C,即該款時鐘芯片的溫度誤差只有在-30°C< T < 80°C溫度范圍內(nèi)才是可補償?shù)模鲈摲秶鷦t該款芯片無法進行精確的溫度誤差補償。綜合以上因素,使得嵌入式系統(tǒng)在采用軟件補償方法對時鐘進行誤差補償時,實際只能在一定溫度范圍內(nèi)進行補償,超出這一溫度范圍則無法繼續(xù)補償。這是軟件補償方法在實際使用中的最大問題。鑒于此,我們有必要對時鐘的軟件補償方法進行完善,使之可以在更寬的溫度范圍內(nèi)進行溫度補償,同時不會增加過多的成本。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于解決現(xiàn)有技術(shù)中存在的問題,提供一種通過在調(diào)節(jié)時鐘晶振的分頻頻率的同時對晶振誤差補償進行對應(yīng)調(diào)整,從而改善時鐘的溫度補償范圍的誤差補償方法,以及用于實現(xiàn)該誤差補償方法的系統(tǒng)。本發(fā)明的目的是通過下述技術(shù)方案予以實現(xiàn)的一種實時時鐘寬范圍溫度誤差補償方法,包括讀取晶振信息存儲器中存儲的晶振信息;根據(jù)所讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,Ttl為曲線頂點溫度;調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCfflaJ內(nèi), 其中,[ACCmin,ACCfflaJ為誤差補償acc的調(diào)節(jié)范圍;將計算得到的誤差補償acc寫入補償寄存器,對晶振進行溫度補償。所述晶振信息存儲器中存儲的晶振信息包括基本信息和狀態(tài)信息;所述基本信息至少包括標(biāo)準(zhǔn)頻率&、曲線頂點誤差dev、曲線頂點溫度I;、曲線系數(shù)K和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCmJ ;所述狀態(tài)信息至少包括晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率;所述恒定誤差量E = 1/F0或E = [1/FJ。所述晶振信息存儲器中存儲的晶振信息包括下限經(jīng)驗數(shù)值Rmin和上限經(jīng)驗數(shù)值 R ·
ι vmax ‘所述誤差補償acc 的調(diào)節(jié)范圍[ACCmin,ACCmaJ 變?yōu)閇ACCmin+Rmin,ACCmax-RmaJ。所述調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCmax] 內(nèi)包括判斷所計算得到的誤差補償acc是否在調(diào)節(jié)范圍內(nèi);如果小于調(diào)節(jié)范圍的下限,則晶振分頻調(diào)整的分頻單位f減1,再重新根據(jù)晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;如果大于調(diào)節(jié)范圍的上限,則晶振分頻調(diào)整的分頻單位f加1,再重新根據(jù)晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc。
系統(tǒng)間隔一定時間周期重復(fù)一遍所述溫度誤差補償方法。所述晶振信息存儲器中存儲的晶振信息包括晶振的線性誤差范圍[Fmin,F(xiàn)fflaJ ;如果所述晶振當(dāng)前的分頻頻率F被調(diào)整超出晶振的線性誤差范圍[Fmin,F(xiàn)max],則向用戶報警提示。所述晶振的標(biāo)準(zhǔn)頻率Ftl為32768Hz ;所述恒定誤差量E = 31ppm。一種實時時鐘寬范圍溫度誤差補償系統(tǒng),其特征在于,包括晶振信息存儲器、晶振補償計算單元、晶振信息調(diào)整單元和補償寄存器;所述晶振信息存儲器,用于存儲晶振信息;所述晶振補償計算單元,用于根據(jù)讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,Ttl為曲線頂點溫度;所述晶振信息調(diào)整單元,用于調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCmax]內(nèi);其中,[ACCmin,ACCmax]為誤差補償acc的調(diào)節(jié)范圍;所述補償寄存器,用于寫入誤差補償acc,以對晶振進行溫度補償。所述晶振信息存儲器包括基本信息存儲器和狀態(tài)信息存儲器;所述基本信息存儲器中至少存儲有標(biāo)準(zhǔn)頻率F。、曲線頂點誤差dev、曲線頂點溫度 ;、曲線系數(shù)K和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCfflaJ ;所述狀態(tài)信息存儲器中至少存儲有晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度 T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率;所述恒定誤差量E = 1/F0或E = [1/FJ。所述晶振信息調(diào)整單元包括誤差補償區(qū)間判斷模塊和晶振信息設(shè)置模塊;所述誤差補償區(qū)間判斷模塊,用于判斷所計算的誤差補償acc在所述調(diào)節(jié)范圍 [ACCmin,ACCmaJ的區(qū)間范圍;至少包括小于調(diào)節(jié)范圍下限區(qū)間、調(diào)節(jié)范圍區(qū)間、大于調(diào)節(jié)范圍上限區(qū)間;所述晶振信息設(shè)置模塊,用于根據(jù)誤差補償區(qū)間判斷模塊的區(qū)間范圍判斷對所述晶振分頻調(diào)整的分頻單位f進行調(diào)整。通過本發(fā)明實施例,該實時時鐘寬范圍溫度誤差補償方法通過調(diào)整時鐘晶振的分頻頻率,主動對誤差補償acc引入可控的恒定誤差量E,從而改變誤差補償acc的數(shù)值,使之落入產(chǎn)品提供的可調(diào)節(jié)范圍之內(nèi)。這樣,產(chǎn)品可以在不改變硬件配置的情況下繼續(xù)進行溫度誤差補償,不會因為受誤差補償acc的調(diào)節(jié)范圍所限而無法進行精確補償。
圖1為實時時鐘寬范圍溫度誤差補償方法流程圖;圖2為石英晶振溫度誤差曲線示意圖;圖3為實時時鐘寬范圍溫度誤差補償方法第一實施例流程圖;圖4為實時時鐘寬范圍溫度誤差補償系統(tǒng)結(jié)構(gòu)圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進一步描述。通過前面關(guān)于現(xiàn)有時鐘軟件誤差補償技術(shù)的介紹我們可以看出,現(xiàn)有的時鐘軟件誤差補償技術(shù)所存在的問題并不在于其本身補償算法的精度問題,而是在于開發(fā)產(chǎn)品受成本等客觀條件所限,能夠提供給誤差補償acc的調(diào)節(jié)范圍有限,從而導(dǎo)致時鐘的溫度補償范圍受限,無法在更寬的溫度范圍內(nèi)得到誤差補償。基于上述問題分析,本發(fā)明提出的實時時鐘寬范圍溫度誤差補償方法,通過調(diào)整時鐘晶振的分頻頻率,主動引入可控的誤差,從而調(diào)整誤差補償acc到產(chǎn)品提供的可調(diào)節(jié)范圍之內(nèi),使得產(chǎn)品得以繼續(xù)進行誤差補償,進而實現(xiàn)更寬溫度范圍的誤差補償。圖1為實時時鐘寬范圍溫度誤差補償方法流程圖。如圖1所示,實時時鐘寬范圍溫度誤差補償方法,包括如下步驟讀取晶振信息存儲器中存儲的晶振信息;根據(jù)所讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-T0)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,Ttl為曲線頂點溫度;調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCfflaJ內(nèi), 其中,[ACCmin,ACCfflaJ為誤差補償acc的調(diào)節(jié)范圍;將計算得到的誤差補償acc寫入補償寄存器,對晶振進行溫度補償。這里,我們對現(xiàn)有的晶振精度誤差與溫度關(guān)系方程進行了調(diào)整,在計算式中增加了基于分頻調(diào)整的誤差偏移量fE。其中,f為晶振分頻調(diào)整的分頻單位,即我們通過分頻器對該石英晶振的頻率進行分頻調(diào)整所引入的偏移量。該晶振分頻調(diào)整的分頻單位F = F-Ftl,為整數(shù)。其中,F(xiàn)為晶振進行分頻調(diào)整后的分頻頻率。其中,E為恒定誤差量,是晶振每經(jīng)過一個分頻單位的分頻調(diào)整后所引入的誤差。 我們對晶振進行分頻調(diào)整會對晶振引入誤差。當(dāng)我們降低一個分頻單位,則引入誤差1/ (F0-I);繼續(xù)進一步降低一個分頻單位,則引入誤差;……;如此可推。反之,當(dāng)我們升高一個分頻單位,則引入誤差;繼續(xù)進一步升高一個分頻單位,則引入誤差;……;如此可推。由于晶振的標(biāo)準(zhǔn)頻率Ftl本身是一個較大的值(一般在五位數(shù)以上),當(dāng)晶振的頻率在本身的線性誤差范圍內(nèi)(相對于標(biāo)準(zhǔn)頻率Ftl是一個很小的范圍)進行調(diào)節(jié)時,我們可以認(rèn)為這種調(diào)節(jié)所引入的誤差是一個恒定的誤差量E = IziFci(單位ppm)。當(dāng)然,為了方便計算,我們可以將恒定誤差量E預(yù)先進行取整處理,即E= [1/FJ。 這樣可以簡化誤差補償acc的計算過程和最終誤差補償acc的計算結(jié)果,從而形成一個線性關(guān)系。由此可見,我們通過對時鐘晶振進行分頻調(diào)整,可以主動對誤差補償acc引入一個可控的誤差偏移量fE,從而改變誤差補償acc的計算值,使之落入產(chǎn)品提供的可調(diào)節(jié)范圍之內(nèi)。這樣,產(chǎn)品可以在不改變硬件配置的情況下繼續(xù)進行溫度誤差補償,不會因為受誤差補償acc的調(diào)節(jié)范圍所限而無法進行精確補償。實施例一由上可知,本發(fā)明所設(shè)計的實時時鐘寬范圍溫度誤差補償方法的關(guān)鍵在于,通過何種辦法對晶振分頻調(diào)整的分頻單位f進行調(diào)整,使其所引入的誤差偏移量fE能夠調(diào)整誤差補償acc的計算值落入產(chǎn)品提供的可調(diào)節(jié)范圍之內(nèi)。這里,我們就給出一種可行的實施例。如圖3所示,具體包括如下步驟步驟1,獲取時鐘石英晶振的基本信息,該基本信息中至少包括標(biāo)準(zhǔn)頻率&、曲線頂點誤差dev、曲線頂點溫度T。、曲線系數(shù)K和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCmaJ ;步驟2,獲取當(dāng)前石英晶振的狀態(tài)信息,該狀態(tài)信息中至少包括晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率;如果是開機后首次獲取當(dāng)前石英晶振的狀態(tài)信息,則晶振默認(rèn)的晶振分頻調(diào)整的分頻單位f = 0,即分頻頻率為F = &。步驟3,根據(jù)石英晶振的精度誤差與溫度的關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;其中,恒定誤差量E = 1/F0或E = [1/FJ ;步驟4,判斷誤差補償acc是否在調(diào)節(jié)范圍[ACCmin,ACCmax]內(nèi)?如果誤差補償acc 在調(diào)節(jié)范圍[ACCmin,ACCmax]內(nèi),則執(zhí)行步驟7 ;如果誤差補償acc小于ACCmin,則執(zhí)行步驟5 ; 如果誤差補償acc大于ACCmax,則執(zhí)行步驟6 ;步驟5,調(diào)整分頻器使晶振的分頻頻率減1,即晶振分頻調(diào)整的分頻單位f減1,并返回步驟2 ;步驟6,調(diào)整分頻器使晶振的分頻頻率加1,即晶振分頻調(diào)整的分頻單位f加1,并返回步驟2 ;步驟7,將計算得到的誤差補償acc寫入補償寄存器,對石英晶振進行溫度補償。根據(jù)上述的溫度誤差補償方法,系統(tǒng)通過獲取當(dāng)前石英晶振的狀態(tài)信息,對所需的誤差補償acc進行計算,并判斷其是否在系統(tǒng)提供的調(diào)節(jié)范圍之內(nèi),如果不在調(diào)節(jié)范圍之內(nèi)則通過調(diào)整石英晶振的分頻頻率引入可控誤差,從而改變誤差補償acc的計算值,使之最終落入系統(tǒng)提供的調(diào)節(jié)范圍之內(nèi),再進行溫度補償。通過該誤差補償方法,產(chǎn)品可以在不改變硬件配置的情況下,使其在晶振本身的線性誤差范圍內(nèi)均可得到準(zhǔn)確的誤差補償, 擴大了時鐘的溫度補償范圍。同時還應(yīng)當(dāng)指出,上述實施例僅給出了一種對晶振分頻調(diào)整的分頻單位f的可行調(diào)整方案,并不用以限定本發(fā)明的保護范圍。本領(lǐng)域技術(shù)人員可以通過其他流程設(shè)計,給出不同的對晶振分頻調(diào)整的分頻單位f的調(diào)整方案,只要其通過調(diào)整晶振的分頻頻率引入可控誤差,從而使誤差補償acc落入系統(tǒng)提供的調(diào)節(jié)范圍之內(nèi),均應(yīng)視為在本發(fā)明的保護范圍之內(nèi)。另外,時鐘一般需要實時的監(jiān)測當(dāng)前溫度狀態(tài),對溫度補償值及時進行修正。因此,所述溫度誤差補償方法,在所述步驟7后還包括步驟8,系統(tǒng)間隔一定時間周期返回步驟2。這里,該時間周期的長短根據(jù)各個產(chǎn)品所需的刷新頻率要求不同而定。再有,如前所述本發(fā)明所提供的補償方法的可補償范圍是調(diào)整后的分頻頻率仍然處于晶振本身的線性誤差范圍內(nèi)。如果超出了該晶振的線性誤差范圍,則無法繼續(xù)按照所給出的關(guān)系方程進行誤差補償,需要向用戶報警提示?;诖?,所述溫度誤差補償方法還包括如下步驟
所述步驟1中的基本信息還包括晶振的線性誤差范圍[Fmin,F(xiàn)fflaJ ;所述步驟5,調(diào)整分頻器使晶振的分頻頻率減1 ;判斷調(diào)整后的分頻頻率是否超出所述線性誤差范圍[Fmin,F(xiàn)max];如果超出,則向用戶報警提示;如果沒超出,則返回步驟2;所述步驟6,調(diào)整分頻器使晶振的分頻頻率加1 ;判斷調(diào)整后的分頻頻率是否超出所述線性誤差范圍[Fmin,F(xiàn)max];如果超出,則向用戶報警提示;如果沒超出,則返回步驟2。應(yīng)當(dāng)指出,在實際的產(chǎn)品使用過程中,所述曲線頂點誤差dev和誤差補償acc —般是不會設(shè)置到其調(diào)節(jié)范圍的端值部分的。這是因為元器件和石英晶振本身的誤差比較分散,如果設(shè)置到極限端值,會造成產(chǎn)品的合格率下降。通常的做法是限定曲線頂點誤差dev 和誤差補償acc的實際設(shè)置范圍在遠離調(diào)節(jié)范圍端值的一個經(jīng)驗數(shù)值R的范圍之內(nèi)。當(dāng)然, 這個經(jīng)驗數(shù)值R的具體取值根據(jù)各個產(chǎn)品要求不同也有所不同,由開發(fā)人員自主設(shè)置。基于此,本發(fā)明的誤差補償方法可相應(yīng)調(diào)整如下 所述步驟1中的基本信息還包括經(jīng)驗數(shù)值R ;所述步驟4,判斷誤差補償acc是否在范圍[ACCmin+R,ACCmax-R]內(nèi)?如果誤差補償 acc在調(diào)節(jié)范圍[ACCmin+R,ACCmax-R]內(nèi),則執(zhí)行步驟7 ;如果誤差補償acc小于ACCmin+R,則執(zhí)行步驟5 ;如果誤差補償acc大于ACCmax-R,則執(zhí)行步驟6。當(dāng)然,可以根據(jù)實際情況也可給誤差補償acc的調(diào)節(jié)范圍的上下限分別設(shè)置不同的經(jīng)驗數(shù)值RmiP ,則上述步驟還可以進一步調(diào)整如下。所述步驟1中的基本信息還包括下限經(jīng)驗數(shù)值Rmin和上限經(jīng)驗數(shù)值Rmax ;所述步驟4,判斷誤差補償acc是否在范圍[ACCmin+Rmin,ACCmax-RmaJ內(nèi)?如果誤差補償acc在調(diào)節(jié)范圍[ACCmin+Rmin,ACCmax-Rmax]內(nèi),則執(zhí)行步驟7 ;如果誤差補償acc小于 ACCmin+Rmin,則執(zhí)行步驟5 ;如果誤差補償acc大于ACCmax-Rmax,則執(zhí)行步驟6。下面我們?nèi)匀灰猿R姷腟TM32F10XXX時鐘為例,結(jié)合上述實施例一中所給出的流程步驟,對本發(fā)明所設(shè)計的溫度誤差補償方法進行說明。步驟1,獲取該時鐘芯片晶振的基本信息標(biāo)準(zhǔn)頻率Ftl為32768Hz,曲線頂點溫度 T0為25°C,曲線系數(shù)K為-0. 04ppm/°C 2,其曲線頂點誤差dev我們假設(shè)為42ppm,誤差補償 acc的可調(diào)節(jié)范圍為W,121]。由于,該晶振的標(biāo)準(zhǔn)頻率Ftl為32768Hz,因此恒定誤差量E =[1/FJ = [1/32768] = 31ppm。步驟2,獲取該時鐘芯片晶振的狀態(tài)信息。如前所述,開機后首次獲取當(dāng)前石英晶振的狀態(tài)信息,默認(rèn)晶振分頻調(diào)整的分頻單位f = 0,即分頻頻率為F = &。假設(shè)當(dāng)前工作溫度 T = 80°C。步驟3,將上述基本信息和狀態(tài)信息代入晶振的精度誤差與溫度的關(guān)系方程acc =dev-fE+KX (T-T0)2 = 42-0. 04X (80-25)2 = -79。因此,通過計算得到未經(jīng)過分頻調(diào)整的誤差補償acc = -79ppm。據(jù)前所述,如果按照現(xiàn)有技術(shù)誤差補償acc的可調(diào)節(jié)范圍為W,121]。因此,在 80°C的工作溫度下時鐘晶振無法得到精確地誤差補償。然而,按照本發(fā)明所給出的誤差補償方法,由于計算得到的誤差補償acc小于可調(diào)節(jié)范圍的下限Oppm,系統(tǒng)執(zhí)行步驟5,并經(jīng)過三次循環(huán)操作,最終調(diào)整晶振分頻調(diào)整的分頻單位f = -3,即分頻頻率F = 32765Hz。將調(diào)整后的基本信息和狀態(tài)信息代入晶振的精度誤差與溫度的關(guān)系方程acc =dev-fE+KX (T-T0)2 = 42+3X31-0. 04X (80-25)2 = 14。可見,通過上述分頻調(diào)整引入誤差偏移量fE = 93ppm,使得調(diào)整后的誤差補償acc = 14ppm,在可調(diào)節(jié)范圍為W,121]內(nèi),該晶振得以在80°C的工作溫度下繼續(xù)得到精確的溫度補償。當(dāng)工作溫度回歸到常溫25°C時,系統(tǒng)將新測得的狀態(tài)信息代入晶振的精度誤差與溫度的關(guān)系方程 acc = dev-fE+KX (T-T0)2 = 42+3X31-0. 04X (25-25)2 = 135。此時,誤差補償acc超出可調(diào)節(jié)范圍的上限121ppm,系統(tǒng)執(zhí)行步驟6,經(jīng)過一次調(diào)整操作,最終調(diào)整晶振分頻調(diào)整的分頻單位f = -2,即分頻頻率F = 32766Hz。將調(diào)整后的基本信息和狀態(tài)信息代入晶振的精度誤差與溫度的關(guān)系方程acc =
dev-fE+KX (T-T0)2 = 42+2X31-0. 04X (25-25)2 = 104??梢?,通過上述分頻調(diào)整又將誤
差補償acc回調(diào)為104ppm,在可調(diào)節(jié)范圍為W,121]內(nèi),該晶振得以繼續(xù)得到精確的溫度補 m
te ο可見,通過本發(fā)明所設(shè)計的溫度誤差補償方法,我們可以在不改變硬件配置的情況下,獲得更寬的溫度補償范圍,大大提高了軟件補償方法的實用性。而且,該誤差補償方法不僅可以在工作溫度超出溫度補償范圍的條件下,調(diào)整晶振的精度誤差與溫度的關(guān)系方程實現(xiàn)誤差補償,同時還設(shè)置有回調(diào)機制,使其可以在溫度回歸溫度補償范圍時,調(diào)整晶振的精度誤差與溫度的關(guān)系方程,將誤差補償acc進行回調(diào)。圖4為實時時鐘寬范圍溫度誤差補償系統(tǒng)結(jié)構(gòu)圖。該誤差補償系統(tǒng)是用以實現(xiàn)上述誤差補償方法所設(shè)計的誤差補償系統(tǒng)。如圖4所示,該誤差補償系統(tǒng)包括晶振信息存儲器、晶振補償計算單元、晶振信息調(diào)整單元和補償寄存器;所述晶振信息存儲器,用于存儲晶振信息;所述晶振補償計算單元,與晶振信息存儲器及晶振信息調(diào)整單元相連接,用于根據(jù)讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E 為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,Ttl為曲線頂點溫度;所述晶振信息調(diào)整單元,與晶振信息存儲器及晶振補償計算單元相連接,用于調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCfflaJ內(nèi);其中, [ACCmin,ACCfflaJ為誤差補償acc的調(diào)節(jié)范圍;所述補償寄存器,與晶振補償計算單元相連接,用于寫入誤差補償acc,以對晶振進行溫度補償。所述晶振信息存儲器包括基本信息存儲器和狀態(tài)信息存儲器;所述基本信息存儲器中至少存儲有標(biāo)準(zhǔn)頻率F。、曲線頂點誤差dev、曲線頂點溫度Tr曲線系數(shù)K和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCfflaJ ;所述狀態(tài)信息存儲器中至少存儲有晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度 T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率;所述恒定誤差量E = 1/F?;駿 = [1/FJ。所述晶振信息調(diào)整單元包括誤差補償區(qū)間判斷模塊和晶振信息設(shè)置模塊;所述誤差補償區(qū)間判斷模塊,用于判斷所計算的誤差補償acc在所述調(diào)節(jié)范圍 [ACCmin,ACCmaJ的區(qū)間范圍;至少包括小于調(diào)節(jié)范圍下限區(qū)間、調(diào)節(jié)范圍區(qū)間、大于調(diào)節(jié)范圍上限區(qū)間;
所述晶振信息設(shè)置模塊,用于根據(jù)誤差補償區(qū)間判斷模塊的區(qū)間范圍判斷對所述晶振分頻調(diào)整的分頻單位f進行調(diào)整。當(dāng)誤差補償區(qū)間判斷模塊判斷誤差補償acc落入小于調(diào)節(jié)范圍下限區(qū)間時,晶振信息設(shè)置模塊調(diào)整晶振分頻調(diào)整的分頻單位f減1 ;當(dāng)誤差補償區(qū)間判斷模塊判斷誤差補償acc落入大于調(diào)節(jié)范圍上限區(qū)間時,晶振信息設(shè)置模塊調(diào)整晶振分頻調(diào)整的分頻單位f加1 ;當(dāng)誤差補償區(qū)間判斷模塊判斷誤差補償acc落入調(diào)節(jié)范圍區(qū)間時,則晶振補償計算單元將計算得到的誤差補償acc寫入補償寄存器,對晶振進行溫度補償。以上所述的具體實施方式
,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式
而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種實時時鐘寬范圍溫度誤差補償方法,其特征在于,包括讀取晶振信息存儲器中存儲的晶振信息;根據(jù)所讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,Ttl為曲線頂點溫度;調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCmax]內(nèi),其中, [ACCmin,ACCfflaJ為誤差補償acc的調(diào)節(jié)范圍;將計算得到的誤差補償acc寫入補償寄存器,對晶振進行溫度補償。
2.如權(quán)利要求1所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于,所述晶振信息存儲器中存儲的晶振信息包括基本信息和狀態(tài)信息;所述基本信息至少包括標(biāo)準(zhǔn)頻率&、曲線頂點誤差dev、曲線頂點溫度 ;、曲線系數(shù)K 和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCmJ ;所述狀態(tài)信息至少包括晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率;所述恒定誤差量E = 1/F0或E = [1/FJ。
3.如權(quán)利要求1所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于,所述晶振信息存儲器中存儲的晶振信息包括下限經(jīng)驗數(shù)值Rmin和上限經(jīng)驗數(shù)值Rmax ;所述誤差補償 acc 的調(diào)節(jié)范圍[ACCmin,ACCmaJ 變?yōu)閇ACCmin+Rmin,ACCmax-RmaJ。
4.所述權(quán)利要求1至3中任一所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于, 所述調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCfflaJ內(nèi)包括判斷所計算得到的誤差補償acc是否在調(diào)節(jié)范圍內(nèi);如果小于調(diào)節(jié)范圍的下限,則晶振分頻調(diào)整的分頻單位f減1,再重新根據(jù)晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc ;如果大于調(diào)節(jié)范圍的上限,則晶振分頻調(diào)整的分頻單位f加1,再重新根據(jù)晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T-Ttl)2計算誤差補償acc。
5.如權(quán)利要求1所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于,系統(tǒng)間隔一定時間周期重復(fù)一遍所述溫度誤差補償方法。
6.如權(quán)利要求2所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于,所述晶振信息存儲器中存儲的晶振信息包括晶振的線性誤差范圍[Fmin,F(xiàn)max];如果所述晶振當(dāng)前的分頻頻率F被調(diào)整超出晶振的線性誤差范圍[Fmin,F(xiàn)max],則向用戶報警提示。
7.如權(quán)利要求2所述的實時時鐘寬范圍溫度誤差補償方法,其特征在于,所述晶振的標(biāo)準(zhǔn)頻率Ftl為32768Hz ;所述恒定誤差量E = 31ppm。
8.一種實時時鐘寬范圍溫度誤差補償系統(tǒng),其特征在于,包括晶振信息存儲器、晶振補償計算單元、晶振信息調(diào)整單元和補償寄存器;所述晶振信息存儲器,用于存儲晶振信息;所述晶振補償計算單元,用于根據(jù)讀取的晶振信息,基于晶振的精度誤差與溫度關(guān)系方程acc = dev-fE+KX (T_TQ)2計算誤差補償acc ;其中,acc為溫度補償,dev為曲線頂點誤差,f為晶振分頻調(diào)整的分頻單位,E為恒定誤差量,K為曲線系數(shù),T為當(dāng)前工作溫度,T0 為曲線頂點溫度;所述晶振信息調(diào)整單元,用于調(diào)整晶振分頻調(diào)整的分頻單位f,使誤差補償acc在調(diào)節(jié)范圍[ACCmin,ACCmaJ內(nèi);其中,[ACCmin,ACCmaJ為誤差補償acc的調(diào)節(jié)范圍; 所述補償寄存器,用于寫入誤差補償acc,以對晶振進行溫度補償。
9.如權(quán)利要求8所述的實時時鐘寬范圍溫度誤差補償系統(tǒng),其特征在于,所述晶振信息存儲器包括基本信息存儲器和狀態(tài)信息存儲器;所述基本信息存儲器中至少存儲有標(biāo)準(zhǔn)頻率&、曲線頂點誤差dev、曲線頂點溫度I;、 曲線系數(shù)K和誤差補償acc的可調(diào)節(jié)范圍[ACCmin,ACCmaJ ;所述狀態(tài)信息存儲器中至少存儲有晶振分頻調(diào)整的分頻單位f和當(dāng)前工作溫度T ;所述晶振分頻調(diào)整的分頻單位f = F-F0,為整數(shù);其中,F(xiàn)為晶振當(dāng)前的分頻頻率; 所述恒定誤差量E = 1/F0或E = [1/FJ。
10.如權(quán)利要求8所述的實時時鐘寬范圍溫度誤差補償系統(tǒng),其特征在于,所述晶振信息調(diào)整單元包括誤差補償區(qū)間判斷模塊和晶振信息設(shè)置模塊;所述誤差補償區(qū)間判斷模塊,用于判斷所計算的誤差補償acc在所述調(diào)節(jié)范圍 [ACCmin,ACCmaJ的區(qū)間范圍;至少包括小于調(diào)節(jié)范圍下限區(qū)間、調(diào)節(jié)范圍區(qū)間、大于調(diào)節(jié)范圍上限區(qū)間;所述晶振信息設(shè)置模塊,用于根據(jù)誤差補償區(qū)間判斷模塊的區(qū)間范圍判斷對所述晶振分頻調(diào)整的分頻單位f進行調(diào)整。
全文摘要
本發(fā)明提供了一種實時時鐘寬范圍溫度誤差補償方法及其系統(tǒng),該補償方法通過獲取當(dāng)前石英晶振的狀態(tài)信息,對所需的誤差補償acc進行計算,并判斷其是否在系統(tǒng)提供的調(diào)節(jié)范圍之內(nèi),如果不在調(diào)節(jié)范圍之內(nèi)則通過調(diào)整石英晶振的分頻頻率引入可控誤差,從而改變誤差補償acc的計算值,使之最終落入系統(tǒng)提供的調(diào)節(jié)范圍之內(nèi),再進行溫度補償。該溫度誤差補償方法通過調(diào)整時鐘晶振的分頻頻率,主動對誤差補償acc引入可控的恒定誤差量E,從而改變誤差補償acc的數(shù)值,使之落入產(chǎn)品提供的可調(diào)節(jié)范圍之內(nèi)。這樣,產(chǎn)品可以在不改變硬件配置的情況下繼續(xù)進行溫度誤差補償,不會因為受誤差補償acc的調(diào)節(jié)范圍所限而無法進行精確補償。
文檔編號G04G3/04GK102163041SQ20111003029
公開日2011年8月24日 申請日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者李鵬 申請人:北京煜邦電力技術(shù)有限公司