【技术实现步骤摘要】
本技术实施例涉及计算机
,尤其涉及一种嵌入式系统。
技术介绍
微控制器(MicroControlUnit,MCU)应用非常广泛,小到儿童玩具,大到工程机械均有可能用到。MCU芯片在应用时,用户需要花费大量的人力物力进行软件开发,最终的程序数据存入闪存中,而这些程序数据均属于用户的知识产权,应避免被其他用户盗取。非法侵入者可能采用暴力拆解芯片,强行读出闪存中数据。MCU芯片通常直接将程序数据存储到闪存芯片中。目前,为了保证程序数据的安全性,现有技术通常采用在MCU芯片在生产制作中,将闪存芯片嵌入到MCU芯片中,或者采用工业应用中相对较为成熟的MCP(MultipleChipPackage,多芯片封装)技术将主芯片与闪存芯片制造在同一个封装内。采用存芯片嵌入到MCU芯片的技术方案,因为芯片分为很多层,非法入侵者需要将嵌入到芯片中的闪存芯片位置分析出,然后分析闪存芯片中每个存储单元所存储的数据,并抽取出来,虽然上述技术方案需要通过硬件和版图分析才能得到闪存数据,增加了非法入侵者拆解芯片的技术难度,但仍可抛开芯片,将闪存芯片中的数据全部读出,不能从根本上保证闪存芯片中的程序数据的安全性。对于采用MCP方案的MCU来说,非法侵入者可以通过拆解封装,得到闪存芯片,将闪存芯片中的数据全部读出,同样存在着很大的数据泄露风险。
技术实现思路
本技术提供一种嵌入式系统,以解决程序数据存储的安全问题。r>本技术实施例提供了一种嵌入式系统,包括闪存控制器、中央处理器CPU和闪存芯片,所述闪存控制器与所述CPU和所述闪存芯片分别连接;其中,所述闪存控制器包括:闪存系统总线接口;主控单元,与所述闪存系统总线接口连接;闪存控制单元,与所述闪存系统总线接口、所述主控单元和所述闪存芯片分别连接;所述闪存系统总线接口,用于将系统总线发出的数据写入指令和对应的地址发送至所述主控单元,以及将与所述数据写入指令对应的程序数据发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述主控单元;所述主控单元,用于将系统总线发出的数据写入指令和对应的地址发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述闪存控制单元;所述闪存控制单元,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入所述闪存芯片;还用于根据接收到的数据读取指令和对应的地址,读取所述闪存芯片中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU执行;所述闪存芯片,用于储存所述程序数据密文。进一步地,所述闪存控制单元包括:密钥寄存器,用于存储加密密钥和解密密钥;指令翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的系统总线发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的数据写入指令或数据读取指令;地址翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的与系统总线发出的数据写入指令对应的地址翻译成第一物理地址,以及将通过所述主控单元接收到的与系统总线发出的数据读取指令对应的地址翻译成第二物理地址;数据加密子单元,与所述密钥寄存器和所述闪存系统总线接口分别连接,用于接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;接口转换子单元,与所述指令翻译子单元、所述地址翻译子单元、所述数据加密子单元和所述闪存芯片分别连接,用于对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文;数据解密子单元,与所述接口转换子单元和所述密钥寄存器分别连接,用于利用所述密钥寄存器所存储的解密密钥,对通过所述接口转换子单元所获取的程序数据密文进行解密,得到对应的程序数据,供CPU执行。进一步地,所述加密密钥包括:地址加密密钥和数据加密密钥;所述数据加密子单元具体用于,接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的数据加密密钥,利用所述数据加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;所述闪存控制单元还包括:地址加密子单元,与所述地址翻译子单元、所述密钥寄存器和所述接口转换子单元分别连接,用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第一物理地址进行加密,得到闪存芯片的第一加密物理地址,并发送至所述接口转换子单元;还用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第二物理地址进行加密,得到闪存芯片的第二加密物理地址,并发送至所述接口转换子单元;相应的,所述接口转换子单元,具体用于对所述闪存芯片可识别的数据写入指令、所述第一加密物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二加密物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。进一步地,所述密钥寄存器与所述闪存芯片连接,用于在所述系统上电后自动从所述闪存芯片中读取加密密钥和解密密钥,并存储。进一步地,所述加密密钥和所述解密密钥为所述闪存芯片的序列号。进一步地,所述系统还包括:静态随机存储器SRAM;所述闪存控制器还包括:SRAM控制单元,与所述数据解密子单元和所述SRAM分别连接,用于与所述数据解密子单元交互解密后的程序数据,并存入所述SRAM。进一步地,在所述闪存芯片采用串行外设接口SPI时,所述接口转换子单元具体用于,对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,打包为第一串行数据流,并发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还具体用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,打包为第二串行数据流,并发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。本技术所提供的技术方案,通过闪存控制器的闪存控制单元对程序数
...
【技术保护点】
一种嵌入式系统,其特征在于,包括:闪存控制器、中央处理器CPU和闪存芯片,所述闪存控制器与所述CPU和所述闪存芯片分别连接;其中,所述闪存控制器包括:闪存系统总线接口;主控单元,与所述闪存系统总线接口连接;闪存控制单元,与所述闪存系统总线接口、所述主控单元和所述闪存芯片分别连接;所述闪存系统总线接口,用于将系统总线发出的数据写入指令和对应的地址发送至所述主控单元,以及将与所述数据写入指令对应的程序数据发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述主控单元;所述主控单元,用于将系统总线发出的数据写入指令和对应的地址发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述闪存控制单元;所述闪存控制单元,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入所述闪存芯片;还用于根据接收到的数据读取指令和对应的地址,读取所述闪存芯片中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU执行;所述闪存芯片,用于储存所述程序数据密文。
【技术特征摘要】
1.一种嵌入式系统,其特征在于,包括:闪存控制器、中央处理器CPU和
闪存芯片,所述闪存控制器与所述CPU和所述闪存芯片分别连接;
其中,所述闪存控制器包括:
闪存系统总线接口;
主控单元,与所述闪存系统总线接口连接;
闪存控制单元,与所述闪存系统总线接口、所述主控单元和所述闪存芯片
分别连接;
所述闪存系统总线接口,用于将系统总线发出的数据写入指令和对应的地
址发送至所述主控单元,以及将与所述数据写入指令对应的程序数据发送至所
述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至
所述主控单元;
所述主控单元,用于将系统总线发出的数据写入指令和对应的地址发送至
所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送
至所述闪存控制单元;
所述闪存控制单元,用于对与所述数据写入指令对应的程序数据进行加密,
得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序
数据密文写入所述闪存芯片;还用于根据接收到的数据读取指令和对应的地址,
读取所述闪存芯片中所存储的程序数据密文,并解密,得到对应的程序数据,
供所述CPU执行;
所述闪存芯片,用于储存所述程序数据密文。
2.根据权利要求1所述的系统,其特征在于,所述闪存控制单元包括:
密钥寄存器,用于存储加密密钥和解密密钥;
指令翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到
的系统总线发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的
数据写入指令或数据读取指令;
地址翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到
的与系统总线发出的数据写入指令对应的地址翻译成第一物理地址,以及将通
过所述主控单元接收到的与系统总线发出的数据读取指令对应的地址翻译成第
二物理地址;
数据加密子单元,与所述密钥寄存器和所述闪存系统总线接口分别连接,
用于接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器
所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,
得到程序数据密文;
接口转换子单元,与所述指令翻译子单元、所述地址翻译子单元、所述数
据加密子单元和所述闪存芯片分别连接,用于对所述闪存芯片可识别的数据写
入指令、所述第一物理地址和所述程序数据密文进行打包,发送至所述闪存芯
片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识
别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片,以获
取所述闪存芯片所储存的程序数据密文;
数据解密子单元,与所...
【专利技术属性】
技术研发人员:王南飞,
申请(专利权)人:北京兆易创新科技股份有限公司,
类型:新型
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。