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