Flash程序存储器保护设计方法与硬件实现装置的制造方法

文档序号:9923681阅读:910来源:国知局
Flash程序存储器保护设计方法与硬件实现装置的制造方法
【技术领域】
[0001] 本发明涉及可靠性设计中Flash程序存储器保护设计方法与硬件实现,利用安全 模式、区域保护和擦写流程控制三种方法结合,来实现Flash程序存储器保护。
【背景技术】
[0002] 目前,汽车上使用的电子产品正逐渐的增多,汽车电子技术的使用对汽车行驶过 程的燃油经济性、操作安全性以及舒适性等方面发挥了非常重要的作用。高可靠性是汽车 半导体芯片区别于消费类芯片的显著特征。Flash程序存储器保护是汽车电子可靠性研究 的重要方面。
[0003] EMI干扰的一个严重后果是对存储数据的破坏,因此保护存储器数据的稳定安全 是提高可靠性的重要技术,一般而言在MCU系统中常用的存储保护方式是ECC和MPU单元; 常使用的存储器保护方法包括还包括非使用空间填充,即用N0P指令,或错误执行指令填 充非使用空间,当程序出错跳到这些区域时,能通过reset系统回到正常工作状态。
[0004] 针对Flash程序存储器保护的实现方法和代价问题,本文提出了一种基于安全模 式、区域保护和擦除及编程流程控制的Flash程序存储器保护设计方法和硬件实现。本发 明的主要贡献是规定了 一种安全模式,在此模式下Flash程序存储器内容不能被非授权 的渠道读取,例如JTAG调试接口,而处于安全区域的Flash程序存储器中的数据程序可 以访问MCU中的任意存储单元;另外,Flash程序存储器存储空间保护部分采用区域保护 的方法,只有对非保护区域的Flash程序存储器存储空间才能进行访问;最后,规定Flash 程序存储器擦除、编程操作的执行过程,只有按照规定的流程,操作才能成功,否则会提示 Access Error〇

【发明内容】

[0005] 本发明涉及一种满足汽车电子可靠性需求的Flash程序存储器保护方案。具体 的,本发明提出了基于安全模式、区域保护、擦除及编程流程控制的Flash程序存储器保护 设计方法和硬件实现。其中,安全模式下,Flash程序存储器中的内容不能被非授权渠道读 取;区域保护(Block Protection)防止了 Flash程序存储器中的数据遭到无意或恶意的篡 改,对Flash程序存储器中非保护区域才能进行擦除、编程的保护;用户必须按照严格的执 行流程进行Flash程序存储器擦除、编程,才能成功的完成Flash程序存储器擦除、编程操 作。
[0006] 首先,本发明规定了一种安全模式,在此模式下Flash程序存储器中的内容不能 被非授权的渠道读取,例如JTAG调试接口;而处于安全区域的Flash程序存储器中的数据 程序可以访问MCU中的任意存储单元。任何非安全区域的程序对Flash程序存储器的读 写操作均会被忽略(读取为〇,写入忽略)。安全模式有FPR0T寄存器中的SEC[1:0]位决 定,在复位后该寄存器的内容会被NVRI中的寄存器内容覆盖,该寄存器的内容不能由用户 程序写入或修改。SEC[1:0] =2'bl0的状态为非安全状态,其余状态均为安全状态。JTAG 接口在芯片处于运行状态且为安全状态时,不允许进入到调试状态。在安全模式下,只有在 复位的同时将P3. 7/DEBUG管脚置于低才能将系统置于调试状态。用户可以通过两种方式 解除或暂时解除安全模式:
[0007] (1)解密密钥
[0008] 用户可以通过外设接口连续输入8个字节的密钥,并将其连续写入FKEY寄存器, 这些密钥将会与Flash程序存储器中的Comparison Key进行比较,如果吻合,SEC[1:0]变 为2' blO,则会暂时解除安全状态,直至下一次复位。
[0009] 如果FPR0T寄存器中的KEYEN为1,则上述机制可行,如果为0,则系统不允许密钥 解除安全模式的机制。Comparison Key以及SEC的设定,均位于Flash程序存储器的保护 区域内,如果区域保护机制开启,则以上内容除非被全芯片擦除,否则均不能被修改。
[0010] ⑵重新编程
[0011] 系统通过进入调试模式,修改FPR0T,取消区域保护机制;之后,通过JTAG接口进 行全芯片擦除;通过JTAG进行重新编程,烧入Bootloader、NVRI、NVRII以及Comparison Key,其中SEC可以根据用户需求设置为2' blO状态。
[0012] 其次,本发明规定了一种区域保护的具体方案,通过寄存器设置配置Flash程序 存储器受保护区域。在有Flash程序存储器访问权限之后,区域保护为Flash程序存储器 特定区域提供进一步保护,防止Flash程序存储器中的数据遭到无意或恶意的篡改区域保 护,只能对非受保护区域才能进行有效擦除、编程操作。这些保护区域由FPR0T寄存器决 定,该寄存器在复位后由Flash程序存储器的NVRII复制到SFR的寄存器地址空间。FPR0T 不能被用户程序修改,它是只读不可写的寄存器。NVRII寄存器位于Flash程序存储器存储 器中的最后一个扇区(sector),如果Flash程序存储器中的任意一个区域被保护,则NVRII 本身也被保护起来。想要修改区域保护模式的方法仅有一种:通过JTAG方式访问FPR0T寄 存器,将其修改为全部Flash程序存储器均不受保护,之后通过JTAG擦除全部Flash程序 存储器,重新通过JTAG接口烧写bootloader、NVRI、NVRII以及comparison key。区域保 护可以用来保护bootloader程序以及用户的关键数据信息。
[0013] 最后,本发明提出了一种对Flash程序存储器的操作控制,用户必须按照严格的 操作才能成功的进行Flash程序存储器擦写、编程操作。请参阅图1,该图描述了 Flash程 序存储器的编程命令Byte Program以及擦写命令Sector erase和Mass Erase,这些命令 执行过程如下:
[0014] (1)首先写入FCLK寄存器,该寄存器在任何复位之后都要进行初始化,且仅允许 设置一次,该寄存器决定了 Flash程序存储器进行擦除和编程时所使用的时钟频率,需要 根据不同的总线时钟将Flash程序存储器时钟频率限制在700kHz-800kHz范围内。
[0015] (2)首先清除任意错误信号FPVI0L和FACCE,方法是直接写入1 ;判断FSTATUS寄 存器中FCBEF是否为1,如果为1,说明指令队列空,则首先写入FCMD命令,该命令只能为指 定的某些指令;
[0016] (3)将要编程的数据写入FDATA,如果要执行擦除操作,则该寄存器内容可以为任 意值;
[0017] (4)将地址以此写入FLADDR、FHADDR,并将FADDR[16]写入FSTATUS寄存器,如果 是擦除操作,该地址可以为扇区的任意地址(Sector Erase)或全Flash程序存储器的任意 地址(Mass Erase);
[0018] (5)将FCBEF写入1,清除标志位,此时Flash程序存储器正式开始操作;
[0019] (6)等待并读取FSTATUS寄存器,判断是否有保护区域擦除违例(FPVI0L为1)或 Flash程序存储器操作违例(FACCE为1),如果发生以上错误则需要重新开始本次操作;
[0020] (7)如果FCCF为1,表明操作完成。该标志位在下一次写入FCMD之后自动清零。
[0021] 为了提高Flash程序存储器编程的速度,提供了猝发模式编程(Burst Program) 命令,执行猝发编程的条件有两个:
[0022] (1)系统需要在FCCF为1前,并在FCBEF为1后写入命令,可以连续进行编程操 作;
[0023] (2)下一个执行burst program的地址与当前执行操作地址相邻,且位于同一个 Flash程序存储器Row,即仅有低8位地址不同,高9位地址相同。一个Flash程序存储器 Row包含256字节。
[0024] 如果以上条件均满足,贝采用Burst Program可以大幅缩小编程时间。如果Burst program的下一个地址为不同的Row,则编程时间为普通的单字节编程时间,而后续字节编 程为猝发模式,时间大量减少。
[0025] 猝发连续编程的具体流程为:
[0026] (1)写入命令、地址、数据后,将FCBEF清零,开始进行burst program ;
[0027] (2)在FCCF为1前,并在FCBEF为1后,写入新的数据,并再次将FCBEF清零,系统 地址自动加1 ;
[0028] (3)当FCCF为1前,如果系统不再将FCBEF清0,则系统burst program结束。
[0029] 以下情况视为Flash程序存储器存储器的访问错误(Access Error):在Flash程 序存储器状态命令寄存器空闲标志FCBEF为1之前,写入地址、数据或命令;在命令寄存器 中写入了非法指令;MCU进入IDLE或者STOP状态时,有编程或者擦写操作正在执行(同时 操作放弃)。
[0030] 从上述技术方案可以看出,本发明具有以下有益效果:
[0031] 1、本发明提供的用于Flash程序存储器保护的设计方法,分别从存储空间、擦写 流程、模式不同的角度,在并不增加 Flash程序存储器存储码元位,没有复杂的编解码单 元,通过区域保护、流程控制、安全模式协同作用,以较小的代价完成Flash程序存储器的 保护。
[0032] 2、本发明提供的区域保护功能,具有可配置性,可选择Flash程序存储器全部区 域被保护,也可通过寄存器配置具体Flash程序存储器某个区域被保护。
[0033] 3、本发明提供的编程流程控制Byte Program以及擦除命令Sector erase和Mass Erase流程控制,严格控制了擦写过程的有效性,对于无意或有意篡改Flash程序存储器数 据内容,有高效的保护作用;为了提高Flash程序存储器编程的速度,提供了猝发模式编程 (Burst Program)命令,及其执行流程。
[0034] 4、本发明提供的安全模式机制,给Flash程序存储器提供的一个外在保护屏障, 是打开Flash程序存储器的钥匙,用简单的操作以及结构实现的Flash程序存储器的第一 层保护。
[0035] 5、本发明提供的这种Flash程序存储器保护设计方法,可广泛地应用于微控制器 尤其是对可靠性要求高的应用领域的存储器保护。
【附图说明】
[0036] 图1解除安全模式两种方式;
[0037] 图2区域保护寄存器设置与对应保护区域;
[0038] 图3擦除、编程执行过程。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1