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