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

文档序号:10390532阅读:来源:国知局
例一
[0042]图1为本实用新型实施例一所提供的一种嵌入式系统的结构示意图,如图1所示,本实施例所提供的嵌入式系统,包括:闪存控制器110、中央处理器(CHJ)120和闪存芯片130,闪存控制器110与CPU 120和闪存芯片130分别连接,其中,CPU 120用于控制闪存控制器110与闪存芯片130的运行;闪存芯片130可读,可擦写,在断电情况下所存储的数据信息不丢失。
[0043]闪存控制器110配置在嵌入式系统的主芯片上,可采用MCP(Multiple ChipPackage)技术将主芯片与闪存芯片制造在同一个封装内,形成嵌入式系统。
[0044]闪存控制器110,用于与CPU120交互闪存芯片130的状态信息,并从闪存芯片130中读取程序数据,供CPU 120执行,或者对闪存芯片所存储的程序数据进行改写。所述嵌入式系统通过闪存控制器110对闪存芯片130的操作一般主要为读操作,可直接从闪存芯片130中读取程序数据;当闪存芯片130中的数据需要修改时,也可执行写操作,写操作需要先擦除闪存芯片130中相应的位置,然后通过编程的方式改写数据。
[0045]在本实用新型实施例中,闪存控制器110包括:闪存系统总线接口111、主控单元112和闪存控制单元113;主控单元112,与所述闪存系统总线接口 111连接;闪存控制单元113,与闪存系统总线接口 111、主控单元112和闪存芯片130分别连接。
[0046]闪存系统总线接口111,用于将系统总线发出的数据写入指令和对应的地址发送至主控单元112,以及将与所述数据写入指令对应的程序数据发送至闪存控制单元113;还用于将系统总线发出的数据读取指令和对应的地址发送至主控单元112。
[0047]主控单元112,用于将系统总线发出的数据写入指令和对应的地址发送至闪存控制单元113;还用于将系统总线发出的数据读取指令和对应的地址发送至闪存控制单元113。
[0048]闪存控制单元113,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入闪存芯片130;还用于根据接收到的数据读取指令和对应的地址,读取闪存芯片130中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU 120执行。
[0049]闪存芯片130,用于储存所述程序数据密文。
[0050]本实用新型所提供的技术方案,通过闪存控制器的闪存控制单元对程序数据进行加密,以程序数据密文的形式存储到闪存芯片中,即使非法侵入者通过物理拆解芯片,读出闪存芯片中数据,也无法还原成原始明文程序数据,保护程序数据不被盗取,从根本上实现程序数据的安全存储。
[0051 ] 实施例二
[0052]图2为本实用新型实施例二提供的一种嵌入式系统的结构示意图,如图2所示,本实施例在上述实施例的基础上,提供了闪存控制器210的优选实现方案。
[0053]闪存控制单元211包括:密钥寄存器2111、指令翻译子单元2112、地址翻译子单元2113、数据加密子单元2114、接口转换子单元2115和数据解密子单元2116。
[0054]密钥寄存器2111,用于存储加密密钥和解密密钥。
[0055]密钥寄存器2111与闪存芯片220连接,用于在所述系统上电后自动从所述闪存芯片220中读取加密密钥和解密密钥,并存储。进一步地,密钥寄存器2111所存储的所述加密密钥和所述解密密钥可以是预先配置的。所述加密密钥和所述解密密钥可以为程序配置的密钥,可预先配置于闪存芯片220中,还可预先配置于MCU芯片中OTP (One TimeProgrammable,一次可编程存储单元)中。
[0056]其中,所述加密密钥和所述解密密钥优选为闪存芯片220的序列号。闪存芯片220的序列号为此颗闪存芯片的唯一 ID( identificat1n,身份证明),每颗闪存芯片220的序列号均不一样,所述加密密钥和所述解密密钥也不相同。
[0057]采用本技术方案,即使是同样的程序数据,存入不同的闪存芯片220中,加密后的程序数据密文也不一样,进一步增加了破解难度,而且即使所述加密密钥和所述解密密钥不存储在闪存芯片220中,例如所述加密密钥和所述解密密钥存储在MCU芯片中的OTP中,即使用户可以将一颗MCU芯片中的程序数据密文,复制到另外一颗MCU芯片中,但由于每颗MCU芯片的序列号不同,即每颗MCU芯片的所述加密密钥和所述解密密钥不同,不仅可有效防止闪存芯片230中程序数据的直接复制,而且程序数据密文在另外一个MCU芯片中程序数据将无法工作,从而更好地保证程序数据的安全性。
[0058]指令翻译子单元2112,与主控单元212连接,用于将通过主控单元212接收到的系统总线230发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的数据写入指令或数据读取指令。也就是说,指令翻译单元2112将主控单元212通过控制通路2发出的读写指令翻译成闪存芯片可识别的读写指令。
[0059]地址翻译子单元2113,与主控单元212连接,用于将通过主控单元212接收到的与系统总线230发出的数据写入指令对应的地址翻译成第一物理地址,以及将通过主控单元212接收到的与系统总线230发出的数据读取指令对应的地址翻译成第二物理地址。
[0060]地址翻译子单元2113将主控单元212通过控制通路2发出的地址信息翻译成加密前的临时物理地址,即翻译完的物理地址为加密前的临时物理地址。其中,主控单元212通过控制通路2发出的地址信息为系统总线地址,也可叫逻辑地址,与闪存芯片220实际物理地址优选为一一对应的映射关系。
[0061]数据加密子单元2114,与所述密钥寄存器和所述闪存系统总线接口213分别连接,用于接收闪存系统总线接口 213发送的所述程序数据,并获取所述密钥寄存器2111所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文。即数据加密子单元2114用于系统总线230需要改写闪存芯片220的程序数据时使用,系统总线230通过数据通路4发出需要改写的程序数据,由数据加密子单元2114,加密成程序数据密文。将程序数据密文写入闪存芯片220中。
[0062]接口转换子单元2115,与所述指令翻译子单元2112、地址翻译子单元2113、数据加密子单元2114和闪存芯片220分别连接,用于对闪存芯片220可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,发送至闪存芯片220,以将所述程序数据密文写入闪存芯片220中;还用于对闪存芯片220可识别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片220,以获取闪存芯片220所储存的程序数据密文。
[0063]具体的,在闪存芯片220采用串行外设接口SPI时,接口转换子单元2115具体用于,对闪存芯片220可识别的数据写入指令、第一物理地址和所述程序数据密文进行打包,打包为第一串行数据流,并发送至闪存芯片220,以将所述程序数据密文写入闪存芯片220中;还具体用于对闪存芯片220可识别的数据读取指令和所述第二物理地址进行打包,打包为第二串行数据流,并发送至闪存芯片220,以获取闪存芯片220所储存的程序数据密文。
[0064]数据解密子单元2116,与接口转换子单元2115和密钥寄存器2111分别连接,用于利用密钥寄存器2111所存储的解密密钥,对通过接口转换子单元2115所获取的程序数据密文进行解密,得到对应的程序数据,供CPU执行。
[0065]本实用新型所提供的技术方案,通过闪存控制单元的数据加密子单元对程序数据进行加密,以程序数据密文的形式存储到闪存芯片中,读取时需要通过数据解密子单元将程序数据密文解密为原始明文程序数据,可以有效保护程序数据不被盗取,实现程序数据的安全存储。
[0066]实施例三
[0067]图3为本实用新型实施例三提供的一种闪存控制单元的结构示意图,如图3所示,本实施例在上述实施例的基础上,提供了加密密钥的优选实现方案。
[0068]所述加密密钥可以包括:地址加密密钥和数据加密密钥;
[0069]数据加密子单元3111具体用于,接收闪存系统总线接口312发送的所述程序数据,并获取密钥寄存器3112所存储的数据加密密钥,利用所述数据
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1