一种嵌入式系统的制作方法_3

文档序号:10390532阅读:来源:国知局
加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文。
[0070]闪存控制单元311优选是还包括:
[0071 ] 地址加密子单元3113,与地址翻译子单元3114、密钥寄存器3112和接口转换子单元3115分别连接,用于利用密钥寄存器3112所存储的地址加密密钥,对地址翻译子单元3114翻译的第一物理地址或第二物理地址进行加密,得到闪存芯片实际物理地址,并发送至所述接口转换子单元3115;还用于利用所述密钥寄存器所存储的地址加密密钥,对地址翻译子单元3114翻译的第二物理地址进行加密,得到闪存芯片320的第二加密物理地址,并发送至接口转换子单元3115。
[0072]优选是,第一物理地址与第一加密物理地址保持一一对应的映射关系;第二物理地址与第二加密物理地址保持一一对应的映射关系,以避免程序数据读写时产生错误。
[0073]相应的,接口转换子单元3115,具体用于对所述闪存芯片320可识别的数据写入指令、所述第一加密物理地址和所述程序数据密文进行打包,发送至闪存芯片320,以将所述程序数据密文写入闪存芯片320中;还用于对闪存芯片320可识别的数据读取指令和所述第二加密物理地址进行打包,发送至闪存芯片320,以获取闪存芯片320所储存的程序数据密文。
[0074]在上述实施例的基础上,连续的第一物理地址或第二物理地址,经由地址加密子单元加密后的实际物理地址一般为离散的,即相邻的两个第一物理地址或第二物理地址,加密后可能在闪存芯片320中任意两个位置,这样加密的好处在于,极大地增加了破解难度。
[0075]由于读取闪存芯片320的程序数据和向闪存芯片320写入程序数据,均要向闪存芯片320发送与数据读取指令或数据写入指令对应的地址,因此,读写程序数据的地址加密方法一致,以保证同一系统总线地址上的读写地址,翻译成实际物理地址为同一地址,进而保证读写程序数据一致。
[0076]闪存控制单元在控制闪存芯片320执行读取、写入、擦除等数据操作。主控单元通过控制通路2经系统总线330的数据读取指令或数据写入指令以及对应的地址发送至闪存控制单元311。数据读取指令或数据写入指令需要由指令翻译子单元3116翻译成闪存芯片320的可识别的数据读取指令或数据写入指令,数据读取指令或数据写入指令所对应的地址需要从系统总线330发出的逻辑地址翻译成闪存芯片320的物理地址(即加密前的临时物理地址),再进行加密后给到闪存芯片320,写入的程序数据通过加密后给到闪存芯片320,而从闪存芯片320读取程序数据需要经过数据解密子单元3117解密后才能读取。
[0077]本实施例所提供的技术方案,通过闪存控制器中的闪存控制单元的地址加密子单元,可以将连续的系统总线地址,映射为闪存芯片中任意可能的实际物理地址,由于可映射关系有无数种可能,大大增加了破解的难度,更好的保证了闪存芯片中程序数据的安全性。
[0078]实施例四
[0079]图4为本实用新型实施例四提供的一种嵌入式系统的结构示意图,如图4所示,本实施例的技术方案是在上述实施例的基础上进一步的优化,相比较与上述实施例,所述系统还包括:
[0080]静态随机存储器(SRAM)410,用于在上电后存储闪存芯片420中的程序数据。所述嵌入式系统对闪存芯片420的读操作,可直接从闪存芯片420中读取,由于闪存芯片420的读取速度较慢,优选是可通过SRAM 410读取,可以实现对闪存芯片420中程序数据的实时读取,提高对闪存芯片420中程序数据的读取速度。
[0081]为了更好地满足快速读取闪存芯片420中的程序数据,并考虑到SRAM面积及所占用的地址空间,SRAM 410可以包括主SRAM和辅助SRAM,主SRAM的地址空间一般不能太大,比如可以为几十千字节,在具体操作中,当主SRAM的地址空间不足时,可以采用辅助SRAM。
[0082]相应的,闪存控制器430还包括:SRAM控制单元,与所述数据解密子单元和SRAM410分别连接,用于与所述数据解密子单元交互解密后的程序数据,并存入SRAM 410。
[0083]在上述实施例的基础上,系统总线440还可以用于发出对闪存芯片420中闪存所存储的程序数据进行改写的指令与对应的地址,所述闪存控制单元434通过数据通路4与闪存系统总线接口 432交互所述指令与对应的地址,从而实现对闪存芯片420中的闪存芯片中所存储的程序数据进行改写。
[0084]在本实施例中,所述嵌入式系统还包括闪存配置寄存器435,用于在所述嵌入式系统上电后,自动读取闪存芯片420的状态信息。
[0085]相应的,闪存系统总线接口432,还用于直接对闪存配置寄存器435进行读写访问,系统总线440可以通过闪存系统总线接口 432到闪存配置寄存器435之间的数据通路I配置闪存寄存器435的信息。
[0086]主控单元433接收系统总线440通过控制通路I发出的读取指令和对应的地址,优选是通过SRAM 410读取闪存芯片420中的数据。若所述嵌入式系统上电后,主控单元433所需读取的目标程序数据在存储在SRAM 410中,则直接从SRAM 410中读取,并通过数据通路I发送至系统总线440中;如所述目标程序数据未存储于SRAM 410中,则可以先从闪存芯片420中将所述目标程序数据读取数据到SRAM 410中,再从SRAM 410中读取。
[0087]具体的,SRAM 410所存储的程序数据可以通过闪存控制单元到SRAM控制单元之间的数据通路2,将闪存芯片420中的程序数据读取到SRAM 410中,并且所述嵌入式系统上电后,SRAM 410可以自动读取并存储闪存芯片420中的程序数据。
[0088]SRAM控制单元431,用于根据所述主控单元433的控制,对SRAM 410中所存储的程序数据进行读取或改写。SRAM控制单元431可以将接收到的主控单元433通过控制通路4的数据读取指令和对应的地址翻译成SRAM 410的数据读取指令和对应的地址,还可以将接收到的主控单元433的数据写入指令和对应的地址翻译成SRAM 410的数据写入指令和对应的地址。
[0089]在上述实施例中,主控单元433可以通过主SRAM 410读取闪存芯片420中的程序数据,例如具体可以是主SRAM进行1:1复制闪存芯片420中的闪存主存储区中需要实时响应的通用程序数据,通过数据通路2提供至闪存系统总线接口 432,也就是说,此部分数据系统总线可以直接从主SRAM中读取,为实时读取,没有等待周期,读取速度最快;也可以通过辅助SRAM读取闪存芯片420中的程序数据,若辅助SRAM中有相应的目标程序数据,则直接从辅助SRAM中读取,若辅助SRAM中没有相应的目标程序数据,可以先将需要读取的目标程序数据从闪存芯片420中读取到辅助SRAM中,由辅助SRAM提供通过数据通路3至闪存系统总线接口432。也就是说,通过类似cache的操作方式,如果辅助SRAM中有相应的目标程序数据(类似于cache hit),则直接从辅助SRAM中读取,如果辅助SRAM中没有相应的目标程序数据(类似于cache miss),先将需要读取的目标程序数据从闪存芯片读取到辅助SRAM中,系统总线再从辅助SRAM中读取。
[0090]辅助SRAM—般存储海量不常更改的数据。对读取速度要求不高,一般读取均有一定的等待周期。在本案中,闪存芯片420可通过主SRAM进行1:1复制,这样可实时读取,但会增加SRAM的面积。也可通过辅助SRAM读取,读取方式与前面所述一致,这样读取会增加一些等待周期,但不会增加SRAM面积。
[0091]在本实施例中,系统总线440读取闪存芯片420中的程序数据时,可以通过数据通路3,存储到SRAM 410中。
[0092]综上,上述技术方案通过SRAM410读取所述闪存芯片420中的程序数据,有效加快了所述嵌入式系统对所述闪存芯片420中的程序数据的读取速度,并实现了实时读取,极大提升了用户体验。
[0093]图5为本实用新型实施例所执行的一种嵌入式系统的读写方法的流程图,所述方法包括:
[0094]S510、上电复位,读取闪存芯片中的密钥信息。具体的,所述系统上电复位后,自动将闪存芯片中的密钥信息,读取存入密钥寄存器中,以供地址加密子单元、数据加密子单元和数据解密子单元使用。
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1