只读存储器的模拟系统的制作方法

未命名 09-24 阅读:86 评论:0


1.本发明涉及只读存储器技术领域,尤其涉及一种只读存储器的模拟系统。


背景技术:

2.随着信息安全技术的发展,嵌入式系统中的微控制器通常会有安全启动的要求,例如,芯片刚启动时执行的代码需要保证不能被随意篡改,相关技术通常会使用只读存储器(rom)来存储这部分代码,以利用rom不能被篡改的物理特性,保证芯片执行代码的可靠性。
3.然而,相关技术的问题在于rom存储的程序数据在芯片生产阶段就需要确定下来,这无疑增加了芯片研发的周期,并且,如果程序中存在漏洞无法进行二次修改和更新。


技术实现要素:

4.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种只读存储器的模拟系统,能够在通过闪存控制器和闪存存储器阵列实现多个扇区的芯片程序和数据开发后,再通过闪存控制器对目标扇区进行加锁,以实现对目标扇区的数据保护,从而,通过使用闪存控制器和闪存存储器阵列来模拟只读存储器,以增加芯片开发灵活度和开发效率。
5.为达到上述目的,本发明实施例提出的只读存储器的模拟系统,包括:闪存控制器和闪存存储器阵列,其中,所述闪存存储器阵列包括多个扇区,所述多个扇区包括数据存储区域和自锁控制区域;所述闪存控制器用于向所述自锁控制区域写入自锁信息,以对目标扇区进行加锁,其中,所述闪存控制器还用于在对所述目标扇区进行加锁后,拒绝执行对所述目标扇区的擦写指令。
6.根据本发明实施例的只读存储器的模拟系统,在通过闪存控制器和闪存存储器阵列实现多个扇区的芯片程序和数据开发后,再通过闪存控制器对目标扇区进行加锁,以实现对目标扇区的数据保护,从而,通过使用闪存控制器和闪存存储器阵列来模拟只读存储器,以增加芯片开发灵活度和开发效率。
7.另外,根据本发明上述实施例的只读存储器的模拟系统,还可以具有如下的附加技术特征:根据本发明的一个实施例,所述多个扇区中的每个扇区均包括所述自锁控制区域。
8.根据本发明的一个实施例,所述多个扇区中的任意一个扇区包括所述自锁控制区域和加锁范围控制区域,所述闪存控制器还用于向所述加锁范围控制区域写入加锁范围信息。
9.根据本发明的一个实施例,所述闪存控制器还用于在将所述加锁范围信息写入所述加锁范围控制区域后,将所述自锁信息写入所述自锁控制区域。
10.根据本发明的一个实施例,所述闪存控制器还用于在所述自锁控制区域未写入所
述自锁信息时,确定所述目标扇区处于解锁状态。
11.根据本发明的一个实施例,所述自锁控制区域还用于进行数据存储。
12.根据本发明的一个实施例,所述自锁信息的字节长度大于预设字节长度阈值。
13.根据本发明的一个实施例,所述自锁控制区域包括n个页,所述n个页中的每个页均用于独立存储所述自锁信息,其中,n≥1。
14.根据本发明的一个实施例,所述闪存控制器具体用于,在所述擦写指令的待操作地址与加锁后的目标扇区的地址相一致时,拒绝执行对所述目标扇区的擦写指令。
15.根据本发明的一个实施例,所述闪存控制器还用于在所述拒绝执行对所述目标扇区的擦写指令后,向微控制器返回出错状态信息。
16.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
17.图1是根据本发明实施例的只读存储器的模拟系统的方框示意图;图2是根据本发明一个实施例的闪存存储器阵列的示意图;图3是根据本发明另一个实施例的闪存存储器阵列的示意图;图4是根据本发明一个实施例的扇区加锁判断的流程示意图;图5是根据本发明一个实施例的自锁控制区域的示意图;图6是根据本发明另一个实施例的扇区加锁判断的流程示意图;图7是根据本发明一个实施例的擦写指令判断的流程示意图。
具体实施方式
18.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
19.下面参考附图描述本发明实施例的只读存储器的模拟系统。
20.图1是根据本发明实施例的只读存储器的模拟系统的方框示意图。
21.具体地,在本发明的一些实施例中,如图1所示,只读存储器的模拟系统1000包括:闪存控制器100和闪存存储器阵列200。
22.其中,闪存存储器阵列200包括多个扇区,多个扇区包括数据存储区域和自锁控制区域;闪存控制器100用于向自锁控制区域写入自锁信息,以对目标扇区进行加锁,其中,闪存控制器100还用于在对目标扇区进行加锁后,拒绝执行对目标扇区的擦写指令。
23.具体而言,在本发明的该实施例中,闪存存储器阵列200中的多个扇区可以用于存储数据和自锁信息,其中,当闪存控制器100向自锁控制区域写入自锁信息时,可以对目标扇区进行加锁,此时,由于目标扇区处于加锁状态,因此,在闪存控制器100接收到对目标扇区的擦写指令后,通过拒绝执行该擦写指令,以避免目标扇区中的内容被篡改。由此,在本发明的实施例中,通过使用闪存控制器100和闪存存储器阵列200即可模拟出只读存储器的特性。
24.可选地,自选信息可以为密码锁。
25.进一步地,在本发明的一些实施例中,多个扇区中的每个扇区均包括自锁控制区域。
26.具体地,在本发明的一些实施例中,可以在多个扇区中的每个扇区中设置对应的自锁控制区域,进而,通过闪存控制器100向相应的自锁控制区域写入自锁信息就可以将目标扇区进行加锁,以使得目标扇区中的内容无法被篡改,从而,将目标扇区模拟为只读存储器。
27.举例而言,在本发明的具体实施例中,如图2所示,假设闪存存储器阵列200包括多个扇区(扇区1、扇区2、
……
、扇区n),每个扇区均设有自锁控制区域,此时,如果通过闪存控制器100分别向扇区1和扇区2的自锁控制区域写入自锁信息,那么扇区1和扇区2将会被加锁,即言扇区1和扇区2将模拟出只读模拟器的特性,使得扇区1和扇区2里的内容无法被篡改,同时,还保留了其余扇区(扇区3、扇区4、
……
、扇区n)的待开发能力,换言之,在闪存控制器100拒绝执行对扇区1和扇区2的擦写指令的同时,还能够执行对其余扇区(扇区3、扇区4、
……
、扇区n)的擦写指令。
28.进一步地,在本发明的一些实施例中,多个扇区中的任意一个扇区包括自锁控制区域和加锁范围控制区域,闪存控制器100还用于向加锁范围控制区域写入加锁范围信息。
29.具体地,在本发明的一些实施例中,在多个扇区中的任意一个扇区可设有自锁控制区域和加锁范围控制区域,其中,通过闪存控制器100向加锁范围控制区域写入加锁范围信息,以指示需要进行加锁的扇区。
30.举例而言,在本发明的具体实施例中,如图3所示,假设闪存存储器阵列200包括多个扇区(扇区1、扇区2、
……
、扇区n),扇区n内同时设有自锁控制区域和加锁范围控制区域,此时,可以通过闪存控制器100向扇区n的自锁控制区域内写入自锁信息和向扇区n的加锁范围控制区域内写入加锁范围信息(例如,加锁范围信息为扇区1至扇区5),进而,将扇区1至扇区5以及扇区n进行加锁,即言扇区1至扇区5以及扇区n均将模拟出只读模拟器的特性,使得扇区1至扇区5以及扇区n里的内容无法被篡改,同时,还保留了其余扇区(扇区6、扇区7、
……
、扇区n-1)的开发能力,闪存控制器100仍然能够执行对其余扇区(扇区6、扇区7、
……
、扇区n-1)的擦写指令。
31.需要说明的是,在上述实施例中,自锁控制区域和加锁范围控制区域可以设置于任意扇区内,只需要确保自锁控制区域和加锁范围控制区域均位于同一扇区内即可。
32.进一步地,在本发明的一些实施例中,闪存控制器100还用于在将加锁范围信息写入加锁范围控制区域后,将自锁信息写入自锁控制区域。
33.应理解的是,在本发明的实施中,一旦通过闪存控制器100向自锁控制区域写入自锁信息,就可以将当前扇区进行加锁,使得当前扇区中的内容无法被篡改,因此,闪存控制器100需要先将加锁范围信息写入加锁范围控制区域后,再将自锁信息写入自锁控制区域,以确保与加锁范围信息相对应的目标扇区能够正确锁定,从而,使得当前扇区和目标扇区均模拟出只读存储器的特性。
34.进一步地,在本发明的一些实施例中,闪存控制器100还用于在自锁控制区域未写入自锁信息时,确定多个扇区均处于解锁状态。
35.可以理解的是,在本发明的实施中,在闪存控制器100上电初始化后,可以读取多个扇区内存储的内容,进而,在判断出自锁控制区域未写入自锁信息时,确定多个扇区均处
于解锁状态,此时,闪存控制器100可以执行对多个扇区的擦写指令,从而,实现芯片程序开发与数据更新。
36.具体而言,在本发明的上述实施例中,如图4所示,闪存控制器100执行如下步骤:s10,读取自锁控制区域的内容。
37.s11,判断自锁控制区域的内容是否与自锁信息一致;如果是,则执行步骤s12,如果否,则执行步骤s14。
38.s12,对当前扇区进行加锁,并读取加锁范围控制区域的内容。
39.s13,根据加锁范围控制区域的内容,对加锁范围信息相对应的目标扇区进行加锁。
40.s14,确定多个扇区均处于解锁状态。
41.进一步地,在本发明的一些实施例中,自锁控制区域还用于进行数据存储。
42.可以理解的是,在本发明的该实施例中,在未向自锁控制区域写入自锁信息时,还可以通过闪存控制器100向自锁控制区域写入数据。
43.进一步地,在本发明的一些实施例中,自锁信息的字节长度大于预设字节长度阈值。
44.可以理解的是,在本发明的该实施例中,由于自锁信息的字节长度大于预设字节长度阈值,因此,在通过闪存控制器100向自锁控制区域写入数据时,能够降低当前扇区被误加锁的概率。
45.可选地,预设字节长度阈值可以根据实际情况进行相应的设定,应理解的是,预设字节长度阈值取值越高,则当前扇区被误加锁的概率越低。
46.进一步地,在本发明的一些实施例中,如图5所示,自锁控制区域包括n个页,n个页中的每个页均用于独立存储自锁信息,其中,n≥1。
47.具体地,在本发明的该实施例中,闪存控制器100可以依次判断每个页内是否存储有自锁信息,以判断目标扇区是否处于加锁状态,其中,当自锁控制区域中的全部页均未存储有自锁信息时,判断目标扇区处于解锁状态。
48.具体而言,在本发明的上述实施例中,如图6所示,闪存控制器100执行如下步骤:s20,令k=1;s21,判断第k页的内容是否为自锁信息;如果是,则执行步骤s25,如果否,则执行步骤s22。
49.s22,令k=k+1;s23,判断k是否大于n;如果是,则执行步骤s24,如果否,则返回执行步骤s21。
50.s24,当前扇区未加锁。
51.s25,当前扇区已加锁。
52.应理解的是,由于闪存存储器阵列200可能会老化而引起位翻转导致自锁信息失效,进而导致目标扇区锁定失效,因此,在本发明的上述实施例中,还可以通过n个页中的每个页来独立存储自锁信息,使得只要n个页中的任一页存储有自锁信息均可使目标扇区保持锁定,从而,提高只读存储器的模拟系统1000的稳定性和持久性。
53.进一步地,在本发明的一些实施例中,闪存控制器100具体用于,在擦写指令的待操作地址与加锁后的目标扇区的地址相一致时,拒绝执行对目标扇区的擦写指令。
54.可以理解的是,在本发明的该实施例中,闪存控制器100在接收到擦写指令后,可以对擦写指令的待操作地址与加锁后的目标扇区的地址进行一致性判断,其中,若擦写指令的待操作地址与加锁后的目标扇区的地址相一致,则拒绝执行对目标扇区(包括对数据存储区域和/或自锁控制区域)的擦写指令,以实现目标扇区对只读存储器的特性模拟。
55.进一步地,在本发明的一些实施例中,闪存控制器100还用于在拒绝执行对目标扇区的擦写指令后,向微控制器返回出错状态信息。
56.可以理解的是,在本发明的该实施例中,闪存控制器100还可以在拒绝执行对目标扇区的擦写指令后,向微控制器返回出错状态信息,以提示用户目标扇区已被锁定。
57.具体而言,在本发明的上述实施例中,如图7所示,闪存控制器100在接收到擦写指令后执行如下步骤:s30,判断擦写指令对应的待操作地址是否与加锁后的目标扇区的地址一致,如果是,则执行步骤s31;如果否,则执行步骤s32。
58.s31,拒绝执行擦写指令,并向微控制器返回出错状态。
59.s32,执行擦写指令。
60.综上,根据本发明实施例的只读存储器的模拟系统,在通过闪存控制器和闪存存储器阵列实现多个扇区的芯片程序和数据开发后,再通过闪存控制器对目标扇区进行加锁,以实现对目标扇区的数据保护,从而,通过使用闪存控制器和闪存存储器阵列来模拟只读存储器,以增加芯片开发灵活度和开发效率。应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
61.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
62.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
63.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
64.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连
接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
65.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
66.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种只读存储器的模拟系统,其特征在于,所述模拟系统包括:闪存控制器和闪存存储器阵列,其中,所述闪存存储器阵列包括多个扇区,所述多个扇区包括数据存储区域和自锁控制区域;所述闪存控制器用于向所述自锁控制区域写入自锁信息,以对目标扇区进行加锁,其中,所述闪存控制器还用于在对所述目标扇区进行加锁后,拒绝执行对所述目标扇区的擦写指令。2.根据权利要求1所述的只读存储器的模拟系统,其特征在于,所述多个扇区中的每个扇区均包括所述自锁控制区域。3.根据权利要求1所述的只读存储器的模拟系统,其特征在于,所述多个扇区中的任意一个扇区包括所述自锁控制区域和加锁范围控制区域,所述闪存控制器还用于向所述加锁范围控制区域写入加锁范围信息。4.根据权利要求3所述的只读存储器的模拟系统,其特征在于,所述闪存控制器还用于在将所述加锁范围信息写入所述加锁范围控制区域后,将所述自锁信息写入所述自锁控制区域。5.根据权利要求1所述的只读存储器的模拟系统,其特征在于,所述闪存控制器还用于在所述自锁控制区域未写入所述自锁信息时,确定所述目标扇区处于解锁状态。6.根据权利要求5所述的只读存储器的模拟系统,其特征在于,所述闪存控制器还用于向所述自锁控制区域写入数据。7.根据权利要求6所述的只读存储器的模拟系统,其特征在于,所述自锁信息的字节长度大于预设字节长度阈值。8.根据权利要求1所述的只读存储器的模拟系统,其特征在于,所述自锁控制区域包括n个页,所述n个页中的每个页均用于独立存储所述自锁信息,其中,n≥1。9.根据权利要求1所述的只读存储器的模拟系统,其特征在于,所述闪存控制器具体用于,在所述擦写指令的待操作地址与加锁后的目标扇区的地址相一致时,拒绝执行对所述目标扇区的擦写指令。10.根据权利要求9所述的只读存储器的模拟系统,其特征在于,所述闪存控制器还用于在所述拒绝执行对所述目标扇区的擦写指令后,向微控制器返回出错状态信息。

技术总结
本发明公开了一种只读存储器的模拟系统,其中,模拟系统包括:闪存控制器和闪存存储器阵列,其中,闪存存储器阵列包括多个扇区,多个扇区包括数据存储区域和自锁控制区域;闪存控制器用于向自锁控制区域写入自锁信息,以对目标扇区进行加锁,其中,闪存控制器还用于在对目标扇区进行加锁后,拒绝执行对目标扇区的擦写指令。由此,在通过闪存控制器和闪存存储器阵列实现多个扇区的芯片程序和数据开发后,再通过闪存控制器对目标扇区进行加锁,以实现对目标扇区的数据保护,从而,通过使用闪存控制器和闪存存储器阵列来模拟只读存储器,以增加芯片开发灵活度和开发效率。芯片开发灵活度和开发效率。芯片开发灵活度和开发效率。


技术研发人员:程雯 王晓明 张恩勤
受保护的技术使用者:上海萨沙迈半导体有限公司 天津智芯半导体科技有限公司 合肥智芯半导体有限公司
技术研发日:2023.08.28
技术公布日:2023/9/23
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐