一种基于嵌入式系统的保护闪存数据安全性和完整性的方法

文档序号:6581385阅读:757来源:国知局
专利名称:一种基于嵌入式系统的保护闪存数据安全性和完整性的方法
技术领域
本发明属于嵌入式系统中的闪存数据保护技术领域,涉及到一种闪存 中数据的保护方法,特别是在系统上电或掉电期间保护闪存数据安全性和 完整性的方法。
背景技术
随着社会的进步,科技的发展,多元的化设备也是日新月异,用户的 对嵌入式的设备也提出了更高的要求,需要能够提供完备的功能,安全, 快捷,稳定,易操作等优点的嵌入式设备,其中的系统简称为嵌入式系统, 用来管理嵌入式设备的系统,对整个系统中存在的用户接口和内部接口之 间协调和操作,为用户提供更加人性化的操作。统一对系统中资源分配调
度,为了保存嵌入式系统(Embedded Operating System)中的数据和代码, 必须有一种非易失性存储器,即Flash闪存存储器。同时对用户提供存储私 人数据,也是多功能,低能耗,高可靠的嵌入式系统设备(Embedded Operating System unit)必不可少的器件。今后的社会发展过程中这种嵌入 式系统设备会越来越多,嵌入式系统中Flash闪存数据的完整性和安全性越 来越需要得到保证。
目前比较常见的嵌入式系统有Linux, WinCE, VxWorks, UC/OS, Nucleus,其中Lhiux的特点是开源,免费,并且存在一个庞大的开源组织 不管在实际开发过程遇到什么问题都可以通过开源论坛,或者是其它途径找解决方案,该系统为嵌入式系统(Embedded Operating System)注入了活 力,使今后嵌入式系统的发展历上添加了重重的一笔。
如上所述,由于嵌入式设备的需求量大加速了嵌入式系统(Embedded Operating System)的发展,对嵌入式系统的发展也是个契机,其中Flash 闪存数据的安全性和完整性就显得尤其的重要。系统在加电后所有的程序 都开始加载,程序加载结束后程序的运行所有的这些一切的操作都依靠着 Flash闪存中存储的数据和代码,所以嵌入式系统中flash数据的安全性和完 整性是必须的性能指标。
闪存数据容易丢失的原因有以下几种
1、 Flash数据丢失的硬件原因
Flash操作由硬件控制,所以硬件上的不稳定可能造成Flash操作错误。 硬件原因主要是能影响CPU正常运行的因素,以及能影响Flash操作环境的 因素。这些因素包括操作电压、温度以及外部干扰脉冲等,具体如下
① 能影响CPU运行可靠性的参数有系统时钟源。如果系统时钟由外部 晶振提供,外部的电磁干扰引起尖脉冲,并耦合到系统时钟上,则会导致 不可预知的操作。
② 系统在CPU的工作电压没有稳定(VDD上升时间低于规定的1 ms) 时就已经完成复位,由于系统复位时需要从Flash读出代码数据,Flash电压 不稳定会出现不可预测的错误。
③ 在对Flash的操作过程中,如果温度、电压不稳定,也可能造成Flash 数据错误。
2、 Flash数据丢失的软件原因代码设计的缺陷是程序丢失的原因之一,因为Flash是由硬件来控制 的,不能由软件来控制操作的细节,所以程序的不完善可能造成Flash的访 问出错,从而使Flash数据出现错误。这些操作包括在使能flash写之后, 由于软件设计的缺陷导致错误的将数据写到Flash中了,从而出现问题。另 外,如果使用外部晶振作系统时钟,在时钟没有稳定时就对Flash进行写操 作,也可能造成程序丢失。
以上问题单纯从硬件或软件角度并不能很好地解决闪存数据完整性的 问题,但是我们发现它们的共同特点是都无法防止系统在上电、掉电过程 丢失资料的技术缺陷,因此,虽然不能使上述问题逐一解决,但是只要解 决了系统在上电、掉电过程丢失资料的技术缺陷,就可以避免上述的所有 问题的发生。现有技术并不能很好的解决,给本领域带来了不便。

发明内容
本发明的目的是为了解决嵌入式系统中防止系统在上电、掉电过程中 闪存数据丢失的技术问题,设计了一种基于嵌入式系统的保护闪存数据安 全性和完整性的方法,使系统在上电或掉电时将闪存单元中的非易失性字 段完全锁住,在此期间不可以对闪存单元中的数据进行写操作,保证了闪 存数据的完整性。
本发明为实现发明目的采用的技术方案是, 一种基于嵌入式系统的保 护闪存数据安全性和完整性的方法,该方法借助闪存芯片单元中的非易失 性字段以及Linux系统和配套管理软件实现,在Linux系统的内核层设置与 非易失性字段配套的锁写保护驱动接口电路,CPU借助信号采集单元采集 系统运行状态后,向锁写保护驱动接口发送锁或解锁控制命令,实现对闪存芯片单元中的非易失性字段的锁或解锁。
本发明利用了 flash闪存芯片自带的锁写保护的一个非易失性字段,通 过设置锁写保护驱动接口来控制闪存的锁和解锁。即当该字段被关闭(锁) 时,任何的数据修改都无法操作,只有当它为打开(解锁)状态才可以写 flash闪存数据。重要的是, 一旦设置了该字段,即使系统掉电,同样保留 了该字段值,通过本方法,设备在上电和掉电的期间同样受此字段的限制, 因此有效的防止了闪存单元中数据的丢失可能,在保证闪存单元中数据完 整性的同时很好地避开了由于硬件或软件的原因丢失闪存数据的可能性, 具有很好的社会效益和经济效益。
下面结合附图对本发明进行详细说明。


图1是本发明在系统启动前引导加载程序中应用的步骤流程图。 图2是本发明在系统启动后应用的步骤流程图。 图3是本发明在系统异常掉电时的步骤流程图。
具体实施例方式
参看附图, 一种基于嵌入式系统的保护闪存数据安全性和完整性的方 法,该方法借助闪存芯片单元中的非易失性字段以及Linux系统和配套管理 软件实现,在Linux系统的内核层设置与非易失性字段配套的锁写保护驱动 接口电路,CPU借助信号采集单元采集系统运行状态后,向锁写保护驱动 接口发送锁或解锁控制命令,实现对闪存芯片单元中的非易失性字段的锁 或解锁。本发明利用了 flash闪存芯片自带的锁写保护的一个非易失性字段, 通过设置锁写保护驱动接口来控制闪存的锁和解锁。即当该字段被关闭(锁)时,任何的数据修改都无法操作,只有当它为打开(解锁)状态才
可以写flash闪存数据。重要的是, 一旦设置了该字段,即使系统掉电,同 样保留了该字段值。
为了便于系统控制,设置非易失性字段的二进制数据状态参数,在CPU 发送锁或解锁控制命令之前,首先借助驱动接口电路读取二进制数据状态 参数,根据状态参数决定CPU进行、或不进行发送锁或解锁的控制命令。 若要进行锁命令,当闪存已是锁状态,无需动作;当内存是解锁状态,则 进行锁动作。若要进行解锁命令,当内存是锁状态,则进行解锁动作,当 内存已是解锁状态,则无需动作。
为方便随时锁定、解锁或者读取内存状态,上述的方法借助计算机在 CPU的输入端设置命令行输入接口电路,通过命令行输入接口实现人为对 闪存芯片单元中的非易失性字段的锁或解锁。
上述的方法在引导加载程序中或系统启动后实现。
下面举出具体实施例来解释本方法在引导加载程序以及系统启动后中
应用的流程。
参看图l,当系统上电后、引导加载程序启动,为防止此阶段闪存单元 中数据丢失,要进行锁程序。首先CPU借助锁写保护驱动接口读取当前闪 存的状态,如果此时已为锁状态,那么直接结束锁程序;如果是解锁状态, CPU则执行锁命令,发送锁定编码信号至锁写保护驱动接口,使闪存变为 锁状态,此后系统启动。
参看图2,当系统启动后,系统会执行启动脚本文件,在此期间,闪存 同样容易出现丢失数据,此时也需要对闪存进行锁命令,CPU借助锁写保护驱动接口读取当前闪存的状态,如果为锁状态,那么直接结束锁程序; 如果为解锁状态,CPU则执行锁命令,发送锁定编码信号至锁写保护驱动 接口,使闪存变为锁状态,启动结束。
参看图3,当系统异常掉电时,根据公知的延时电路,CPU可以在延 时期间(一般在毫秒或微秒级)进行低电压检测功能,当电压有下降时(例 如从5V下降到3V),马上执行锁命令,发送锁定编码信号至锁写保护驱动 接口,使闪存变为锁状态,避免由于异常掉电而使闪存中存储的数据丢失。
本方法就是针对系统在上电和掉电时避免出现闪存数据丢失的现象, 通过CPU对锁写保护驱动接口的控制来实现闪存中非易失性字段的完全锁 定,在锁定期间闪存数据不可写、不可删除,保证了闪存数据的安全性和 完整性。
权利要求
1、一种基于嵌入式系统的保护闪存数据安全性和完整性的方法,该方法借助闪存芯片单元中的非易失性字段以及Linux系统和配套管理软件实现,其特征在于在Linux系统的内核层设置与非易失性字段配套的锁写保护驱动接口电路,CPU借助信号采集单元采集系统运行状态后,向锁写保护驱动接口发送锁或解锁控制命令,实现对闪存芯片单元中的非易失性字段的锁或解锁。
2、 根据权利要求1所述的一种基于嵌入式系统的保护闪存数据安全性 和完整性的方法,其特征在于设置非易失性字段的二进制数据状态参数, 在CPU发送锁或解锁控制命令之前,首先借助驱动接口电路读取二进制数 据状态参数,根据状态参数决定CPU进行、或不进行发送锁或解锁的控制 命令。
3、 根据权利要求1所述的一种基于嵌入式系统的保护闪存数据安全性 和完整性的方法,其特征在于所述的方法借助计算机在CPU的输入端设 置命令行输入接口电路,通过命令行输入接口实现人为对闪存芯片单元中 的非易失性字段的锁或解锁。
4、 根据权利要求1或3所述的一种基于嵌入式系统的保护闪存数据安全性和完整性的方法,其特征在于所述的方法在引导加载程序中或系统启动后实现。
全文摘要
一种基于嵌入式系统的保护闪存数据安全性和完整性的方法,解决嵌入式系统中防止系统在上电、掉电过程中闪存数据丢失的技术问题,采用的技术方案是,借助闪存芯片单元中的非易失性字段以及Linux系统和配套管理软件实现,在Linux系统的内核层设置与非易失性字段配套的锁写保护驱动接口电路,CPU借助信号采集单元采集系统运行状态后,向锁写保护驱动接口发送锁或解锁控制命令,实现对闪存芯片单元中的非易失性字段的锁或解锁。本发明的优点是设备在上电和掉电的期间同样受此字段的限制,因此有效的防止了闪存单元中数据的丢失可能,在保证闪存单元中数据完整性的同时很好地避开了由于硬件或软件的原因丢失闪存数据的可能性,具有很好的社会效益和经济效益。
文档编号G06F12/14GK101645047SQ20091018986
公开日2010年2月10日 申请日期2009年9月2日 优先权日2009年9月2日
发明者张锡健, 澜 汪, 王志波, 邓永坚, 校 雷 申请人:深圳市共进电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1