計量儀表初始計量數(shù)據的清零方法
【專利摘要】本發(fā)明公開了一種計量儀表初始計量數(shù)據的清零方法。清零方法包括:選擇EEPROM芯片的任一固定地址作為第一地址并選擇處理器芯片的任一固定地址作為第二地址,其中,EEPROM芯片的所有固定地址的初始數(shù)據均相同;下載計量程序至處理器芯片,并在下載計量程序時生成隨機下載碼,將隨機下載碼寫入第二地址;對計量儀表進行首次上電啟動,讀取第一地址的當前數(shù)據和第二地址的當前數(shù)據;判斷第一地址的當前數(shù)據和第二地址的當前數(shù)據是否相等;如果判斷結果為不相等,對EEPROM芯片的所有固定地址的當前數(shù)據進行清零,然后將第二地址的當前數(shù)據寫入第一地址,并進入正常工作模式。本發(fā)明能夠僅在下載計量程序后的首次上電啟動后進行清零,并防止正常工作后的惡意清零。
【專利說明】計量儀表初始計量數(shù)據的清零方法
【技術領域】
[0001]本發(fā)明涉及儀表計量領域,特別是涉及一種計量儀表初始計量數(shù)據的清零方法。
【背景技術】
[0002]計量儀表,如:燃氣表、水表、電表等需要使用專門的EEPROM(ElectricalIyErasable Programmable Read-Only Memory,帶電可擦可編程只讀存儲器)芯片來存儲計量儀表的計量數(shù)據,以確保計量儀表掉電后計量數(shù)據不會丟失。由于所有的EEPROM芯片在出廠的時候,其每一個固定地址中的數(shù)據均為OxFF。在計量儀表的生產過程中,需要下載計量程序到計量儀表,計量程序如果要運行需要重新分配某些固定地址來存儲計量數(shù)據。所以計量程序運行之前需要對這些固定地址進行清零才能開始計量,而一旦開始計量之后,則不允許隨意清零。
[0003]傳統(tǒng)的清零方法是,在下載劑量程序后進行上電重啟,上電重啟后檢測計量儀表處理器的某個I/o端口的電平,當其為預設電平(高電平或低電平)時,則自動對EEPROM芯片進行清零處理,否則不進行清零處理,從而實現(xiàn)不會在每次上電重啟后進行清零,而僅在首次上電重啟時進行清零的目的。然而,傳統(tǒng)的清零方法需要在下載計量程序后,由專門的人員負責對計量儀表進行清零操作,即在上電重啟之前先將處理器的某個I/O端口先與提供預設電平的器件短接,然后再對進行上電重啟,上電重啟后即自動對EEPROM芯片進行清零處理。由于需要專門的人員負責清零,使得生產流程中必須增加一個工位進行清零操作,不但降低了生產效率,還提高了生產成本。
[0004]此外,傳統(tǒng)的清零方法還存在一個隱患,如果該清零方法不慎泄漏,不法分子可能會利用特殊手段按照上述方法對EEPROM芯片進行惡意清零,從而給相關單位帶來經濟損失。
【發(fā)明內容】
[0005]本發(fā)明主要解決的技術問題是提供一種計量儀表初始計量數(shù)據的清零方法,能夠僅在下載計量程序后的首次上電重啟后進行清零,并防止惡意清零。
[0006]為解決上述技術問題,本發(fā)明采用的一個技術方案是:提供一種計量儀表初始計量數(shù)據的清零方法,所述清零方法包括:選擇EEPROM芯片的任一固定地址作為第一地址并選擇處理器芯片的任一固定地址作為第二地址,其中,所述EEPROM芯片的其它固定地址作為存儲計量數(shù)據的計量地址,且所述EEPROM芯片的所有固定地址的初始數(shù)據均相同;下載計量程序至所述處理器芯片,并在下載計量程序時生成隨機下載碼,將所述隨機下載碼寫入所述第二地址;對所述計量儀表進行首次上電重啟;讀取所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據;判斷所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據是否相等;如果判斷結果為不相等,對所述EEPROM芯片的所有固定地址的當前數(shù)據進行清零,然后將所述第二地址的當前數(shù)據寫入所述第一地址,并進入正常工作模式。
[0007]優(yōu)選地,所述清零方法還包括:如果判斷結果為相等,直接進入所述正常工作模式。
[0008]優(yōu)選地,所述清零方法還包括:如果所述計量儀表再次進行上電重啟,則在重啟后重復進行所述讀取所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據的步驟。
[0009]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術的情況,本發(fā)明的計量儀表初始計量數(shù)據的清零方法,利用EEPROM芯片和處理器芯片中固定地址的數(shù)據掉電不丟失的特性,通過在下載計量程序時生成隨機下載碼,并將隨機下載碼與EEPROM芯片的一個固定地址的數(shù)據進行比較,如果不相同,才進行清零,從而能夠僅在下載計量程序后的首次上電重啟后進行清零,并防止惡意清零,由于無需專門的人員進行清零,可以提高生產效率,同時也可以降低生產成本。
【專利附圖】
【附圖說明】
[0010]圖1是本發(fā)明實施例計量儀表初始計量數(shù)據的清零方法的流程示意圖。
【具體實施方式】
[0011]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0012]本說明書中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0013]參閱圖1,是本發(fā)明實施例計量儀表初始計量數(shù)據的清零方法的流程示意圖。本實施例的計量儀表初始計量數(shù)據的清零方法包括:
[0014]步驟S1:選擇EEPROM芯片的任一固定地址作為第一地址并選擇處理器芯片的任一固定地址作為第二地址,其中,EEPROM芯片的其它固定地址作為存儲計量數(shù)據的計量地址,且EEPROM芯片的所有固定地址的初始數(shù)據均相同。
[0015]其中,第一地址是任意選擇的,其余的固定地址可以是一個或多個用于存儲計量數(shù)據。
[0016]步驟S2:下載計量程序至處理器芯片,并在下載計量程序時生成隨機下載碼,將隨機下載碼寫入第二地址。
[0017]其中,隨機下載碼可以是計量程序下載點提供的,也可以是下載時利用專門的軟件自動生成的。隨機下載碼根據預設規(guī)則生成的,以2字節(jié)長度的數(shù)字為例,隨機下載碼存在256的2次方個數(shù)據。
[0018]步驟S3:對計量儀表進行首次上電重啟。
[0019]其中,下載計量程序后,可以在啟動計量程序時,自動進行上電重啟。
[0020]步驟S4:讀取第一地址的當前數(shù)據和第二地址的當前數(shù)據。
[0021]其中,重啟后讀取第一地址的當前數(shù)據至指定的一個數(shù)組中,第一地址的當前數(shù)據為初始數(shù)據,同時讀取第二地址的當前數(shù)據至指定的另一個數(shù)組中,第二地址的當前數(shù)據為隨機下載碼。
[0022]步驟S5:判斷第一地址的當前數(shù)據和第二地址的當前數(shù)據是否相等,如果判斷結果為不相等,則進行步驟S6
[0023]其中,在計量儀表首次上電重啟后,兩個數(shù)組中的數(shù)據時不相等的,所以會進行步驟S6。
[0024]步驟S6:對EEPROM芯片的所有固定地址的當前數(shù)據進行清零,然后將第二地址的當前數(shù)據寫入第一地址,并進入正常工作模式。
[0025]其中,EEPROM芯片的所有固定地址的當前數(shù)據被清零后,第一地址的當前數(shù)據被清零,計量地址的計量數(shù)據也被清零。將第二地址的當前數(shù)據寫入第一地址,EEPROM芯片的所有固定地址中就僅有第一地址的數(shù)據不為零。
[0026]可選地,本實施例的計量儀表初始計量數(shù)據的清零方法還包括:如果判斷結果為相等,則進行步驟S7。步驟S7為:直接進入正常工作模式。
[0027]步驟S8:如果計量儀表再次進行上電重啟,則在重啟后重復進行讀取第一地址的當前數(shù)據和第二地址的當前數(shù)據的步驟。
[0028]其中,步驟S8之后繼續(xù)進行步驟S5。不論什么時候計量儀表掉電后進行上電重啟,第一地址的當前數(shù)據和第二地址的當前數(shù)據都是相等的,即都是隨機下載碼,所以不會再進行清零,從而實現(xiàn)僅在下載計量程序后的首次上電重啟后進行清零。并且,由于不需要依靠外界的預設電平來進行清零,清零過程安全、保密,所以能夠防止惡意清零。
[0029]下面舉例來對計量儀表初始計量數(shù)據的清零方法進行說明,其中,處理器芯片為單片機芯片,其型號為PIC18F87J90,EEPROM芯片的型號為24LC128。
[0030]在計量儀表生生產過程中,選擇EEPROM芯片的固定地址0x3500作為第一地址,選擇處理器芯片的ROM中的固定地址OxlfffO作為第二地址。
[0031]通過使用SQTP工具生成一個隨機下載碼隨同計量程序一起下載到處理器芯片的ROM中,隨機下載碼寫入第二地址中。
[0032]啟動計量程序時,自動進行上電重啟。重啟后,讀取第一地址的當前數(shù)據和第二地址的當前數(shù)據,并判斷兩者是否相等,由于固定地址0x3500的當前數(shù)據是OxFF,而固定地址OxlfffO的當前數(shù)據不是OxFF,所以判斷結果必定為不相等,則對EEPROM芯片的所有固定地址進行清零處理,執(zhí)行一次清零處理后將固定地址OxlfffO的當前數(shù)據寫入到固定地址0x3500中。即使計量儀表意外掉電,處理器芯片的ROM中的數(shù)據和EEPROM中的數(shù)據也不會丟失,掉電后再上電重啟后固定地址OxlfffO的數(shù)據跟固定地址0x3500的數(shù)據也是相等的,所以不會再進行清零處理。當然,如果重新下載計量程序,由于隨機下載碼改變,所以根據本實施例的清零方法,會再次進行清零處理。
[0033]通過上述方式,本發(fā)明的計量儀表初始計量數(shù)據的清零方法應用于生產過程中后,無需專門的人員在下載計量程序并首次上電開機后的手動清零工作,而首次上電重啟后的每次上電重啟均不會再執(zhí)行清零處理,從而能夠僅在下載計量程序后的首次上電重啟后進行清零,并防止惡意清零,提高了生產效率,同時也降低了生產成本,另外,由于本發(fā)明的計量儀表初始計量數(shù)據的清零方法完全是軟件的行為,外界無法控制軟件的執(zhí)行,也就無法惡意清零計量儀表的計量數(shù)據,徹底消除了傳統(tǒng)的清零方法所存在的隱患。
[0034]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發(fā)明的專利保護范圍內。
【權利要求】
1.一種計量儀表初始計量數(shù)據的清零方法,其特征在于,所述清零方法包括: 選擇EEPROM芯片的任一固定地址作為第一地址并選擇處理器芯片的任一固定地址作為第二地址,其中,所述EEPROM芯片的其它固定地址作為存儲計量數(shù)據的計量地址,且所述EEPROM芯片的所有固定地址的初始數(shù)據均相同; 下載計量程序至所述處理器芯片,并在下載計量程序時生成隨機下載碼,將所述隨機下載碼寫入所述第二地址; 對所述計量儀表進行首次上電重啟; 讀取所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據; 判斷所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據是否相等; 如果判斷結果為不相等,對所述EEPROM芯片的所有固定地址的當前數(shù)據進行清零,然后將所述第二地址的當前數(shù)據寫入所述第一地址,并進入正常工作模式。
2.根據權利要求1所述的清零方法,其特征在于,所述清零方法還包括: 如果判斷結果為相等,直接進入所述正常工作模式。
3.根據權利要求2所述的清零方法,其特征在于,所述清零方法還包括: 如果所述計量儀表再次進行上電重啟,則在重啟后重復進行所述讀取所述第一地址的當前數(shù)據和所述第二地址的當前數(shù)據的步驟。
【文檔編號】G06F9/445GK104407984SQ201410722810
【公開日】2015年3月11日 申請日期:2014年12月3日 優(yōu)先權日:2014年12月3日
【發(fā)明者】劉紅斌, 康逸 申請人:四川泰鵬測控儀表科技有限公司