嵌入式系統(tǒng)軟件的dram存儲數(shù)據(jù)保護方法及系統(tǒng)的制作方法
【技術(shù)領域】
[0001]本發(fā)明涉及嵌入式系統(tǒng)軟件異常時的DRAM(動態(tài)隨機存取存儲器)存儲數(shù)據(jù)保護的方法及系統(tǒng)。
【背景技術(shù)】
[0002]很多嵌入式應用場合需要對用戶數(shù)據(jù)、現(xiàn)場數(shù)據(jù)、各種配置信息、參數(shù)、程序運行狀態(tài)等進行數(shù)據(jù)保存,以便系統(tǒng)重啟后可以方便的恢復現(xiàn)場,或重新加載前面保存的數(shù)據(jù)。安全的方法是將數(shù)據(jù)保存到各種非易失性存儲介質(zhì)中。但是在數(shù)據(jù)被安全的保存到非易失性存儲介質(zhì)之前,還存在各種各樣的風險及出錯可能:程序死鎖、系統(tǒng)軟件出錯、外界干擾、其它軟件異常等。在系統(tǒng)軟件出現(xiàn)這些異常時,絕大多數(shù)系統(tǒng)會利用看門狗的功能來讓系統(tǒng)重新復位以便重啟系統(tǒng),少數(shù)情況下還必須啟動硬件復位。但是在系統(tǒng)軟硬件復位時,系統(tǒng)處理器的Memory控制器會停擺,存儲在DRAM中的數(shù)據(jù)也會丟失。
[0003]為了對用戶數(shù)據(jù)、現(xiàn)場數(shù)據(jù)、各種配置數(shù)據(jù)和參數(shù)進行保護,現(xiàn)有的嵌入式系統(tǒng)大多采用以下兩種方法。
[0004]1.采用靜態(tài)SRAM作為系統(tǒng)內(nèi)存和數(shù)據(jù)存儲器并采用電池備份,這種方式的優(yōu)點在于系統(tǒng)掉電或關(guān)機后所有的數(shù)據(jù)都能得到臨時保存,系統(tǒng)復位時數(shù)據(jù)也不會丟失;但是這種方式的最大缺點是:SRAM的容量受限,目前市場上缺少大容量、低成本的SRAM,如果使用大容量的SRAM,系統(tǒng)成本將會大幅度上升,難以滿足普通產(chǎn)品的成本需求。
[0005]2.采用動態(tài)DRAM作為系統(tǒng)內(nèi)存和數(shù)據(jù)存儲器,用非易失性存儲器作為永久數(shù)據(jù)保存的媒介,采用軟開關(guān)作為系統(tǒng)開關(guān),在系統(tǒng)軟關(guān)機退出之前將DRAM中數(shù)據(jù)保存到非易失性存儲器中;在系統(tǒng)突然掉電時由備份電池支撐核心系統(tǒng)工作,將DRAM中數(shù)據(jù)保存到非易失性存儲器中。這種方式看上去數(shù)據(jù)可以被很好地保護,但是它還存在一個致命的缺點:就是在數(shù)據(jù)被安全的保存到非易失性存儲器之前,各種軟件死鎖、軟件出錯、外界干擾等都會引起軟件異常,一旦出現(xiàn)這些軟件異常,系統(tǒng)軟件就不可能將數(shù)據(jù)安全地備份到非易失性存儲器中,這時就需要采用手動復位或采用軟件復位來重啟系統(tǒng)。但是在系統(tǒng)重啟的過程中DRAM數(shù)據(jù)不能保證安全。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法及系統(tǒng),即便在軟件死鎖、軟件出錯、外界干擾等引起軟件異常時,也能保證DRAM存儲數(shù)據(jù)的安全。
[0007]為實現(xiàn)所述目的的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法,其特點是采用一個MCU負責整個嵌入式系統(tǒng)的硬件復位,同時監(jiān)控嵌入式系統(tǒng)的軟件復位,并與嵌入式系統(tǒng)的主系統(tǒng)CPU進行通訊,以便了解當前嵌入式系統(tǒng)工作的狀態(tài),當檢測到系統(tǒng)復位信號時,MCU負責接管DRAM的控制權(quán),并向DRAM發(fā)出自刷新命令,使其進入一種自刷新模式,以保證在整個嵌入式系統(tǒng)復位期間DRAM數(shù)據(jù)的安全,在嵌入式系統(tǒng)復位完成,嵌入式系統(tǒng)的啟動引導程序運行且準備初始化DRAM之前,MCU發(fā)出退出自刷新命令給DRAM,然后釋放并交還DRAM控制權(quán)給主系統(tǒng)CPU,主CPU接管DRAM后,DRAM中保存的數(shù)據(jù)仍然是有效的。
[0008]所述的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法,其進一步的特點是,利用MCU監(jiān)控嵌入式系統(tǒng)的手動硬件復位信號并進行防抖動,然后產(chǎn)生一個固定寬度的硬件復位脈沖信號去復位主系統(tǒng)CPU,主系統(tǒng)CPU內(nèi)部電路復位的同時會產(chǎn)生一個復位輸出信號,用于復位整個嵌入式系統(tǒng)。
[0009]所述的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法,其進一步的特點是,MCU根據(jù)主系統(tǒng)CPU輸出的用于復位整個嵌入式系統(tǒng)的復位輸出信號的下降沿或在主系統(tǒng)CPU復位開始時同步產(chǎn)生DRAM總線的控制信號,以便于將DRAM的控制信號切換給MCU,由MCU接管控制信號的控制權(quán),然后由MCU給DRAM發(fā)送自刷新命令,使DRAM進入自刷新模式,保護嵌入式系統(tǒng)復位期間的DRAM數(shù)據(jù)。
[0010]所述的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法,其進一步的特點是,在復位輸出信號的上升沿或主系統(tǒng)CPU復位結(jié)束后,主系統(tǒng)CPU開始運行啟動引導程序,并在啟用DRAM之前產(chǎn)生一個同步信號給MCU,MCU接收到此同步信號后,立刻指令DRAM退出自刷新模式,然后將DRAM總線的控制信號切換給主系統(tǒng)CPU,并將DRAM的控制權(quán)交還給主系統(tǒng)CPUo
[0011]所述的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護方法,其進一步的特點是,所述復位輸出信號是MCU檢測到的軟件復位信號,或者是MCU根據(jù)硬件復位信號,產(chǎn)生一個復位信號至主系統(tǒng)CPU,主系統(tǒng)CPU根據(jù)該復位信號輸出的復位信號。
[0012]為實現(xiàn)所述目的的嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護系統(tǒng),包括MCU、嵌入式系統(tǒng)的主系統(tǒng)CPU、DRAM及關(guān)聯(lián)MCU、主系統(tǒng)CPU、DRAM的控制電路,其特點是按照前述的保護方法運行。
[0013]采用本發(fā)明的數(shù)據(jù)保護方法和系統(tǒng),能有效保護用戶數(shù)據(jù)、現(xiàn)場數(shù)據(jù)、各種配置數(shù)據(jù)和參數(shù)、軟件運行狀態(tài)等在任何軟件異常的情況下不丟失,并在系統(tǒng)軟關(guān)機和交流掉電時都能及時地將數(shù)據(jù)保存到非易失性存儲器中,從而達到采用低成本的方法做到數(shù)據(jù)的安全可靠備份。
【附圖說明】
[0014]本發(fā)明的上述的以及其他的特征、性質(zhì)和優(yōu)勢將通過下面結(jié)合附圖和實施例的描述而變得更加明顯,其中:
[0015]圖1為本發(fā)明一實施例中嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護系統(tǒng)的方框圖。
【具體實施方式】
[0016]下面結(jié)合具體實施例和附圖對本發(fā)明作進一步說明,在以下的描述中闡述了更多的細節(jié)以便于充分理解本發(fā)明,但是本發(fā)明顯然能夠以多種不同于此描述的其它方式來實施,本領域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下根據(jù)實際應用情況作類似推廣、演繹,因此不應以此具體實施例的內(nèi)容限制本發(fā)明的保護范圍。
[0017]需要注意的是,圖1均僅作為示例,其并非是按照等比例的條件繪制的,并且不應該以此作為對本發(fā)明實際要求的保護范圍構(gòu)成限制。
[0018]嵌入式系統(tǒng)軟件的DRAM存儲數(shù)據(jù)保護系統(tǒng)包括嵌入式系統(tǒng)的主系統(tǒng)CPU以及DRAM,還包括一個MCU (微處理器或微處理單元,最好是低功耗的),主系統(tǒng)CPU和MCU之間建立三根通訊線路,主系統(tǒng)CPU和MCU通過開關(guān)組4選擇性地耦接到DRAM的引腳CKE,引腳CLOCK,引腳nCS,引腳nRAS,引腳nCAS以及引腳nWE。引腳CKE對應時鐘允許引線。引腳CLOCK對應時鐘信號輸入引線。引腳nCS對應片選信號引線。引腳nRAS對應行地址選通信號線。引腳nCAS對應列地址選通信號線。引腳nWE對應寫使能信號線。
[0019]在MCU的引腳DIR處于第一狀態(tài)時,開關(guān)組4將主系統(tǒng)CPU和DRAM耦接,由主系統(tǒng)CPU控制DRAM。在MCU的引腳DIR處于第二狀態(tài)時,開關(guān)組4便切換至將MCU和DRAM耦接,由MCU控制DRAM。
[0020]在主系統(tǒng)CPU控制DRAM時,主系統(tǒng)CPU的引腳C-CTR輸出信號C-CKE、C-CLOCK,C-nCS、C-nRAS、C-nCAS、C-nffE 至 DRAM 的引腳 CKE,引腳 CLOCK,引腳 nCS,引腳 nRAS,引腳nCAS以及引腳nWE。
[0021]在MCU 控制 DRAM 時,MCU 的弓 I 腳 M-CTR 輸出控制信號 M-CKE、M-CLOCK、Μ-nCS、M-nRAS、Μ-nCAS、M-nffE 至 DRAM 的引腳 CKE,引腳 CLOCK,引腳 nCS,引腳 nRAS,引腳 nCAS 以及引腳nWE。
[0022]另外MCU監(jiān)控手動復位信號,手動復位信號可以是手觸發(fā)一按鈕產(chǎn)生,同時MCU也能監(jiān)控軟件復位信號,此軟件復位信號可由主系