一種智能電能表的數(shù)據(jù)存儲格式自動維護方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電能表的電能計量領(lǐng)域,具體而言是一種智能電能表的數(shù)據(jù)存儲格式自動維護方法。
【背景技術(shù)】
[0002]目前,隨著智能電網(wǎng)的高速發(fā)展,智能電能表需要采集和記錄的數(shù)據(jù)越來越多,傳統(tǒng)的存儲結(jié)構(gòu)已不能滿足用戶需求,由于結(jié)構(gòu)化的存儲結(jié)構(gòu)設(shè)計簡單,易于軟件開發(fā)人員維護,所以是目前電能表廠家在軟件設(shè)計方面的主流選擇;但是結(jié)構(gòu)化的存儲結(jié)構(gòu)的缺點是在已定義的結(jié)構(gòu)中插入或刪除一個數(shù)據(jù),就會導(dǎo)致整個存儲結(jié)構(gòu)都會發(fā)生變化,表內(nèi)已記錄的數(shù)據(jù)和表計自身的配置參數(shù)都會丟失,很大程度上限制著電能表軟件升級的發(fā)展;隨著用戶的需求變化,功能的增加在所難免,如果直接更換電能表,這樣會給社會資源帶來極大的浪費;存儲數(shù)據(jù)格式自動維護方法,可以解決目前電能表固件升級的后顧之憂。
[0003]由于電能表成本限制因素,導(dǎo)致硬件資源不足以使用大的文件系統(tǒng),如FATFS等,故我們研究了低成本,易實現(xiàn),安全可靠,便于數(shù)據(jù)存儲格式自動維護的簡易文件系統(tǒng)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是針對現(xiàn)場固件升級導(dǎo)致智能電能表內(nèi)數(shù)據(jù)丟失的問題,提出一種智能電能表的數(shù)據(jù)存儲格式自動維護方法。
[0005]本發(fā)明的技術(shù)方案是:
一種智能電能表的數(shù)據(jù)存儲格式自動維護方法,它包括以下步驟:
51、對文件進行劃分,即將智能電能的數(shù)據(jù)按照不同的功能劃分為若干個相互獨立的子文件,每個子文件設(shè)有相應(yīng)的文件版本號;
52、在固件升級時,如果文件版本號發(fā)生改變,則將文件版本中的文件拷貝到新的地址上,并轉(zhuǎn)換文件格式發(fā)生改變的文件。
[0006]本發(fā)明的步驟S2具體包括以下步驟:
S2-1、固件升級時,智能電能表接收新的固件,在應(yīng)用固件之前,需要檢查新固件和當(dāng)前固件的固件文件系統(tǒng)版本號,用以判斷固件文件系統(tǒng)是否兼容,如果固件文件系統(tǒng)版本號一致,則兼容,直接升級,如果不兼容,則請求獲取升級文件系統(tǒng)轉(zhuǎn)換固件;
S2-2、進入Boot程序,首先判斷固件文件系統(tǒng)版本號是否發(fā)生變化,如果沒有變化,則直接升級,加載電能表APP,如果變化了則加載步驟S2-1獲取的升級文件系統(tǒng)轉(zhuǎn)換固件,轉(zhuǎn)步驟S2-3;
S2-3、加載升級文件系統(tǒng)轉(zhuǎn)換固件后,首先將存儲器中的數(shù)據(jù)加載至NORFlash中,以保證數(shù)據(jù)在轉(zhuǎn)換的過程中不丟失;
判斷每個子文件的文件版本號是否發(fā)生改變,如果文件版本號未改變,則將當(dāng)前文件導(dǎo)入到新的存儲地址,如果文件版本號改變,則將當(dāng)前文件格式的數(shù)據(jù)轉(zhuǎn)換為新文件格式,再將新的文件導(dǎo)入到新的存儲地址上; S2-4、執(zhí)行升級文件系統(tǒng)轉(zhuǎn)換固件后,將文件版本號修改為最新的,重新啟動,Boot程序加載電能表APP。
[0007]本發(fā)明的步驟S2-3中,將當(dāng)前文件格式的數(shù)據(jù)轉(zhuǎn)換為新文件格式具體為:
將當(dāng)前文件版本中的各數(shù)據(jù)長度與升級后文件版本中的各數(shù)據(jù)長度進行比較:
如果相同位置的數(shù)據(jù)長度由若干個字節(jié)變?yōu)?,則文件格式轉(zhuǎn)換的時候不需要拷貝該位置數(shù)據(jù)至升級后的文件版本;
如果相同位置的數(shù)據(jù)長度由O變?yōu)槿舾蓚€字節(jié),則文件格式轉(zhuǎn)換的時候?qū)⑸壓蟮奈募姹镜奈募袑懭朐撐恢玫哪J(rèn)值。
[0008]本發(fā)明的默認(rèn)值為全O。
[0009]本發(fā)明的有益效果:
本發(fā)明使用時,智能電能表現(xiàn)場固件升級后無需當(dāng)心數(shù)據(jù)丟失或錯亂的問題,由于完全由智能電能表自動完成維護,大大節(jié)省了因固件升級導(dǎo)致的數(shù)據(jù)維護的時間。
【附圖說明】
[0010]圖1是本發(fā)明的流程圖。
[0011 ]圖2是本發(fā)明的文件系統(tǒng)升級示意圖。
[0012]圖3是本發(fā)明的文件格式轉(zhuǎn)換過程示意圖。
【具體實施方式】
[0013]下面結(jié)合附圖和實施例對本發(fā)明作進一步的說明。
[0014]如圖1所示,一種智能電能表的數(shù)據(jù)存儲格式自動維護方法,它包括以下步驟:
51、對文件進行劃分,即將智能電能的數(shù)據(jù)按照不同的功能劃分為若干個相互獨立的子文件,每個子文件設(shè)有相應(yīng)的文件版本號;
52、在固件升級時,如果文件版本號發(fā)生改變,則將文件版本中的文件拷貝到新的地址上,并轉(zhuǎn)換文件格式發(fā)生改變的文件;具體為:
S2-1、固件升級時,智能電能表接收新的固件,在應(yīng)用固件之前,需要檢查新固件和當(dāng)前固件的固件文件系統(tǒng)版本號,用以判斷固件文件系統(tǒng)是否兼容,如果固件文件系統(tǒng)版本號一致,則兼容,直接升級,如果不兼容,則請求獲取升級文件系統(tǒng)轉(zhuǎn)換固件;
S2-2、進入Boot程序,首先判斷固件文件系統(tǒng)版本號是否發(fā)生變化,如果沒有變化,則直接升級,加載電能表APP,如果變化了則加載步驟S2-1獲取的升級文件系統(tǒng)轉(zhuǎn)換固件,轉(zhuǎn)步驟S2-3;
S2-3、加載升級文件系統(tǒng)轉(zhuǎn)換固件后,首先將存儲器中的數(shù)據(jù)加載至NORFlash中,以保證數(shù)據(jù)在轉(zhuǎn)換的過程中不丟失;
判斷每個子文件的文件版本號是否發(fā)生改變,如果文件版本號未改變,則將當(dāng)前文件導(dǎo)入到新的存儲地址,如果文件版本號改變,則將當(dāng)前文件格式的數(shù)據(jù)轉(zhuǎn)換為新文件格式,再將新的文件導(dǎo)入到新的存儲地址上;
S2-4、執(zhí)行升級文件系統(tǒng)轉(zhuǎn)換固件后,將文件版本號修改為最新的,重新啟動,Boot程序加載電能表APP。
[0015]具體實施時: 為了實現(xiàn)智能電能表的存儲數(shù)據(jù)格式自動維護方法,首先需要定義一種便于存儲數(shù)據(jù)格式自動維護的簡易的文件系統(tǒng):
將智能電能表的數(shù)據(jù)按照不同的功能劃分為相互獨立的子文件,每個子文件包含有版本號,各項數(shù)據(jù)等。這些子文件合并在一起就形成了智能電能表的文件系統(tǒng)。
[0016]如果文件系統(tǒng)發(fā)生改變,則需要將老的文件系統(tǒng)中的文件拷貝到新的地址上,并轉(zhuǎn)換文件格式發(fā)生改變的文件,大大節(jié)省維護的時間。
[0017]如圖2所示,文件系統(tǒng)升級時,文件系統(tǒng)V0.1升級到V0.2
1)將文件系統(tǒng)V0.1的文件I,從起始地址0x00000004讀取0x100個字節(jié),存儲到V0.2系統(tǒng)的0x0x00000404地址上;
2)將文件系統(tǒng)V0.1的文件2,從起始地址0x00000104讀取0x200個字節(jié),存儲到V0.2系統(tǒng)的0x0x00000104地址上;
如圖3所示,是文件格式轉(zhuǎn)換過程示意圖:
刪除一個數(shù)據(jù):V0.1版本中數(shù)據(jù)3的長度是I個字節(jié),而V0.2版本中的數(shù)據(jù)3的長度為O,則文件格式轉(zhuǎn)換的時候不需要拷貝數(shù)據(jù)3至V0.2版本的文件中。
[0018]增加一個數(shù)據(jù):V0.1版本中數(shù)據(jù)4的長度是O個字節(jié),而V0.2版本中的數(shù)據(jù)4的長度為10,則文件格式轉(zhuǎn)換的時候需要V0.2版本的文件中寫入數(shù)據(jù)4的默認(rèn)值(默認(rèn)為全O)。
[0019]本發(fā)明未涉及部分均與現(xiàn)有技術(shù)相同或可采用現(xiàn)有技術(shù)加以實現(xiàn)。
【主權(quán)項】
1.一種智能電能表的數(shù)據(jù)存儲格式自動維護方法,其特征是它包括以下步驟: 51、對文件進行劃分,即將智能電能的數(shù)據(jù)按照不同的功能劃分為若干個相互獨立的子文件,每個子文件設(shè)有相應(yīng)的文件版本號; 52、在固件升級時,如果文件版本號發(fā)生改變,則將文件版本中的文件拷貝到新的地址上,并轉(zhuǎn)換文件格式發(fā)生改變的文件。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲格式自動維護的方法,其特征是步驟S2具體包括以下步驟: S2-1、固件升級時,智能電能表接收新的固件,在應(yīng)用固件之前,需要檢查新固件和當(dāng)前固件的文件系統(tǒng)版本號,用以判斷固件文件系統(tǒng)是否兼容,如果固件文件系統(tǒng)版本號一致,則兼容,直接升級,如果不兼容,則請求獲取升級文件系統(tǒng)轉(zhuǎn)換固件; S2-2、進入Boot程序,首先判斷文件系統(tǒng)版本號是否發(fā)生變化,如果沒有變化,則直接升級,加載電能表APP,如果變化了則加載步驟S2-1獲取的升級文件系統(tǒng)轉(zhuǎn)換固件,轉(zhuǎn)步驟S2-3; S2-3、加載升級文件系統(tǒng)轉(zhuǎn)換固件后,首先將存儲器中的數(shù)據(jù)加載至NORFlash中,以保證數(shù)據(jù)在轉(zhuǎn)換的過程中不丟失; 判斷每個子文件的文件版本號是否發(fā)生改變,如果文件版本號未改變,則將當(dāng)前文件導(dǎo)入到新的存儲地址,如果文件版本號改變,則將當(dāng)前文件格式的數(shù)據(jù)轉(zhuǎn)換為新文件格式,再將新的文件導(dǎo)入到新的存儲地址上; S2-4、執(zhí)行升級文件系統(tǒng)轉(zhuǎn)換固件后,將文件版本號修改為最新的,重新啟動,Boot程序加載電能表APP。3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲格式自動維護的方法,其特征是步驟S2-3中,將當(dāng)前文件格式的數(shù)據(jù)轉(zhuǎn)換為新文件格式具體為: 將當(dāng)前文件版本中的各數(shù)據(jù)長度與升級后文件版本中的各數(shù)據(jù)長度進行比較: 如果相同位置的數(shù)據(jù)長度由若干個字節(jié)變?yōu)?,則文件格式轉(zhuǎn)換的時候不需要拷貝該位置數(shù)據(jù)至升級后的文件版本; 如果相同位置的數(shù)據(jù)長度由O變?yōu)槿舾蓚€字節(jié),則文件格式轉(zhuǎn)換的時候?qū)⑸壓蟮奈募姹镜奈募袑懭朐撐恢玫哪J(rèn)值。4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)存儲格式自動維護的方法,其特征是默認(rèn)值為全O。
【專利摘要】一種智能電能表的數(shù)據(jù)存儲格式自動維護方法,所述的方法包含文件系統(tǒng)升級、文件格式轉(zhuǎn)換以及自動維護;在固件升級時,如果數(shù)據(jù)存儲格式發(fā)生改變,智能電能表將自動維護數(shù)據(jù),防止數(shù)丟失或錯亂。為了方便智能電能表自動維護數(shù)據(jù),將數(shù)據(jù)存儲格式定義為簡易文件系統(tǒng),即將智能電能的數(shù)據(jù)劃分為若干個文件;如果文件系統(tǒng)發(fā)生改變,則需要將老的文件系統(tǒng)中的文件拷貝到新的地址上,并轉(zhuǎn)換文件格式發(fā)生改變的文件。本發(fā)明使用時,智能電能表現(xiàn)場固件升級后無需當(dāng)心數(shù)據(jù)丟失或錯亂的問題,由于完全由智能電能表自動完成維護,大大節(jié)省了因固件升級導(dǎo)致的數(shù)據(jù)維護的時間。
【IPC分類】G06F17/30, G06F9/445
【公開號】CN105511918
【申請?zhí)枴緾N201510879994
【發(fā)明人】錢謝成, 張健輝, 米小兵
【申請人】江蘇林洋能源股份有限公司
【公開日】2016年4月20日
【申請日】2015年12月6日