專利名稱:掉電記憶保護方法
技術(shù)領(lǐng)域:
本發(fā)明屬于掉電記憶保護領(lǐng)域,尤其是一種電子產(chǎn)品中的掉電記憶保護電^各的掉電記憶保護方法。
背景技術(shù):
隨著科學(xué)技術(shù)和信息產(chǎn)業(yè)的發(fā)展,智能設(shè)備越來越多,但是對于很多智能來說,軟件運行時的意外掉電是很正常的,有必要實現(xiàn)對意外掉電時的數(shù)據(jù)保護。
一般來講,現(xiàn)有的掉電記憶保護電路對光盤數(shù)據(jù)的掉電記憶保護方法一般通過繼電器或者電容等器件保存少量的工作狀態(tài),此外,在斷電期間,需要使用備用電源為繼電器或者電容等器件供電。但隨著技術(shù)的飛速發(fā)展,掉電記憶保護電路需要記憶的數(shù)據(jù)信息越來越多,并且在待機狀態(tài)要求功耗越來越低,現(xiàn)有的掉電記憶保護電路對光盤數(shù)據(jù)的掉電記憶保護方法已經(jīng)不再適用。
因此,提供一種能夠記憶大量信息且功耗少的掉電記憶保護方法實屬必要。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提供一種能夠記憶大量信息且功耗少的掉電記憶保護方法。
本發(fā)明是這樣實現(xiàn)的,掉電記憶保護方法,應(yīng)用于掉電記憶保護電路中,
該掉電記憶保護電路包括CPU、可擦寫式存儲器、電源電路以及外圍接口,上電后CPU循環(huán)地將數(shù)據(jù)包寫入可擦寫式存儲器的數(shù)據(jù)區(qū)域及在可擦寫式存儲
器的標(biāo)志區(qū)域做相關(guān)記錄,并在掉電后通過標(biāo)志區(qū)域的記錄查找存儲在數(shù)據(jù)區(qū)域中的最新數(shù)據(jù)包,該方法包括上電后數(shù)據(jù)的循環(huán)存儲過程和掉電后數(shù)據(jù)的回溯過程。
更具體地,所述上電后數(shù)據(jù)的循環(huán)存儲過程包括
步驟A:將可擦寫式存儲器劃分為用于存放數(shù)據(jù)包的多個單位數(shù)據(jù)區(qū)域和用于存放標(biāo)志的標(biāo)志區(qū)域,該標(biāo)志用來記錄是否有數(shù)據(jù)包存儲到可擦寫式存儲器中;
步驟B: CPU將多個數(shù)據(jù)包按照一時間周期依次寫入可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域,并在完成一個數(shù)據(jù)包的寫操作之后,CPU在標(biāo)志區(qū)域的標(biāo)志中設(shè)置相關(guān)記錄;
步驟C: CPU將可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域中的所有數(shù)據(jù)包寫入可擦寫式存儲器的另 一個單位數(shù)據(jù)區(qū)域中,并返回執(zhí)行步驟B。更具體地,所述掉電后數(shù)據(jù)的回溯過程包括
步驟a:判斷最新數(shù)據(jù)包的地址是否合法,如果是,則讀取最新數(shù)據(jù)包,并計算最新數(shù)據(jù)包的校驗和,之后,判斷該校驗和是否正確,如果正確,則返回查找正確的數(shù)據(jù)包,如果錯誤,則執(zhí)行步驟b;如果否,則執(zhí)行步驟b;
步驟b:計算最新數(shù)據(jù)包的第一子數(shù)據(jù)包的起始地址;
步驟c:通過預(yù)先設(shè)定的存儲方式計算另一數(shù)據(jù)包的地址,并根據(jù)上述地址讀取該數(shù)據(jù)包;
步驟d:計算步驟c的所述另 一數(shù)據(jù)包的校驗和;
步驟e:判斷步驟d中所述另一數(shù)據(jù)包的校驗和是否正確,如果是,則計算所述另一數(shù)據(jù)包的下一個數(shù)據(jù)包的起始地址,并返回執(zhí)行步驟c;如果否,則執(zhí)行步驟f;
步驟f:返回查找失敗信息。
更具體地,所述上電后數(shù)據(jù)的循環(huán)存儲過程還包括執(zhí)行上述步驟A之前,執(zhí)行初始化操作。
更具體地,所述上電后數(shù)據(jù)的循環(huán)存儲過程的步驟B中CPU將數(shù)據(jù)包寫
5入可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域時,直到此單位數(shù)據(jù)區(qū)域被寫滿后,再 在標(biāo)志區(qū)域的標(biāo)志中設(shè)置相關(guān)記錄。
更具體地,所述上電后數(shù)據(jù)的循環(huán)存儲過程的步驟C中CPU將可擦寫式 存儲器的一個單位數(shù)據(jù)區(qū)域中的所有數(shù)據(jù)包寫入可擦寫式存儲器的另一個單位 數(shù)據(jù)區(qū)域前,先判斷所述另一單位數(shù)據(jù)區(qū)域是否存儲有已經(jīng)用過的數(shù)據(jù),如是, 再將已經(jīng)用過的數(shù)據(jù)擦除。
更具體地,所述掉電后數(shù)據(jù)的回溯過程還包括執(zhí)行上述步驟a之前,讀取 可擦寫式存儲器中的標(biāo)志,并通過該標(biāo)志判斷是否存儲有數(shù)據(jù)包。
更具體地,所述掉電后數(shù)據(jù)的回溯過程還包括執(zhí)行上述步驟e之后,判斷 所述另一數(shù)據(jù)包是否為第一數(shù)據(jù)包,如果是,則執(zhí)行步驟f;如果否,則返回 查找正確的數(shù)據(jù)包。
與已有技術(shù)相比,本發(fā)明所提供的掉電記憶保護方法將數(shù)據(jù)循環(huán)存儲到可 擦寫式存儲器,并在第二次開機后通過回溯方式,查找到斷電前的最新數(shù)據(jù)信 息,且在待機或者斷電狀態(tài)不需要使用備用電源,具有能夠記憶大量信息且功 耗少等優(yōu)點。
圖1是應(yīng)用本發(fā)明實施例的掉電記憶保護電路的示意框圖; 圖2是本發(fā)明實施例的上電后數(shù)據(jù)的循環(huán)存儲過程的流程圖; 圖3是本發(fā)明實施例的掉電后數(shù)據(jù)的回溯過程的流程圖。
具體實施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實 施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例^f義 僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
參見圖1,是應(yīng)用本發(fā)明實施例的掉電記憶保護電路的示意框圖(本發(fā)明提供的掉電記憶保護方法非常適用在DVD播放器上使用)。由圖中可見,應(yīng) 用本實施例的掉電記憶保護電路包括CPU1、可擦寫式存儲器2、電源電路3以 及外圍接口 4。
CPU1與可擦寫式存儲器2和外圍接口 4分別雙向連接。 電源電路3為CPU1、可擦寫式存儲器2以及外圍接口 4提供工作電壓。 參見圖2,本發(fā)明實施例的上電后數(shù)據(jù)的循環(huán)存儲過程如下 上電后,在步驟21中執(zhí)行初始化操作。
然后執(zhí)行步驟22, CPU1將可擦寫式存儲器2劃分為用于存放數(shù)據(jù)包的多 個單位數(shù)據(jù)區(qū)域和用于存放標(biāo)志的標(biāo)志區(qū)域,該標(biāo)志用來記錄是否有數(shù)據(jù)包存 儲到可擦寫式存儲器2中。
在步驟23中,CPU1將多個數(shù)據(jù)包按照一定的時間周期,例如30秒,依 次寫入可擦寫式存儲器2的一個單位數(shù)據(jù)區(qū)域,直到此單位數(shù)據(jù)區(qū)域被寫滿, 并在完成一個數(shù)據(jù)包的寫操作之后,CPU1在標(biāo)志區(qū)域的標(biāo)志中設(shè)置相關(guān)記錄。
步驟24, CPU1將數(shù)據(jù)包寫入可擦寫式存儲器2的另一個單位數(shù)據(jù)區(qū)域前, 判斷另 一單位數(shù)據(jù)區(qū)域是否已經(jīng)寫入了用過的數(shù)據(jù),如果有寫入用過的數(shù)據(jù), 則執(zhí)行步驟S25,否則執(zhí)行步驟S26。
步驟S25中,CPU1將用過的數(shù)據(jù)擦除,再執(zhí)行步驟S26。
在步驟S26中,CPU1將可擦寫式存儲器2的一個單位數(shù)據(jù)區(qū)域中的所有 數(shù)據(jù)包寫入可擦寫式存儲器2的另一個單位數(shù)據(jù)區(qū)域中,并返回執(zhí)行步驟23。
此外,步驟23中,當(dāng)完成一次數(shù)據(jù)包的記錄以后,CPU1將標(biāo)志設(shè)置成可 被識別的數(shù)據(jù)形式,例如 一組固定的數(shù)據(jù),或者設(shè)置成其它形式,例如寫 入次數(shù)和記錄總長度。
CPU1向另一個數(shù)據(jù)存儲區(qū)域?qū)懭霐?shù)據(jù)前,先將另一個數(shù)據(jù)存儲區(qū)域的已 經(jīng)用過的數(shù)據(jù)擦除,這樣能充分利用可擦寫式存儲器2有限的存儲空間。
參見圖3,本發(fā)明實施例的掉電后數(shù)據(jù)的回溯過程如下
第二次上電后,執(zhí)行步驟31, CPU1讀取可擦寫式存儲器2中的標(biāo)志,并判斷是否有數(shù)據(jù)包存儲在可擦寫式存儲器2中,如果可擦寫式存儲器2中已經(jīng)
存儲有數(shù)據(jù)包,則執(zhí)行步驟32;如果可擦寫式存儲器2中未存儲有數(shù)據(jù)包,則 結(jié)束掉電后數(shù)據(jù)的回溯過程,不屬于本發(fā)明所實施的范圍。
步驟32, CPU1判斷存儲在可擦寫式存儲器2中的最新數(shù)據(jù)包的地址是否 合法,如果最新數(shù)據(jù)包的地址合法,則執(zhí)行步驟321, CPU1就讀取存儲在可擦 寫式存儲器2中的最新數(shù)據(jù)包,并在步驟322中計算最新數(shù)據(jù)包的校驗和,之 后,則執(zhí)行步驟323,判斷最新數(shù)據(jù)包的校驗和是否正確,如果最新數(shù)據(jù)包的 校驗和正確,則執(zhí)行步驟324,返回查找正確的數(shù)據(jù)包,如果最新數(shù)據(jù)包的校 驗和錯誤,則執(zhí)行步驟33;如果最新數(shù)據(jù)包的地址不合法,則執(zhí)行步驟33。
步驟33, CPU1計算存儲在可擦寫式存儲器2中的最新數(shù)據(jù)包的第一子數(shù) 據(jù)包的起始地址。
步驟34, CPU1通過預(yù)先設(shè)定的存儲方式,例如可以在數(shù)據(jù)包尾部記錄 的該數(shù)據(jù)包的有效長度,計算另一數(shù)據(jù)包的地址,并根據(jù)上述地址讀取該數(shù)據(jù) 包。
在步驟35中,計算步驟34中所述的另一數(shù)據(jù)包的校驗和。
步驟36,判斷步驟35中計算出來的校驗和是否正確,如果校驗和正確, 則執(zhí)行步驟361,計算上述另一數(shù)據(jù)包的下一個數(shù)據(jù)包的起始地址,并返回執(zhí) 行步驟34;如杲校驗和錯誤,則執(zhí)行步驟37。
步驟37,判斷步驟34中所述的另一數(shù)據(jù)包是否為第一數(shù)據(jù)包,如果是第 一數(shù)據(jù)包,則執(zhí)行步驟38;如果不是第一數(shù)據(jù)包,則返回查找正確的數(shù)據(jù)包。
步驟38,返回查找失敗信息。
這樣,本發(fā)明提供的掉電記憶保護方法將數(shù)據(jù)循環(huán)存儲到可擦寫式存儲器, 并在第二次開機后通過回溯方式,查找到斷電前的最新數(shù)據(jù)信息,且在待機或 者斷電狀態(tài)不需要使用備用電源,能夠記憶大量信息且功耗較少。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā) 明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,比如,CPU1通過預(yù)先設(shè)定的存儲方式,還可以采用在數(shù)據(jù)包的數(shù)據(jù)頭信息中記錄該數(shù)據(jù)包的總 長度或下一個數(shù)據(jù)包的起始地址,或者某一時間周期長短的改變等等,上述改 變均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、掉電記憶保護方法,應(yīng)用于掉電記憶保護電路中,該掉電記憶保護電路包括CPU、可擦寫式存儲器、電源電路以及外圍接口,其特征在于上電后CPU循環(huán)地將數(shù)據(jù)包寫入可擦寫式存儲器的數(shù)據(jù)區(qū)域及在可擦寫式存儲器的標(biāo)志區(qū)域做相關(guān)記錄,并在掉電后通過標(biāo)志區(qū)域的記錄查找存儲在數(shù)據(jù)區(qū)域中的最新數(shù)據(jù)包,該方法包括上電后數(shù)據(jù)的循環(huán)存儲過程和掉電后數(shù)據(jù)的回溯過程。
2、 如權(quán)利要求1所述掉電記憶保護方法,其特征在于 所述上電后數(shù)據(jù)的循環(huán)存儲過程包括步驟A:將可擦寫式存儲器劃分為用于存放數(shù)據(jù)包的多個單位數(shù)據(jù)區(qū)域和 用于存放標(biāo)志的標(biāo)志區(qū)域,該標(biāo)志用來記錄是否有數(shù)據(jù)包存儲到可擦寫式存儲 器中;步驟B: CPU將多個數(shù)據(jù)包按照 一 時間周期依次寫入可擦寫式存儲器的一 個單位數(shù)據(jù)區(qū)域,并在完成一個數(shù)據(jù)包的寫操作之后,CPU在標(biāo)志區(qū)域的標(biāo)志 中設(shè)置相關(guān)記錄;步驟C: CPU將可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域中的所有數(shù)據(jù)包寫入 可擦寫式存儲器的另 一個單位數(shù)據(jù)區(qū)域中,并返回執(zhí)行步驟B。
3、 如權(quán)利要求1所述掉電記憶保護方法,其特征在于 所述掉電后數(shù)據(jù)的回溯過程包括步驟a:判斷最新數(shù)據(jù)包的地址是否合法,如果是,則讀取最新數(shù)據(jù)包, 并計算最新數(shù)據(jù)包的校驗和,之后,判斷該校驗和是否正確,如果正確,則返 回查找正確的數(shù)據(jù)包,如果錯誤,則執(zhí)行步驟b;如果否,則執(zhí)行步驟b;步驟b:計算最新數(shù)據(jù)包的第一子數(shù)據(jù)包的起始地址;步驟c:通過預(yù)先設(shè)定的存儲方式計算另一數(shù)據(jù)包的地址,并根據(jù)上述地 址讀取該數(shù)據(jù)包;步驟d:計算步驟c的所述另 一數(shù)據(jù)包的校驗和;步驟e:判斷步驟d中所述另一數(shù)據(jù)包的校驗和是否正確,如果是,則計 算所述另一數(shù)據(jù)包的下一個數(shù)據(jù)包的起始地址,并返回執(zhí)行步驟c;如果否, 則執(zhí)行步驟f;步驟f:返回查找失敗信息。
4、 如權(quán)利要求2所述掉電記憶保護方法,其特征在于 所述上電后數(shù)據(jù)的循環(huán)存儲過程還包括執(zhí)行上述步驟A之前,執(zhí)行初始化操作。
5、 如權(quán)利要求2所述掉電記憶保護方法,其特征在于 所述上電后數(shù)據(jù)的循環(huán)存儲過程的步驟B中CPU將數(shù)據(jù)包寫入可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域時,直到此單位數(shù)據(jù)區(qū)域被寫滿后,再在標(biāo)志區(qū)域 的標(biāo)志中設(shè)置相關(guān)記錄。
6、 如權(quán)利要求2、 4或5任一項所述掉電記憶保護方法,其特征在于 所述上電后數(shù)據(jù)的循環(huán)存儲過程的步驟C中CPU將可擦寫式存儲器的一個單位數(shù)據(jù)區(qū)域中的所有數(shù)據(jù)包寫入可擦寫式存儲器的另 一個單位數(shù)據(jù)區(qū)域前,先判斷所述另一單位數(shù)據(jù)區(qū)域是否存儲有已經(jīng)用過的數(shù)據(jù),如是,再將已 經(jīng)用過的數(shù)據(jù)擦除。
7、 如權(quán)利要求3所述掉電記憶保護方法,其特征在于 所述掉電后數(shù)據(jù)的回溯過程還包括執(zhí)行上述步驟a之前,讀取可擦寫式存儲器中的標(biāo)志,并通過該標(biāo)志判斷是否存儲有數(shù)據(jù)包。
8、 如權(quán)利要求3所述掉電記憶保護方法,其特征在于 所述掉電后數(shù)據(jù)的回溯過程還包括執(zhí)行上述步驟e之后,判斷所述另一數(shù)據(jù)包是否為第一數(shù)據(jù)包,如果是,則執(zhí)行步驟f;如果否,則返回查找正確的 數(shù)據(jù)包。
全文摘要
本發(fā)明提供了一種掉電記憶保護方法,應(yīng)用于掉電記憶保護電路中,該掉電記憶保護電路包括CPU、可擦寫式存儲器、電源電路以及外圍接口,上電后CPU循環(huán)地將數(shù)據(jù)包寫入可擦寫式存儲器的數(shù)據(jù)區(qū)域及在可擦寫式存儲器的標(biāo)志區(qū)域做相關(guān)記錄,并在掉電后通過標(biāo)志區(qū)域的記錄查找存儲在數(shù)據(jù)區(qū)域中的最新數(shù)據(jù)包,該方法包括上電后數(shù)據(jù)的循環(huán)存儲過程和掉電后數(shù)據(jù)的回溯過程。本發(fā)明將數(shù)據(jù)循環(huán)存儲到可擦寫式存儲器,并在第二次開機后通過回溯方式,查找到斷電前的最新數(shù)據(jù)信息,且在待機或者斷電狀態(tài)不需要使用備用電源,具有能夠記憶大量信息且功耗少等優(yōu)點。
文檔編號G06F11/14GK101482840SQ200910105019
公開日2009年7月15日 申請日期2009年1月13日 優(yōu)先權(quán)日2009年1月13日
發(fā)明者徐曉春 申請人:Tcl通力電子(惠州)有限公司