两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方法

文檔序號(hào):6581385閱讀:790來(lái)源:國(guó)知局
專利名稱:一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方法
技術(shù)領(lǐng)域
本發(fā)明屬于嵌入式系統(tǒng)中的閃存數(shù)據(jù)保護(hù)技術(shù)領(lǐng)域,涉及到一種閃存 中數(shù)據(jù)的保護(hù)方法,特別是在系統(tǒng)上電或掉電期間保護(hù)閃存數(shù)據(jù)安全性和 完整性的方法。
背景技術(shù)
隨著社會(huì)的進(jìn)步,科技的發(fā)展,多元的化設(shè)備也是日新月異,用戶的 對(duì)嵌入式的設(shè)備也提出了更高的要求,需要能夠提供完備的功能,安全, 快捷,穩(wěn)定,易操作等優(yōu)點(diǎn)的嵌入式設(shè)備,其中的系統(tǒng)簡(jiǎn)稱為嵌入式系統(tǒng), 用來(lái)管理嵌入式設(shè)備的系統(tǒng),對(duì)整個(gè)系統(tǒng)中存在的用戶接口和內(nèi)部接口之 間協(xié)調(diào)和操作,為用戶提供更加人性化的操作。統(tǒng)一對(duì)系統(tǒng)中資源分配調(diào)
度,為了保存嵌入式系統(tǒng)(Embedded Operating System)中的數(shù)據(jù)和代碼, 必須有一種非易失性存儲(chǔ)器,即Flash閃存存儲(chǔ)器。同時(shí)對(duì)用戶提供存儲(chǔ)私 人數(shù)據(jù),也是多功能,低能耗,高可靠的嵌入式系統(tǒng)設(shè)備(Embedded Operating System unit)必不可少的器件。今后的社會(huì)發(fā)展過(guò)程中這種嵌入 式系統(tǒng)設(shè)備會(huì)越來(lái)越多,嵌入式系統(tǒng)中Flash閃存數(shù)據(jù)的完整性和安全性越 來(lái)越需要得到保證。
目前比較常見(jiàn)的嵌入式系統(tǒng)有Linux, WinCE, VxWorks, UC/OS, Nucleus,其中Lhiux的特點(diǎn)是開(kāi)源,免費(fèi),并且存在一個(gè)龐大的開(kāi)源組織 不管在實(shí)際開(kāi)發(fā)過(guò)程遇到什么問(wèn)題都可以通過(guò)開(kāi)源論壇,或者是其它途徑找解決方案,該系統(tǒng)為嵌入式系統(tǒng)(Embedded Operating System)注入了活 力,使今后嵌入式系統(tǒng)的發(fā)展歷上添加了重重的一筆。
如上所述,由于嵌入式設(shè)備的需求量大加速了嵌入式系統(tǒng)(Embedded Operating System)的發(fā)展,對(duì)嵌入式系統(tǒng)的發(fā)展也是個(gè)契機(jī),其中Flash 閃存數(shù)據(jù)的安全性和完整性就顯得尤其的重要。系統(tǒng)在加電后所有的程序 都開(kāi)始加載,程序加載結(jié)束后程序的運(yùn)行所有的這些一切的操作都依靠著 Flash閃存中存儲(chǔ)的數(shù)據(jù)和代碼,所以嵌入式系統(tǒng)中flash數(shù)據(jù)的安全性和完 整性是必須的性能指標(biāo)。
閃存數(shù)據(jù)容易丟失的原因有以下幾種
1、 Flash數(shù)據(jù)丟失的硬件原因
Flash操作由硬件控制,所以硬件上的不穩(wěn)定可能造成Flash操作錯(cuò)誤。 硬件原因主要是能影響CPU正常運(yùn)行的因素,以及能影響Flash操作環(huán)境的 因素。這些因素包括操作電壓、溫度以及外部干擾脈沖等,具體如下
① 能影響CPU運(yùn)行可靠性的參數(shù)有系統(tǒng)時(shí)鐘源。如果系統(tǒng)時(shí)鐘由外部 晶振提供,外部的電磁干擾引起尖脈沖,并耦合到系統(tǒng)時(shí)鐘上,則會(huì)導(dǎo)致 不可預(yù)知的操作。
② 系統(tǒng)在CPU的工作電壓沒(méi)有穩(wěn)定(VDD上升時(shí)間低于規(guī)定的1 ms) 時(shí)就已經(jīng)完成復(fù)位,由于系統(tǒng)復(fù)位時(shí)需要從Flash讀出代碼數(shù)據(jù),F(xiàn)lash電壓 不穩(wěn)定會(huì)出現(xiàn)不可預(yù)測(cè)的錯(cuò)誤。
③ 在對(duì)Flash的操作過(guò)程中,如果溫度、電壓不穩(wěn)定,也可能造成Flash 數(shù)據(jù)錯(cuò)誤。
2、 Flash數(shù)據(jù)丟失的軟件原因代碼設(shè)計(jì)的缺陷是程序丟失的原因之一,因?yàn)镕lash是由硬件來(lái)控制 的,不能由軟件來(lái)控制操作的細(xì)節(jié),所以程序的不完善可能造成Flash的訪 問(wèn)出錯(cuò),從而使Flash數(shù)據(jù)出現(xiàn)錯(cuò)誤。這些操作包括在使能flash寫(xiě)之后, 由于軟件設(shè)計(jì)的缺陷導(dǎo)致錯(cuò)誤的將數(shù)據(jù)寫(xiě)到Flash中了,從而出現(xiàn)問(wèn)題。另 外,如果使用外部晶振作系統(tǒng)時(shí)鐘,在時(shí)鐘沒(méi)有穩(wěn)定時(shí)就對(duì)Flash進(jìn)行寫(xiě)操 作,也可能造成程序丟失。
以上問(wèn)題單純從硬件或軟件角度并不能很好地解決閃存數(shù)據(jù)完整性的 問(wèn)題,但是我們發(fā)現(xiàn)它們的共同特點(diǎn)是都無(wú)法防止系統(tǒng)在上電、掉電過(guò)程 丟失資料的技術(shù)缺陷,因此,雖然不能使上述問(wèn)題逐一解決,但是只要解 決了系統(tǒng)在上電、掉電過(guò)程丟失資料的技術(shù)缺陷,就可以避免上述的所有 問(wèn)題的發(fā)生?,F(xiàn)有技術(shù)并不能很好的解決,給本領(lǐng)域帶來(lái)了不便。

發(fā)明內(nèi)容
本發(fā)明的目的是為了解決嵌入式系統(tǒng)中防止系統(tǒng)在上電、掉電過(guò)程中 閃存數(shù)據(jù)丟失的技術(shù)問(wèn)題,設(shè)計(jì)了一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安 全性和完整性的方法,使系統(tǒng)在上電或掉電時(shí)將閃存單元中的非易失性字 段完全鎖住,在此期間不可以對(duì)閃存單元中的數(shù)據(jù)進(jìn)行寫(xiě)操作,保證了閃 存數(shù)據(jù)的完整性。
本發(fā)明為實(shí)現(xiàn)發(fā)明目的采用的技術(shù)方案是, 一種基于嵌入式系統(tǒng)的保 護(hù)閃存數(shù)據(jù)安全性和完整性的方法,該方法借助閃存芯片單元中的非易失 性字段以及Linux系統(tǒng)和配套管理軟件實(shí)現(xiàn),在Linux系統(tǒng)的內(nèi)核層設(shè)置與 非易失性字段配套的鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口電路,CPU借助信號(hào)采集單元采集 系統(tǒng)運(yùn)行狀態(tài)后,向鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口發(fā)送鎖或解鎖控制命令,實(shí)現(xiàn)對(duì)閃存芯片單元中的非易失性字段的鎖或解鎖。
本發(fā)明利用了 flash閃存芯片自帶的鎖寫(xiě)保護(hù)的一個(gè)非易失性字段,通 過(guò)設(shè)置鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口來(lái)控制閃存的鎖和解鎖。即當(dāng)該字段被關(guān)閉(鎖) 時(shí),任何的數(shù)據(jù)修改都無(wú)法操作,只有當(dāng)它為打開(kāi)(解鎖)狀態(tài)才可以寫(xiě) flash閃存數(shù)據(jù)。重要的是, 一旦設(shè)置了該字段,即使系統(tǒng)掉電,同樣保留 了該字段值,通過(guò)本方法,設(shè)備在上電和掉電的期間同樣受此字段的限制, 因此有效的防止了閃存單元中數(shù)據(jù)的丟失可能,在保證閃存單元中數(shù)據(jù)完 整性的同時(shí)很好地避開(kāi)了由于硬件或軟件的原因丟失閃存數(shù)據(jù)的可能性, 具有很好的社會(huì)效益和經(jīng)濟(jì)效益。
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。


圖1是本發(fā)明在系統(tǒng)啟動(dòng)前引導(dǎo)加載程序中應(yīng)用的步驟流程圖。 圖2是本發(fā)明在系統(tǒng)啟動(dòng)后應(yīng)用的步驟流程圖。 圖3是本發(fā)明在系統(tǒng)異常掉電時(shí)的步驟流程圖。
具體實(shí)施例方式
參看附圖, 一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方 法,該方法借助閃存芯片單元中的非易失性字段以及Linux系統(tǒng)和配套管理 軟件實(shí)現(xiàn),在Linux系統(tǒng)的內(nèi)核層設(shè)置與非易失性字段配套的鎖寫(xiě)保護(hù)驅(qū)動(dòng) 接口電路,CPU借助信號(hào)采集單元采集系統(tǒng)運(yùn)行狀態(tài)后,向鎖寫(xiě)保護(hù)驅(qū)動(dòng) 接口發(fā)送鎖或解鎖控制命令,實(shí)現(xiàn)對(duì)閃存芯片單元中的非易失性字段的鎖 或解鎖。本發(fā)明利用了 flash閃存芯片自帶的鎖寫(xiě)保護(hù)的一個(gè)非易失性字段, 通過(guò)設(shè)置鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口來(lái)控制閃存的鎖和解鎖。即當(dāng)該字段被關(guān)閉(鎖)時(shí),任何的數(shù)據(jù)修改都無(wú)法操作,只有當(dāng)它為打開(kāi)(解鎖)狀態(tài)才
可以寫(xiě)flash閃存數(shù)據(jù)。重要的是, 一旦設(shè)置了該字段,即使系統(tǒng)掉電,同 樣保留了該字段值。
為了便于系統(tǒng)控制,設(shè)置非易失性字段的二進(jìn)制數(shù)據(jù)狀態(tài)參數(shù),在CPU 發(fā)送鎖或解鎖控制命令之前,首先借助驅(qū)動(dòng)接口電路讀取二進(jìn)制數(shù)據(jù)狀態(tài) 參數(shù),根據(jù)狀態(tài)參數(shù)決定CPU進(jìn)行、或不進(jìn)行發(fā)送鎖或解鎖的控制命令。 若要進(jìn)行鎖命令,當(dāng)閃存已是鎖狀態(tài),無(wú)需動(dòng)作;當(dāng)內(nèi)存是解鎖狀態(tài),則 進(jìn)行鎖動(dòng)作。若要進(jìn)行解鎖命令,當(dāng)內(nèi)存是鎖狀態(tài),則進(jìn)行解鎖動(dòng)作,當(dāng) 內(nèi)存已是解鎖狀態(tài),則無(wú)需動(dòng)作。
為方便隨時(shí)鎖定、解鎖或者讀取內(nèi)存狀態(tài),上述的方法借助計(jì)算機(jī)在 CPU的輸入端設(shè)置命令行輸入接口電路,通過(guò)命令行輸入接口實(shí)現(xiàn)人為對(duì) 閃存芯片單元中的非易失性字段的鎖或解鎖。
上述的方法在引導(dǎo)加載程序中或系統(tǒng)啟動(dòng)后實(shí)現(xiàn)。
下面舉出具體實(shí)施例來(lái)解釋本方法在引導(dǎo)加載程序以及系統(tǒng)啟動(dòng)后中
應(yīng)用的流程。
參看圖l,當(dāng)系統(tǒng)上電后、引導(dǎo)加載程序啟動(dòng),為防止此階段閃存單元 中數(shù)據(jù)丟失,要進(jìn)行鎖程序。首先CPU借助鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口讀取當(dāng)前閃 存的狀態(tài),如果此時(shí)已為鎖狀態(tài),那么直接結(jié)束鎖程序;如果是解鎖狀態(tài), CPU則執(zhí)行鎖命令,發(fā)送鎖定編碼信號(hào)至鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口,使閃存變?yōu)?鎖狀態(tài),此后系統(tǒng)啟動(dòng)。
參看圖2,當(dāng)系統(tǒng)啟動(dòng)后,系統(tǒng)會(huì)執(zhí)行啟動(dòng)腳本文件,在此期間,閃存 同樣容易出現(xiàn)丟失數(shù)據(jù),此時(shí)也需要對(duì)閃存進(jìn)行鎖命令,CPU借助鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口讀取當(dāng)前閃存的狀態(tài),如果為鎖狀態(tài),那么直接結(jié)束鎖程序; 如果為解鎖狀態(tài),CPU則執(zhí)行鎖命令,發(fā)送鎖定編碼信號(hào)至鎖寫(xiě)保護(hù)驅(qū)動(dòng) 接口,使閃存變?yōu)殒i狀態(tài),啟動(dòng)結(jié)束。
參看圖3,當(dāng)系統(tǒng)異常掉電時(shí),根據(jù)公知的延時(shí)電路,CPU可以在延 時(shí)期間(一般在毫秒或微秒級(jí))進(jìn)行低電壓檢測(cè)功能,當(dāng)電壓有下降時(shí)(例 如從5V下降到3V),馬上執(zhí)行鎖命令,發(fā)送鎖定編碼信號(hào)至鎖寫(xiě)保護(hù)驅(qū)動(dòng) 接口,使閃存變?yōu)殒i狀態(tài),避免由于異常掉電而使閃存中存儲(chǔ)的數(shù)據(jù)丟失。
本方法就是針對(duì)系統(tǒng)在上電和掉電時(shí)避免出現(xiàn)閃存數(shù)據(jù)丟失的現(xiàn)象, 通過(guò)CPU對(duì)鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口的控制來(lái)實(shí)現(xiàn)閃存中非易失性字段的完全鎖 定,在鎖定期間閃存數(shù)據(jù)不可寫(xiě)、不可刪除,保證了閃存數(shù)據(jù)的安全性和 完整性。
權(quán)利要求
1、一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方法,該方法借助閃存芯片單元中的非易失性字段以及Linux系統(tǒng)和配套管理軟件實(shí)現(xiàn),其特征在于在Linux系統(tǒng)的內(nèi)核層設(shè)置與非易失性字段配套的鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口電路,CPU借助信號(hào)采集單元采集系統(tǒng)運(yùn)行狀態(tài)后,向鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口發(fā)送鎖或解鎖控制命令,實(shí)現(xiàn)對(duì)閃存芯片單元中的非易失性字段的鎖或解鎖。
2、 根據(jù)權(quán)利要求1所述的一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性 和完整性的方法,其特征在于設(shè)置非易失性字段的二進(jìn)制數(shù)據(jù)狀態(tài)參數(shù), 在CPU發(fā)送鎖或解鎖控制命令之前,首先借助驅(qū)動(dòng)接口電路讀取二進(jìn)制數(shù) 據(jù)狀態(tài)參數(shù),根據(jù)狀態(tài)參數(shù)決定CPU進(jìn)行、或不進(jìn)行發(fā)送鎖或解鎖的控制 命令。
3、 根據(jù)權(quán)利要求1所述的一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性 和完整性的方法,其特征在于所述的方法借助計(jì)算機(jī)在CPU的輸入端設(shè) 置命令行輸入接口電路,通過(guò)命令行輸入接口實(shí)現(xiàn)人為對(duì)閃存芯片單元中 的非易失性字段的鎖或解鎖。
4、 根據(jù)權(quán)利要求1或3所述的一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方法,其特征在于所述的方法在引導(dǎo)加載程序中或系統(tǒng)啟動(dòng)后實(shí)現(xiàn)。
全文摘要
一種基于嵌入式系統(tǒng)的保護(hù)閃存數(shù)據(jù)安全性和完整性的方法,解決嵌入式系統(tǒng)中防止系統(tǒng)在上電、掉電過(guò)程中閃存數(shù)據(jù)丟失的技術(shù)問(wèn)題,采用的技術(shù)方案是,借助閃存芯片單元中的非易失性字段以及Linux系統(tǒng)和配套管理軟件實(shí)現(xiàn),在Linux系統(tǒng)的內(nèi)核層設(shè)置與非易失性字段配套的鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口電路,CPU借助信號(hào)采集單元采集系統(tǒng)運(yùn)行狀態(tài)后,向鎖寫(xiě)保護(hù)驅(qū)動(dòng)接口發(fā)送鎖或解鎖控制命令,實(shí)現(xiàn)對(duì)閃存芯片單元中的非易失性字段的鎖或解鎖。本發(fā)明的優(yōu)點(diǎn)是設(shè)備在上電和掉電的期間同樣受此字段的限制,因此有效的防止了閃存單元中數(shù)據(jù)的丟失可能,在保證閃存單元中數(shù)據(jù)完整性的同時(shí)很好地避開(kāi)了由于硬件或軟件的原因丟失閃存數(shù)據(jù)的可能性,具有很好的社會(huì)效益和經(jīng)濟(jì)效益。
文檔編號(hào)G06F12/14GK101645047SQ20091018986
公開(kāi)日2010年2月10日 申請(qǐng)日期2009年9月2日 優(yōu)先權(quán)日2009年9月2日
發(fā)明者張錫健, 瀾 汪, 王志波, 鄧永堅(jiān), 校 雷 申請(qǐng)人:深圳市共進(jìn)電子有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
晋江市| 蕲春县| 景宁| 安仁县| 宁河县| 广宗县| 安宁市| 航空| 山东| 收藏| 岑巩县| 出国| 隆化县| 社旗县| 仙游县| 额济纳旗| 牙克石市| 随州市| 航空| 德庆县| 赤壁市| 漳平市| 灌南县| 开远市| 旺苍县| 海兴县| 上栗县| 双辽市| 张家口市| 奈曼旗| 扎兰屯市| 丹巴县| 绍兴市| 沂水县| 祁门县| 桓仁| 苍溪县| 临城县| 云霄县| 堆龙德庆县| 常州市|