一種電表用的soc芯片實(shí)時時鐘高精度補(bǔ)償方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電能計(jì)量領(lǐng)域的精度補(bǔ)償方法,尤其涉及一種電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法。
【背景技術(shù)】
[0002]隨著大規(guī)模集成電路的逐漸發(fā)展及片上系統(tǒng)SOC技術(shù)的日益成熟,電能表計(jì)量方案逐步進(jìn)入SOC單芯片設(shè)計(jì)方案時代。
[0003]實(shí)時時鐘(RTC)是需要實(shí)時數(shù)據(jù)的應(yīng)用中的關(guān)鍵元件,很多實(shí)時采集數(shù)據(jù)的軟件往往要求具有精確的RTC,以便進(jìn)行復(fù)雜數(shù)據(jù)分析。RTC精度直接取決于其晶體時基的頻率,環(huán)境的變化,包括溫度、濕度、壓力以及振動都會降低晶體諧振頻率的精度,而在這些因素中溫度起伏是最主要并且影響最大的因素。
[0004]早先的SOC芯片RTC補(bǔ)償方法如圖1流程所示,SOC芯片的TPS模塊負(fù)責(zé)每秒測量芯片的溫度值Tdata,然后根據(jù)測量的Tdata值計(jì)算需要的補(bǔ)償值Cal_f=f (Tdata)。其中f(x)代表了溫度和補(bǔ)償值的關(guān)系函數(shù),不同的溫度會對應(yīng)不同的補(bǔ)償值,Cal_f表示計(jì)算得到的補(bǔ)償值,帶有I位小數(shù)。
[0005]之后再對Cal_f四舍五入,得到整數(shù)值的Cal_i,該值即為寫入RTCCAL內(nèi)的值,其中round(X)表示對x值四舍五入取整。該補(bǔ)償?shù)倪^程如圖2所示:其中,time —列代表時間,在本方案中總共為20秒,Err (ppm)表示當(dāng)前秒的實(shí)際補(bǔ)償值Cal_i和理論補(bǔ)償值Cal_f之間的差所引入的秒脈沖精度誤差,Err (ppm) = (Cal_f_Cal_i) *1.5,1個LSB (leastsignificant bit)對應(yīng)的誤差是 1.5ppm。
[0006]最后一行是對對應(yīng)列的求和,可以看到,理論上總共需要補(bǔ)償?shù)闹礐al_f為204.5,實(shí)際補(bǔ)償?shù)臑?01,導(dǎo)致的誤差Err (ppm) = (204.5_201)*1.5=5.3ppm,相當(dāng)于每秒的誤差為0.265ppm。
[0007]當(dāng)前的電能計(jì)量SOC芯片一般都帶有秒脈沖(RTC)輸出,隨著國網(wǎng)對精度要求的提高,許多SOC芯片在硬件性能上已經(jīng)無法滿足需求。為了進(jìn)一步滿足國網(wǎng)的要求,許多電能芯片廠商不得不重新研發(fā)新的芯片,改進(jìn)RTC模塊的硬件性能來達(dá)到新的性能要求,這不僅加重了芯片廠商的研發(fā)生產(chǎn)成本,也會增加芯片的價格,提升電表的成本。
[0008]目前國網(wǎng)檢測RTC精度一般一定時間間隔檢測一次,比如10秒,20秒等。秒脈沖精度發(fā)生變化的主要原因是晶振受溫度的影響導(dǎo)致,不同溫度下,芯片外灌的晶振頻率會發(fā)生變化,進(jìn)而影響秒脈沖的精度。一般對于RTC進(jìn)行補(bǔ)償,都會測量出晶振的頻率一溫度曲線,然后使用SOC芯片的溫度測量(TPS)模塊,測得芯片的實(shí)時溫度,進(jìn)而計(jì)算得到需要的補(bǔ)償值RTCCAL。
[0009]在補(bǔ)償時RTCCAL寄存器的精度就直接決定了補(bǔ)償時的最大誤差,早先國網(wǎng)要求的RTC精度為lppm,RTCCAL最低位(LSB)對應(yīng)的精度是1.5ppm(舉例,不同廠商可能會有些差別),每秒的最大補(bǔ)償誤差為正負(fù)0.75ppm,如果20秒檢測,總的最大誤差也只有15ppm,相當(dāng)于每秒最大0.75ppm。而目前國網(wǎng)對RTC的精度不斷提高,甚至要求達(dá)到0.2ppm以內(nèi), 如果采用之前的方法,將無法滿足國網(wǎng)的需求。
【發(fā)明內(nèi)容】
[0010]有鑒于此,本發(fā)明的目的是提供一種電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,以解決現(xiàn)有技術(shù)中的不足。
[0011]為了達(dá)到上述目的,本發(fā)明的目的是通過下述技術(shù)方案實(shí)現(xiàn)的:
[0012]一種電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其中:
[0013]對于每次補(bǔ)償時獲取得到的補(bǔ)償值所舍棄的小數(shù)點(diǎn)部分誤差進(jìn)行累加,之后得到實(shí)際補(bǔ)償值;
[0014]對實(shí)際補(bǔ)償值進(jìn)行微調(diào),以實(shí)現(xiàn)將長時間的秒脈沖累積校正誤差控制在一個目標(biāo)范圍之內(nèi)。
[0015]上述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其中,包括下列步驟:
[0016]S1、設(shè)定一段檢測時間,從該段檢測時間中的第一秒鐘開始操作;
[0017]S2、獲取該SOC芯片在該秒鐘的溫度值Tdata,通過溫度和補(bǔ)償值的關(guān)系函數(shù)f (X)計(jì)算需要的補(bǔ)償值Cal_f ;
[0018]S3、定義上一次校正剩余的值為delta,用delta加上Cal_f并減去Cal_f四舍五入后的整數(shù)值后獲得累積的小數(shù)校正值Sdelta, delta的初始值為O ;
[0019]S4、在Cal_f四舍五入后的整數(shù)值的基礎(chǔ)上累加Sdelta四舍五入后的整數(shù)值后獲得實(shí)際寫入RTCCAL寄存器的校正值Cal_i ;
[0020]S5、更新本次校正后的剩余值delta ;
[0021]S6、時間跳至下一秒鐘,重復(fù)步驟S2,直至該段檢測時間結(jié)束。
[0022]上述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其中,在Sdelta基礎(chǔ)上減去Sdelta四舍五入后的整數(shù)值得到每次校正后的剩余值delta。
[0023]上述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其中,對于任意長的所述檢測時間,總時長的最大補(bǔ)償誤差均在正負(fù)0.5LSB之內(nèi)。
[0024]與已有技術(shù)相比,本發(fā)明的有益效果在于:
[0025]引入了 Σ -Λ的概念,能夠?qū)⒚看窝a(bǔ)償時舍棄的小數(shù)部分誤差進(jìn)行累加,當(dāng)累加的值大于0.5時便產(chǎn)生一個進(jìn)位,對實(shí)際補(bǔ)償值Cal_i進(jìn)行微調(diào),能將長時間的秒脈沖累積校正誤差控制在ILSB之內(nèi),相對于早先的補(bǔ)償方法,在不增加硬件性能的條件下,可以將長時間的秒脈沖累積誤差降低至最小。
【附圖說明】
[0026]構(gòu)成本發(fā)明的一部分的附圖用來提供對本發(fā)明的進(jìn)一步理解,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0027]圖1是現(xiàn)有技術(shù)中SOC芯片RTC補(bǔ)償方法的流程示意圖;
[0028]圖2是現(xiàn)有技術(shù)中SOC芯片RTC補(bǔ)償方法的結(jié)果顯示示意圖;
[0029]圖3是本發(fā)明SOC芯片RTC補(bǔ)償方法的流程示意圖;
[0030]圖4是本發(fā)明SOC芯片RTC補(bǔ)償方法的結(jié)果顯示示意圖。
【具體實(shí)施方式】
[0031]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0032]需要說明的是,在不沖突的情況下,本發(fā)明中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0033]本發(fā)明是對于每次補(bǔ)償時獲取得到的補(bǔ)償值所舍棄的小數(shù)點(diǎn)部分誤差進(jìn)行累加,之后得到實(shí)際補(bǔ)償值,然后再對實(shí)際補(bǔ)償值進(jìn)行微調(diào),以實(shí)現(xiàn)將長時間的秒脈沖累積校正誤差控制在一個目標(biāo)范圍之內(nèi)。
[0034]具體來說,參看圖3所示,包括下列步驟:
[0035]S1、設(shè)定一段檢測時間,從該段檢測時間中的第一秒鐘開始操作;
[0036]S2、獲取該SOC芯片在該秒鐘的溫度值Tdata,通過溫度和補(bǔ)償值的關(guān)系函數(shù)f (X)計(jì)算需要的補(bǔ)償值Cal_f=f (Tdata);
[0037]S3、計(jì)算累積的小數(shù)校正值Sdelta,定義上一次校正剩余的值為delta,用delta加上Cal_f并減去Cal_f四舍五入后的整數(shù)值后獲得累積的小數(shù)校正值Sdelta,delta的初始值為 O,即 Sdelta=delta+Cal_f-round(Cal_f);
[0038]S4、在Cal_f四舍五入后的整數(shù)值的基礎(chǔ)上累加Sdelta四舍五入后的整數(shù)值后獲得實(shí)際寫入RTCCAL寄存器的校正值Cal_i,當(dāng)| Sdelta | >=0.5時,round (Sdelta)將產(chǎn)生進(jìn)位,實(shí)際的寫入 RTCCAL 寄存器的校正值 Cal_i=round(Cal_f)+round (Sdelta);
[0039]S5、更新本次校正后的剩余值 delta, deIta=SdeIta-round(Sdelta)。
[0040]S6、時間跳至下一秒鐘,重復(fù)步驟S2,直至該段檢測時間結(jié)束,在本發(fā)明的優(yōu)選實(shí)施例中,檢測時間總共為20s。
[0041]采用本方法補(bǔ)償后的結(jié)果如圖4所示,理論上總共需要補(bǔ)償?shù)闹礐al_f為204.5,實(shí)際補(bǔ)償?shù)闹禐?04,導(dǎo)致的誤差Err (ppm) = (204.5-204) *1.5=0.8ppm,相當(dāng)于每秒的誤差為0.04ppm,相對于早先的補(bǔ)償方法,可見本方法在不改變硬件的條件下秒脈沖精度可以提高一個數(shù)量級。
[0042]本發(fā)明公開的電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,是在SOC芯片包含的實(shí)時時鐘和低精度補(bǔ)償?shù)幕A(chǔ)上采用軟件處理的方法,不需要更換芯片,就將輸出的秒脈沖精度提高了一個數(shù)量級。對于本發(fā)明所使用的實(shí)例,其補(bǔ)償方法檢測間隔越長,平均的秒脈沖誤差就越小,對于任意長的檢測時間,其總時長的最大補(bǔ)償誤差均在正負(fù)0.5LSB(相當(dāng)于0.8ppm)之內(nèi),對于20秒檢測就在0.04ppm之內(nèi)。
[0043]本發(fā)明也同樣適用于其他使用軟件累加硬件的舍入誤差,進(jìn)而提高補(bǔ)償精度的方法。
[0044]以上對本發(fā)明的具體實(shí)施例進(jìn)行了詳細(xì)描述,但本發(fā)明并不限制于以上描述的具體實(shí)施例,其只是作為范例。對于本領(lǐng)域技術(shù)人員而言,任何等同修改和替代也都在本發(fā)明的范疇之中。因此,在不脫離本發(fā)明的精神和范圍下所作出的均等變換和修改,都應(yīng)涵蓋在本發(fā)明的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其特征在于: 對于每次補(bǔ)償時獲取得到的補(bǔ)償值所舍棄的小數(shù)點(diǎn)部分誤差進(jìn)行累加,之后得到實(shí)際補(bǔ)償值; 對實(shí)際補(bǔ)償值進(jìn)行微調(diào),以實(shí)現(xiàn)將長時間的秒脈沖累積校正誤差控制在一個目標(biāo)范圍之內(nèi)。
2.根據(jù)權(quán)利要求1所述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其特征在于,包括下列步驟: 51、設(shè)定一段檢測時間,從該段檢測時間中的第一秒鐘開始操作; 52、獲取該SOC芯片在該秒鐘的溫度值Tdata,通過溫度和補(bǔ)償值的關(guān)系函數(shù)f(x)計(jì)算需要的補(bǔ)償值Cal_f ; 53、定義上一次校正剩余的值為delta,用delta加上Cal_f并減去Cal_f四舍五入后的整數(shù)值后獲得累積的小數(shù)校正值Sdelta,delta的初始值為O ; 54、在Cal_f四舍五入后的整數(shù)值的基礎(chǔ)上累加Sdelta四舍五入后的整數(shù)值后獲得實(shí)際寫入RTCCAL寄存器的校正值Cal_i ; 55、更新本次校正后的剩余值delta; 56、時間跳至下一秒鐘,重復(fù)步驟S2,直至該段檢測時間結(jié)束。
3.根據(jù)權(quán)利要求2所述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其特征在于,在Sdelta基礎(chǔ)上減去Sdelta四舍五入后的整數(shù)值得到每次校正后的剩余值delta。
4.根據(jù)權(quán)利要求2所述電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其特征在于,對于任意長的所述檢測時間,總時長的最大補(bǔ)償誤差均在正負(fù)0.5LSB之內(nèi)。
【專利摘要】本發(fā)明公開了一種電表用的SOC芯片實(shí)時時鐘高精度補(bǔ)償方法,其中:對于每次補(bǔ)償時獲取得到的補(bǔ)償值所舍棄的小數(shù)點(diǎn)部分誤差進(jìn)行累加,之后得到實(shí)際補(bǔ)償值;對實(shí)際補(bǔ)償值進(jìn)行微調(diào),以實(shí)現(xiàn)將長時間的秒脈沖累積校正誤差控制在一個目標(biāo)范圍之內(nèi)。本發(fā)明公開的高精度補(bǔ)償方法,是在SOC芯片包含的實(shí)時時鐘和低精度補(bǔ)償?shù)幕A(chǔ)上采用軟件處理的方法,不需要更換芯片,就將輸出的秒脈沖精度提高了一個數(shù)量級。本發(fā)明所使用的實(shí)例中,補(bǔ)償方法檢測間隔越長,平均的秒脈沖誤差就越小,對于任意長的檢測時間,其總時長的最大補(bǔ)償誤差均在正負(fù)0.5LSB(相當(dāng)于0.8ppm)之內(nèi),對于20秒檢測就在0.04ppm之內(nèi)。
【IPC分類】G04G5-00, G01R35-04
【公開號】CN104635193
【申請?zhí)枴緾N201310548177
【發(fā)明人】史元, 袁穎, 傅有煒, 李全棟, 朱昊
【申請人】鉅泉光電科技(上海)股份有限公司
【公開日】2015年5月20日
【申請日】2013年11月6日