[go: up one dir, main page]

CN119166564B - 基于串行闪存的量产片上微控制器、方法及系统 - Google Patents

基于串行闪存的量产片上微控制器、方法及系统

Info

Publication number
CN119166564B
CN119166564B CN202411325932.3A CN202411325932A CN119166564B CN 119166564 B CN119166564 B CN 119166564B CN 202411325932 A CN202411325932 A CN 202411325932A CN 119166564 B CN119166564 B CN 119166564B
Authority
CN
China
Prior art keywords
container
chip
flash memory
command
serial flash
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
CN202411325932.3A
Other languages
English (en)
Other versions
CN119166564A (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.)
Shanghai Xianji Semiconductor Technology Co ltd
Original Assignee
Shanghai Xianji Semiconductor Technology 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 Shanghai Xianji Semiconductor Technology Co ltd filed Critical Shanghai Xianji Semiconductor Technology Co ltd
Priority to CN202411325932.3A priority Critical patent/CN119166564B/zh
Publication of CN119166564A publication Critical patent/CN119166564A/zh
Application granted granted Critical
Publication of CN119166564B publication Critical patent/CN119166564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Read Only Memory (AREA)

Abstract

本申请提供一种基于串行闪存的量产片上微控制器、方法及系统,通过片上微控制器及其片上启动代码,实现了高效安全的产品量产。可支持按内存最优块进行擦除,以优化烧录时间,提高烧录效率;同时还提供了配置选项,方便用户监控量产状态;此外还可支持用户自定义指令,满足更复杂的量产需求;并内置安全启动和加密机制,保障烧录过程的安全性和数据的保密性。从而有效提升了生产效率,保障了产品安全,满足了更复杂的量产需求。

Description

基于串行闪存的量产片上微控制器、方法及系统
技术领域
本申请涉及集成电路领域,特别是涉及一种基于串行闪存的量产片上微控制器、方法及系统。
背景技术
随着嵌入式系统的复杂性不断提高,各种嵌入式产品中对外挂片外闪存芯片的需求显著增加。这些产品常常需要在量产过程中进行特定程序的烧写,以确保设备在出厂时具备特定功能。与传统嵌入式系统相比,现代系统的量产工序面临诸多挑战,从而导致其流程愈加复杂。例如,量产过程中需要考虑接口选择,例如串口、USB、SPI、SWD和JTAG等多种方式的应用,为了保障量产程序的保密性,通常需要实现安全启动与加密烧写等措施,这无疑增加了量产方案的设计难度。与此同时,量产效率的提升通常依赖于专用治具,采用多台设备的并行烧写,这不仅增加了经济成本,也对硬件设计提出了更高的要求。
针对这些复杂性,部分厂商提出了一种改进的解决方案,即通过在芯片上固化启动代码,与片外闪存量产固件相结合,从而提升量产效率。具体地,首先利用离线烧录器将加密的量产固件预先烧写到片外串行闪存中,其中,该量产固件包含能够执行基本擦除和烧写的命令序列;其次,在出厂时预置安全启动的公钥以及用于生成量产固件对称密钥的种子;最后,在系统首次启动时,片上启动代码从片外串行闪存的4KB偏移位置解析量产固件,并在完成签名验证后,边解密边执行擦除与烧写操作。
尽管现有的技术方案在一定程度上提高了量产流程的便捷性,但仍存在显著的缺陷。首先,由于上述方案要求从固定的4KB偏移处进行操作,导致片外闪存的擦除只能以小于或等于4KB的粒度进行,这限制了更大粒度(如32KB或64KB)擦除的应用,进而影响了实际的量产效率。其次,缺乏用于指示量产状态及结果的命令序列,这使得量产过程变得不透明,用户无法直观地监控量产进程或及时获知量产结果,造成了信息的不对称。最后,由于系统主要依赖几条基本的擦除和写操作,缺乏灵活性,因此无法满足客户在复杂环境中与量产程序进行交互的需求,例如烧入产品序列号或执行闪存的写保护,其可扩展性也因此受到限制。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种基于串行闪存的量产片上微控制器、方法及系统,用于解决现有技术中存在的量产效率低下,导致处理时间增加,量产过程缺乏监控机制,使用户无法及时获知量产状态和结果,以及可扩展性差,无法满足复杂环境下的交互需求,如烧录序列号和数据保护的问题。
为实现上述目的及其他相关目的,本申请的第一方面提供一种方法基于串行闪存的量产的片上微控制器,所述片上微控制器包括:串行闪存控制器:所述串行闪存控制器与片外串行闪存通信连接;所述串行闪存控制器用于在所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道;命令容器探测单元:所述命令容器探测单元分别与片外串行闪存和安全算法验证单元通信连接;所述命令容器探测单元用于在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器,并将所述量产烧录容器发送至所述安全算法验证单元;安全算法验证单元:所述安全算法验证单元分别与所述命令容器探测单元和命令容器处理单元通信相连,所述安全算法验证单元用于接收所述命令容器探测单元发送的量产烧录容器,对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,将所述量产烧录容器发送至所述命令容器处理单元;命令容器处理单元:所述命令容器处理单元分别与所述安全算法验证单元和片上模块通信相连,所述命令容器处理单元用于接收所述安全算法验证单元发送的所述量产烧录容器,并基于所述量产烧录容器对所述片上模块执行烧录操作。
于本申请的第一方面的一些实施例中,所述预设格式的量产烧录容器包括:固件容器,所述固件容器用于指示所述量产烧录容器的命令容器元数据;命令容器,所述命令容器包含一个或多个命令块,每个命令块包含命令内容和命令尾部;每个命令内容包括一个或多个固件管理功能;每个命令块的尾部包含下一个命令内容的认证信息,响应于下一个命令内容的认证信息满足条件,对下一个命令内容执行解析处理操作。
于本申请的第一方面的一些实施例中,所述命令容器探测单元在所述片外串行闪存中探测是否包含有预设格式的量产烧录容器的过程包括:基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器。
于本申请的第一方面的一些实施例中,基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器的过程包括:从片外串行闪存的起始地址开始,以片外串行闪存的擦除粒度为步长,对所述片外串行闪存进行遍历;将每次遍历读取到的数据块的数据内存与预设格式的量产烧录容器进行比对;响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征一致,读取量产烧录容器头部信息,并执行数据安全验证操作;响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征不一致,判断当前访问偏移量是否小于片外串行闪存的内存大小,若当前访问偏移量小于片外串行闪存的内存大小,按片外串行闪存的擦除粒度的大小增加访问偏移,并继续对所述片外串行闪存执行遍历;否则,退出当前量产流程。
于本申请的第一方面的一些实施例中,所述安全算法验证单元包括:数字签名验证模块,对称加解密模块以及安全哈希算法模块中的一种或多种。
于本申请的第一方面的一些实施例中,所述命令容器处理单元包括:命令容器解析引擎、定时器触发引擎、配置保存与触发模块、存储器读写模块、自定义命令交互执行模块以及通用片外读写应用程序接口中的一种或多种。
于本申请的第一方面的一些实施例中,所述命令容器处理单元基于所述量产烧录容器对所述片上模块执行烧录操作的过程包括:依次加载并验证所述量产烧录容器的命令容器中的每个命令块;响应于所述量产烧录容器的命令容器中的当前命令块通过验证,对当前命令块进行命令内容解析,根据解析结果对所述片上模块执行对应的固件管理功能,并在对应的固件管理功能执行完毕后,判断是否到达所述量产烧录容器的量产尾部;若已到达所述量产烧录容器的量产尾部,则完整量产任务;若未到达所述量产烧录容器的量产尾部,加载并验证所述量产烧录容器的命令容器中的下一命令块,并重复执行进行命令内容解析和固件管理功能。
于本申请的第一方面的一些实施例中,所述串行闪存控制器在所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道的过程包括:获取所述片外串行闪存的参数信息;基于片外串行闪存的参数信息,配置所述串行闪存控制器的访问序列和访问参数;基于所述串行闪存控制器的访问序列和访问参数,使用通用片外闪存读写应用程序对所述片外串行闪存进行接口配置,以实现对所述片外串行闪存进行访问。
为实现上述目的及其他相关目的,本申请的第二方面提供一种基于串行闪存的量产方法,所述方法应用于片上微控制器,所述方法包括:与所述片外串行闪存之间构建数据传输管理通道;在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器;对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对所述片上模块执行烧录操作。
为实现上述目的及其他相关目的,本申请的第三方面提供一种基于串行闪存的量产系统,所述系统包括片外串行闪存,片上微控制器以及片上模块,所述系统的交互过程包括:所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道;所述片上微控制器在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器;所述片上微控制器对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对所述片上模块执行烧录操作。
如上所述,本申请的基于串行闪存的量产片上微控制器、方法及系统,具有以下有益效果:支持按闪存最优块尺寸进行擦除的方式,显著节约了总体量产时间,提高了效率;支持配置量产状态指标,使得量产过程的透明度得以提升;支持用户自定义指令的加载与执行,实现了更加复杂的量产交互逻辑,满足了客户的多样化需求;此外,所有操作均在安全启动和加密启动的双重保护下进行,最大限度地保证了量产实施过程中的安全性和保密性。
附图说明
图1显示了本申请基于串行闪存的量产的片上微控制器一实施例的结构示意图。
图2显示了本申请基于串行闪存的量产系统一实施例的结构示意图。
图3显示了本申请基于串行闪存的量产的片上微控制器一实施例中预设格式的量产烧录容器的结构示意图。
图4显示了本申请基于串行闪存的量产的片上微控制器一实施例中量产烧录容器探测模块进行探测与验证的流程示意图。
图5显示了本申请基于串行闪存的量产的片上微控制器一实施例中命令容器处理过程的流程示意图。
图6显示了本申请基于串行闪存的量产方法一实施例的流程示意图。
图7显示了本申请基于串行闪存的量产系统一实施例中交互过程的流程示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
<1>片上微控制器:片上微控制器是集成在芯片上的微型计算机,包含中央处理器(CPU)、内存 (RAM) 和外设,负责控制芯片的运行。
<2>片外串行闪存:片外串行闪存是独立于芯片外部的闪存芯片,通过串行接口(SPI, I2C 等) 与芯片通信,用于存储数据。
<3>片上模块:片上模块是指芯片内部专门用于执行特定功能的模块,例如模拟数字转换器 (ADC) 将模拟信号转换为数字信号,数字模拟转换器 (DAC) 将数字信号转换为模拟信号,定时器用于精确计时,串口用于与其他设备进行串行通信。
<4>命令容器探测:命令容器探测是数据处理流程中的一步,用于识别和定位包含命令信息的数据块,通常通过分析数据流中的特定标识符或数据结构来完成。
<5>命令容器处理:命令容器处理是指对命令容器进行解析、验证和执行的过程。首先解析命令容器中的命令和参数,然后进行验证确保命令合法有效,最后根据命令执行相应的操作。
<6>固件容器:固件容器是一个包含了芯片运行所需的程序代码和配置信息的文件或数据结构,用于更新或升级芯片的功能。
<7>命令容器:命令容器是一个数据结构,其包含了用于控制芯片行为的命令和相关参数。例如,一个控制芯片LED灯亮度的命令容器可能包含“LED_ON”命令和亮度值。
<8>擦除粒度:擦除粒度是指闪存芯片进行擦除操作时能够擦除的最小数据单元。闪存芯片不能擦除单个字节,而是需要擦除一个扇区或一个块。
<9>内存块:内存块是指内存中的一块连续的存储空间,用于存储数据。每个内存块都有一个唯一的地址,程序可以通过地址访问该块中的数据。
<10>逐字节比较法:逐字节比较法用于比较两个数据流是否相同。其逐个字节比较两个数据流,如果所有字节都相同,则认为两个数据流相同。
<11>特征码比较法:特征码比较法通过比较数据流中的特定特征码来判断数据流是否相同。特征码是数据流中特定位置的一段数据,用于识别数据流的类型或版本。
<12>擦除操作:擦除操作是指将闪存芯片中的所有数据清除,使其恢复到出厂时的初始状态。
<13>数字签名验证:数字签名验证是一种安全机制,用于验证数据的完整性和来源。其使用数字签名算法,对数据进行加密,生成数字签名,并将其附加到数据上。接收方可以通过验证数字签名来确保数据的完整性和来源可靠。
<14>对称加解密:对称加解密是一种加密方法,其使用相同的密钥进行加密和解密。加密方和解密方需要共享同一个密钥,只有拥有密钥的人才能对数据进行解密。
<15>安全哈希算法:安全哈希算法是一种将任意长度的数据转换为固定长度的哈希值的算法。哈希值是数据的指纹,可以用来验证数据的完整性和不可篡改性。
<16>JESD216标准:JESD216标准是串行闪存芯片的接口标准,其定义了串行闪存芯片与其他芯片之间通信的协议,包括数据传输格式、时序等。
<17>ESDSA-P256算法:ESDSA-P256算法是一种椭圆曲线数字签名算法,其使用椭圆曲线密码学来生成和验证数字签名,可以确保数据的完整性和来源可靠。
<18>AES-CBC加密算法:AES-CBC加密算法是一种常用的对称加密算法,其将数据分成若干块,并使用相同的密钥对每一块进行加密。
<19>片上一次性编程器:片上一次性编程器是一种专门用于对芯片进行一次性编程的器件,其只能编程一次,之后就无法再进行更改了。
<20>片上SRAM:片上SRAM是一种速度很快的内存,但其是一种易失性存储器,一旦断电,存储的数据就会丢失。其通常用于存储程序代码、工作数据等需要快速访问的数据。
为便于理解本申请实施例,首先结合图1详细说明。图1展示了本发明实施例中的一种基于串行闪存的量产的片上微控制器的结构示意图。本实施例中的基于串行闪存的量产的片上微控制器主要包括如下各单元:
串行闪存控制器101:所述串行闪存控制器与片外串行闪存通信连接;所述串行闪存控制器用于在所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道。
在本发明一实施例中,所述串行闪存控制器在所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道的过程包括:获取所述片外串行闪存的参数信息;基于片外串行闪存的参数信息,配置所述串行闪存控制器的访问序列和访问参数; 基于所述串行闪存控制器的访问序列和访问参数,使用通用片外闪存读写应用程序对所述片外串行闪存进行接口配置,以实现对所述片外串行闪存进行访问。
本实施例中,串行闪存控制器实现了一套基本的串行闪存的操作逻辑,配合通用片外闪存读写程序,以兼容市面上主流的串行闪存。该串行闪存控制器提供灵活的配置选项,可以根据片外串行闪存的特性定制相应的访问序列。这一部分与通用片外闪存读写应用程序接口结合,实现了对市面上主流串行闪存的无感知支持。通过这样的设计,用户能够轻松地与不同品牌和类型的串行闪存进行交互,而无需关注底层实现细节。
在本实施例中,片外串行闪存的参数信息包括但不限于:闪存类型(如NOR闪存或NAND闪存)、存储容量(例如8MB、16MB等)、页大小(每个写操作的字节数,如256字节)、块大小(每个擦除操作的字节数)、时钟频率(闪存操作的最大工作频率,决定读写速度)、访问延迟(读写操作所需的时间)以及接口协议(如SPI或QSPI)中的一种或多种参数信息。
在本实施例中,配置串行闪存控制器的访问序列和访问参数的过程旨在实现对多种量产接口(如串口、USB、SPI、SWD和JTAG)的兼容性。其过程包括:首先,设计访问序列,明确设备选择,发送操作命令(如读取、写入或擦除命令),提供相应的数据地址,并执行数据传输(读取或写入);其次,配置访问参数,包括设置时钟频率(确保与闪存的最大工作频率匹配)、选择总线宽度(如单通道、双通道或四通道)以及确定传输方式(全双工或半双工);随后,确保电气特性(如电压水平和信号完整性)和物理连接(如接口引脚或适配器)兼容不同的量产接口,以避免因电气不匹配引起的故障;最后,整合相应的软件驱动程序和中间件层,使得量产接口能够以统一的方式访问和管理多种接口。
在本实施例中,基于串行闪存控制器的访问序列和访问参数,使用通用片外闪存读写应用程序对片外串行闪存进行接口配置的过程包括如下步骤:解析闪存的参数信息,所述参数信息包括闪存类型、存储容量以及访问延迟中的一种或多种,以确定最佳的配置方式;向串行闪存控制器发送初始化命令,确保设备选择、命令发送和地址配置正确无误;配置访问参数,如设定时钟频率、总线宽度和传输模式,以适应不同的量产接口;执行实际的读写操作,通过标准化的接口与片外串行闪存进行数据交互,以实现对闪存的有效访问和管理。
进一步地,所述通用片外闪存读写应用程序为用于与各种类型的片外串行闪存进行交互和管理的软件工具。通用片外闪存读写应用程序支持多种接口协议,包括SPI、I2C、USB等,以确保在不同硬件环境中的适应性和兼容性。通用片外闪存读写应用程序的核心功能包括初始化闪存设备、执行读取和写入操作、擦除存储区、查询设备状态以及配置访问参数等。它通过标准的命令和数据格式,与串行闪存控制器进行数据通信,从而实现灵活的量产接口配置。
图2展示了本发明一实施例中的基于串行闪存的量产系统的结构示意图。所述系统中包括:基于串行闪存的量产的片上微控制器、基于串行闪存的量产的片外串行闪存15以及基于串行闪存的量产的片上模块12。其中,片上微控制器为本申请的主要创新点,所述片上微控制器中包括:片上启动代码1,片上启动代码1中包含有安全算法软硬模块2、命令容器探测模块6、命令容器处理模块7以及串行闪存控制器14。所述安全算法软硬模块2包括:数字签名验证模块3、对称加解密模块4以及安全哈希算法模块5。命令容器处理模块7中包括:命令容器解析引擎8、定时器触发模块9、配置保存与触发模块10、存储读写模块11、自定义命令交互执行模块12以及通用片外闪存读写应用程序接口13。片上模块12包括存储器模块16和片上外设21。其中存储器模块16包括:存储保护单元17、片上闪存18、片上一次性编程器19以及片上SRAM20。片上外设21支持GPIO、UART、SPI、I2C、CAN、USB、以太网等方式进行通信连接。
命令容器探测单元102:所述命令容器探测单元分别与片外串行闪存和安全算法验证单元通信连接;所述命令容器探测单元用于在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器,并将所述量产烧录容器发送至所述安全算法验证单元。
在本发明一实施例中,所述预设格式的量产烧录容器包括:固件容器,所述固件容器用于指示所述量产烧录容器的命令容器元数据;命令容器,所述命令容器包含一个或多个命令块,每个命令块包含命令内容和命令尾部;每个命令内容包括一个或多个固件管理功能;每个命令块的尾部包含下一个命令内容的认证信息,响应于下一个命令内容的认证信息满足条件,对下一个命令内容执行解析处理操作。
图3展示了本发明一实施例中,所述预设格式的量产烧录容器的结构示意图。其中包含有固件容器和命令容器。固件容器采用组织固件结构的标准化打包方式,将多个固件组件整合在一起,并提供必要的管理信息。命令容器通过每个命令块的认证机制,有效地保障了命令执行的安全性和稳定性,防止非法命令的执行。
进一步地,固件容器中包含有固件容器头、固件信息表、设备配置块、签名块以及FW Blob模块。其中,固件容器头中包含重要的元数据,包括签名信息、加密相关信息、固件容器大小、命令容器开始偏移、版本信息和校验和中的要一种或多种元数据,以用于验证固件的完整性和来源。固件信息表包括各个固件组件的名称、大小、类型、地址和版本信息,以用于管理和识别组件。设备配置块用于存储设备的硬件和软件配置信息,如处理器类型、内存大小、外设信息、操作系统版本、网络配置和应用程序配置等。签名块包含用于验证固件容器完整性的数字签名,通常由认证机构签署。FW BLOB(Firmware Binary Large Object)模块指的是一种用于存储固件的数据格式。在嵌入式系统和硬件设备中,固件是控制硬件操作的程序或软件,其存储在设备的内部存储器中,如闪存。BLOB用于表示存储大量二进制数据的方法,常用于在数据库或存储系统中。FW BLOB用于将固件打包成一个大的二进制文件,以便在设备上进行存储和更新。
进一步地,命令容器由一系列独立的命令块组成,每个命令块包含命令内容和命令尾部。命令内容部分包含具体的指令操作,所述操作指令配置存储器、擦除区域、写入数据、配置运行状态指示外设、加载自定义小程序等。为了确保命令的安全执行,每个命令块的尾部都包含了用于验证下一个命令的认证信息,只有满足认证条件,下一个命令才能被正确解析和处理。本发明中的命令容器有效地防止了非法命令的执行,保障了系统的安全性和稳定性。
在本发明一实施例中,所述命令容器探测单元在所述片外串行闪存中探测是否包含有预设格式的量产烧录容器的过程包括:基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器。
在本实施例中,命令容器探测模块用于在片外串行闪存中定位和识别命令容器。其根据闪存的擦除粒度,在相应的偏移地址处进行探测,并通过分析命令容器的特征(如特定数据结构、校验和或标志位)来确认其存在。示例性地,若片外串行闪存的擦除粒度为4KB,命令容器起始地址为0x10000,则探测模块从0x10000开始,以4KB为步长,逐个检查每个擦除块,以寻找预定义的特征,如"CMD_CONTAINER"字节序列。如果找到特征,则判定该块包含命令容器,并记录其起始地址。
在本发明一实施例中,基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器的过程包括:从片外串行闪存的起始地址开始,以片外串行闪存的擦除粒度为步长,对所述片外串行闪存进行遍历;将每次遍历读取到的数据块的数据内存与预设格式的量产烧录容器进行比对;响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征一致,读取量产烧录容器头部信息,并执行数据安全验证操作;响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征不一致,判断当前访问偏移量是否小于片外串行闪存的内存大小,若当前访问偏移量小于片外串行闪存的内存大小,按片外串行闪存的擦除粒度的大小增加访问偏移,并继续对所述片外串行闪存执行遍历;否则,退出当前量产流程。
本实施例中,将每次遍历读取到的数据块的数据内存与预设格式的量产烧录容器进行比对的算法包括逐字节比较算法或特征码比较的算法。逐字节比较算法直接将两个数据块的每个字节进行对比,适用于数据块长度较小的情况,但效率较低且对数据敏感。而特征码比较算法通过计算数据块的特征码进行比对,例如使用 CRC 校验码、MD5 或 SHA-256哈希算法,可以快速比较较大的数据块。
本实施例中允许用户根据需求灵活设置擦除范围,不受固定大小限制。这种灵活的擦除方式,结合搜索结果(块对齐区域)进行擦除,可以实现高效的擦除操作。然而,现有的系统设计存在局限性,强制要求从固定的片外闪存4KB偏移处解析和执行量产操作,导致只能以小于或等于4KB的粒度擦除闪存。这种设计限制了利用更大擦除粒度来提高擦除效率的可能性。例如,当需要擦除64KB的闪存空间时,使用4KB粒度需要进行16次擦除操作,而使用64KB粒度只需要进行一次擦除操作,效率差距明显,从而解决了现有技术中存在的片外闪存颗粒度受限,从而影响的擦除效率的问题。
图4展示了本发明一实施例中,量产烧录容器探测模块进行探测与验证的流程示意图。当片上启动代码上电并开始执行后,首先是否符合探测与验证的触发条件,若符合触发条件,则按FLASH块大小依次搜索量产烧录容器的特征。若检测到量产烧录容器的特征,加载量产烧录容器中的固件容器头并进行验证,若通过验证则进入命令容器处理子过程,否则退出该量产流程。若未检测到量产烧录容器的特征,则进一步判断是否到达闪存尾部,若已到达闪存尾部,则退出该量产流程,否则按FLASH块大小增加访问偏移。
安全算法验证单元103:所述安全算法验证单元分别与所述命令容器探测单元和命令容器处理单元通信相连,所述安全算法验证单元用于接收所述命令容器探测单元发送的量产烧录容器,对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,将所述量产烧录容器发送至所述命令容器处理单元。
在本发明一实施例中,所述安全算法验证单元包括:数字签名验证模块,对称加解密模块以及安全哈希算法模块中的一种或多种。
在本实施例中,数字签名验证模块基于公钥密码学原理,通过验证数字签名来验证片外数据的完整性和来源,所述数字签名验证的过程包括:获取片外数据对应的数字签名,使用片上系统的公钥对数字签名进行验证。若验证成功,则认为片外数据完整且来自合法来源。采用片外串行闪存使用私钥对数据进行签名,以生成数字签名,片上启动代码使用片外串行闪存的公钥对数字签名进行验证,若验证通过,则说明数据没有被篡改,且来自合法来源。
在本实施例中,对称加解密模块使用同一个密钥进行加密和解密操作,确保片外数据传输过程中的安全性。所述对称加解密模块的验证过程包括:使用密钥对片外数据进行加密,使用相同的密钥对加密后的数据进行解密。若解密成功,则认为数据没有被窃取或篡改。采用对称加密算法使用同一个密钥进行加密和解密操作。加密过程将明文转换为密文,解密过程将密文转换为明文。
在本实施例中,安全哈希算法模块使用哈希算法计算片外数据的摘要,用于校验数据的完整性。所述安全哈希算法模块的验证过程包括:计算片外数据的哈希值,将计算得到的哈希值与存储的哈希值进行比较。若两个哈希值相同,则认为数据没有被篡改。采用哈希算法将任意长度的数据转换为固定长度的哈希值。即使数据发生微小的变化,其哈希值也会发生很大变化。可以使用哈希值来验证数据的完整性。
命令容器处理单元104:所述命令容器处理单元分别与所述安全算法验证单元和片上模块通信相连,所述命令容器处理单元用于接收所述安全算法验证单元发送的所述量产烧录容器,并基于所述量产烧录容器对所述片上模块执行烧录操作。
在本发明一实施例中,所述命令容器处理单元包括:命令容器解析引擎、定时器触发引擎、配置保存与触发模块、存储器读写模块、自定义命令交互执行模块以及通用片外读写应用程序接口中的一种或多种。
在本发明一实施例中,命令容器解析模块用于解析命令容器中存储的各种命令,并根据解析结果依次执行相应的动作,例如擦除闪存或点亮错误指示灯。该模块首先会对接收到的命令进行解析,确定命令的类型和参数,然后根据所需的操作执行相应的功能。在执行过程中,模块会注意执行的顺序和条件,以确保正确反映用户的意图。这种设计可以确保片上模块在不同状态下对各种事件做出适当响应,从而提高系统的稳定性和可靠性。
在本发明一实施例中,定时器触发引擎用于定时执行用户定义的操作,能够在特定时间间隔内自动进行某些动作,例如正在运行时闪烁指示灯。此模块通过设置计时器,依据用户的预设时间间隔周期性执行特定任务,提升了片上模块的动态响应能力和可交互性。用户可以根据需要调整定时器的设置,例如修改闪烁频率或持续时间,以实现个性化的功能。
在本发明一实施例中,配置保存与触发模块用于保存量产程序中指示的动作序列以及触发条件。这意味着用户在配置设备时,可以设定各种行为规范,例如指示灯对应的引脚、闪烁的频率等。每当设备启动或重置时,该模块会根据保存的配置迅速恢复到先前的状态,从而确保一致性和稳定性。较为优选地,该模块还提供了简便的界面使得用户在配置的过程中不会感到困惑,能够轻松管理和更新动作序列与触发条件。
在本发明一实施例中,存储器读写模块用于片上存储器模块或外挂串行闪存等的擦写、读取和写入操作。该模块支持多种存储器,确保数据的安全存取,并有效地管理内存资源。在读写过程中,模块要处理多种状态,例如忙等待、错误处理等,以确保数据的一致性和准确性,以实现数据的持久化和灵活管理。
在本发明一实施例中,自定义命令交互执行模块用于加载并执行其指定的小程序,提供了高度的灵活性和扩展性。用户可以根据需求编写和上传小程序,这些程序可以完成特定的任务或与系统的其他部分进行交互。模块在执行小程序之前,会对其进行安全性和兼容性检查,以防止潜在的错误或安全漏洞。这种设计不仅提高了系统的可定制性,还使得系统能够快速适应不断变化的需求和应用场景。
进一步地,通过自定义命令交互执行模块可以在片上模块实现多种功能的小程序以满足不同应用需求。示例性地,LED控制小程序通过串口命令控制LED的状态,包括开、关和闪烁等功能。温度监测与报警小程序实时读取温度传感器数据,并在温度超出设定阈值时触发报警。数据记录和存储小程序定期采集环境传感器数据,并存储以便后续分析。通过串口命令解析与执行小程序,用户可以发送自定义命令,系统解析并执行相应操作。实时钟和定时唤醒小程序在低功耗状态下保持时间精度并具定时唤醒功能。自定义任务调度小程序根据用户设定策略定时执行一系列操作,如定期启用设备或采集数据。简单用户交互界面小程序提供基础输入界面,便于调整设备状态。远程固件更新小程序支持通过网络接收和烧录新固件,优化设备更新过程。这些小程序增强了片上模块的应用能力。
在本发明一实施例中,通用片外闪存读写应用程序接口为基于JESD216标准实现的接口,支持市面上主流的片外串行闪存(Serial NOR)。该接口的设计旨在提供统一的操作方法,使开发者能够以一致的方式进行数据读取和写入,增加了系统的通用性和可移植性。通过这个接口,开发者可以快速实现对多种类型闪存的支持,而无需考虑具体的硬件实现细节,从而节省开发时间和成本。此接口在满足市场需求的同时,也能提升系统的整体性能和稳定性。其中,JESD216指JEDEC(固态技术协会)制定的关于串行NOR闪存的标准,旨在规范闪存的接口和性能特点,促进市场的统一和兼容性。
在本发明一实施例中,所述命令容器处理单元基于所述量产烧录容器对所述片上模块执行烧录操作的过程包括:依次加载并验证所述量产烧录容器的命令容器中的每个命令块;响应于所述量产烧录容器的命令容器中的当前命令块通过验证,对当前命令块进行命令内容解析,根据解析结果对所述片上模块执行对应的固件管理功能,并在对应的固件管理功能执行完毕后,判断是否到达所述量产烧录容器的量产尾部;若已到达所述量产烧录容器的量产尾部,则完整量产任务;若未到达所述量产烧录容器的量产尾部,加载并验证所述量产烧录容器的命令容器中的下一命令块,并重复执行进行命令内容解析和固件管理功能。
在本发明一实施例中,片上模块在片上代码以及片外串行闪存的协同下进行量产烧录的过程包括如下步骤:用户的片上启动程序被烧写到片外串行闪存的256KB偏移处,具备多项关键功能,以确保设备在量产过程中的安全与高效。首先,片上启动程序通过使用ESDSA-P256算法进行数字签名,并采用AES-CBC加密算法进行加密,以确保程序的完整性与安全性。在量产过程开始后,通过片上启动程序将片上模块中的PA10引脚设置为运行指示灯,当烧录过程正常运行时,将该引脚设置为每100毫秒闪烁一次,以明确指示程序的运行状态。
进一步地,为了及时反馈量产过程中可能出现的问题,将PA11引脚设置为量产失败指示灯,若出现故障,则该引脚设置为每500毫秒闪烁一次,以提醒用户注意烧录过程发生故障。随后,片上启动程序将执行擦除并烧写用户程序到片外闪存的4KB偏移处,以确保用户程序被正确加载。
图5展示了本发明一实施例中,命令容器处理过程的流程示意图。在量产烧录容器通过验证后,启动命令容器解析,加载并验证第一个命令快,并判断所述量产烧录容器是否通过了验证,若通过了验证则进一步对其中的命令块内容进行解析。其中命令块的结构如图3所示。每个命令块中包含有命令内容以及命令尾部,其中命令尾部包含有下一命令的相关信息。以进一步提升安全性。所解析的命令块内容包含有配置运行状态指示、配置存储器、擦除存储器、写入存储器、加载运行定义指令(程序)以及复位。并在当前命令块执行完毕后判断是否已经到达了量产烧录容器的尾部,若已经到达尾部则完成当前量产过程,否则加载并验证下一命令块。若未通过验证则退出当前量产程序。
进一步地,程序将安全启动密钥的哈希值写入片上一次性编程器,进一步保障启动过程的安全性,并烧写生命周期相关代码,以有效管理设备的使用周期,确保其稳定运行。在完成安全设置后,片上启动程序将加载一段专门的片定义指令,该指令配置UART并与量产机台进行通信,以实现产品序列号的烧录。当序列号录入完成后,程序将返回相应的命令序列,以便进行后续处理。最后,片上启动程序在完成上述所有操作后,会执行擦除片上启动程序本身,并重启片上模块的芯片,从而顺利完成产品的整个量产过程。在此期间,片上启动代码将按照图4所示的步骤完成量产所需命令容器的探测和验证,然后依照图5所示的流程,完成命令容器的解析与执行。通过这一系列相互关联的步骤,片上启动程序确保了用户设备的安全、正确烧录及完整性,从而实现高效的量产流程。
进一步地,烧录片上模块的命令块包含以下操作:配置运行状态指示,用于确认模块是否已成功启动并正常工作,例如点亮 LED 灯或设置状态寄存器。配置存储器,设置模块内部存储器的类型、大小和访问方式,确保程序和数据能正确存储和读取。擦除存储器,将存储器恢复到初始状态,为新的程序和数据腾出空间。写入存储器,将新的程序代码和相关数据传输到模块的存储器中,以便模块能够运行程序和访问数据。加载运行定义指令(程序),将程序代码加载到模块的存储器中,使其能够运行程序。复位,将模块重置到初始状态,清除内部状态寄存器,停止程序运行,以便进行新的烧录操作。
应理解,本申请实施例中对单元以及模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词表示例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c或a-b-c,其中a,b,c可以是单个,也可以是多个。
图6是本申请实施例提供的串行闪存的量产方法的流程示意图,所述方法应用于片上微控制器。如图6所示,所述方法包括如下步骤:
步骤S61:与所述片外串行闪存之间构建数据传输管理通道。
步骤S62:在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器。
步骤S63:对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对所述片上模块执行烧录操作。
应理解,各流程步骤执行上述相应步骤的具体过程在上述片上微控制器的实施例中已经详细说明,为了简洁,在此不再赘述。
图7展示了本申请基于串行闪存的量产系统一实施例的的交互过程示意图,所述系统包括片外串行闪存,片上微控制器以及片上模块,所述系统的交互过程包括:
所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道;所述片上微控制器在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器;所述片上微控制器对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对所述片上模块执行烧录操作。
在本发明一实施例中,本方案的实施依赖于片上模块中的多个存储相关模块,以确保方案的可行性和安全性。具体而言,存储器模块中的存储保护单元用于防止在量产过程中非法代码的执行,从而增强系统的安全性。片上闪存和片上一次性编程器是量产方案的重要组成部分,主要用于实现对片上存储的编程和烧录。此外,片上SRAM则用于存储量产过程中所需的一些配置数据或用户自定义指令。同时,片上外设承担着指示量产状态的功能,并支持执行用户自定义指令及通信过程等操作。这些模块的协同工作保证了量产过程的顺利进行,进一步提升了整体系统的可靠性和用户体验。
应理解,各流程步骤执行上述相应步骤的具体过程在上述片上微控制器的实施例中已经详细说明,为了简洁,在此不再赘述。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(Illustrative Logical Block)和步骤(Step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,各功能单元的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令(程序)。在计算机上加载和执行计算机程序指令(程序)时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
综上所述,本申请提供基于串行闪存的量产片上微控制器、方法及系统,本发明提供了一种提高片上模块量产烧录效率和安全性的方法,通过片上微控制器及其片上启动代码,实现了高效安全的产品量产。可支持按内存最优块进行擦除,以优化烧录时间,提高烧录效率;同时还提供了配置选项,方便用户监控量产状态;此外还可支持用户自定义指令,满足更复杂的量产需求;并内置安全启动和加密机制,保障烧录过程的安全性和数据的保密性。从而有效提升了生产效率,保障了产品安全,满足了更复杂的量产需求。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (8)

1.一种基于串行闪存的量产的片上微控制器,其特征在于,所述片上微控制器包括:
串行闪存控制器:所述串行闪存控制器与片外串行闪存通信连接;所述串行闪存控制器用于在所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道,其过程包括:获取所述片外串行闪存的参数信息;基于片外串行闪存的参数信息,配置所述串行闪存控制器的访问序列和访问参数; 基于所述串行闪存控制器的访问序列和访问参数,使用通用片外闪存读写应用程序对所述片外串行闪存进行接口配置,以实现对所述片外串行闪存进行访问;
命令容器探测单元:所述命令容器探测单元分别与片外串行闪存和安全算法验证单元通信连接;所述命令容器探测单元用于在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器,并将所述量产烧录容器发送至所述安全算法验证单元;所述命令容器探测单元在所述片外串行闪存中探测是否包含有预设格式的量产烧录容器的过程包括:基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器;
安全算法验证单元:所述安全算法验证单元分别与所述命令容器探测单元和命令容器处理单元通信相连,所述安全算法验证单元用于接收所述命令容器探测单元发送的量产烧录容器,对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,将所述量产烧录容器发送至所述命令容器处理单元;
命令容器处理单元:所述命令容器处理单元分别与所述安全算法验证单元和片上模块通信相连,所述命令容器处理单元用于接收所述安全算法验证单元发送的所述量产烧录容器,并基于所述量产烧录容器对所述片上模块执行烧录操作。
2.根据权利要求1所述的基于串行闪存的量产的片上微控制器,其特征在于,所述预设格式的量产烧录容器包括:
固件容器,所述固件容器用于指示所述量产烧录容器的命令容器元数据;
命令容器,所述命令容器包含一个或多个命令块,每个命令块包含命令内容和命令尾部;每个命令内容包括一个或多个固件管理功能;每个命令块的尾部包含下一个命令内容的认证信息,响应于下一个命令内容的认证信息满足条件,对下一个命令内容执行解析处理操作。
3.根据权利要求1所述的基于串行闪存的量产的片上微控制器,其特征在于,基于片外串行闪存的擦除粒度,在片外串行闪存中探测与擦除粒度相对应的偏移位置,以确当前偏移位置是否包含有预设格式的量产烧录容器的过程包括:
从片外串行闪存的起始地址开始,以片外串行闪存的擦除粒度为步长,对所述片外串行闪存进行遍历;将每次遍历读取到的数据块的数据内存与预设格式的量产烧录容器进行比对;
响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征一致,读取量产烧录容器头部信息,并执行数据安全验证操作;
响应于读取到的数据块的数据内存与预设格式的量产烧录容器特征不一致,判断当前访问偏移量是否小于片外串行闪存的内存大小,若当前访问偏移量小于片外串行闪存的内存大小,按片外串行闪存的擦除粒度的大小增加访问偏移,并继续对所述片外串行闪存执行遍历;否则,退出当前量产流程。
4.根据权利要求1所述的基于串行闪存的量产的片上微控制器,其特征在于,所述安全算法验证单元包括:数字签名验证模块,对称加解密模块以及安全哈希算法模块中的一种或多种。
5.根据权利要求1所述的基于串行闪存的量产的片上微控制器,其特征在于,所述命令容器处理单元包括:命令容器解析引擎、定时器触发引擎、配置保存与触发模块、存储器读写模块、自定义命令交互执行模块以及通用片外读写应用程序接口中的一种或多种。
6.根据权利要求2所述的基于串行闪存的量产的片上微控制器,其特征在于,所述命令容器处理单元基于所述量产烧录容器对所述片上模块执行烧录操作的过程包括:
依次加载并验证所述量产烧录容器的命令容器中的每个命令块;
响应于所述量产烧录容器的命令容器中的当前命令块通过验证,对当前命令块进行命令内容解析,根据解析结果对所述片上模块执行对应的固件管理功能,并在对应的固件管理功能执行完毕后,判断是否到达所述量产烧录容器的量产尾部;若已到达所述量产烧录容器的量产尾部,则完整量产任务;若未到达所述量产烧录容器的量产尾部,加载并验证所述量产烧录容器的命令容器中的下一命令块,并重复执行进行命令内容解析和固件管理功能。
7.一种基于串行闪存的量产方法,其特征在于,所述方法应用于如权利要求1至6任一项所述的基于串行闪存的量产的片上微控制器,所述方法包括:
与片外串行闪存之间构建数据传输管理通道;
在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器;
对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对片上模块执行烧录操作。
8.一种基于串行闪存的量产系统,其特征在于,所述系统包括片外串行闪存,如权利要求1至6任一项所述的基于串行闪存的量产的片上微控制器以及片上模块,所述系统的交互过程包括:
所述片上微控制器和所述片外串行闪存之间构建数据传输管理通道;
所述片上微控制器在所述片外串行闪存中探测是否包含有预设特征的量产烧录容器,并在检测到包含有预设特征的量产烧录容器时读取所述量产烧录容器;
所述片上微控制器对所述量产烧录容器执行数据安全验证操作,并在通过数据安全验证操作后,基于所述量产烧录容器对片上模块执行烧录操作。
CN202411325932.3A 2024-09-23 2024-09-23 基于串行闪存的量产片上微控制器、方法及系统 Active CN119166564B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411325932.3A CN119166564B (zh) 2024-09-23 2024-09-23 基于串行闪存的量产片上微控制器、方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411325932.3A CN119166564B (zh) 2024-09-23 2024-09-23 基于串行闪存的量产片上微控制器、方法及系统

Publications (2)

Publication Number Publication Date
CN119166564A CN119166564A (zh) 2024-12-20
CN119166564B true CN119166564B (zh) 2025-09-30

Family

ID=93891143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411325932.3A Active CN119166564B (zh) 2024-09-23 2024-09-23 基于串行闪存的量产片上微控制器、方法及系统

Country Status (1)

Country Link
CN (1) CN119166564B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258631A (zh) * 2020-01-13 2020-06-09 广芯微电子(广州)股份有限公司 一种终端设备参数自动化量产系统及方法
CN115993976A (zh) * 2022-11-14 2023-04-21 广东德赛矽镨技术有限公司 一种电量管理产品烧录的方法,系统及烧录器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332931B1 (en) * 2008-09-04 2012-12-11 Marvell International Ltd. Processing commands according to authorization
TWI450099B (zh) * 2009-12-10 2014-08-21 Phison Electronics Corp 模擬可覆寫光碟裝置的儲存系統、控制器、電腦系統及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258631A (zh) * 2020-01-13 2020-06-09 广芯微电子(广州)股份有限公司 一种终端设备参数自动化量产系统及方法
CN115993976A (zh) * 2022-11-14 2023-04-21 广东德赛矽镨技术有限公司 一种电量管理产品烧录的方法,系统及烧录器

Also Published As

Publication number Publication date
CN119166564A (zh) 2024-12-20

Similar Documents

Publication Publication Date Title
US11741230B2 (en) Technologies for secure hardware and software attestation for trusted I/O
TW480443B (en) Virus resistant and hardware independent method of flashing system BIOS
TWI570592B (zh) 更新電腦韌體的系統、方法與電腦可讀取儲存媒體
US7318129B1 (en) Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller
US20080040580A1 (en) Microcontroller based flash memory digital controller system
US11354259B1 (en) Computer system configurations based on accessing data elements presented by baseboard management controllers
US12197368B2 (en) Component firmware interaction using hardware registers
CN104486355A (zh) 防止代码被恶意篡改的方法和装置
CN101018131A (zh) 一种具有功能选择装置的信息安全设备及其控制方法
CN107784226A (zh) 利用非对称加密算法防止代码被恶意篡改的方法及系统
CN119166564B (zh) 基于串行闪存的量产片上微控制器、方法及系统
US20150363712A1 (en) Systems and methods for distinguishing information handling system provider-supported information handling resource via system license
CN103164658A (zh) 配置文件保护方法及系统
CN116028100B (zh) 软件版本升级方法和电子设备
CN118295678A (zh) 一种基本输入输出系统固件烧写方法、装置及介质
CN116431186A (zh) 一种车载ecu的升级方法、装置及介质
US8001313B2 (en) Insertion and removal of computing cards in server I/O slots
CN119938072A (zh) 一种芯片离线烧录方法、系统、设备及介质
CN121233410A (zh) 一种固态硬盘的兼容性与可靠性测试方法
US10768816B2 (en) Method and apparatus to manipulate customer data without using the host interface
CN117271232A (zh) 处理系统、相关集成电路、设备和方法
CN119597323A (zh) 离线软件刷写方法及装置
CN121008811A (zh) 多通道芯片量产烧录装置、系统及方法
CN121187599A (zh) 整机软件集成方法以及整机软件集成系统
CN119172186A (zh) 一种设备网络唤醒控制方法、设备、存储介质及程序产品

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 201203 Shanghai Pudong New Area, China (Shanghai) Pilot Free Trade Zone, No. 57 Boxia Road, 1st Floor

Patentee after: Shanghai Xianji Semiconductor Technology Co.,Ltd.

Country or region after: China

Address before: 200120 Shanghai Pudong New Area, China (Shanghai) Free Trade Zone, Room 203, Building 3, No. 111 Xiangke Road

Patentee before: Shanghai Xianji Semiconductor Technology Co.,Ltd.

Country or region before: China