CN115840592A - Flash访问方法、控制器、系统及可读存储介质 - Google Patents

Flash访问方法、控制器、系统及可读存储介质 Download PDF

Info

Publication number
CN115840592A
CN115840592A CN202211701389.3A CN202211701389A CN115840592A CN 115840592 A CN115840592 A CN 115840592A CN 202211701389 A CN202211701389 A CN 202211701389A CN 115840592 A CN115840592 A CN 115840592A
Authority
CN
China
Prior art keywords
switching
configuration
flash
command
mode
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
Application number
CN202211701389.3A
Other languages
English (en)
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.)
Network Communication and Security Zijinshan Laboratory
Original Assignee
Network Communication and Security Zijinshan Laboratory
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 Network Communication and Security Zijinshan Laboratory filed Critical Network Communication and Security Zijinshan Laboratory
Priority to CN202211701389.3A priority Critical patent/CN115840592A/zh
Publication of CN115840592A publication Critical patent/CN115840592A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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

  • Information Transfer Systems (AREA)

Abstract

本申请公开了一种Flash访问方法、控制器、系统及可读存储介质,在SoC系统中的Flash控制器中应用本申请实施例所提供的方法,Flash控制器接收SoC系统中CPU核发送的切换指令序列;在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,自动生成配置切换命令;根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在QSPI模式下,访问片外Flash设备。在本申请中,能够快速切换QSPI模式,并可适配多种片外Flash设备。

Description

Flash访问方法、控制器、系统及可读存储介质
技术领域
本申请涉及芯片设计技术领域,特别是涉及一种Flash访问方法、Flash控制器、SoC系统及可读存储介质。
背景技术
信息时代对于片上系统(SoC,System on Chip)需求越来越大,SoC的应用领域也越来越广泛。SoC系统一种通用的做法是从片外SPI Flash启动,这种方式默认采用SPI(Serial Peripheral Interface,串行外设接口)总线,如果想要提升Boot速度就需要切换到更快速率的QSPI(Quad SPI,即4线SPI)访问模式。
外挂的Flash品牌、型号也比较多,切换指令/命令,也存在差异。当前普遍采用软件干预的方式,由于涉及到Flash访问冲突的问题,所以普遍存在实现方案复杂、切换速率慢等问题。
综上所述,如何有效地解决SoC切换至QSPI模式等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种Flash访问方法、Flash控制器、SoC系统及可读存储介质,能够快速切换QSPI模式,并可适配多种片外Flash设备。
为解决上述技术问题,本申请提供如下技术方案:
一种Flash访问方法,应用于SoC系统中的Flash控制器,包括:
接收所述SoC系统中CPU核发送的切换指令序列;
在所述CPU核完成启动切换QSPI模式的配置后,启动状态机并结合所述切换指令序列,自动生成配置切换命令;
根据所述配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;
待状态检查正常后,完成切换至QSPI模式;
在所述QSPI模式下,访问所述片外Flash设备。
优选地,所述接收所述SoC系统中CPU核发送的切换指令序列,包括:
利用寄存器组,接收所述切换指令序列。
优选地,在所述SoC系统启动后,在切换至所述QSPI模式之前,包括:
在SPI模式下,访问所述片外Flash设备。
优选地,所述启动状态机并结合所述切换指令序列,自动生成配置切换命令,包括:
启动逻辑有线限状态机,并根据所述切换指令序列,自动生成配置所述片外Flash设备的命令序列;所述命令序列中的命令为所述配置切换命令。
优选地,所述逻辑有限状态机包括:主状态机和子状态机;相应地,启动逻辑有限状态机,并根据所述切换指令序列,自动生成配置所述片外Flash设备的命令序列,包括:
启动所述主状态机,并按照所述主状态机的各个状态并根据所述切换指令序列,自动生成所述主状态机中各个状态及所述子状态机中各个状态分别对应的配置切换命令;
其中,所述配置切换命令包括总线命令和总线使能命令。
一种Flash控制器,包括:
所述Flash控制器位于SoC集成电路或FPGA中,并外接所述SoC集成电路或所述FPGA的片外Flash设备;
所述Flash控制器用于实现如上述Flash访问方法的步骤。
优选地,包括:接口复用模块、总线转换模块、模式切换配置模块、状态机模块和协议转换模块;所述总线转换模块分别与所述接口复用模块、所述模式切换配置模块和所述接口复用模块相连接;所述状态机模块分别与模式切换配置模块和所述协议转换模块相连接;
所述接口复用模块,用于利用AHB接口总线,接收所述SoC系统或FPGA中CPU核发送的切换指令序列;
所述总线转换模块,用于对所述切换指令序列进行转换,并通过APB接口总线发送给所述模块切换配置模块;
所述模式切换配置模块,用于接收所述切换指令序列,并将所述切换指令序列发送给所述状态机模块;
所述状态机模块,用于在所述CPU核完成启动切换QSPI模式的配置后,启动状态机并结合所述切换指令序列,自动生成配置切换命令,并将所述配置切换命令发送给所述协议转换模块;
所述协议转换模块,用于根据所述配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在所述QSPI模式下,访问所述片外Flash设备。
优选地,所述模式切换配置模块包括寄存器组,所述寄存器组包括包括配置所述状态机的第一配置寄存器,提供配置检查所述片外FLASH设备内部是否响应完成用户配置命令的第二配置寄存器;
相应地,所述状态机模块,用于基于所述第一配置寄存器和所述第二配置寄存器,对所述状态机进行配置和状态变更,从而生成所述配置切换命令。
一种Soc系统,包括:如上述的Flash控制器,
所述Flash控制器外接片外Flash设备;所述Flash控制器通过输入/输出多路复用器与所述SoC系统中的CPU核相连接。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述Flash访问方法的步骤。
在SoC系统中的Flash控制器中应用本申请实施例所提供的方法,Flash控制器接收SoC系统中CPU核发送的切换指令序列;在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,自动生成配置切换命令;根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在QSPI模式下,访问片外Flash设备。
在本申请中,Flash控制器接收到SoC系统中CPU核发送的切换指令序列,在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,可以自动生成配置切换命令,然后基于配置切换命令可以产生符合QSPI协议格式的命令到片外Flash设备并检查出响应状态。在状态检查正常之后,便可完成切换至QSPI模式,即可在QSPI模式下,访问片外Flash设备。由于,状态机生成命令时,是基于CPU发送的切换命令序列以及其配置进行的,对应不同的片外Flash设备,对应调整不同的配置即可使得状态机产生不同的指令,因而可适配不同型号的片外Flash设备。又因,Flash控制器本身即为SoC系统中的硬件,在Flash控制器中实现访问模式切换可减少占用CPU资源,因而可以加速模式切换速率。也就是说,在本申请中,能够快速切换QSPI模式,并可适配多种片外Flash设备。
相应地,本申请实施例还提供了与上述Flash访问方法相对应的一种Flash控制器、SoC系统及可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种Flash访问方法的实施流程图;
图2为本申请实施例中一种Flash控制器的结构示意图;
图3为本申请实施例中一种SoC系统的结构示意图;
图4为本申请实施例中一种状态机示意图;
图5为本申请实施例中一种在QSPI模式下,访问片外Flash设备的流程示意图;
图6为本申请实施例中一种在SPI模式下,访问片外Flash设备的流程示意图;
图7为本申请实施例中一种Flash访问方法的具体实施示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1和图7,图1为本申请实施例中一种Flash访问方法的流程图,图7为本申请实施例中一种Flash访问方法的具体实施示意图,该方法可应用于SoC系统中的Flash控制器,其中该SoC系统可以具体为SoC芯片也可以为基于FPGA而实现的SoC系统。
该Flash控制器的架构可以参考图2,图2为本申请实施例中一种Flash控制器的结构示意图。
其中,SoC系统可以具体参考图3,图3为本申请实施例中一种SoC系统的结构示意图,在Flash控制器中实现的Flash访问方法包括以下步骤:
S101、接收SoC系统中CPU核发送的切换指令序列。
当SoC系统需要将访问模式切换为QSPI模式时,CPU Core(CPU核)可以读入切换QSPI所需的指令序列(即切换指令序列)并通过Flash控制器的ahb_flash_config接口送入Flash控制器。
需要注意的是,对于不同的外接Flash设备,对应不同的切换指令序列。不同的外接Flash设备具体对应哪些切换指令序列可以参照具体的外接Flash设备的访问定义和实现,在此不再一一赘述。
在本申请中的一种具体实施方式中,接收SoC系统中CPU核发送的切换指令序列,包括:利用寄存器组,接收切换指令序列。即,在Flash控制器中设置寄存器组,如此,CPU核便可向该寄存器组内写入数据的方式,从而将切换指令序列传递给Flash控制器。
S102、在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,自动生成配置切换命令。
具体的,CPU Core可通过Flash控制器的ahb_flash_config接口配置相应寄存器组启动切换QSPI模式的配置。即,向Flash控制器的寄存器中写入启动切换QSPI模式的配置信息之后,便可启动状态机。该状态机结合切换指令序列,即可自动生成配置切换命令。
其中,有限状态机(finite-state machine,FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
在本申请中的一种具体实施方式中,启动状态机并结合切换指令序列,自动生成配置切换命令,包括:
启动逻辑有限状态机,并根据切换指令序列,自动生成配置片外Flash设备的命令序列;命令序列中的命令为配置切换命令。
其中,逻辑有限状态机包括:主状态机和子状态机;相应地,启动逻辑有限状态机,并根据切换指令序列,自动生成配置片外Flash设备的命令序列,包括:
启动主状态机,并按照主状态机的各个状态并根据切换指令序列,自动生成主状态机中各个状态及子状态机中各个状态分别对应的配置切换命令;
其中,配置切换命令包括总线命令和总线使能命令。其中,子状态机用来查询片外Flash内部工作繁忙(busy)与否;
举例说明:请参考图4,图4为本申请实施例中一种状态机示意图,其中,主状态机包括以下状态:
IDLE:初始状态或空闲状态;
PREQ:PREQ状态,产生送给apb2spi_command_controller模块的符合apb协议的总线命令;
PENABLE:PENABLE状态,产生送给apb2spi_command_controller模块的符合apb协议的总线使能命令;
PRESP:PRESP状态,等待apb2spi_command_controller模块返回结果,决定下一步状态选择;
BUSY:BUSY状态,检查flash外设内部busy与否;
其中,子状态机,包括以下状态:
SUB_IDLE:初始状态或空闲状态;
SUB_PREQ:SUB_PREQ状态,产生子状态机送给apb2spi_command_controller模块的符合apb协议的总线命令;
SUB_PENABLE:SUB_PENABLE状态,产生子状态机送给apb2spi_command_controller模块的符合apb协议的总线使能命令;
SUB_PRESP:SUB_PRESP状态,子状态机等待apb2spi_command_controller模块返回结果,决定下一步状态选择。
S103、根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态。
为了便于实施状态情况,需要根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备,并检查相应状态。其中,检查相应状态即确定片外Flash设备是否基于命令完成对应的响应。
S104、待状态检查正常后,完成切换至QSPI模式。
若片外Flash设备已基于相关命令进行正常响应,则确定完成了模式切换,即切换至QSPI模式。当然,若状态检查异常,则确定出现模式切换错误。此时可对CPU核反馈异常。
S105、在QSPI模式下,访问片外Flash设备。
成功切换至QSPI模式,则可在QSPI模式下,对片外Flash设备进行访问。
举例说明:请参考图5,图5为本申请实施例中一种在QSPI模式下,访问片外Flash设备的流程示意图,具体包括以下步骤:
步骤1、CPU Core将访问FLASH Module(外设Flash设备)方式从SPI模式切换到QSPI模式;
步骤2、CPU Core通过ahb_flash_normal接口送入FLASH控制器AHB格式的访存命令;
步骤3、FLASH控制器根据约定配置将AHB格式访存命令转换成QSPI协议格式命令通过QSPI接口发送给片外FLASH Module;
步骤4、片外FLASH Module返回访存命令对应的访问地址上的存储内容以QSPI协议格式给FLASH控制器;
步骤5、FLASH控制器将片外FLASH Module返回的结果按照前述相反的流程进行协议格式转换返回给CPU Core,单次QSPI模式访存结束,可以开始下次访存。
在本申请中的一种具体实施方式中,该Flash控制器可以实施SPI模式对片外Flash设备进行访问。即,在SoC系统启动后,在切换至QSPI模式之前,可在SPI模式下,访问片外Flash设备。
举例说明:请参考图6,图6为本申请实施例中一种在SPI模式下,访问片外Flash设备的流程示意图,包括以下步骤:
步骤1、FLASH控制器(也可称之为QSPI FLASH控制器装置)接收CPU Core送入的AHB格式访问请求ahb_flash_normal;
步骤2、ahb_access_mux模块完成ahb_flash_normal与ahb_flash_config命令的调度;
步骤3、ahb2apb_convertor模块完成ahb命令转换成apb格式命令;
步骤4、ahb2spi_command_controller模块根据接收到的apb格式的访存命令启动内部SPI自动boot流程,产生访问FLASH的命令序列,以SPI协议格式发送给片外FLASHModule;
步骤5、片外FLASH Module返回访存命令对应的访问地址上的存储内容以SPI协议格式给FLASH控制器装置;
步骤6、FLASH控制器将片外FLASH Module返回的结果按照前述相反的流程进行协议格式转换返回给CPU Core,单次SPI模式Boot访存结束,可以开始下次访存。
在SoC系统中的Flash控制器中应用本申请实施例所提供的方法,Flash控制器接收SoC系统中CPU核发送的切换指令序列;在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,自动生成配置切换命令;根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在QSPI模式下,访问片外Flash设备。
在本申请中,Flash控制器接收到SoC系统中CPU核发送的切换指令序列,在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,可以自动生成配置切换命令,然后基于配置切换命令可以产生符合QSPI协议格式的命令到片外Flash设备并检查出响应状态。在状态检查正常之后,便可完成切换至QSPI模式,即可在QSPI模式下,访问片外Flash设备。由于,状态机生成命令时,是基于CPU发送的切换命令序列以及其配置进行的,对应不同的片外Flash设备,对应调整不同的配置即可使得状态机产生不同的指令,因而可适配不同型号的片外Flash设备。又因,Flash控制器本身即为SoC系统中的硬件,在Flash控制器中实现访问模式切换可减少占用CPU资源,因而可以加速模式切换速率。也就是说,在本申请中,能够快速切换QSPI模式,并可适配多种片外Flash设备。
相应于上面的方法实施例,本申请实施例还提供了一种Flash控制器,下文描述的Flash控制器与上文描述的Flash访问方法可相互对应参照。
参见图3所示,该Flash控制器可位于SoC集成电路或FPGA中,并外接SoC集成电路或FPGA的片外Flash设备。
Flash控制器用于实现本申请实施例所提供的Flash访问方法的步骤。
具体的,该Flash控制器,包括:
接口复用模块,用于利用AHB接口总线,接收SoC系统或FPGA中CPU核发送的切换指令序列;
总线转换模块,用于对切换指令序列进行转换,并通过APB接口总线发送给模块切换配置模块;
模式切换配置模块,用于接收切换指令序列,并将切换指令序列发送给状态机模块;
状态机模块,用于在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,自动生成配置切换命令,并将配置切换命令发送给协议转换模块;
协议转换模块,用于根据配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在QSPI模式下,访问片外Flash设备。
请参考图2,其中,ahb_access_mux模块即接口复用模块;
ahb2apb_convertor模块即总线转换模块;
qspi_switch_command_config模块即模式切换配置模块;
qspi_command_gen_fsm模块即状态机模块;
apb2spi_command_controller模块即协议转换模块。
其中,时钟接口、复位接口和指示状态的中断接口。
各个组件基本功能描述如下:
ahb_flash_normal接口:CPU core访问flash内存的接口,是CPU指令及数据代码接口访问内存的通道,即符合AMBA AHB协议接口。当然在实际应用中,还可采用其他CPU能访问的接口。
ahb_flash_config接口:SoC系统用来配置QSPI Flash Controller工作模式、擦写Flash及查看工作状态等的通道,通常是符合AMBA AHB协议接口;
clk、reset、interrupt接口:分别为系统工作所需的时钟、复位及指示状态的中断接口;
ahb_access_mux模块:用来调度ahb_flash_normal接口及ahb_flash_config接口访问Flash控制器系统的请求,调度完成后转换出想要的总线访问接口,通常是符合AMBAAHB协议接口;
ahb2apb_convertor模块:用来做AMBA总线转换,将AHB接口总线转换成APB接口总线;
qspi_switch_command_config模块:用以接收CPU切换Flash Controller工作到QSPI高速模式的相关命令的寄存器组,命令以apb总线形式接收,对外以并行总线格式发送给下级模块;
qspi_command_gen_fsm模块:用来产生配置控制器由默认的低速SPI模块切换到高速QSPI模式的命令序列的状态机,命令以apb总线形式发送给下级模块;
apb2spi_command_controller模块:将访问Flash module的apb协议命令转换成SPI/QSPI协议格式;实现单线、双线、四线SPI双向传输,包含4种SPI时序模块;实现SPIBoot功能;实现其他Flash访问控制及状态监控等的功能。
具体的,模式切换配置模块包括寄存器组,该寄存器组包括配置状态机的第一配置寄存器,提供配置检查片外FLASH设备内部是否响应完成用户配置命令的第二配置寄存器;
相应地,状态机模块,用于基于第一配置寄存器和第二配置寄存器,对状态机进行配置和状态变更,从而生成配置切换命令。
为便于理解,下面对Flash控制中的关键模块进行详细说明:
qspi_switch_command_config模块,主要功能包括:功能a和功能b。
其中,功能a:提供配置命令生成状态机所必须的配置寄存器,用以灵活生成匹配各型FLASH的访存命令,有16组(但不局限于此,具体数量由需要配置的FLASH型号数量调配)寄存器组构成,每组寄存器格式如下(下表示例仅是其中一种格式,在实际应用中还可以为变化了寄存器信息种类和顺序的
[63:40] [39] [38] [37] [36:32] [31:0]
Reserv. last_step busy w/<u>r</u> paddr pwdata
其他格式,在此不再一一赘述):
其中,各个寄存器信息如下:
pwdata:CPU发出的写数据,一般是32bit位宽,可以扩展成其他位宽;
paddr:CPU发出的读写地址,一般是5bit位宽,可以扩展成其他位宽;
w/r:CPU发出的读写命令标识,w表示此命令是写命令,r表示此命令是读命令;
busy:繁忙标识,标识当前状态机繁忙与否;
last_step:标识最后一个命令序列;
Reserv.:保留位。
功能b:提供配置检查FLASH内部是否响应完成用户配置命令的配置寄存器,用以检查FLASH内部BUSY状态,有16组(但不局限于此,具体数量由需要配置的FLASH型号数量调配)寄存器组构成,每组寄存器格式如下(下表示例进行其中一种格式,在实际应用中还可以为变化了寄存器信息种类
[31:18] [17] [16] [15] [14:10] [9:0]
Reserv. busy_check rx_fifo_check w/<u>r</u> paddr pwdata
和顺序的其他格式,在此不再一一赘述):
其中各个寄存器信息如下:
pwdata:CPU发出的写数据,一般是10bit位宽,可以扩展成其他位宽;
paddr:CPU发出的读写地址,一般是5bit位宽,可以扩展成其他位宽;
w/r:CPU发出的读写命令标识,w表示此命令是写命令,r表示此命令是读命令;
rx_fifo_check:内部实现标识(跟具体实现有关),检查当前内部rx_fifo状态;
busy_check:内部实现标识(跟具体实现有关),检查当前内部busy状态;
Reserv.:保留位。
qspi_command_gen_fsm模块,主要功能:以逻辑有限状态机的形式,根据用户配置命令寄存器组的信息,自动生成配置FLASH的命令序列,其内部状态转移可参考图4。
apb2spi_command_controller模块,主要功能包括:
a、将访问Flash module的apb协议命令转换成SPI/QSPI协议格式;
b、实现单线、双线、四线SPI双向传输,包含4种SPI时序模块;
c、实现SPI Boot功能;
d、实现其他Flash访问控制及状态监控等的功能。
在本申请中,Flash控制器接收到SoC系统中CPU核发送的切换指令序列,在CPU核完成启动切换QSPI模式的配置后,启动状态机并结合切换指令序列,可以自动生成配置切换命令,然后基于配置切换命令可以产生符合QSPI协议格式的命令到片外Flash设备并检查出响应状态。在状态检查正常之后,便可完成切换至QSPI模式,即可在QSPI模式下,访问片外Flash设备。由于,状态机生成命令时,是基于CPU发送的切换命令序列以及其配置进行的,对应不同的片外Flash设备,对应调整不同的配置即可使得状态机产生不同的指令,因而可适配不同型号的片外Flash设备。又因,Flash控制器本身即为SoC系统中的硬件,在Flash控制器中实现访问模式切换可减少占用CPU资源,因而可以加速模式切换速率。也就是说,在本申请中,能够快速切换QSPI模式,并可适配多种片外Flash设备。
在本申请的一种具体实施方式中,相应于上面的方法实施例,本申请实施例还提供了一种SoC系统,下文描述的SoC系统与上文描述的Flash控制器和Flash访问方法可相互对应参照。
请参考图3,该系统包括:
如上述实施例所描述的Flash控制器,Flash控制器外接片外Flash设备;Flash控制器通过输入/输出多路复用器(I/D MUX)与SoC系统中的CPU核相连接。
为便于本领域技术人员更好地理解本申请实施例所提供的技术方案,下面以N25Q256A13EF840F系列Flash颗粒(一种具体的外接Flash设备)为例,对在SoC系统中,利用Flash控制器进行模式切换进行详细说明。
切换过程包括以下步骤:
步骤1、解复位后,控制器采用03h READ序列(默认操作参数)进行Boot操作,apb2spi_command_controller模块自动生成SPI模式访问Flash颗粒的命令序列
步骤2、CPU下发切换FLASH控制器从SPI模式到QSPI模式的命令序列配置到FLASH控制器中的qspi_switch_command_config模块
步骤3、步骤2里面的命令序列包括:a.配置FLASH控制器中boot config寄存器中的dummy clcles及wr cmd位;b.配置命令模式从03h到0bh;c.配置Flash颗粒的statusregister;d.配置Flash颗粒的volatile configuration register;e.配置Flash颗粒的enhanced volatile configuration register;
步骤4、配置启动模式切换状态机;
步骤5、状态机根据预设状态跳转逻辑产生切换命令到apb2spi_command_controller模块;
步骤6、apb2spi_command_controller模块产生符合QSPI协议的命令到Flash颗粒并时刻监控切换状态;
步骤7、检查切换成功与否的状态,如果是,即确定完成切换;否则即切换识别。
步骤8、切换完成,FLASH控制器以QSPI模式访问片外Flash颗粒。
在该SoC系统中,具有本申请所提供的Flash控制器,以及能够实现上实施例所描述的Flash访问方法,因而该Soc系统具有该Flash访问方法的技术效果,在此不再一一赘述。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种Flash访问方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的Flash访问方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种Flash访问方法,其特征在于,应用于SoC系统中的Flash控制器,包括:
接收所述SoC系统中CPU核发送的切换指令序列;
在所述CPU核完成启动切换QSPI模式的配置后,启动状态机并结合所述切换指令序列,自动生成配置切换命令;
根据所述配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;
待状态检查正常后,完成切换至QSPI模式;
在所述QSPI模式下,访问所述片外Flash设备。
2.根据权利要求1所述的Flash访问方法,其特征在于,所述接收所述SoC系统中CPU核发送的切换指令序列,包括:
利用寄存器组,接收所述切换指令序列。
3.根据权利要求1所述的Flash访问方法,其特征在于,在所述SoC系统启动后,在切换至所述QSPI模式之前,包括:
在SPI模式下,访问所述片外Flash设备。
4.根据权利要求1所述的Flash访问方法,其特征在于,所述启动状态机并结合所述切换指令序列,自动生成配置切换命令,包括:
启动逻辑有线限状态机,并根据所述切换指令序列,自动生成配置所述片外Flash设备的命令序列;所述命令序列中的命令为所述配置切换命令。
5.根据权利要求4所述的Flash访问方法,其特征在于,所述逻辑有限状态机包括:主状态机和子状态机;相应地,启动逻辑有线限状态机,并根据所述切换指令序列,自动生成配置所述片外Flash设备的命令序列,包括:
启动所述主状态机,按照所述主状态机的各个状态并根据所述切换指令序列,自动生成所述主状态机中各个状态及所述子状态机中各个状态分别对应的配置切换命令;
其中,所述配置切换命令包括总线命令和总线使能命令。
6.一种Flash控制器,其特征在于,包括:
所述Flash控制器位于SoC集成电路或FPGA中,并外接所述SoC集成电路或所述FPGA的片外Flash设备;
所述Flash控制器用于实现如权利要求1至5任一项所述Flash访问方法的步骤。
7.根据权利要求6所述的Flash控制器,其特征在于,包括:
接口复用模块、总线转换模块、模式切换配置模块、状态机模块和协议转换模块;所述总线转换模块分别与所述接口复用模块、所述模式切换配置模块和所述协议转换模块相连接;所述状态机模块分别与模式切换配置模块和所述协议转换模块相连接;
所述接口复用模块,用于利用AHB接口总线,接收所述SoC系统或FPGA中CPU核发送的切换指令序列;
所述总线转换模块,用于对所述切换指令序列进行转换,并通过APB接口总线发送给所述模块切换配置模块;
所述模式切换配置模块,用于接收所述切换指令序列,并将所述切换指令序列发送给所述状态机模块;
所述状态机模块,用于在所述CPU核完成启动切换QSPI模式的配置后,启动状态机并结合所述切换指令序列,自动生成配置切换命令,并将所述配置切换命令发送给所述协议转换模块;
所述协议转换模块,用于根据所述配置切换命令,产生符合QSPI协议格式的命令到片外Flash设备并检查相应状态;待状态检查正常后,完成切换至QSPI模式;在所述QSPI模式下,访问所述片外Flash设备。
8.根据权利要求7所述的Flash控制器,其特征在于,所述模式切换配置模块包括寄存器组,所述寄存器组包括配置所述状态机的第一配置寄存器,提供配置检查所述片外FLASH设备内部是否响应完成用户配置命令的第二配置寄存器;
相应地,所述状态机模块,用于基于所述第一配置寄存器和所述第二配置寄存器,对所述状态机进行配置和状态变更,从而生成所述配置切换命令。
9.一种Soc系统,其特征在于,包括:如权利要求6至8任一项所述的Flash控制器,
所述Flash控制器外接片外Flash设备;所述Flash控制器通过输入/输出多路复用器与所述SoC系统中的CPU核相连接。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述FLASH访问方法的步骤。
CN202211701389.3A 2022-12-28 2022-12-28 Flash访问方法、控制器、系统及可读存储介质 Pending CN115840592A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211701389.3A CN115840592A (zh) 2022-12-28 2022-12-28 Flash访问方法、控制器、系统及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211701389.3A CN115840592A (zh) 2022-12-28 2022-12-28 Flash访问方法、控制器、系统及可读存储介质

Publications (1)

Publication Number Publication Date
CN115840592A true CN115840592A (zh) 2023-03-24

Family

ID=85579371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211701389.3A Pending CN115840592A (zh) 2022-12-28 2022-12-28 Flash访问方法、控制器、系统及可读存储介质

Country Status (1)

Country Link
CN (1) CN115840592A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117153831A (zh) * 2023-09-26 2023-12-01 湖南融创微电子有限公司 一种闪存芯片及控制方法
CN117153831B (zh) * 2023-09-26 2024-05-31 湖南融创微电子有限公司 一种闪存芯片及控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117153831A (zh) * 2023-09-26 2023-12-01 湖南融创微电子有限公司 一种闪存芯片及控制方法
CN117153831B (zh) * 2023-09-26 2024-05-31 湖南融创微电子有限公司 一种闪存芯片及控制方法

Similar Documents

Publication Publication Date Title
US8225064B2 (en) Storage region allocation system, storage region allocation method, and control apparatus
US6434660B1 (en) Emulating one tape protocol of flash memory to a different type protocol of flash memory
CN110309088B (zh) Zynq fpga芯片及其数据处理方法、存储介质
CN108228492B (zh) 一种多通道ddr交织控制方法及装置
CN113396565B (zh) 一种控制方法及装置
CN112014726A (zh) Dsp芯片测试装置及方法
CN111931442B (zh) Fpga内嵌flash控制器及电子装置
CN110806997B (zh) 一种片上系统以及存储器
US7725621B2 (en) Semiconductor device and data transfer method
CN106598886B (zh) I/o总线共享存储器系统
CN113270137A (zh) 一种基于fpga嵌入式软核的ddr2测试方法
CN115470163A (zh) Dma传输的控制方法、控制装置、控制设备及存储介质
CN111563059B (zh) 一种基于PCIe的多FPGA动态配置装置及方法
CN103903651A (zh) 双线串行端口内建自测电路及其通讯方法
CN115033515A (zh) 一种主从spi通信方法
CN116032746B (zh) 资源池的信息处理方法及装置、存储介质及电子装置
CN115840592A (zh) Flash访问方法、控制器、系统及可读存储介质
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN110765065A (zh) 片上系统
CN106547716B (zh) 一种面向低管脚数的扩展总线配置系统及方法
CN101241478B (zh) 数据传送方法
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
TWI727581B (zh) 資料傳輸系統
CN112540944B (zh) 并行总线协议以及基于协议实现板间数据交互的方法
CN115202257B (zh) 一种lpc总线协议转换及设备并行控制装置及方法

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