CN106934305B - 一种嵌入式系统 - Google Patents

一种嵌入式系统 Download PDF

Info

Publication number
CN106934305B
CN106934305B CN201511029215.7A CN201511029215A CN106934305B CN 106934305 B CN106934305 B CN 106934305B CN 201511029215 A CN201511029215 A CN 201511029215A CN 106934305 B CN106934305 B CN 106934305B
Authority
CN
China
Prior art keywords
flash memory
data
memory chip
program data
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201511029215.7A
Other languages
English (en)
Other versions
CN106934305A (zh
Inventor
王南飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhaoyi Innovation Technology Group Co ltd
Original Assignee
Zhaoyi Innovation Technology Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhaoyi Innovation Technology Group Co ltd filed Critical Zhaoyi Innovation Technology Group Co ltd
Priority to CN201511029215.7A priority Critical patent/CN106934305B/zh
Publication of CN106934305A publication Critical patent/CN106934305A/zh
Application granted granted Critical
Publication of CN106934305B publication Critical patent/CN106934305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种嵌入式系统,包括:闪存控制器、CPU和闪存芯片,闪存控制器与CPU和闪存芯片分别连接;其中,闪存控制器包括:闪存系统总线接口;主控单元,与所述闪存系统总线接口连接;闪存控制单元,与闪存系统总线接口、所述主控单元和所述闪存芯片分别连接;闪存控制单元,用于对与数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将程序数据密文写入闪存芯片;还用于根据接收到的数据读取指令和对应的地址,读取闪存芯片中所存储的程序数据密文,并解密得到对应的程序数据,供所述CPU执行。本技术方案,可以有效保护程序数据不被盗取,从根本上实现程序数据的安全存储。

Description

一种嵌入式系统
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种嵌入式系统。
背景技术
微控制器(Micro Control Unit,MCU)应用非常广泛,小到儿童玩具,大到工程机械均有可能用到。MCU芯片在应用时,用户需要花费大量的人力物力进行软件开发,最终的程序数据存入闪存中,而这些程序数据均属于用户的知识产权,应避免被其他用户盗取。非法侵入者可能采用暴力拆解芯片,强行读出闪存中数据。
MCU芯片通常直接将程序数据存储到闪存芯片中。目前,为了保证程序数据的安全性,现有技术通常采用在MCU芯片在生产制作中,将闪存芯片嵌入到MCU芯片中,或者采用工业应用中相对较为成熟的MCP(Multiple Chip Package,多芯片封装)技术将主芯片与闪存芯片制造在同一个封装内。
采用存芯片嵌入到MCU芯片的技术方案,因为芯片分为很多层,非法入侵者需要将嵌入到芯片中的闪存芯片位置分析出,然后分析闪存芯片中每个存储单元所存储的数据,并抽取出来,虽然上述技术方案需要通过硬件和版图分析才能得到闪存数据,增加了非法入侵者拆解芯片的技术难度,但仍可抛开芯片,将闪存芯片中的数据全部读出,不能从根本上保证闪存芯片中的程序数据的安全性。
对于采用MCP方案的MCU来说,非法侵入者可以通过拆解封装,得到闪存芯片,将闪存芯片中的数据全部读出,同样存在着很大的数据泄露风险。
发明内容
本发明提供一种嵌入式系统,以解决程序数据存储的安全问题。
本发明实施例提供了一种嵌入式系统,包括闪存控制器、中央处理器CPU和闪存芯片,所述闪存控制器与所述CPU和所述闪存芯片分别连接;
其中,所述闪存控制器包括:
闪存系统总线接口;
主控单元,与所述闪存系统总线接口连接;
闪存控制单元,与所述闪存系统总线接口、所述主控单元和所述闪存芯片分别连接;
所述闪存系统总线接口,用于将系统总线发出的数据写入指令和对应的地址发送至所述主控单元,以及将与所述数据写入指令对应的程序数据发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述主控单元;
所述主控单元,用于将系统总线发出的数据写入指令和对应的地址发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述闪存控制单元;
所述闪存控制单元,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入所述闪存芯片;还用于根据接收到的数据读取指令和对应的地址,读取所述闪存芯片中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU执行;
所述闪存芯片,用于储存所述程序数据密文。
进一步地,所述闪存控制单元包括:
密钥寄存器,用于存储加密密钥和解密密钥;
指令翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的系统总线发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的数据写入指令或数据读取指令;
地址翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的与系统总线发出的数据写入指令对应的地址翻译成第一物理地址,以及将通过所述主控单元接收到的与系统总线发出的数据读取指令对应的地址翻译成第二物理地址;
数据加密子单元,与所述密钥寄存器和所述闪存系统总线接口分别连接,用于接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;
接口转换子单元,与所述指令翻译子单元、所述地址翻译子单元、所述数据加密子单元和所述闪存芯片分别连接,用于对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文;
数据解密子单元,与所述接口转换子单元和所述密钥寄存器分别连接,用于利用所述密钥寄存器所存储的解密密钥,对通过所述接口转换子单元所获取的程序数据密文进行解密,得到对应的程序数据,供CPU执行。
进一步地,所述加密密钥包括:地址加密密钥和数据加密密钥;
所述数据加密子单元具体用于,接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的数据加密密钥,利用所述数据加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;
所述闪存控制单元还包括:
地址加密子单元,与所述地址翻译子单元、所述密钥寄存器和所述接口转换子单元分别连接,用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第一物理地址进行加密,得到闪存芯片的第一加密物理地址,并发送至所述接口转换子单元;还用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第二物理地址进行加密,得到闪存芯片的第二加密物理地址,并发送至所述接口转换子单元;
相应的,所述接口转换子单元,具体用于对所述闪存芯片可识别的数据写入指令、所述第一加密物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二加密物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。
进一步地,所述密钥寄存器与所述闪存芯片连接,用于在所述系统上电后自动从所述闪存芯片中读取加密密钥和解密密钥,并存储。
进一步地,所述加密密钥和所述解密密钥为所述闪存芯片的序列号。
进一步地,所述系统还包括:静态随机存储器SRAM;
所述闪存控制器还包括:SRAM控制单元,与所述数据解密子单元和所述SRAM分别连接,用于与所述数据解密子单元交互解密后的程序数据,并存入所述SRAM。
进一步地,在所述闪存芯片采用串行外设接口SPI时,所述接口转换子单元具体用于,对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,打包为第一串行数据流,并发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还具体用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,打包为第二串行数据流,并发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。
本发明所提供的技术方案,通过闪存控制器的闪存控制单元对程序数据进行加密,以程序数据密文的形式存储到闪存芯片中,即使非法侵入者通过物理拆解芯片,读出闪存芯片中数据,也无法还原成原始明文程序数据,保护程序数据不被盗取,从根本上实现程序数据的安全存储。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一所提供的一种嵌入式系统的结构示意图;
图2为本发明实施例二所提供的一种嵌入式系统的结构示意图;
图3为本发明实施例三所提供的一种嵌入式系统的结构示意图;
图4为本发明实施例四所提供的一种嵌入式系统的结构示意图;
图5为本发明实施例提供的一种嵌入式系统的读写方法的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一所提供的一种嵌入式系统的结构示意图,如图1所示,本实施例所提供的嵌入式系统,包括:闪存控制器110、中央处理器(CPU)120和闪存芯片130,闪存控制器110与CPU 120和闪存芯片130分别连接,其中,CPU 120用于控制闪存控制器110与闪存芯片130的运行;闪存芯片130可读,可擦写,在断电情况下所存储的数据信息不丢失。
闪存控制器110配置在嵌入式系统的主芯片上,可采用MCP(Multiple ChipPackage)技术将主芯片与闪存芯片制造在同一个封装内,形成嵌入式系统。
闪存控制器110,用于与CPU 120交互闪存芯片130的状态信息,并从闪存芯片130中读取程序数据,供CPU 120执行,或者对闪存芯片所存储的程序数据进行改写。所述嵌入式系统通过闪存控制器110对闪存芯片130的操作一般主要为读操作,可直接从闪存芯片130中读取程序数据;当闪存芯片130中的数据需要修改时,也可执行写操作,写操作需要先擦除闪存芯片130中相应的位置,然后通过编程的方式改写数据。
在本发明实施例中,闪存控制器110包括:闪存系统总线接口111、主控单元112和闪存控制单元113;主控单元112,与所述闪存系统总线接口111连接;闪存控制单元113,与闪存系统总线接口111、主控单元112和闪存芯片130分别连接。
闪存系统总线接口111,用于将系统总线发出的数据写入指令和对应的地址发送至主控单元112,以及将与所述数据写入指令对应的程序数据发送至闪存控制单元113;还用于将系统总线发出的数据读取指令和对应的地址发送至主控单元112。
主控单元112,用于将系统总线发出的数据写入指令和对应的地址发送至闪存控制单元113;还用于将系统总线发出的数据读取指令和对应的地址发送至闪存控制单元113。
闪存控制单元113,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入闪存芯片130;还用于根据接收到的数据读取指令和对应的地址,读取闪存芯片130中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU 120执行。
闪存芯片130,用于储存所述程序数据密文。
本发明所提供的技术方案,通过闪存控制器的闪存控制单元对程序数据进行加密,以程序数据密文的形式存储到闪存芯片中,即使非法侵入者通过物理拆解芯片,读出闪存芯片中数据,也无法还原成原始明文程序数据,保护程序数据不被盗取,从根本上实现程序数据的安全存储。
实施例二
图2为本发明实施例二提供的一种嵌入式系统的结构示意图,如图2所示,本实施例在上述实施例的基础上,提供了闪存控制器210的优选实现方案。
闪存控制单元211包括:密钥寄存器2111、指令翻译子单元2112、地址翻译子单元2113、数据加密子单元2114、接口转换子单元2115和数据解密子单元2116。
密钥寄存器2111,用于存储加密密钥和解密密钥。
密钥寄存器2111与闪存芯片220连接,用于在所述系统上电后自动从所述闪存芯片220中读取加密密钥和解密密钥,并存储。进一步地,密钥寄存器2111所存储的所述加密密钥和所述解密密钥可以是预先配置的。所述加密密钥和所述解密密钥可以为程序配置的密钥,可预先配置于闪存芯片220中,还可预先配置于MCU芯片中OTP(One TimeProgrammable,一次可编程存储单元)中。
其中,所述加密密钥和所述解密密钥优选为闪存芯片220的序列号。闪存芯片220的序列号为此颗闪存芯片的唯一ID(identification,身份证明),每颗闪存芯片220的序列号均不一样,所述加密密钥和所述解密密钥也不相同。
采用本技术方案,即使是同样的程序数据,存入不同的闪存芯片220中,加密后的程序数据密文也不一样,进一步增加了破解难度,而且即使所述加密密钥和所述解密密钥不存储在闪存芯片220中,例如所述加密密钥和所述解密密钥存储在MCU芯片中的OTP中,即使用户可以将一颗MCU芯片中的程序数据密文,复制到另外一颗MCU芯片中,但由于每颗MCU芯片的序列号不同,即每颗MCU芯片的所述加密密钥和所述解密密钥不同,不仅可有效防止闪存芯片230中程序数据的直接复制,而且程序数据密文在另外一个MCU芯片中程序数据将无法工作,从而更好地保证程序数据的安全性。
指令翻译子单元2112,与主控单元212连接,用于将通过主控单元212接收到的系统总线230发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的数据写入指令或数据读取指令。也就是说,指令翻译单元2112将主控单元212通过控制通路2发出的读写指令翻译成闪存芯片可识别的读写指令。
地址翻译子单元2113,与主控单元212连接,用于将通过主控单元212接收到的与系统总线230发出的数据写入指令对应的地址翻译成第一物理地址,以及将通过主控单元212接收到的与系统总线230发出的数据读取指令对应的地址翻译成第二物理地址。
地址翻译子单元2113将主控单元212通过控制通路2发出的地址信息翻译成加密前的临时物理地址,即翻译完的物理地址为加密前的临时物理地址。其中,主控单元212通过控制通路2发出的地址信息为系统总线地址,也可叫逻辑地址,与闪存芯片220实际物理地址优选为一一对应的映射关系。
数据加密子单元2114,与所述密钥寄存器和所述闪存系统总线接口213分别连接,用于接收闪存系统总线接口213发送的所述程序数据,并获取所述密钥寄存器2111所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文。即数据加密子单元2114用于系统总线230需要改写闪存芯片220的程序数据时使用,系统总线230通过数据通路4发出需要改写的程序数据,由数据加密子单元2114,加密成程序数据密文。将程序数据密文写入闪存芯片220中。
接口转换子单元2115,与所述指令翻译子单元2112、地址翻译子单元2113、数据加密子单元2114和闪存芯片220分别连接,用于对闪存芯片220可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,发送至闪存芯片220,以将所述程序数据密文写入闪存芯片220中;还用于对闪存芯片220可识别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片220,以获取闪存芯片220所储存的程序数据密文。
具体的,在闪存芯片220采用串行外设接口SPI时,接口转换子单元2115具体用于,对闪存芯片220可识别的数据写入指令、第一物理地址和所述程序数据密文进行打包,打包为第一串行数据流,并发送至闪存芯片220,以将所述程序数据密文写入闪存芯片220中;还具体用于对闪存芯片220可识别的数据读取指令和所述第二物理地址进行打包,打包为第二串行数据流,并发送至闪存芯片220,以获取闪存芯片220所储存的程序数据密文。
数据解密子单元2116,与接口转换子单元2115和密钥寄存器2111分别连接,用于利用密钥寄存器2111所存储的解密密钥,对通过接口转换子单元2115所获取的程序数据密文进行解密,得到对应的程序数据,供CPU执行。
本发明所提供的技术方案,通过闪存控制单元的数据加密子单元对程序数据进行加密,以程序数据密文的形式存储到闪存芯片中,读取时需要通过数据解密子单元将程序数据密文解密为原始明文程序数据,可以有效保护程序数据不被盗取,实现程序数据的安全存储。
实施例三
图3为本发明实施例三提供的一种闪存控制单元的结构示意图,如图3所示,本实施例在上述实施例的基础上,提供了加密密钥的优选实现方案。
所述加密密钥可以包括:地址加密密钥和数据加密密钥;
数据加密子单元3111具体用于,接收闪存系统总线接口312发送的所述程序数据,并获取密钥寄存器3112所存储的数据加密密钥,利用所述数据加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文。
闪存控制单元311优选是还包括:
地址加密子单元3113,与地址翻译子单元3114、密钥寄存器3112和接口转换子单元3115分别连接,用于利用密钥寄存器3112所存储的地址加密密钥,对地址翻译子单元3114翻译的第一物理地址或第二物理地址进行加密,得到闪存芯片实际物理地址,并发送至所述接口转换子单元3115;还用于利用所述密钥寄存器所存储的地址加密密钥,对地址翻译子单元3114翻译的第二物理地址进行加密,得到闪存芯片320的第二加密物理地址,并发送至接口转换子单元3115。
优选是,第一物理地址与第一加密物理地址保持一一对应的映射关系;第二物理地址与第二加密物理地址保持一一对应的映射关系,以避免程序数据读写时产生错误。
相应的,接口转换子单元3115,具体用于对所述闪存芯片320可识别的数据写入指令、所述第一加密物理地址和所述程序数据密文进行打包,发送至闪存芯片320,以将所述程序数据密文写入闪存芯片320中;还用于对闪存芯片320可识别的数据读取指令和所述第二加密物理地址进行打包,发送至闪存芯片320,以获取闪存芯片320所储存的程序数据密文。
在上述实施例的基础上,连续的第一物理地址或第二物理地址,经由地址加密子单元加密后的实际物理地址一般为离散的,即相邻的两个第一物理地址或第二物理地址,加密后可能在闪存芯片320中任意两个位置,这样加密的好处在于,极大地增加了破解难度。
由于读取闪存芯片320的程序数据和向闪存芯片320写入程序数据,均要向闪存芯片320发送与数据读取指令或数据写入指令对应的地址,因此,读写程序数据的地址加密方法一致,以保证同一系统总线地址上的读写地址,翻译成实际物理地址为同一地址,进而保证读写程序数据一致。
闪存控制单元在控制闪存芯片320执行读取、写入、擦除等数据操作。主控单元通过控制通路2经系统总线330的数据读取指令或数据写入指令以及对应的地址发送至闪存控制单元311。数据读取指令或数据写入指令需要由指令翻译子单元3116翻译成闪存芯片320的可识别的数据读取指令或数据写入指令,数据读取指令或数据写入指令所对应的地址需要从系统总线330发出的逻辑地址翻译成闪存芯片320的物理地址(即加密前的临时物理地址),再进行加密后给到闪存芯片320,写入的程序数据通过加密后给到闪存芯片320,而从闪存芯片320读取程序数据需要经过数据解密子单元3117解密后才能读取。
本实施例所提供的技术方案,通过闪存控制器中的闪存控制单元的地址加密子单元,可以将连续的系统总线地址,映射为闪存芯片中任意可能的实际物理地址,由于可映射关系有无数种可能,大大增加了破解的难度,更好的保证了闪存芯片中程序数据的安全性。
实施例四
图4为本发明实施例四提供的一种嵌入式系统的结构示意图,如图4所示,本实施例的技术方案是在上述实施例的基础上进一步的优化,相比较与上述实施例,所述系统还包括:
静态随机存储器(SRAM)410,用于在上电后存储闪存芯片420中的程序数据。所述嵌入式系统对闪存芯片420的读操作,可直接从闪存芯片420中读取,由于闪存芯片420的读取速度较慢,优选是可通过SRAM 410读取,可以实现对闪存芯片420中程序数据的实时读取,提高对闪存芯片420中程序数据的读取速度。
为了更好地满足快速读取闪存芯片420中的程序数据,并考虑到SRAM面积及所占用的地址空间,SRAM 410可以包括主SRAM和辅助SRAM,主SRAM的地址空间一般不能太大,比如可以为几十千字节,在具体操作中,当主SRAM的地址空间不足时,可以采用辅助SRAM。
相应的,闪存控制器430还包括:SRAM控制单元,与所述数据解密子单元和SRAM410分别连接,用于与所述数据解密子单元交互解密后的程序数据,并存入SRAM 410。
在上述实施例的基础上,系统总线440还可以用于发出对闪存芯片420中闪存所存储的程序数据进行改写的指令与对应的地址,所述闪存控制单元434通过数据通路4与闪存系统总线接口432交互所述指令与对应的地址,从而实现对闪存芯片420中的闪存芯片中所存储的程序数据进行改写。
在本实施例中,所述嵌入式系统还包括闪存配置寄存器435,用于在所述嵌入式系统上电后,自动读取闪存芯片420的状态信息。
相应的,闪存系统总线接口432,还用于直接对闪存配置寄存器435进行读写访问,系统总线440可以通过闪存系统总线接口432到闪存配置寄存器435之间的数据通路1配置闪存寄存器435的信息。
主控单元433接收系统总线440通过控制通路1发出的读取指令和对应的地址,优选是通过SRAM 410读取闪存芯片420中的数据。若所述嵌入式系统上电后,主控单元433所需读取的目标程序数据在存储在SRAM 410中,则直接从SRAM 410中读取,并通过数据通路1发送至系统总线440中;如所述目标程序数据未存储于SRAM 410中,则可以先从闪存芯片420中将所述目标程序数据读取数据到SRAM 410中,再从SRAM 410中读取。
具体的,SRAM 410所存储的程序数据可以通过闪存控制单元到SRAM控制单元之间的数据通路2,将闪存芯片420中的程序数据读取到SRAM 410中,并且所述嵌入式系统上电后,SRAM 410可以自动读取并存储闪存芯片420中的程序数据。
SRAM控制单元431,用于根据所述主控单元433的控制,对SRAM 410中所存储的程序数据进行读取或改写。SRAM控制单元431可以将接收到的主控单元433通过控制通路4的数据读取指令和对应的地址翻译成SRAM 410的数据读取指令和对应的地址,还可以将接收到的主控单元433的数据写入指令和对应的地址翻译成SRAM 410的数据写入指令和对应的地址。
在上述实施例中,主控单元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中读取。
辅助SRAM一般存储海量不常更改的数据。对读取速度要求不高,一般读取均有一定的等待周期。在本案中,闪存芯片420可通过主SRAM进行1:1复制,这样可实时读取,但会增加SRAM的面积。也可通过辅助SRAM读取,读取方式与前面所述一致,这样读取会增加一些等待周期,但不会增加SRAM面积。
在本实施例中,系统总线440读取闪存芯片420中的程序数据时,可以通过数据通路3,存储到SRAM 410中。
综上,上述技术方案通过SRAM 410读取所述闪存芯片420中的程序数据,有效加快了所述嵌入式系统对所述闪存芯片420中的程序数据的读取速度,并实现了实时读取,极大提升了用户体验。
图5为本发明实施例所提供的一种嵌入式系统的读写方法的流程图,所述方法包括:
S510、上电复位,读取闪存芯片中的密钥信息。具体的,所述系统上电复位后,自动将闪存芯片中的密钥信息,读取存入密钥寄存器中,以供地址加密子单元、数据加密子单元和数据解密子单元使用。
S520、主控单元根据所述系统总线的指令执行相应的操作。
S530、若所述系统总线指令为数据读取指令和对应的地址,则主控单元根据数据读取指令和对应的地址,控制闪存控制单元读取闪存芯片中的程序数据密文,执行S550。
S540、若所述系统总线指令为数据写入指令和对应的地址,则主控单元根据所述闪存芯片中的系统状态信息配置闪存控制器,执行S560。
S550、所述闪存控制单元将所述程序数据密文解密为原始程序数据,并提供至SRAM,执行S570。
具体的,所述闪存控制单元将闪存芯片中的所述程序数据密文,通过数据解密子单元解密为原始程序数据,并提供至SRAM控制单元,由所述SRAM控制单元提供至SRAM;所述数据读取指令通过指令翻译子单元,翻译成闪存芯片能够识别的数据读取指令;所述数据读取指令对应的地址通过地址翻译子单元翻译成第二物理地址,由地址加密子单元转化为闪存芯片的实际物理地址。
S560、闪存控制单元根据所述数据写入指令和对应的地址,对写入的程序数据进行翻译后加密,执行S580。
具体的,所述数据写入指令通过指令翻译子单元,翻译成闪存芯片能够识别的数据写入指令;所述数据写入指令对应的地址通过地址翻译子单元翻译成第一物理地址,由地址加密子单元加密后,转化为闪存芯片的实际物理地址;所述程序数据通过数据加密子单元加密成程序数据密文。
S570、所述CPU通过SRAM读取闪存芯片中相应的数据。
S580、将所述程序数据密文写入到闪存芯片中加密后的实际物理地址上。
采用上述技术方案,在读写闪存芯片的程序数据时,可以充分保证数据的安全。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (7)

1.一种嵌入式系统,其特征在于,包括:闪存控制器、中央处理器CPU和闪存芯片,所述闪存控制器与所述CPU和所述闪存芯片分别连接;
其中,所述闪存控制器包括:
闪存系统总线接口;
主控单元,与所述闪存系统总线接口连接;
闪存控制单元,与所述闪存系统总线接口、所述主控单元和所述闪存芯片分别连接;
所述闪存系统总线接口,用于将系统总线发出的数据写入指令和对应的地址发送至所述主控单元,以及将与所述数据写入指令对应的程序数据发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述主控单元;
所述主控单元,用于将系统总线发出的数据写入指令和对应的地址发送至所述闪存控制单元;还用于将系统总线发出的数据读取指令和对应的地址发送至所述闪存控制单元;
所述闪存控制单元,用于对与所述数据写入指令对应的程序数据进行加密,得到程序数据密文,并根据接收到的数据写入指令和对应的地址,将所述程序数据密文写入所述闪存芯片;还用于根据接收到的数据读取指令和对应的地址,读取所述闪存芯片中所存储的程序数据密文,并解密,得到对应的程序数据,供所述CPU执行;
所述闪存芯片,用于储存所述程序数据密文;
闪存控制器配置在嵌入式系统的主芯片上,采用多芯片封装技术将主芯片与闪存芯片制造在同一个封装内,形成嵌入式系统;
其中,所述闪存控制单元包括密钥寄存器,用于存储加密密钥和解密密钥,所述加密密钥和所述解密密钥为程序配置的密钥,且预先配置于所述闪存芯片或所述嵌入式系统的一次可编程存储单元中。
2.根据权利要求1所述的系统,其特征在于,所述闪存控制单元包括:
指令翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的系统总线发出的数据写入指令或数据读取指令翻译成所述闪存芯片可识别的数据写入指令或数据读取指令;
地址翻译子单元,与所述主控单元连接,用于将通过所述主控单元接收到的与系统总线发出的数据写入指令对应的地址翻译成第一物理地址,以及将通过所述主控单元接收到的与系统总线发出的数据读取指令对应的地址翻译成第二物理地址;
数据加密子单元,与所述密钥寄存器和所述闪存系统总线接口分别连接,用于接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的加密密钥,利用所述加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;
接口转换子单元,与所述指令翻译子单元、所述地址翻译子单元、所述数据加密子单元和所述闪存芯片分别连接,用于对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文;
数据解密子单元,与所述接口转换子单元和所述密钥寄存器分别连接,用于利用所述密钥寄存器所存储的解密密钥,对通过所述接口转换子单元所获取的程序数据密文进行解密,得到对应的程序数据,供CPU执行。
3.根据权利要求2所述的系统,其特征在于,所述加密密钥包括:地址加密密钥和数据加密密钥;
所述数据加密子单元具体用于,接收所述闪存系统总线接口发送的所述程序数据,并获取所述密钥寄存器所存储的数据加密密钥,利用所述数据加密密钥对所接收到的所述程序数据进行加密,得到程序数据密文;
所述闪存控制单元还包括:
地址加密子单元,与所述地址翻译子单元、所述密钥寄存器和所述接口转换子单元分别连接,用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第一物理地址进行加密,得到闪存芯片的第一加密物理地址,并发送至所述接口转换子单元;还用于利用所述密钥寄存器所存储的地址加密密钥,对所述地址翻译子单元翻译的第二物理地址进行加密,得到闪存芯片的第二加密物理地址,并发送至所述接口转换子单元;
相应的,所述接口转换子单元,具体用于对所述闪存芯片可识别的数据写入指令、所述第一加密物理地址和所述程序数据密文进行打包,发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还用于对所述闪存芯片可识别的数据读取指令和所述第二加密物理地址进行打包,发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。
4.根据权利要求2或3所述的系统,其特征在于,所述密钥寄存器与所述闪存芯片连接,用于在所述系统上电后自动从所述闪存芯片中读取加密密钥和解密密钥,并存储。
5.根据权利要求4所述的系统,其特征在于,所述加密密钥和所述解密密钥为所述闪存芯片的序列号。
6.根据权利要求2或3所述的系统,其特征在于,所述系统还包括:静态随机存储器SRAM;
所述闪存控制器还包括:SRAM控制单元,与所述数据解密子单元和所述SRAM分别连接,用于与所述数据解密子单元交互解密后的程序数据,并存入所述SRAM。
7.根据权利要求2或3所述的系统,其特征在于,在所述闪存芯片采用串行外设接口SPI时,所述接口转换子单元具体用于,对所述闪存芯片可识别的数据写入指令、所述第一物理地址和所述程序数据密文进行打包,打包为第一串行数据流,并发送至所述闪存芯片,以将所述程序数据密文写入所述闪存芯片中;还具体用于对所述闪存芯片可识别的数据读取指令和所述第二物理地址进行打包,打包为第二串行数据流,并发送至所述闪存芯片,以获取所述闪存芯片所储存的程序数据密文。
CN201511029215.7A 2015-12-31 2015-12-31 一种嵌入式系统 Active CN106934305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511029215.7A CN106934305B (zh) 2015-12-31 2015-12-31 一种嵌入式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511029215.7A CN106934305B (zh) 2015-12-31 2015-12-31 一种嵌入式系统

Publications (2)

Publication Number Publication Date
CN106934305A CN106934305A (zh) 2017-07-07
CN106934305B true CN106934305B (zh) 2024-02-06

Family

ID=59442722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511029215.7A Active CN106934305B (zh) 2015-12-31 2015-12-31 一种嵌入式系统

Country Status (1)

Country Link
CN (1) CN106934305B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111199023A (zh) * 2019-12-23 2020-05-26 上海琪埔维半导体有限公司 一种mcu程序的密钥系统及解密方法
CN111736770B (zh) * 2020-06-10 2024-02-27 深圳市华澜微电子有限公司 嵌入式安全存储器
CN112583795B (zh) * 2020-11-24 2022-01-18 北京智芯微电子科技有限公司 安全防护方法及安全防护装置
CN118413391A (zh) * 2024-06-26 2024-07-30 合众新能源汽车股份有限公司 智驾控制器的预制文件加解密的方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389963A (zh) * 2012-05-09 2013-11-13 北京兆易创新科技股份有限公司 一种嵌入式系统控制器
CN104679547A (zh) * 2013-12-02 2015-06-03 北京兆易创新科技股份有限公司 一种mcu中的系统配置信息的读取方法和系统
CN205302294U (zh) * 2015-12-31 2016-06-08 北京兆易创新科技股份有限公司 一种嵌入式系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWM317043U (en) * 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103389963A (zh) * 2012-05-09 2013-11-13 北京兆易创新科技股份有限公司 一种嵌入式系统控制器
WO2013166939A1 (zh) * 2012-05-09 2013-11-14 北京兆易创新科技股份有限公司 一种嵌入式系统控制器
CN104679547A (zh) * 2013-12-02 2015-06-03 北京兆易创新科技股份有限公司 一种mcu中的系统配置信息的读取方法和系统
CN205302294U (zh) * 2015-12-31 2016-06-08 北京兆易创新科技股份有限公司 一种嵌入式系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
洪光 ; 周伟 ; .嵌入式操作系统移植中文件系统的开发.兵工自动化.2006,(第12期),全文. *

Also Published As

Publication number Publication date
CN106934305A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
CN109844751B (zh) 用于提供信息隔离的方法和处理器
US11507284B2 (en) Storage device and control method
US8572410B1 (en) Virtualized protected storage
CN110447032B (zh) 管理程序与虚拟机之间的存储器页转换监测
US11411747B2 (en) Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems
JP6685651B2 (ja) 格納装置及びその動作方法
CN106934305B (zh) 一种嵌入式系统
US20180357449A1 (en) Secure subsystem
CN102436423B (zh) 通用片外NorFlash核心数据保护的控制器及方法
US20180260151A1 (en) Data Storage Device and Operating Method Therefor
CN105122203A (zh) 存储设备辅助式内联加密和解密
TW201333701A (zh) 資料保護方法、記憶體控制器與記憶體儲存裝置
US8886963B2 (en) Secure relocation of encrypted files
US20160259583A1 (en) Storage device, storage device system and information terminal
GB2578410A (en) Computer system software/firmware and a processor unit with a security module
JP2020528608A5 (zh)
CN106991061A (zh) 一种sata硬盘密码模块及其工作方法
US20190042477A1 (en) Securing data direct i/o for a secure accelerator interface
TWI648741B (zh) 資料儲存裝置之控制器以及進階資料抹除的方法
JP2015172959A (ja) フラッシュメモリのアクセス方法
CN205302294U (zh) 一种嵌入式系统
CN111931190B (zh) 一种基于xip处理器系统的启动方法
CN103593308A (zh) 基于扇区写保护的u盘写保护方法
TWI736000B (zh) 資料儲存裝置以及其操作方法
JP2018526720A (ja) 仮想マシンの状態情報の保護

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094

Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd.

Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing

Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant