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

技术编号:15088166 阅读:152 留言:0更新日期:2017-04-07 17:59
本发明专利技术公开了一种为满足汽车电子芯片高可靠性要求,采用安全模式、区域保护和擦写操作流程控制的方法,实现Flash程序存储器保护的设计方案及硬件实现。利用安全模式实现Flash程序存储器整体保护,非授权的渠道只有在非安全模式下才有对Flash程序存储器的访问权限;利用区域保护防止了受保护区域Flash程序存储器中的数据遭到无意或恶意的篡改;利用操作流程控制保护,通过操作过程规范化,防止非受保护区域数据非法或无意篡改,它在区域保护的基础上给Flash程序存储器又增加了一道保护墙,本发明专利技术的Flash程序存储器保护设计方案满足汽车电子芯片对于功能失效等高可靠性的要求。

【技术实现步骤摘要】

本专利技术涉及可靠性设计中Flash程序存储器保护设计方法与硬件实现,利用安全模式、区域保护和擦写流程控制三种方法结合,来实现Flash程序存储器保护。
技术介绍
目前,汽车上使用的电子产品正逐渐的增多,汽车电子技术的使用对汽车行驶过程的燃油经济性、操作安全性以及舒适性等方面发挥了非常重要的作用。高可靠性是汽车半导体芯片区别于消费类芯片的显著特征。Flash程序存储器保护是汽车电子可靠性研究的重要方面。EMI干扰的一个严重后果是对存储数据的破坏,因此保护存储器数据的稳定安全是提高可靠性的重要技术,一般而言在MCU系统中常用的存储保护方式是ECC和MPU单元;常使用的存储器保护方法包括还包括非使用空间填充,即用NOP指令,或错误执行指令填充非使用空间,当程序出错跳到这些区域时,能通过reset系统回到正常工作状态。针对Flash程序存储器保护的实现方法和代价问题,本文提出了一种基于安全模式、区域保护和擦除及编程流程控制的Flash程序存储器保护设计方法和硬件实现。本专利技术的主要贡献是规定了一种安全模式,在此模式下Flash程序存储器内容不能被非授权的渠道读取,例如JTAG调试接口,而处于安全区域的Flash程序存储器中的数据程序可以访问MCU中的任意存储单元;另外,Flash程序存储器存储空间保护部分采用区域保护的方法,只有对非保护区域的Flash程序存储器存储空间才能进行访问;最后,规定Flash程序存储器擦除、编程操作的执行过程,只有按照规定的流程,操作才能成功,否则会提示AccessError。
技术实现思路
本专利技术涉及一种满足汽车电子可靠性需求的Flash程序存储器保护方案。具体的,本专利技术提出了基于安全模式、区域保护、擦除及编程流程控制的Flash程序存储器保护设计方法和硬件实现。其中,安全模式下,Flash程序存储器中的内容不能被非授权渠道读取;区域保护(BlockProtection)防止了Flash程序存储器中的数据遭到无意或恶意的篡改,对Flash程序存储器中非保护区域才能进行擦除、编程的保护;用户必须按照严格的执行流程进行Flash程序存储器擦除、编程,才能成功的完成Flash程序存储器擦除、编程操作。首先,本专利技术规定了一种安全模式,在此模式下Flash程序存储器中的内容不能被非授权的渠道读取,例如JTAG调试接口;而处于安全区域的Flash程序存储器中的数据程序可以访问MCU中的任意存储单元。任何非安全区域的程序对Flash程序存储器的读写操作均会被忽略(读取为0,写入忽略)。安全模式有FPROT寄存器中的SEC[1:0]位决定,在复位后该寄存器的内容会被NVRI中的寄存器内容覆盖,该寄存器的内容不能由用户程序写入或修改。SEC[1:0]=2’b10的状态为非安全状态,其余状态均为安全状态。JTAG接口在芯片处于运行状态且为安全状态时,不允许进入到调试状态。在安全模式下,只有在复位的同时将P3.7/DEBUG管脚置于低才能将系统置于调试状态。用户可以通过两种方式解除或暂时解除安全模式:(1)解密密钥用户可以通过外设接口连续输入8个字节的密钥,并将其连续写入FKEY寄存器,这些密钥将会与Flash程序存储器中的ComparisonKey进行比较,如果吻合,SEC[1:0]变为2’b10,则会暂时解除安全状态,直至下一次复位。如果FPROT寄存器中的KEYEN为1,则上述机制可行,如果为0,则系统不允许密钥解除安全模式的机制。ComparisonKey以及SEC的设定,均位于Flash程序存储器的保护区域内,如果区域保护机制开启,则以上内容除非被全芯片擦除,否则均不能被修改。(2)重新编程系统通过进入调试模式,修改FPROT,取消区域保护机制;之后,通过JTAG接口进行全芯片擦除;通过JTAG进行重新编程,烧入Bootloader、NVRI、NVRII以及ComparisonKey,其中SEC可以根据用户需求设置为2’b10状态。其次,本专利技术规定了一种区域保护的具体方案,通过寄存器设置配置Flash程序存储器受保护区域。在有Flash程序存储器访问权限之后,区域保护为Flash程序存储器特定区域提供进一步保护,防止Flash程序存储器中的数据遭到无意或恶意的篡改区域保护,只能对非受保护区域才能进行有效擦除、编程操作。这些保护区域由FPROT寄存器决定,该寄存器在复位后由Flash程序存储器的NVRII复制到SFR的寄存器地址空间。FPROT不能被用户程序修改,它是只读不可写的寄存器。NVRII寄存器位于Flash程序存储器存储器中的最后一个扇区(sector),如果Flash程序存储器中的任意一个区域被保护,则NVRII本身也被保护起来。想要修改区域保护模式的方法仅有一种:通过JTAG方式访问FPROT寄存器,将其修改为全部Flash程序存储器均不受保护,之后通过JTAG擦除全部Flash程序存储器,重新通过JTAG接口烧写bootloader、NVRI、NVRII以及comparisonkey。区域保护可以用来保护bootloader程序以及用户的关键数据信息。最后,本专利技术提出了一种对Flash程序存储器的操作控制,用户必须按照严格的操作才能成功的进行Flash程序存储器擦写、编程操作。请参阅图1,该图描述了Flash程序存储器的编程命令ByteProgram以及擦写命令Sectorerase和MassErase,这些命令执行过程如下:(1)首先写入FCLK寄存器,该寄存器在任何复位之后都要进行初始化,且仅允许设置一次,该寄存器决定了Flash程序存储器进行擦除和编程时所使用的时钟频率,需要根据不同的总线时钟将Flash程序存储器时钟频率限制在700kHz-800kHz范围内。(2)首先清除任意错误信号FPVIOL和FACCE,方法是直接写入1;判断FSTATUS寄存器中FCBEF是否为1,如果为1,说明指令队列空,则首先写入FCMD命令,该命令只能为指定的某些指令;(3)将要编程的数据写入FDATA,如果要执行擦除操作,则该寄存器内容可以为任意值;(4)将地址以此写入FLADDR、FHADDR,并将FADDR[16]写入FSTATUS寄存器,如果是擦除操作,该地址可以为扇区的任意地址(SectorE本文档来自技高网
...

【技术保护点】
一种Flash程序存储器保护设计方法与硬件实现,包括:安全模式,由FPROT寄存器中的SEC[1:0]位决定,SEC[1:0]=2’b10的状态为非安全状态,其余状态均为安全状态,在复位后该寄存器的内容会被NVRI中的寄存器内容覆盖,该寄存器的内容不能由用户程序写入或修改;区域保护,由FPROT寄存器决定,FPROT寄存器在复位后由Flash程序存储器的NVRII复制到SFR的寄存器地址空间,如果Flash程序存储器中的任意一个区域被保护,则NVRII本身也被保护起来;擦除、编程流程控制,包括了Flash程序存储器的编程命令Byte Program以及擦写命令Sector erase和Mass Erase执行过程,如果违反操作流程,系统会提示Flash程序存储器访问错误。

【技术特征摘要】
1.一种Flash程序存储器保护设计方法与硬件实现,包括:
安全模式,由FPROT寄存器中的SEC[1:0]位决定,SEC[1:0]=
2’b10的状态为非安全状态,其余状态均为安全状态,在复位后该
寄存器的内容会被NVRI中的寄存器内容覆盖,该寄存器的内容不
能由用户程序写入或修改;
区域保护,由FPROT寄存器决定,FPROT寄存器在复位后由
Flash程序存储器的NVRII复制到SFR的寄存器地址空间,如果
Flash程序存储器中的任意一个区域被保护,则NVRII本身也被保
护起来;
擦除、编程流程控制,包括了Flash程序存储器的编程命令Byte
Program以及擦写命令Sectorerase和MassErase执行过程,如果违
反操作流程,系统会提示Flash程序存储器访问错误。
2.根据权利要求1所述的设计方法,所述安全模...

【专利技术属性】
技术研发人员:王海欣邓冏黑勇
申请(专利权)人:中国科学院微电子研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1