《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 電源技術(shù) > 設(shè)計應(yīng)用 > 一種基于累積誤差控制的RTC補(bǔ)償算法及電路
一種基于累積誤差控制的RTC補(bǔ)償算法及電路
2014年電子技術(shù)應(yīng)用第12期
趙東艷,,周芝梅,王于波,,張海峰
(北京南瑞智芯微電子科技有限公司,,北京100192)
摘要: 介紹了晶體振蕩器的溫漂特性,,提出了基于累積誤差控制的RTC溫度補(bǔ)償算法,累積頻率誤差控制在15.3 ppm以內(nèi),。設(shè)計了應(yīng)用于微控制器中的RTC補(bǔ)償電路,,開發(fā)了自動調(diào)教電路,能很好地滿足智能電表高精度,、低功耗的計時要求,。
中圖分類號: TN492
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)12-0066-03
A RTC compensation arithmetic and circuit based on cumulated deviation limitation
Zhao Dongyan,Zhou Zhimei,,Wang Yubo,,Zhang Haifeng
Beijing NARI Smartchip Microelectronics Company Limited.,,Beijing 100192,China
Abstract: The temperature has a great impact on crystal oscillator. A compensation arithmetic is presented in this paper, dedicated in limiting the cumulated frequency deviation in 15.3 ppm. A RTC compensation circuit and also an automatic trimming circuit used in MCU have been implemented, which can perfectly satisfy the smart electronic meter’s requirement.
Key words : cumulated deviation,;compensation arithmetic,;frequency deviation;RTC

0 引言

  高精度實(shí)時時鐘是現(xiàn)代智能電表的關(guān)鍵技術(shù),,我國智能電表對時鐘精度的要求為日計時誤差必須小于等于0.5 s/天,,這要求計時電路的時鐘偏差控制在5.7 ppm以內(nèi)。目前國內(nèi)智能電表實(shí)時時鐘的產(chǎn)生主要依靠高精度RTC芯片,,此類RTC芯片目前90%以上依賴從國外進(jìn)口,,造成我國的電表生產(chǎn)嚴(yán)重依賴國外進(jìn)口芯片。

  近年來國內(nèi)集成電路行業(yè)開始研究集成高精度RTC模塊的微控制器(Micro Controller Unit,,MCU)芯片,。采用這種MCU芯片的電表方案,不再需要單獨(dú)的RTC芯片,,可以逐步擺脫對國外RTC芯片的進(jìn)口依賴,,也可以使表方案設(shè)計簡單,成本降低,。這類MCU設(shè)計面臨的問題是,,如何能對集成在MCU內(nèi)的RTC模塊進(jìn)行全溫區(qū)調(diào)教,使其計時精度滿足國網(wǎng)對電表的精度要求,。

  本文首先介紹了晶體的溫度頻率誤差特性,,介紹了目前較常用的RTC溫度補(bǔ)償?shù)姆椒ǎ岢隽嘶?a class="innerlink" href="http://forexkbc.com/tags/累積誤差" title="累積誤差" target="_blank">累積誤差控制的溫度補(bǔ)償算法,,該算法能將累積計時誤差控制在15.3 ppm以內(nèi),,計時時間越長,計時精度越高,。并在集成有RTC模塊的MCU內(nèi)完成了補(bǔ)償電路的設(shè)計,,開發(fā)了自動補(bǔ)償電路,該MCU能很好地滿足國網(wǎng)電表的計時精度要求,。

1 補(bǔ)償原理及算法

  1.1 補(bǔ)償原理及傳統(tǒng)補(bǔ)償方式

  MCU中的實(shí)時時鐘通常是用32 768 Hz晶振來產(chǎn)生,,32 768 Hz石英晶振的振蕩頻率會隨溫度變化,稱之為溫度特性[1],。晶振的溫度特性如圖1所示,,呈二次函數(shù)關(guān)系。

001.jpg

  從圖1的曲線可以看出,,在橫軸的兩頭即低溫和高溫區(qū)晶體的頻率偏差很大,。32 768 Hz晶振的這種特性決定了其本身無法達(dá)到國網(wǎng)對智能電表的計時精度要求,必須加入溫度補(bǔ)償電路以提高計時精度,。通常的溫度補(bǔ)償系統(tǒng)中,,首先通過溫度傳感器,,獲得當(dāng)前的晶振溫度,然后根據(jù)圖1的曲線計算出晶體的振蕩頻率偏差,,根據(jù)這個偏差值進(jìn)行頻率補(bǔ)償,。

  目前常見的溫度補(bǔ)償方法,有改變振蕩器的負(fù)載電容來調(diào)整振蕩頻率[2],。此方法的優(yōu)勢在于調(diào)整精細(xì),,可以實(shí)現(xiàn)步距±1 ppm的校準(zhǔn),實(shí)現(xiàn)精確微調(diào),,但為保證晶振起振和穩(wěn)定運(yùn)行,,電容的大小有一定限制,電容補(bǔ)償?shù)钠罘秶ǔO薅ㄔ凇?0 ppm以內(nèi),。且電容占據(jù)較大的芯片面積,,補(bǔ)償成本比較大,還有就是電容本身隨集成電路的工藝穩(wěn)定性比較差,。另外也可以通過對32 768 Hz振蕩器的秒標(biāo)輸出進(jìn)行數(shù)字調(diào)校[3]的方式來調(diào)整計時精度,。由于32 768 Hz振蕩器一個時鐘周期能帶來30.5 ppm的頻率變化,所以該方法必須設(shè)定一個較長時間的校準(zhǔn)周期才能達(dá)到較高的調(diào)教精度,,比如參考文獻(xiàn)[3]中的例子,,校準(zhǔn)周期假定為10 s。并且此方法,,10 s校準(zhǔn)完成那一刻,,計時精度是最高的,在校準(zhǔn)之前的時間內(nèi),,計時誤差是在累積增長的,。

  1.2 基于累積誤差控制的補(bǔ)償算法

  利用32.768 kHz晶體振蕩電路計數(shù),計數(shù)周期滿32 768時計為一個秒周期,。所以計數(shù)器的一個計數(shù)周期,相當(dāng)于秒周期改變量為:

  1.png

  如果簡單的對秒脈沖進(jìn)行數(shù)字補(bǔ)償,,能獲得的計時精度是30.5 ppm,,對于小于30.5 ppm的頻率偏差,無法得到補(bǔ)償,,且這些偏差會形成累積效應(yīng),,隨著計時時間的加長,計時偏差會越來越大,。

  經(jīng)過研究,,本文提出了基于累積誤差控制的補(bǔ)償算法。補(bǔ)償算法公式如下:

  2.png

  式中,,Xn為當(dāng)前時刻根據(jù)晶振溫度得到的需要補(bǔ)償?shù)念l率誤差(單位ppm),,Yn-1為上次補(bǔ)償后遺留的剩余誤差,,N為當(dāng)前秒需要數(shù)字補(bǔ)償?shù)恼麜r鐘周期數(shù),Y為本次數(shù)字補(bǔ)償后的剩余頻率偏差,。由于對補(bǔ)償值N進(jìn)行了四舍五入,,所以Y的值會小于15.3 ppm,且由于本次補(bǔ)償?shù)氖S嗾`差會累積到下次需要補(bǔ)償?shù)恼`差值中,,所以計時誤差不會隨著計時時間的變長累積變大,。

2 補(bǔ)償算法電路實(shí)現(xiàn)

  2.1 補(bǔ)償電路實(shí)現(xiàn)

  根據(jù)補(bǔ)償算法式(2)設(shè)計了新的全數(shù)字時鐘補(bǔ)償電路,結(jié)構(gòu)示意圖如圖2所示,。

002.jpg

  圖2中X對應(yīng)新輸入的頻率偏差值,,Y代表上次補(bǔ)償后殘余誤差,N為運(yùn)算后需要對秒標(biāo)進(jìn)行調(diào)整的計數(shù)周期數(shù),。該電路采用全數(shù)字電路實(shí)現(xiàn),,電路受集成電路工藝波動的影響小,且實(shí)現(xiàn)簡單,。

  2.2 MCU的硬件自動補(bǔ)償流程

  國網(wǎng)電表要求在無市電情況下,,依靠1 200 mA電池能工作至少5年,這對智能電表主控芯片提出很高的功耗要求,。為了節(jié)省功耗,,該MCU中實(shí)現(xiàn)了硬件自動補(bǔ)償電路,即對上面的補(bǔ)償電路實(shí)現(xiàn)硬件自動定時觸發(fā)調(diào)教,。當(dāng)MCU處在休眠狀態(tài)時,,CPU及除RTC外的電路都在斷電模式下,以降低芯片功耗,。 當(dāng)預(yù)設(shè)的調(diào)教時間到時,,硬件自動打開溫度傳感器、ADC及調(diào)教電路的電源,,并依次通過溫度傳感器獲得溫度值,,通過ADC轉(zhuǎn)化為數(shù)字?jǐn)?shù)據(jù),然后再用此數(shù)據(jù)從查找表獲得此溫度下需要校準(zhǔn)的頻率誤差值,,開啟自動補(bǔ)償電路完成頻率誤差的補(bǔ)償,,完成后重新設(shè)計相關(guān)電路進(jìn)入休眠。整個補(bǔ)償過程不需要CPU參與,,通過RTC的定時報警功能自動打開相關(guān)電路開始補(bǔ)償,,完成后再自動關(guān)閉這些電路以節(jié)省功耗。工作流程如圖3所示,。

003.jpg

3 電路仿真及結(jié)果分析

  對基于累積誤差控制的時鐘補(bǔ)償電路的仿真結(jié)果如圖4所示,。

004.jpg

  圖4 中對式(2)中的數(shù)據(jù)都乘以10以實(shí)現(xiàn)整數(shù)運(yùn)算,圖中的變量分別為:trim_value,根據(jù)溫度獲得的新的ppm值,;rtc_sum,,累計誤差;rtc_quo,,累積誤差除以30.5以后的商值,;rtc_remainder,累積除以30.5以后的余數(shù),;rtc_quo_new,,對rtc_quo校正過的新商值;rtc_remainder_new,,rtc_remainder校正過的新余數(shù)值,;clk_second,秒脈沖輸出,。

  圖4中rtc_quo_new為每秒實(shí)際需要調(diào)整的計數(shù)周期數(shù),,負(fù)值代表計數(shù)個數(shù)減少,比如正常計數(shù)32 768個周期為1 s,,當(dāng)rtc_quo_new為-4表示計數(shù)只需要計數(shù)到32 764個時鐘周期即可,;rtc_remainder_new為本次補(bǔ)償遺留的誤差值,需要與下次需要補(bǔ)償?shù)恼`差值進(jìn)行累積,。

  由式(2)和仿真結(jié)果都可以看出,,該補(bǔ)償電路能確保每次補(bǔ)償后的累積誤差都控制在15.3 ppm以內(nèi),累積誤差不隨時間變長而變大,,所以當(dāng)達(dá)到累積10 s時長時,,平均誤差達(dá)到1.53 ppm,時間越長精度越高,,計時精度遠(yuǎn)高于國網(wǎng)電表的標(biāo)準(zhǔn)要求,。

  該新方法與負(fù)載電容調(diào)整方式相比,電路簡單,,面積小,,成本低,受集成電路工藝波動影響小,。與傳統(tǒng)的數(shù)字補(bǔ)償調(diào)校方式相比,,在控制每秒誤差同時,不會累積誤差,,有效保證了實(shí)時時鐘在長期運(yùn)行的情況下累積誤差維持在15.3 ppm內(nèi),計時精度的補(bǔ)償效果如圖5所示,。

005.jpg

  本文新提出一種基于累積誤差控制的RTC溫度補(bǔ)償算法,,累積誤差控制在15.3 ppm內(nèi)。開發(fā)了硬件補(bǔ)償電路,并在MCU中設(shè)計了硬件自動補(bǔ)償流程,,能很好地滿足國網(wǎng)電表計時精度高,、功耗低的應(yīng)用需求。

參考文獻(xiàn)

  [1] 鄒云.溫度補(bǔ)償晶體振蕩器的研究[D].天津:南開大學(xué),,2010.

  [2] 張昭.一種溫度補(bǔ)償晶體振蕩器芯片的設(shè)計[D].成都:四川大學(xué),,2006.

  [3] 鄧乾中.自校準(zhǔn)實(shí)時時鐘RTC的研究和設(shè)計[D].武漢:華中科技大學(xué),2008.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。