專利名稱:用于電能表的軟件抗干擾方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件技術(shù)領(lǐng)域,具體講是用于電能表的軟件抗干擾方法。
背景技術(shù):
電能表一般采用單片機作為中央處理器,由于單片機測控系統(tǒng)在工業(yè)現(xiàn)場使用時,工作環(huán)境比較惡劣,干擾源較多,其可靠性在整體系統(tǒng)設計中應放在首位。干擾源會擾亂系統(tǒng)運行,使系統(tǒng)產(chǎn)生各種錯誤,所以在系統(tǒng)設計時,不但要對硬件的可靠性進行精心設計,而且要對控制軟件的可靠性進行很好的設計,尤其是容錯設計,所謂“容錯設計”是指系統(tǒng)運行發(fā)生錯誤時,軟件本身具有一定的容忍錯誤的能力,即系統(tǒng)運行時雖發(fā)生錯誤,錯誤是指使系統(tǒng)數(shù)據(jù)信息損壞或丟失等,但可以不必停機修改硬軟件,系統(tǒng)仍能正確執(zhí)行預訂的操作。將很多完成特定功能的程序段組合成一個大的系統(tǒng)軟件時,往往容易出現(xiàn)問題,系統(tǒng)軟件越大,各程序段之間的互相關(guān)聯(lián)越多,處理起來越困難。有些錯誤是隱蔽的,孤立分析不易發(fā)現(xiàn);有些錯誤是特定條件下才可能發(fā)生,如當系統(tǒng)掉電重啟或復位時,系統(tǒng)內(nèi)的數(shù)據(jù)信息很可能被改變,產(chǎn)生系統(tǒng)錯誤。這些由于干擾產(chǎn)生的軟件錯誤會使系統(tǒng)運行不穩(wěn)定, 時好時壞,會使系統(tǒng)數(shù)據(jù)信息損壞或丟失,且停機修改硬軟件十分麻煩。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供避免因外界干擾造成的系統(tǒng)運行不穩(wěn)定,系統(tǒng)數(shù)據(jù)信息不會損壞或丟失,不必停機修改硬軟件系統(tǒng)仍能正確執(zhí)行預訂操作的用于電能表的軟件抗干擾方法。為解決上述技術(shù)問題,本發(fā)明提供的用于電能表的軟件抗干擾方法,它包括以下步驟
(1)、在軟件輸入數(shù)據(jù)信息時,為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密構(gòu)成一個記錄,再把每個記錄備份多份存儲;
(2)、讀取信息時根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。所述的步驟1中的為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密是指給組成每個數(shù)據(jù)信息的每個字節(jié)配置唯一對應的編碼加密。所述的根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取是指
讀取存儲記錄時,首先核對該記錄中的編碼,如果編碼正確,則該記錄為正確記錄,讀取記錄中的數(shù)據(jù)信息;如果編碼不正確,則核對該記錄的備份的編碼,直到編碼正確,則該備份記錄為正確記錄,讀取備份記錄中的數(shù)據(jù)信息;如備份記錄中的編碼都不正確,則進行系統(tǒng)初始化。所述的步驟2還包括
當系統(tǒng)因掉電重新啟動或復位時,判斷系統(tǒng)是上電復位還是系統(tǒng)復位,如果是上電復位則進行系統(tǒng)初始化;如果是系統(tǒng)復位則讀取存儲的記錄,并根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。
所述的判斷系統(tǒng)是上電復位還是系統(tǒng)復位是通過以下方式實現(xiàn)的
系統(tǒng)第一次上電或長時間掉電后再上電,程序進行初始化,并在特定RAM區(qū)設置上電標志信息,當系統(tǒng)因掉電重新啟動或復位時,程序首先判斷上電標志信息是否改變,如果上電標志信息改變,則系統(tǒng)是上電復位;如果上電標志信息不變,則系統(tǒng)是系統(tǒng)復位。由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明存在以下優(yōu)點本發(fā)明對軟件中的數(shù)據(jù)信息設置編碼加密,讀取數(shù)據(jù)信息時,都要對數(shù)據(jù)信息中的編碼進行驗證,正確后方可讀取數(shù)據(jù)信息,如果不正確,則讀取備份記錄并進行編碼驗證,直到編碼正確,則讀取數(shù)據(jù)信息并運行程序。這樣的方式使系統(tǒng)由于干擾產(chǎn)生錯誤時,可以對數(shù)據(jù)信息是否發(fā)生改變進行判斷,并且由于有備份記錄,系統(tǒng)數(shù)據(jù)信息不會丟失或損壞,使系統(tǒng)的可靠性大大提高;并在特定RAM區(qū)設立上電標志信息位判斷是上電復位還是系統(tǒng)復位,用以決定是進行系統(tǒng)初始化還是系統(tǒng)恢復;若需系統(tǒng)恢復則根據(jù)對相應的編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取,這樣的方式使當系統(tǒng)掉電重啟或復位時可以有效的判斷系統(tǒng)內(nèi)的數(shù)據(jù)信息是否改變,如果數(shù)據(jù)信息改變,則系統(tǒng)初始化,使系統(tǒng)不會錯誤運行;如果數(shù)據(jù)信息不變,則可以繼續(xù)運行程序。不必對系統(tǒng)進行檢測來判斷系統(tǒng)是否正常,不必停機修改硬軟件。
圖1是本發(fā)明用于電能表的軟件抗干擾方法流程圖。
具體實施例方式下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細地說明。由圖1所示本發(fā)明用于電能表的軟件抗干擾方法流程圖可知,它包括以下步驟 步驟1,在軟件輸入數(shù)據(jù)信息時,為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密構(gòu)
成一個記錄,再把每個記錄備份多份存儲;
步驟2,讀取信息時根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。所述的步驟1中的為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密是指給組成每個數(shù)據(jù)信息的每個字節(jié)配置唯一對應的編碼加密。如在EEPROM存儲用戶買電量,買電量為兩個字節(jié),給每個字節(jié)配5AH加密構(gòu)成一個記錄,再把該記錄備份3份存儲。所述的根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取是指
讀取存儲記錄時,首先核對該記錄中的編碼,如果編碼正確,則該記錄為正確記錄,讀取記錄中的數(shù)據(jù)信息;如果編碼不正確,則核對該記錄的備份的編碼,直到編碼正確,則該備份記錄為正確記錄,讀取備份記錄中的數(shù)據(jù)信息;如備份記錄中的編碼都不正確,則進行系統(tǒng)初始化。所述的判斷編碼是否正確是指把讀取記錄中的編碼與輸入數(shù)據(jù)信息時該記錄設置的編碼進行比較,如果兩者相同,則編碼正確;如果兩者不相同,則編碼不正確。所述的步驟2還包括
當系統(tǒng)因掉電重新啟動或復位時,判斷系統(tǒng)是上電復位還是系統(tǒng)復位,如果是上電復位則進行系統(tǒng)初始化;如果是系統(tǒng)復位則讀取存儲的記錄,并根據(jù)對相應的編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。所述的上電復位是指正常接通電源時,此時單片機需要進行的一系列初始化操作,包括初始化寄存器,初始化各個硬件等等。所述的系統(tǒng)復位是指由于異常原因系統(tǒng)崩潰,系統(tǒng)重啟后,可以根據(jù)記錄的信息恢復系統(tǒng)崩潰前的操作。所述的判斷系統(tǒng)是上電復位還是系統(tǒng)復位是通過以下方式實現(xiàn)的
系統(tǒng)第一次上電或長時間掉電后再上電,程序進行初始化,并在特定RAM區(qū)設置上電標志信息,上電標志信息為程序編碼,如55H OAAH 5AH 0A5H,當系統(tǒng)因掉電重新啟動或復位時,程序首先判斷RAM區(qū)的上電標志信息是否改變,如果上電標志信息改變,則系統(tǒng)是上電復位;如果上電標志信息不變,則系統(tǒng)是系統(tǒng)復位。所述的RAM區(qū)是指單片機中的數(shù)據(jù)存儲單元。以上僅就本發(fā)明應用較佳的實例做出了說明,但不能理解為是對權(quán)利要求的限制,本發(fā)明的結(jié)構(gòu)可以有其他變化,不局限于上述結(jié)構(gòu)??傊苍诒景l(fā)明的獨立權(quán)利要求的保護范圍內(nèi)所作的各種變化均在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種用于電能表的軟件抗干擾方法,其特征在于,它包括以下步驟(1)、在軟件輸入數(shù)據(jù)信息時,為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密構(gòu)成一個記錄,再把每個記錄備份多份存儲;(2)、讀取信息時根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。
2.根據(jù)權(quán)利要求1所述的用于電能表的軟件抗干擾方法,其特征在于,所述的步驟1中的為每個數(shù)據(jù)信息分別設置唯一對應的編碼進行加密是指給組成每個數(shù)據(jù)信息的每個字節(jié)配置唯一對應的編碼加密。
3.根據(jù)權(quán)利要求1所述的用于電能表的軟件抗干擾方法,其特征在于,所述的根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取是指讀取存儲記錄時,首先核對該記錄中的編碼,如果編碼正確,則該記錄為正確記錄,讀取記錄中的數(shù)據(jù)信息;如果編碼不正確,則核對該記錄的備份的編碼,直到編碼正確,則該備份記錄為正確記錄,讀取備份記錄中的數(shù)據(jù)信息;如備份記錄中的編碼都不正確,則進行系統(tǒng)初始化。
4.根據(jù)權(quán)利要求1或3所述的用于電能表的軟件抗干擾方法,其特征在于,所述的步驟 2還包括當系統(tǒng)因掉電重新啟動或復位時,判斷系統(tǒng)是上電復位還是系統(tǒng)復位,如果是上電復位則進行系統(tǒng)初始化;如果是系統(tǒng)復位則讀取存儲的記錄,并根據(jù)對編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。
5.根據(jù)權(quán)利要求4所述的用于電能表的軟件抗干擾方法,其特征在于,所述的判斷系統(tǒng)是上電復位還是系統(tǒng)復位是通過以下方式實現(xiàn)的系統(tǒng)第一次上電或長時間掉電后再上電,程序進行初始化,并在特定RAM區(qū)設置上電標志信息,當系統(tǒng)因掉電重新啟動或復位時,程序首先判斷上電標志信息是否改變,如果上電標志信息改變,則系統(tǒng)是上電復位;如果上電標志信息不變,則系統(tǒng)是系統(tǒng)復位。
全文摘要
本發(fā)明公開了一種用于電能表的軟件抗干擾方法,本發(fā)明對軟件中的數(shù)據(jù)信息設置編碼加密,讀取數(shù)據(jù)信息時,都要對數(shù)據(jù)信息中的編碼進行驗證,正確后方可讀取數(shù)據(jù)信息,如果不正確,則讀取備份記錄并進行編碼驗證,直到編碼正確,則讀取數(shù)據(jù)信息并運行程序。并在特定RAM區(qū)設立上電標志信息位判斷是上電復位還是系統(tǒng)復位,用以決定是進行系統(tǒng)初始化還是系統(tǒng)恢復;若需系統(tǒng)恢復則根據(jù)對相應的編碼的判斷,對相應的記錄中的數(shù)據(jù)信息進行讀取。本發(fā)明避免因外界干擾造成的系統(tǒng)運行不穩(wěn)定,系統(tǒng)數(shù)據(jù)信息不會損壞或丟失,不必停機修改硬軟件系統(tǒng)仍能正確執(zhí)行預訂操作。
文檔編號G06F11/00GK102520223SQ20111034070
公開日2012年6月27日 申請日期2011年11月2日 優(yōu)先權(quán)日2011年11月2日
發(fā)明者余轉(zhuǎn)麗, 劉其君, 周忠祥, 胡寧, 鄭堅江 申請人:寧波三星電氣股份有限公司