潘建華 李香 朱世林 徐振偉
(揚(yáng)州萬泰電子科技有限公司,江蘇揚(yáng)州 225009)
一種提高智能電表MCU內(nèi)置RTC精度的方法
潘建華 李香 朱世林 徐振偉
(揚(yáng)州萬泰電子科技有限公司,江蘇揚(yáng)州 225009)
目前普遍采用的晶振頻率誤差模型都是將晶振頻率隨溫度的偏差看作一條對(duì)稱軸平行于Y軸的拋物線,但與實(shí)際晶振頻率誤差有一定出入,因而校準(zhǔn)的精度也會(huì)受到一定影響。本文以單相智能電能表為例,提出了一種提高電能表MCU內(nèi)置實(shí)時(shí)時(shí)鐘RTC(Real-Time Clock) 精度的方法。
智能電表 SoC方案 晶振頻率溫度補(bǔ)償 RTC精度
目前智能電能表一般都具有分時(shí)、多費(fèi)率電能表,對(duì)時(shí)間精確度的要求越來越高,而日計(jì)時(shí)誤差出現(xiàn)的問題也比較突出,國(guó)家電網(wǎng)公司給電能表供應(yīng)商發(fā)出的整改通知中在第2條“元器件環(huán)節(jié)”和第11條“設(shè)計(jì)、制造工藝環(huán)節(jié)”都重點(diǎn)提出了日計(jì)時(shí)誤差超差問題,要求重點(diǎn)整改。按照國(guó)家電網(wǎng)公司的智能電能表的技術(shù)規(guī)范要求,電能表的日計(jì)時(shí)誤差必須≤0.5s/d。一般采用的實(shí)時(shí)時(shí)鐘有以下3種:(1)軟時(shí)鐘。由于晶振的不穩(wěn)定性,軟時(shí)鐘對(duì)晶振質(zhì)量的要求極高,出于成本考慮,電能表產(chǎn)品不可能采用價(jià)格高昂的晶振。(2)硬時(shí)鐘。硬時(shí)鐘同樣受到晶振穩(wěn)定度的影響,如早期常用的RX-8025芯片,由于沒有溫度補(bǔ)償功能,因而時(shí)鐘準(zhǔn)確度不高。后來的RX-8025T增加了溫補(bǔ)功能,時(shí)鐘精度較高,而且時(shí)鐘穩(wěn)定度好,但成本較高。(3)混合法,即MCU內(nèi)置RTC。由于成本較低,同時(shí)可通過軟件對(duì)RTC誤差進(jìn)行校正,采用MCU內(nèi)置RTC目前已經(jīng)成為電能表設(shè)計(jì)的首選方案,如何提高內(nèi)置RTC的時(shí)鐘精度就顯得異常重要。本文就是針對(duì)如何提高內(nèi)置RTC的時(shí)鐘精度提出一種解決方法。
RTC溫度補(bǔ)償原理:由于溫度和離散性的影響,芯片正常運(yùn)行時(shí)外接的32768Hz晶振的頻率在不同的時(shí)間會(huì)有不同的實(shí)際振蕩頻率。通過溫度傳感器測(cè)量當(dāng)前溫度,根據(jù)溫度曲線得出當(dāng)前溫度環(huán)境下RTC的補(bǔ)償值,校正寄存器可以對(duì)RTC計(jì)時(shí)進(jìn)行校正,減小這種差異對(duì)最終實(shí)際走時(shí)帶來的影響。
采用RTC溫度補(bǔ)償原理,文獻(xiàn)1提出了一種MCU內(nèi)置RTC實(shí)時(shí)時(shí)鐘精確計(jì)時(shí)的方法,文獻(xiàn)2中雖然是針對(duì)硬時(shí)鐘設(shè)計(jì)提出的校正方法,但原理與文獻(xiàn)1提出的方法一樣,都是將晶振頻率隨溫度的偏差看作一條對(duì)稱軸平行于Y軸的拋物線,即f=k*(T-T0)2,其中f為當(dāng)前溫度下的頻率,k為曲率常數(shù),T為當(dāng)前溫度,T0為轉(zhuǎn)折溫度,這也是目前普遍采用的晶振頻率誤差數(shù)學(xué)模型。
但這種數(shù)學(xué)模型與實(shí)際晶振頻率誤差曲線有一定出入,因而采用這種模型校準(zhǔn)的計(jì)時(shí)精度也會(huì)受到一定影響。
電能表時(shí)鐘模塊(RTC模塊、MCU內(nèi)置RTC實(shí)時(shí)時(shí)鐘)精度是影響日計(jì)時(shí)誤差的最主要原因,也是最難解決的問題。針對(duì)目前普遍采用的晶振頻率誤差數(shù)學(xué)模型的不足,本文提出了一種改進(jìn)的晶振頻率誤差數(shù)學(xué)模型,產(chǎn)品試驗(yàn)結(jié)果證明,校正精度為±1ppm以內(nèi)。
圖1 我司實(shí)測(cè)并經(jīng)數(shù)據(jù)擬合的晶振頻率與溫度關(guān)系曲線
由V9811數(shù)據(jù)手冊(cè)提供的晶振頻率與溫度關(guān)系曲線可以看出,當(dāng)晶振溫度低于轉(zhuǎn)折溫度時(shí)的曲率明顯大于晶振溫度高于轉(zhuǎn)折溫度時(shí)的曲率,但數(shù)據(jù)手冊(cè)中仍然把它當(dāng)成拋物線處理。圖1為我司實(shí)測(cè)并經(jīng)數(shù)據(jù)擬合的晶振頻率與溫度關(guān)系曲線,由圖1可以看出,當(dāng)晶振溫度低于轉(zhuǎn)折溫度時(shí)的曲率明顯小于晶振溫度高于轉(zhuǎn)折溫度時(shí)的曲率??梢?晶振頻率與溫度關(guān)系曲線并不是理想的一條對(duì)稱軸平行于Y軸的拋物線,即f=k*(T-T0)2。具體關(guān)系曲線依采購(gòu)晶振的供應(yīng)商和批次有關(guān),因此在確定晶振供應(yīng)商后一般不要更換供應(yīng)商,在更換供應(yīng)商和不同批次采購(gòu)時(shí)都必須重新進(jìn)行溫補(bǔ)校正。
為了更精確地測(cè)出溫度曲線,可將V9811的寄存器CtrlADC5的PTATEN位置1以選擇溫度傳感器1,其溫度測(cè)量范圍為-40℃~85℃范圍。將10只電能表放入溫控箱,通過溫控箱從-40℃到85℃范圍內(nèi)調(diào)整,步進(jìn)值為1℃,依次讀取溫度傳感器測(cè)得的值。通過記錄,我們可以看出寄存器讀出的值與實(shí)際溫度值成線性關(guān)系,即TR=K*
(T+40)+TR40,其中TR為當(dāng)前溫度下的寄存器值,K為斜率,T為當(dāng)前溫度,TR40為-40℃溫度下的寄存器值。斜率K基本相同,但常數(shù)項(xiàng)TR40略有偏差。由于實(shí)際生產(chǎn)時(shí)不可能對(duì)每只表都進(jìn)行溫度標(biāo)定,因此可將這10只電能表測(cè)定的溫度-寄存器關(guān)系曲線進(jìn)行曲線擬合,得出K1~K10、TR40-1~TR40-10,K1~K10和TR40-1~TR40-10分別進(jìn)行中值濾波,得出溫度和寄存器值的對(duì)應(yīng)關(guān)系TR=K*(T+40)+TR40,并將各溫度下的標(biāo)定值存入存儲(chǔ)器。這樣,實(shí)際運(yùn)行時(shí)電能表每30s測(cè)量一次溫度,將測(cè)得的溫度寄存器值通過查表與標(biāo)定的溫度值比較,就能精確地測(cè)得環(huán)境實(shí)際溫度,實(shí)際溫度精度可達(dá)±0.5°C。
上述操作的同時(shí),依次用頻率計(jì)測(cè)量出引腳P2.0(Pin62)輸出的晶振頻率。然后根據(jù)各溫度的頻率測(cè)量值,找出頻率最接近于32768Hz的溫度,得出轉(zhuǎn)折溫度T0以及轉(zhuǎn)折溫度下的頻率偏差f0。可以看出,實(shí)際頻率-溫度曲線近似拋物線,但并不是一個(gè)理想的拋物線,轉(zhuǎn)折溫度左側(cè)與右側(cè)的曲率并不一樣。但不同表之間曲線形狀偏差很小,僅上下偏移,即常數(shù)項(xiàng)f0略有偏差。
因此,本文以轉(zhuǎn)折溫度為界,將轉(zhuǎn)折溫度兩邊的頻率-溫度曲線分別用拋物線近似,即數(shù)學(xué)模型按以下公式建立:
采用上述數(shù)學(xué)模型設(shè)計(jì)的智能電表日計(jì)時(shí)誤差較小,最大日計(jì)時(shí)誤差小于0.3s/d。
如何提高內(nèi)置RTC的時(shí)鐘精度是一個(gè)關(guān)鍵問題,本文提出的一種晶振頻率溫度補(bǔ)償數(shù)學(xué)模型較好的解決了這一問題。但今后仍然需要繼續(xù)進(jìn)行研究,以便使這一問題得到更好的解決。
[1]梁世清等.內(nèi)置RTC作為電能表計(jì)時(shí)鐘的應(yīng)用.自動(dòng)化儀表,2012,33(1):76-78.
[2]鄧乾中.自校準(zhǔn)實(shí)時(shí)時(shí)鐘RTC的研究和設(shè)計(jì).華中科技大學(xué)碩士學(xué)位論文,2008.5.