CN117573571A - 闪存芯片控制方法及系统 - Google Patents
闪存芯片控制方法及系统 Download PDFInfo
- Publication number
- CN117573571A CN117573571A CN202311586154.9A CN202311586154A CN117573571A CN 117573571 A CN117573571 A CN 117573571A CN 202311586154 A CN202311586154 A CN 202311586154A CN 117573571 A CN117573571 A CN 117573571A
- Authority
- CN
- China
- Prior art keywords
- logic
- signal
- flash memory
- memory chip
- interface
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 105
- 230000002093 peripheral effect Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 22
- 238000012544 monitoring process Methods 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 abstract description 20
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明提供一种闪存芯片控制方法及系统,该方法应用于闪存芯片控制系统,该系统包括:中央控制器CPU、复杂可编程逻辑器件CPLD和闪存芯片;CPLD配置有逻辑开关和控制模块;CPU通过逻辑开关与闪存芯片相连接;CPU通过接口集合与控制模块相连接;CPU需进行数据操作时,确定目标逻辑值序列,控制接口集合输出目标逻辑值序列对应的逻辑信号,生成数据操作对应的操作指令,经由逻辑开关将操作指令发送至闪存芯片;控制模块若监测到接口集合输出的逻辑信号为合法信号,则闭合逻辑开关,反之则断开逻辑开关。应用本发明的方法,可基于CPLD控制CPU与闪存芯片的连接状态,避免异常的操作指令到达闪存芯片,提高数据安全性。
Description
技术领域
本发明涉及数据存储技术领域,特别是涉及一种闪存芯片控制方法及系统。
背景技术
在嵌入式系统中,闪存(FLASH)芯片是常见的存储芯片之一。为保障FLASH芯片的数据安全性,通常会对FLASH芯片上的操作进行相应的控制,如进行写保护控制。
目前,一般是通过中央处理器(Central Processing Unit,CPU)对FLASH芯片进行控制。具体的,将CPU的通用输入/输出(General Purpose Input Output,GPIO)接口与FLASH芯片的写保护引脚相连接,FLASH芯片的写保护引脚即为WP引脚,若WP引脚信号为低电平,则表征写保护有效。CPU可通过GPIO接口向FLASH芯片的写保护引脚输出相应的控制信号,以对FLASH芯片进行写保护控制。
在实际的应用场景中,嵌入式系统的运行环境通常十分恶劣,容易受到强烈的外部电磁干扰。在现有的对于FLASH芯片的控制方式中,若CPU受到电磁干扰,可能会使CPU通过GPIO接口输出的信号翻转,导致对于FLASH芯片的写保护控制失效,故对于FLASH芯片的安全控制可靠性较差,使得FLASH芯片的数据安全性较差。
发明内容
有鉴于此,本发明实施例提供了一种闪存芯片控制方法,以解决现有的控制方式在受到电磁干扰时容易失效,对FLASH芯片的控制可靠性较差,导致数据安全性较差的问题。
本发明实施例还提供了一种闪存芯片控制系统,用以保证上述方法实际中的实现及应用。
为实现上述目的,本发明实施例提供如下技术方案:
一种闪存芯片控制方法,所述方法应用于闪存芯片控制系统,所述系统包括:中央控制器、复杂可编程逻辑器件和闪存芯片;所述复杂可编程逻辑器件中配置有逻辑开关和控制模块;所述中央控制器通过第一串行外设接口与所述逻辑开关相连接,所述逻辑开关通过第二串行外设接口与所述闪存芯片相连接;所述中央控制器通过接口集合与所述控制模块相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口;
所述方法包括:
所述中央控制器在需要对所述闪存芯片进行数据操作时,确定所述数据操作对应的目标逻辑值序列,控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令,并通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片;
所述控制模块实时监测所述接口集合输出的逻辑信号是否为合法信号;
所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关闭合,以使所述中央控制器与所述闪存芯片通讯连接;
所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关断开,以切断所述中央控制器与所述闪存芯片的通讯连接,实现对所述闪存芯片的安全控制。
上述的方法,可选的,所述确定所述数据操作对应的目标逻辑值序列,包括:
若所述数据操作为读数据操作,则将第一预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为写数据操作,则将第二预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为擦除数据操作,则将第三预设逻辑值序列作为所述目标逻辑值序列。
上述的方法,可选的,所述第一预设逻辑值序列为0101;
所述第二预设逻辑值序列为1011;
所述第三预设逻辑值序列为1100。
上述的方法,可选的,所述实时监测所述接口集合输出的逻辑信号是否为合法信号,包括:
对所述接口集合输出的逻辑信号进行信号识别,获得所述接口集合输出的逻辑信号所对应的实时信号逻辑值序列;
判断预设的多个合法信号逻辑值序列中,是否存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列;
若所述多个合法信号逻辑值序列中,存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号为合法信号;
若所述多个合法信号逻辑值序列中,不存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号并非合法信号。
上述的方法,可选的,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
上述的方法,可选的,还包括:
所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;
确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;
通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
上述的方法,可选的,所述确定所述操作类型对应的目标信号,包括:
若所述操作类型表征写数据操作或擦除数据操作,则将写保护解除信号作为所述目标信号;
若所述操作类型表征读数据操作,则将写保护信号作为所述目标信号。
一种闪存芯片控制系统,包括:
中央控制器、复杂可编程逻辑器件和闪存芯片;所述复杂可编程逻辑器件中配置有逻辑开关和控制模块;
所述中央控制器通过第一串行外设接口与所述逻辑开关相连接,所述逻辑开关通过第二串行外设接口与所述闪存芯片相连接;
所述中央控制器通过接口集合与所述控制模块相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口;
所述中央控制器,用于在需要对所述闪存芯片进行数据操作时,确定所述数据操作对应的目标逻辑值序列,控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令,并通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片;
所述控制模块,用于实时监测所述接口集合输出的逻辑信号是否为合法信号;在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关闭合,以使所述中央控制器与所述闪存芯片通讯连接;在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关断开,以切断所述中央控制器与所述闪存芯片的通讯连接,实现对所述闪存芯片的安全控制。
上述的系统,可选的,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块,还用于在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
上述的系统,可选的,所述控制模块,还用于在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
基于上述本发明实施例提供的一种闪存芯片控制方法,该方法应用于闪存芯片控制系统,该系统包括:中央控制器、复杂可编程逻辑器件和闪存芯片;复杂可编程逻辑器件中配置有逻辑开关和控制模块;中央控制器通过第一串行外设接口与逻辑开关相连接,逻辑开关通过第二串行外设接口与闪存芯片相连接;中央控制器通过接口集合与控制模块相连接;本发明实施例提供的方法包括:中央控制器在需要对闪存芯片进行数据操作时,确定该数据操作对应的目标逻辑值序列,控制接口集合输出与目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成数据操作对应的操作指令,并通过第一串行外设接口输出操作指令,以将操作指令发送至闪存芯片;控制模块实时监测接口集合输出的逻辑信号是否为合法信号;在接口集合输出的逻辑信号为合法信号的情况下,控制逻辑开关闭合,以使中央控制器与闪存芯片通讯连接;在接口集合输出的逻辑信号并非合法信号的情况下,控制逻辑开关断开,以切断中央控制器与闪存芯片的通讯连接,实现对闪存芯片的安全控制。应用本发明实施例提供的方法,可通过复杂可编程逻辑器件中的逻辑开关,对中央控制器与闪存芯片之间的通讯连接进行控制。中央控制器在正常运行过程中,在发送操作指令之前,会先向复杂可编程逻辑器件中的控制模块输出相应的逻辑信号,以使控制模块控制逻辑开关闭合。若是中央控制器处于被攻击或被干扰等异常状态,导致输出异常的操作指令,此时控制模块没有监测到接口集合输出相应的逻辑信号,则会使逻辑开关处于断开状态,异常的操作指令无法到达闪存芯片,有利于避免闪存芯片响应异常的操作指令,执行异常的数据操作,可提高闪存芯片的数据安全性。且复杂可编程逻辑器件基于硬件实现逻辑输出,其抗干扰能力较强,可提高对于闪存芯片安全控制的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种闪存芯片控制系统的结构示意图;
图2为本发明实施例提供的一种闪存芯片控制方法的方法流程图;
图3为本发明实施例提供的一种闪存芯片控制系统的又一结构示意图;
图4为本发明实施例提供的一种闪存芯片控制系统的软件程序的组成架构示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例提供了一种闪存芯片控制方法,所述方法应用于闪存芯片控制系统,所述闪存芯片控制系统的结构示意图可如图1所示。
所述闪存芯片控制系统包括:中央控制器101、复杂可编程逻辑器件102和闪存芯片103;所述复杂可编程逻辑器件102中配置有逻辑开关104和控制模块105;所述中央控制器101通过第一串行外设接口与所述逻辑开关104相连接,所述逻辑开关104通过第二串行外设接口与所述闪存芯片103相连接;所述中央控制器101通过接口集合与所述控制模块105相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口。
本发明实施例提供的方法可用于对嵌入式系统中的闪存芯片(即FLASH芯片)进行数据操作的安全控制,具体基于闪存芯片的控制系统实现,闪存芯片控制系统由中央控制器CPU、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)和闪存芯片组成。CPU即嵌入式系统中原有的、对闪存芯片进行数据操作的CPU。CPLD由逻辑开关和控制模块组成,CPU通过串行外设接口(Serial Peripheral Interface,SPI)与逻辑开关相连接,而逻辑开关通过SPI接口与闪存芯片相连接。也就是逻辑开关的两端配置为串行外设接口,CPU上的串行外设接口(即第一串行外设接口)与逻辑开关的一端相连接,而逻辑开关的另一端(即第二串行外设接口)与闪存芯片上的串行外设接口相连接。即CPU通过逻辑开关与闪存芯片相连接,可以理解的是,在逻辑开关处于闭合状态时,CPU与闪存芯片之间则可基于SPI信号通讯连接。而CPU上的多个GPIO接口(即第一接口)与控制模块相连接,控制模块可接收到CPU的各个GPIO接口输出的逻辑信号。
本发明实施例提供的方法的方法流程图可如图2所示,所述方法包括:
S201:所述中央控制器在需要对所述闪存芯片进行数据操作时,确定所述数据操作对应的目标逻辑值序列;
本发明实施例提供的方法中,可预先设置各类数据操作对应的逻辑值序列。当CPU需要对闪存芯片进行数据读写等数据操作时,可根据当前数据操作的类型,确定当前数据操作匹配的逻辑值序列,将该逻辑值序列作为目标逻辑值序列。目标逻辑值序列中包含多个逻辑值,各个逻辑值与接口集合中的各个第一接口一一对应。
S202:所述中央控制器控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令;
本发明实施例提供的方法中,CPU可以调用GPIO_SET()函数,控制接口集合中每个GPIO接口的输出状态。CPU可以根据目标逻辑值序列,确定每个GPIO接口对应的逻辑值,通过调用函数将每个GPIO接口的输出设置为与该GPIO接口对应的逻辑值相匹配的状态,以使接口集合输出与目标逻辑值序列相对应的逻辑信号。CPU完成接口集合输出信号的控制过程后,可以调用相应的数据操作函数,生成当前数据操作对应的操作指令。例如若当前的数据操作为读数据操作,则调用函数read(),若数据操作为写数据操作,则调用函数write(),如果数据操作为擦除数据操作,则调用函数erase()。
S203:所述中央控制器通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片;
本发明实施例提供的方法中,CPU通过与逻辑开关相连接的SPI接口输出操作指令,若逻辑开关处于闭合状态,该操作指令则可到达闪存芯片。
S204:所述控制模块实时监测所述接口集合输出的逻辑信号是否为合法信号;
本发明实施例提供的方法中,控制模块中预先设置有表征各类合法信号的信号值。控制模块可根据合法信号的信号值,实时监测CPU的接口集合输出的逻辑信号是否为合法信号。
需要说明的是,图2所示流程图仅是为了更好地说明本发明的方法所提供的示意图,并不是对实际应用场景中各操作的先后顺序进行限制。在实际的控制过程中,控制模块对于接口集合输出的逻辑信号的监测可以是实时持续进行的,与CPU是否发出操作指令没有先后顺序的关联。
S205:所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关闭合,以使所述中央控制器与所述闪存芯片通讯连接;
本发明实施例提供的方法中,当接口集合输出的逻辑信号为合法信号时,控制模块向逻辑开关发送指示开关闭合的控制信号,控制逻辑开关处于闭合状态,使CPU和闪存芯片之间基于SPI实现通讯连接。
S206:所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关断开,以切断所述中央控制器与所述闪存芯片的通讯连接,实现对所述闪存芯片的安全控制。
本发明实施例提供的方法中,当接口集合输出的逻辑信号并非合法信号时,控制模块向逻辑开关发送指示开关断开的控制信号,控制逻辑开关处于断开状态,以使CPU和闪存芯片之间无法建立通讯连接,CPU通过SPI接口发出的信号无法到达闪存芯片。
基于本发明实施例提供的方法,当中央控制器需要对闪存芯片进行数据操作时,可确定数据操作对应的目标逻辑值序列,控制接口集合输出与目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成数据操作对应的操作指令,并通过第一串行外设接口输出操作指令,以将操作指令发送至闪存芯片;控制模块实时监测接口集合输出的逻辑信号是否为合法信号;在接口集合输出的逻辑信号为合法信号的情况下,控制逻辑开关闭合,以使中央控制器与闪存芯片通讯连接;在接口集合输出的逻辑信号并非合法信号的情况下,控制逻辑开关断开,以切断中央控制器与闪存芯片的通讯连接。应用本发明实施例提供的方法,可通过复杂可编程逻辑器件中的逻辑开关,对中央控制器与闪存芯片之间的通讯连接进行控制。中央控制器在正常运行过程中,在发送操作指令之前,会先向复杂可编程逻辑器件中的控制模块输出相应的逻辑信号,以使控制模块控制逻辑开关闭合。若是中央控制器处于被攻击或被干扰等异常状态,导致输出异常的操作指令,此时控制模块没有监测到接口集合输出相应的逻辑信号,则会使逻辑开关处于断开状态,异常的操作指令无法到达闪存芯片,有利于避免闪存芯片响应异常的操作指令,执行异常的数据操作,可提高闪存芯片的数据安全性。且复杂可编程逻辑器件基于硬件实现逻辑输出,其抗干扰能力较强,可提高对于闪存芯片安全控制的可靠性。
在结合图1和图2所提供的方法的基础上,本发明实施例提供的方法中,步骤S201中提及的确定所述数据操作对应的目标逻辑值序列的过程,包括:
若所述数据操作为读数据操作,则将第一预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为写数据操作,则将第二预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为擦除数据操作,则将第三预设逻辑值序列作为所述目标逻辑值序列。
本发明实施例提供的方法中,预先按照数据操作类型设置了多个逻辑值序列,包括第一预设逻辑值序列、第二预设逻辑值序列和第三预设逻辑值序列。CPU可以根据当前数据操作的类别,在预设的各个逻辑值序列中,找到当前数据操作匹配的逻辑值序列,将其匹配的逻辑值序列作为目标逻辑值序列。
本发明实施例提供的方法中,第一预设逻辑值序列为读数据操作对应的逻辑值序列,第二预设逻辑值序列为写数据操作对应的逻辑值序列,第三预设逻辑值序列为擦除数据操作对应的逻辑值序列。
在上述实施例提供的方法的基础上,本发明实施例提供的方法中,所述第一预设逻辑值序列为0101;所述第二预设逻辑值序列为1011;所述第三预设逻辑值序列为1100。
本发明实施例提供的方法中,将序列0101作为第一预设逻辑值序列,将序列1011作为第二预设逻辑值序列,将序列1100作为第三预设逻辑值序列。也就是接口集合包括四个GPIO接口,如果当前数据操作为读数据操作,则目标逻辑值序列为0101,四个GPIO接口则输出与“0101”相匹配的逻辑信号。如果当前数据操作为写数据操作,则目标逻辑值序列为1011,四个GPIO接口输出与“1011”相匹配的逻辑信号。若当前的数据操作为擦除数据操作,则目标逻辑值序列为1100,四个GPIO接口输出与“1100”相匹配的逻辑信号。
需要说明的是,本发明实施例中提及的具体逻辑值序列和接口集合中的接口数目,仅是为了更好地说明本发明的方法所提供的具体实施例,在具体的应用场景中,可以根据实际需求设置各类数据操作对应的逻辑值序列,以及按需配置GPIO接口,不影响本发明实施例提供的方法实现功能。
在结合图1和图2所提供的方法的基础上,本发明实施例提供的方法中,步骤S204中提及的实时监测所述接口集合输出的逻辑信号是否为合法信号的过程,包括:
对所述接口集合输出的逻辑信号进行信号识别,获得所述接口集合输出的逻辑信号所对应的实时信号逻辑值序列;
本发明实施例提供的方法中,控制模块可根据接口集合中每个GPIO接口的输出,识别该接口集合输出的逻辑信号所对应的逻辑值序列,将该逻辑值序列作为实时信号逻辑值序列。
判断预设的多个合法信号逻辑值序列中,是否存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列;
本发明实施例提供的方法中,控制模块中预先设置有多个合法信号逻辑值序列,即表征合法信号的逻辑值序列,可以理解的是,各个合法信号逻辑值序列与前文实施例中提及的CPU中预设的各个逻辑值序列(如所谓第一预设逻辑值序列、第二预设逻辑值序列和第三预设逻辑值序列)是相对应的。
若所述多个合法信号逻辑值序列中,存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号为合法信号;
若所述多个合法信号逻辑值序列中,不存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号并非合法信号。
本发明实施例提供的方法中,控制模块可将实时信号逻辑值序列分别与每个合法信号逻辑值序列进行比对,如果某个合法信号逻辑值序列与实时信号逻辑值序列相同,则认为接口集合输出的逻辑信号为合法信号,如果每个合法信号逻辑值序列均与实时信号逻辑值序列不同,则认为接口集合输出的逻辑信号并非合法信号。
在结合图1和图2所提供的方法的基础上,本发明实施例提供的方法中,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
本发明实施例提供的方法中,控制模块中配置有作为输出接口的GPIO接口,该GPIO接口(即第二接口)与闪存芯片的写保护引脚相连接,写保护引脚即为闪存芯片的WP引脚。
控制模块在监测到接口集合输出的逻辑信号并非合法信号时,会控制第二接口输出写保护信号,使闪存芯片的写保护生效。
基于本发明实施例提供的方法,可以通过CPLD中的控制模块对闪存芯片的写保护状态进行控制,有利于进一步提高闪存芯片的数据安全性和控制可靠性。
在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:
所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;
本发明实施例提供的方法中,如果控制模块监测到接口集合输出的逻辑信号为合法信号,则根据接口集合输出的逻辑信号的信号值,确定其对应的操作类型,该操作类型表征CPU当前需要对闪存芯片进行的数据操作。
确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;
通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
本发明实施例提供的方法中,控制模块根据逻辑信号对应的操作类型,在写保护信号和写保护解除信号中,确定当前匹配的信号,将该信号作为目标信号。控制第二接口输出目标信号,以对闪存芯片的写保护状态进行控制,以便于CPU进行相应的数据操作。
在上述实施例提供的方法的基础上,本发明实施例提供的方法中,所述确定所述操作类型对应的目标信号的过程,包括:
若所述操作类型表征写数据操作或擦除数据操作,则将写保护解除信号作为所述目标信号;
若所述操作类型表征读数据操作,则将写保护信号作为所述目标信号。
本发明实施例提供的方法中,如果逻辑信号对应的操作类型表征写数据操作或擦除数据操作,即CPU当前需要对闪存芯片进行写数据操作或擦除数据操作,此时将写保护解除信号作为目标信号,以控制闪存芯片解除写保护。如果逻辑信号对应的操作类型表征读数据操作,则将写保护信号作为目标信号,以控制闪存芯片的写保护生效。
为了更好地说明本发明实施例提供的方法,在前文各个实施例提供的方法的基础上,结合实际的应用场景,本发明实施例提供了又一种闪存芯片控制方法,该方法用于对嵌入式系统中的FLASH芯片进行控制。该方法基于闪存芯片控制系统实现,该系统的结构示意图可如图3所示,系统由CPU、CPLD和FLASH芯片构成。CPU的SPI信号接口与CPLD的逻辑开关相连接,FLASH芯片的相应信号接口亦与逻辑开关相连接。FLASH的DI接口为其数据输入,CLK接口为FLASH的时钟输入,DO接口为FLASH的数据输出,WP#为FLASH的写保护引脚,也就是WP引脚,写保护信号低电平有效。CPU的GPIO1、GPIO2、GPIO3和GPIO4,四个GPIO接口与CPLD的控制模块相连接。
本发明实施例提供的方法中,闪存芯片控制系统中部署的软件程序的组成架构可如图4所示,CPU中配置有FLASH读写程序和GPIO控制程序,CPLD中配置有SPI接口开关逻辑模块和GPIO控制逻辑模块。
CPU的FLASH读写程序是标准程序,程序包含读数据函数read()、写数据函数write()和擦除数据函数erase()。GPIO控制程序包含函数GPIO_SET(),GPIO_SET()可以直接控制GPIO1、GPIO2、GPIO3、GPIO4的输出状态,输出状态为0或1。CPLD的GPIO控制逻辑模块基于GPIO控制程序的输出,向SPI接口开关逻辑模块输出SPI_ON信号,SPI接口开关逻辑模块基于SPI_ON信号切换逻辑开关的通断状态。
CPU基于FLASH读写程序将数据操作的操作指令通过SPI信号输出,若逻辑开关处于闭合状态,操作指令则经由逻辑开关到达FLASH芯片。CPLD中GPIO控制逻辑的真值表可如下表所示:
表1
读写擦除操作 | GPIO【3:1】 | SPI_ON | WP# |
合法读 | 0101 | 1 | 0 |
合法写 | 1011 | 1 | 1 |
合法擦除 | 1100 | 1 | 1 |
非法(写,擦除) | 未知 | 0 | 0 |
其中,GPIO【3:1】表示GPIO1、GPIO2、GPIO3、GPIO4的输出信号。
CPLD中SPI接口开关逻辑的真值表可如下表所示:
表2
SPI_ON | SPI信号通断 |
1 | 通 |
0 | 断 |
本发明实施例提供的闪存芯片控制过程,包括:
当CPU合法应用程序发起正常的读数据操作指令时,应用程序先调用GPIO_SET()函数,将GPIO【3:1】设置为0101,然后再调用FLASH读数据函数read()。GPIO控制逻辑检测到GPIO【3:1】为0101时,输出SPI_ON为1,输出WP#为0,此时CPU对于FLASH的读数据操作指令则进入FLASH,同时关闭了写操作。
当CPU合法应用程序发起正常的写数据操作指令时,应用程序先调用GPIO_SET()函数,将GPIO【3:1】设置为1011,然后再调用FLASH写数据函数write()。GPIO控制逻辑检测到GPIO【3:1】为1011时,输出SPI_ON为1,输出WP#为1,CPU对于FLASH的写数据操作指令进入FLASH。
当CPU合法应用程序发起正常的擦除数据操作指令时,应用程序先调用GPIO_SET()函数,将GPIO【3:1】设置为1100,然后再调用FLASH擦除数据函数erase()。当GPIO控制逻辑检测到GPIO【3:1】为1100时,输出SPI_ON为1,输出WP#为1,CPU对于FLASH的擦除数据操作指令则进入FLASH。
可以理解的是,若CPU受到攻击或干扰,异常程序(如非法攻击程序)发起数据操作指令时,由于异常程序不会去调用GPIO_SET()函数,因此GPIO【3:1】会输出默认值。GPIO控制逻辑检测到GPIO【3:1】不为0101、1011或1100时,输出SPI_ON为0,输出WP#为0,此时SPI接口开关逻辑模块将逻辑开关控制为断路状态,因此异常程序产生的数据操作指令不会进入FLASH,可以避免FLASH的数据误写和数据误擦除等异常操作。
需要说明的是,本发明实施例提供的具体GPIO接口、各类真值表等内容,仅是为了更好地说明本发明的方法所提供的具体实施例,在实际的应用过程中,可以根据实际需求配置真值表和所需的GPIO接口,可以理解的是,GPIO接口数量越多,其可靠性越高。
基于本发明实施例提供的方法,在合法的FLASH读、写、擦除数据请求下,CPU可以对FLASH进行正常的数据读写和擦除操作。当CPU遇到干扰,攻击等问题时,产生的非法FLASH读、写、擦除数据请求下,非法的操作指令不会到达FLASH。在嵌入式系统中,可以有效防止FLASH芯片的数据误写、误擦除,有利于提高嵌入式系统的可靠性。
与结合图1及图2所提供的闪存芯片控制方法相对应的,本发明实施例还提供了一种闪存芯片控制系统,用于对上述方法的具体实现,该系统的结构示意图可如图1所示,该系统包括:
中央控制器101、复杂可编程逻辑器件102和闪存芯片103;所述复杂可编程逻辑器件102中配置有逻辑开关104和控制模块105;
所述中央控制器101通过第一串行外设接口与所述逻辑开关104相连接,所述逻辑开关104通过第二串行外设接口与所述闪存芯片103相连接;
所述中央控制器101通过接口集合与所述控制模块105相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口;
所述中央控制器101,用于在需要对所述闪存芯片103进行数据操作时,确定所述数据操作对应的目标逻辑值序列,控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令,并通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片103;
所述控制模块105,用于实时监测所述接口集合输出的逻辑信号是否为合法信号;在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关104闭合,以使所述中央控制器101与所述闪存芯片103通讯连接;在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关104断开,以切断所述中央控制器101与所述闪存芯片103的通讯连接,实现对所述闪存芯片103的安全控制。
应用本发明实施例提供的系统,可通过复杂可编程逻辑器件中的逻辑开关,对中央控制器与闪存芯片之间的通讯连接进行控制。中央控制器在正常运行过程中,在发送操作指令之前,会先向复杂可编程逻辑器件中的控制模块输出相应的逻辑信号,以使控制模块控制逻辑开关闭合。若是中央控制器处于被攻击或被干扰等异常状态,导致输出异常的操作指令,此时控制模块没有监测到接口集合输出相应的逻辑信号,则会使逻辑开关处于断开状态,异常的操作指令无法到达闪存芯片,有利于避免闪存芯片响应异常的操作指令,执行异常的数据操作,可提高闪存芯片的数据安全性。且复杂可编程逻辑器件基于硬件实现逻辑输出,其抗干扰能力较强,可提高对于闪存芯片安全控制的可靠性。
在上述实施例提供的系统的基础上,本发明实施例提供的系统中,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块,还用于在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
在上述实施例提供的系统的基础上,本发明实施例提供的系统中,所述控制模块,还用于在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种闪存芯片控制方法,其特征在于,所述方法应用于闪存芯片控制系统,所述系统包括:中央控制器、复杂可编程逻辑器件和闪存芯片;所述复杂可编程逻辑器件中配置有逻辑开关和控制模块;所述中央控制器通过第一串行外设接口与所述逻辑开关相连接,所述逻辑开关通过第二串行外设接口与所述闪存芯片相连接;所述中央控制器通过接口集合与所述控制模块相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口;
所述方法包括:
所述中央控制器在需要对所述闪存芯片进行数据操作时,确定所述数据操作对应的目标逻辑值序列,控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令,并通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片;
所述控制模块实时监测所述接口集合输出的逻辑信号是否为合法信号;
所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关闭合,以使所述中央控制器与所述闪存芯片通讯连接;
所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关断开,以切断所述中央控制器与所述闪存芯片的通讯连接,实现对所述闪存芯片的安全控制。
2.根据权利要求1所述的方法,其特征在于,所述确定所述数据操作对应的目标逻辑值序列,包括:
若所述数据操作为读数据操作,则将第一预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为写数据操作,则将第二预设逻辑值序列作为所述目标逻辑值序列;
若所述数据操作为擦除数据操作,则将第三预设逻辑值序列作为所述目标逻辑值序列。
3.根据权利要求2所述的方法,其特征在于,所述第一预设逻辑值序列为0101;
所述第二预设逻辑值序列为1011;
所述第三预设逻辑值序列为1100。
4.根据权利要求1所述的方法,其特征在于,所述实时监测所述接口集合输出的逻辑信号是否为合法信号,包括:
对所述接口集合输出的逻辑信号进行信号识别,获得所述接口集合输出的逻辑信号所对应的实时信号逻辑值序列;
判断预设的多个合法信号逻辑值序列中,是否存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列;
若所述多个合法信号逻辑值序列中,存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号为合法信号;
若所述多个合法信号逻辑值序列中,不存在与所述实时信号逻辑值序列相同的合法信号逻辑值序列,则确定所述接口集合输出的逻辑信号并非合法信号。
5.根据权利要求1所述的方法,其特征在于,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
6.根据权利要求5所述的方法,其特征在于,还包括:
所述控制模块在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;
确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;
通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
7.根据权利要求6所述的方法,其特征在于,所述确定所述操作类型对应的目标信号,包括:
若所述操作类型表征写数据操作或擦除数据操作,则将写保护解除信号作为所述目标信号;
若所述操作类型表征读数据操作,则将写保护信号作为所述目标信号。
8.一种闪存芯片控制系统,其特征在于,包括:
中央控制器、复杂可编程逻辑器件和闪存芯片;所述复杂可编程逻辑器件中配置有逻辑开关和控制模块;
所述中央控制器通过第一串行外设接口与所述逻辑开关相连接,所述逻辑开关通过第二串行外设接口与所述闪存芯片相连接;
所述中央控制器通过接口集合与所述控制模块相连接;所述接口集合包括多个第一接口,每个所述第一接口为通用输入/输出接口;
所述中央控制器,用于在需要对所述闪存芯片进行数据操作时,确定所述数据操作对应的目标逻辑值序列,控制所述接口集合输出与所述目标逻辑值序列相对应的逻辑信号,在完成该控制过程后,生成所述数据操作对应的操作指令,并通过所述第一串行外设接口输出所述操作指令,以将所述操作指令发送至所述闪存芯片;
所述控制模块,用于实时监测所述接口集合输出的逻辑信号是否为合法信号;在所述接口集合输出的逻辑信号为合法信号的情况下,控制所述逻辑开关闭合,以使所述中央控制器与所述闪存芯片通讯连接;在所述接口集合输出的逻辑信号并非合法信号的情况下,控制所述逻辑开关断开,以切断所述中央控制器与所述闪存芯片的通讯连接,实现对所述闪存芯片的安全控制。
9.根据权利要求8所述的系统,其特征在于,所述控制模块通过第二接口与所述闪存芯片的写保护引脚相连接;所述第二接口为通用输入/输出接口;
所述控制模块,还用于在所述接口集合输出的逻辑信号并非合法信号的情况下,通过所述第二接口输出写保护信号,以使所述闪存芯片的写保护处于启动状态。
10.根据权利要求9所述的系统,其特征在于,所述控制模块,还用于在所述接口集合输出的逻辑信号为合法信号的情况下,确定所述接口集合输出的逻辑信号对应的操作类型;确定所述操作类型对应的目标信号;所述目标信号为写保护信号或写保护解除信号;通过所述第二接口输出所述目标信号,以对所述闪存芯片的写保护状态进行控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311586154.9A CN117573571A (zh) | 2023-11-24 | 2023-11-24 | 闪存芯片控制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311586154.9A CN117573571A (zh) | 2023-11-24 | 2023-11-24 | 闪存芯片控制方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117573571A true CN117573571A (zh) | 2024-02-20 |
Family
ID=89893341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311586154.9A Pending CN117573571A (zh) | 2023-11-24 | 2023-11-24 | 闪存芯片控制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117573571A (zh) |
-
2023
- 2023-11-24 CN CN202311586154.9A patent/CN117573571A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2007023457A2 (en) | Embedded memory protection | |
CN111736873B (zh) | 电子控制单元的程序更新方法、装置、设备和存储介质 | |
CN111191214B (zh) | 一种嵌入式处理器及数据保护方法 | |
CN100590599C (zh) | 一种flash的写操作处理方法、系统及设备 | |
CN107817981A (zh) | 一种嵌入式控制器的控制方法及电子设备 | |
CN105404829A (zh) | 用于选择性地释放调试接口的设备 | |
CN107273756B (zh) | F2f解码芯片中的安全信息防护装置 | |
CN105225113A (zh) | 一种信息处理方法及电子设备 | |
US6694452B1 (en) | Data processor and method of processing data | |
WO1998012623A1 (en) | Single port first-in-first-out (fifo) storage device having over-write protection and diagnostic capabilities | |
CN117573571A (zh) | 闪存芯片控制方法及系统 | |
RU2469384C2 (ru) | Способ маскировки перехода к концу срока службы электронного устройства и устройство, содержащее соответствующий контрольный модуль | |
CN110459260B (zh) | 自动测试切换装置、方法和系统 | |
CN108009426A (zh) | 可信区域日志信息的获取方法、装置、介质及电子设备 | |
CN114301029B (zh) | 一种判断充电电路中短路位置的方法及相关装置 | |
US20190361624A1 (en) | Data processing method and device for nonvolatile memory and storage medium | |
US6813191B2 (en) | Microcomputer with nonvolatile memory protected against false erasing or writing | |
CN113641541A (zh) | 芯片测试方法、装置、芯片及存储介质 | |
CN114692230A (zh) | 可防止储存内容被读取的存储器、读取方法及电子设备 | |
KR20090023787A (ko) | 플래시 메모리 소거핀을 이용한 플래시 메모리 소거 방법및 시스템 | |
US5592650A (en) | Computer apparatus and method for replacing programs between memories by employing protection mechanism with write enable generation scheme | |
CN101840382B (zh) | 数据存储系统和数据存取方法 | |
US20180275904A1 (en) | System and method for securely isolating a system feature | |
CN108512999B (zh) | 一种多天线的开关处理方法、存储介质及移动终端 | |
CN113360331B (zh) | Otg测试的切换设备、方法、装置、设备及存储介质 |
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 |