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

文档序号:9923681阅读:来源:国知局
>【具体实施方式】
[0039] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合安全模式、区域保护 和擦写流程控制的具体实例,并参照附图,对本发明进一步详细说明。
[0040] 在本发明的具体实施例中,硬件平台采用面向车身控制的8位MCU,该平台采用 DW-8051内核,采用17位地址总线,8位数据总线的方式,进行数据传输。
[0041] 系统内集成了 GSMC的嵌入式Flash程序存储器IP,Flash程序存储器大小为 128KB,满足程序扩展应用需求,该Flash程序存储器有如下特点:128KB主数据阵列,带有 512Byte的冗余存储扇区(Sector)以及2x512Byte的寄存器扇区(NVR Sector);每个扇区 (Sector)512B,每个块(Block)为8个扇区共4KB ;工作电压为1. 8V/5V,内部集成Charge Pump电荷栗,不需要外部高压供电;扇区可擦写次数>100, 000次;数据保持周期>100年。
[0042] 片出厂后,Flash程序存储器不包含任何内容,需要对Flash程序存储器中的关键 信息进行初始化,这些信息对于用户的编程、区域保护、安全保护等具有重要作用。需要进 行烧写的Flash程序存储器内容及其地址分配可参考表1。
[0043]
[0044] 如图1所示,本实例中的关于安全模式的具体描述如下:
[0045] 首先,系统复位后,安全模式控制寄存器FPR0T的值,由NVRI中的寄存器内容更 新,其中,寄存器FPR0T中的SEC[1:0]位,SEC[1:0] = 2'blO的状态为非安全状态,其余状 态均为安全状态;
[0046] 接下来,若系统处于非安全状态,通过sfr访问Flash程序存储器,此时无法成功 访问,JTAG接口在芯片处于运行状态且为安全状态时,不允许进入到调试状态。在安全模 式下,只有在复位的同时将P3. 7/DEBUG管脚置于低才能将系统置于调试状态。需要暂时解 除安全模式,才能完成第一步操作。具体的,用户可以通过两种方式解除或暂时解除安全模 式:
[0047] (1)解密密钥
[0048] 用户可以通过外设接口连续输入8个字节的密钥,并将其连续写入FKEY寄存器, 这些密钥将会与Flash程序存储器中的Comparison Key进行比较,如果吻合,SEC[1:0]变 为2' blO,则会暂时解除安全状态,直至下一次复位。
[0049] 如果FPR0T寄存器中的KEYEN为1,则上述机制可行,如果为0,则系统不允许密钥 解除安全模式的机制。Comparison Key以及SEC的设定,均位于Flash程序存储器的保护 区域内,如果区域保护机制开启,则以上内容除非被全芯片擦除,否则均不能被修改。
[0050] (2)重新编程
[0051] 如果FPR0T寄存器中的KEYEN为0,系统不允许密钥解除安全模式的机制,这时系 统可以采用复位后拉低DEBUG管脚进入调试模式,修改FPR0T,取消区域保护机制;之后,通 过JTAG接口进行全芯片擦除;通过JTAG进行重新编程,烧入Bootloader、NVRI、NVRII以及 Comparison Key,其中SEC可以根据用户需求设置为2'blO状态。FKEY寄存器描述如表2 所示。
[0054] 如图2所示,本实例还提出了一种区域保护的具体方案,通过寄存器设置配置 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程序以及用户的关键数据信息。
[0055] 具体的,本是实例中的关于区域保护的具体描述如下:
[0056] 本实例区域保护空间划分为2块,寄存器设置决定起始终保护位置。前64K,保护 范围从起始保护位置到0x0_FFFF,区间变化幅度为8K ;后64K,保护范围包括前64K加上从 起始保护位置到〇xl_FFFF。下表给出了区域保护的寄存器设置以及相应的区域保护范围。 区域保护范围由FREGI0N寄存器和FPS寄存器决定,寄存器在复位后由Flash程序存储器 中的NVRII复制过来,用户程序对该寄存器只读不可写。
[0057] FREGI0N寄存器描述如表3所示:
[0059] FPS寄存器如表4所示。
[0060]
[0062] 如图3所不,本实例擦除、编程操作流程包括了编程命令Byte Program以及擦除 命令Sector erase和Mass Erase流程控制,严格控制了擦写过程的有效性,对于无意或有 意篡改Flash程序存储器数据内容,有高效的保护作用;为了提高Flash程序存储器编程的 速度,提供了猝发模式编程(Burst Program)命令,及其执行流程。
[0063] 写入FCMD命令,该命令仅可能为表5中的指令;
[0066] Flash程序存储器的编程命令Byte Program以及擦写命令Sector erase和Mass Erase,这些命令执行过程如下:
[0067] 首先,写入FCLK寄存器,该寄存器在任何复位之后都要进行初始化,且仅允许设 置一次,配置Flash程序存储器工作时钟;其次,直接写1清除任意错误信号FPVI0L和 FACCE,判断FSTATUS寄存器中FCBEF是否为1,如果为1,说明指令队列空,则首先写入FCMD 命令;然后将要编程的数据写入FDATA,如果要执行擦除操作,则该寄存器内容可以为任意 值;接下来,将地址写入FLADDR、FHADDR,并将FADDR[16]写入FSTATUS寄存器,如果是擦除 操作,该地址可以为扇区的任意地址(Sector Erase)或全Flash程序存储器的任意地址 (Mass Erase);接下来,将FCBEF写入1,清除标志位,此时Flash程序存储器正式开始操作; 接下来,等待并读取FSTATUS寄存器,判断是否有保护区域擦除违例(FPVI0L为1)或Flash 程序存储器操作违例(FACCE为1),如果发生以上错误则需要重新开始本次操作;最后,如 果FCCF为1,表明操作完成。该标志位在下一次写入FCMD之后自动清零。
[0068] 为了提高Flash程序存储器编程的速度,提供了猝发模式编程(Burst Program) 命令,在本是实例中,猝发连续编程的具体流程为:
[0069] 首先,写入命令、地址、数据后,将FCBEF清零,开始进行burst program;其次,在 FCCF为1前,并在FCBEF为1后,写入新的数据,并再次将FCBEF清零,系统地址自动加1 ; 最后,当FCCF为1前,如果系统不再将FCBEF清0,则系统burst program结束。
[0070] 以上公开仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何本 领域的技术人员能思之的变化都应属于本发明的保护范围内。
【主权项】
1. 一种Flash程序存储器保护设计方法与硬件实现,包括: 安全模式,由FPROT寄存器中的SEC[1:0]位决定,SEC[1:0] = 2'blO的状态为非安全 状态,其余状态均为安全状态,在复位后该寄存器的内容会被NVRI中的寄存器内容覆盖, 该寄存器的内容不能由用户程序写入或修改; 区域保护,由FPROT寄存器决定,FPROT寄存器在复位后由Flash程序存储器的NVRII 复制到SFR的寄存器地址空间,如果Flash程序存储器中的任意一个区域被保护,则NVRII 本身也被保护起来; 擦除、编程流程控制,包括了 Flash程序存储器的编程命令Byte Program以及擦写命 令Sector erase和Mass Erase执行过程,如果违反操作流程,系统会提示Flash程序存储 器访问错误。2. 根据权利要求1所述的设计方法,所述安全模式下芯片中Flash程序存储器不能被 非授权的渠道读取,安全模式JTAG接口在芯片处于运行状态且为安全状态时,不允许进入 到调试状态,在安全模式下,只有在复位的同时将P3. 7/DEBUG管脚置于低才能将系统置于 调试状态,可通过解密密钥和重新编程两种方式解除安全模式。3. 根据权利要求1所述的设计方法,所述区域保护范围是可修改的,修改区域保护 模式的方法仅有一种:通过JTAG方式访问FPROT寄存器,将其修改为全部Flash程序存 储器均不受保护,之后通过JTAG擦除全部Flash程序存储器,重新通过JTAG接口烧写 bootloader、NVRI、NVRII 以及 comparison key。4. 根据权利要求1所述的设计方法,所述擦除、编程流程控制提供了猝发模式编程命 令,规定了猝发模式编程的条件以及执行过程。
【专利摘要】本发明公开了一种为满足汽车电子芯片高可靠性要求,采用安全模式、区域保护和擦写操作流程控制的方法,实现Flash程序存储器保护的设计方案及硬件实现。利用安全模式实现Flash程序存储器整体保护,非授权的渠道只有在非安全模式下才有对Flash程序存储器的访问权限;利用区域保护防止了受保护区域Flash程序存储器中的数据遭到无意或恶意的篡改;利用操作流程控制保护,通过操作过程规范化,防止非受保护区域数据非法或无意篡改,它在区域保护的基础上给Flash程序存储器又增加了一道保护墙,本发明的Flash程序存储器保护设计方案满足汽车电子芯片对于功能失效等高可靠性的要求。
【IPC分类】G06F12/14, G06F21/60, G06F21/78, G06F3/06
【公开号】CN105718208
【申请号】CN201410728168
【发明人】王海欣, 邓冏, 黑勇
【申请人】中国科学院微电子研究所
【公开日】2016年6月29日
【申请日】2014年12月4日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1