一种多线SPI flash控制器制造技术

技术编号:24120980 阅读:31 留言:0更新日期:2020-05-13 03:04
本发明专利技术公开了一种多线SPI flash控制器,该控制器包括总线接口模块、寄存器文件、数据缓冲模块、状态机、输入输出控制模块、Fill_req接口以及RAM接口。该控制器直接将flash命令、总线模式、输入长度和输出长度组合为命令,去除了译码部件,将多线控制和指令编码完全隔离,结构简单清晰,硬件资源占用少,便于实现;且通过软件编程实现各条传输指令,灵活性高,扩展性好;还软件实现各种控制/读写指令,可实现多个厂商flash芯片的访问,兼容性更高。

【技术实现步骤摘要】
一种多线SPIflash控制器
本专利技术涉及SPIflash控制器
,更具体的说是涉及一种多线SPIflash控制器。
技术介绍
目前,随着物联网和嵌入式芯片外部存储需求的扩大,外接多线SPIflash成为一种低成本、高速率、大容量的实现方案。芯片通过外接专用的多线SPIflash芯片,能够将存储扩充到4Mbit甚至更多。相对于内置EFlash而言,成本低,而且能够获取足够的存储资源。多个Flash芯片厂商定义了丰富的接口指令和传输类型,如何确保设计的多线SPIflash控制器的高性能和兼容性,成为多线SPIflash控制器设计亟待解决的问题。传统的SPIflash控制器,会对若干多线SPIflash的命令进行编码,然后定义译码逻辑,译码逻辑根据当前SPI的模式(单线/双线/四线)和命令编码进行命令传输和读写操作。传统多线SPIflash控制器的实现架构如图1所示,由图1可以看出,典型的多线SPIflash控制器的结构包括如下几个部分:总线接口模块:负责和处理器或者总线进行交互;寄存器文件:定义控制器的编程接口,定义若干寄存器,包括命令寄存器,状态寄存器,地址寄存器,模式寄存器等;数据buffer:负责读写数据的缓冲;译码部件:负责命令的译码;状态机;负责整个控制器的状态控制;输入输出控制与串并转换控制模块:负责和外部多线SPIflash芯片交互。该传统多线SPI控制器的工作流程如下:1.CPU通过总线接口模块向寄存器文件配置命令,设置模式,配置地址,向数据Buffer写入需要写的数据(写命令时),最后使能传输;2.译码部件读取寄存器文件中的命令寄存器,驱动控制状态机,开始按照命令格式组装数据包;3.数据包组装完毕后,送入输入输出控制与串并转换控制模块,转换为外部多线SPIflash支持的格式,实现读写命令;4.状态机判断读写完毕后,向总线接口模块发出中断,最后送至CPU;5.如果是数据读,则可以从数据Buffer中获取读到的数据,如果是数据写,则写完毕。传统的多线SPIflash结构清晰,功能明确,但是,存在几个较大的问题:1、灵活性不足:固定的命令编码决定了该实现只能对固定的多线SPIflash命令进行解析和支持,新增的命令必须修改设计进行扩展,随着指令的增多,硬件负责度增多,频繁的修改会带来更多的风险;2、兼容性风险:多线SPIflash厂商众多,各个Flash支持的命令各有差异,如果在定义命令时没有考虑全面,容易造成兼容性问题;3、复杂度高:多线SPIflash需要兼容单线、双线和四线多种模式的芯片,串并转换部件需要根据不同的命令做不同的串并转换,负责度高,容易出错。因此,如何提供一种结构简单、更加灵活且兼容性高的SPIflash控制器是本领域技术人员亟需解决的问题。
技术实现思路
有鉴于此,本专利技术提供了一种多线SPIflash控制器,该控制器定义了灵活的编码方案,直接将flash命令、总线模式、输入长度和输出长度组合为命令,去除了译码部件,将多线控制和指令编码完全隔离,做到了最大的灵活性。同时,还可以通过软件配置,支持各种多线SPIflash指令,扩展性和兼容性达到了最佳。为了实现上述目的,本专利技术采用如下技术方案:本专利技术提供了一种多线SPIflash控制器,包括:总线接口模块,所述总线接口模块与处理器或总线进行交互;寄存器文件,所述寄存器文件直接将总线模式、是否包括地址ADDR_INC、输入字节数、输出字节数、操作码以及发送使能组合为单条命令分别进行传输;数据缓冲模块,所述数据缓冲模块对读写数据进行缓冲;状态机,所述状态机对数据的收发进行控制,并按照预设的顺序发送代码;输入输出控制模块,所述输入输出控制模块与外部多线SPIflash芯片进行交互,并根据所述状态机的状态对多线SPIflash芯片管脚的三态端口的方向进行控制;Fill_req接口,所述Fill_req接口与外部的Cache控制器进行Fill_req的握手和响应;RAM接口,所述RAM接口用于数据缓冲模块与外部的RAM存储器进行数据交换传输。进一步地,所述寄存器文件包括命令寄存器和地址寄存器;所述命令寄存器直接将总线模式、是否包括地址ADDR_INC、输入字节数、输出字节数、操作码以及发送使能组合为单条命令;所述地址寄存器实时保存当前处理器所访问的内存单元的地址信息。进一步地,所述Fill_req接口直接响应Cache控制器的数据交换请求,无需CPU参与;所述Fill_req接口,由Cache控制器按照定义的时序,发起Fill_req请求命令,所述请求命令包括:4)搬运源地址Fill_SADDR5)搬运目的地址FILL_DADDR6)搬运方向FILL_DIR所述状态机响应Fill_req请求,实现多线SPIFlash芯片内数据与RAM存储器内数据的交换;所述状态机通过Fill_req接口的Fill_ack信号,响应Cache控制器的硬件请求,告知其完成数据搬运。经由上述的技术方案可知,与现有技术相比,本专利技术公开提供了一种多线SPIflash控制器,该控制器直接将flash命令、总线模式、输入长度和输出长度组合为命令,去除了译码部件,将多线控制和指令编码完全隔离,结构简单清晰,硬件资源占用少,便于实现;软件编程实现各条传输指令,灵活性高,扩展性好;软件实现各种控制/读写指令,可实现多个厂商flash芯片的访问,兼容性更高。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1附图为传统多线SPIflash控制器的结构架构示意图;图2附图为本专利技术提供的改进后一种多线SPIflash控制器的结构架构示意图;图3附图为本专利技术实施例中多线SPIFlash控制器在Soc系统中的位置示意图;图4附图为本专利技术实施例中Fill_req接口的定义状态示意图;图5附图为本专利技术实施例中多线SPIflash控制器状态机的数据传输控制流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见附图2,本专利技术实施例公开了一种多线SPIflash控制器,包括:总线接口模块1,总线接口模块1与处理器或总线进行交互;寄存器文件2,寄存器文件2直接将总本文档来自技高网
...

【技术保护点】
1.一种多线SPIflash控制器,其特征在于,包括:/n总线接口模块,所述总线接口模块与处理器或总线进行交互;/n寄存器文件,所述寄存器文件直接将总线模式、是否包括地址ADDR_INC、输入字节数、输出字节数、操作码以及发送使能组合为单条命令分别进行传输;/n数据缓冲模块,所述数据缓冲模块对读写数据进行缓冲;/n状态机,所述状态机对数据的收发进行控制,并按照预设的顺序发送代码;/n输入输出控制模块,所述输入输出控制模块与外部多线SPIflash芯片进行交互,并根据所述状态机的状态对所述多线SPIflash芯片管脚的三态端口的方向进行控制;/nFill_req接口,所述Fill_req接口与外部的Cache控制器进行Fill_req的握手和响应;/nRAM接口,所述RAM接口用于数据缓冲模块与外部的RAM存储器进行数据交换传输。/n

【技术特征摘要】
1.一种多线SPIflash控制器,其特征在于,包括:
总线接口模块,所述总线接口模块与处理器或总线进行交互;
寄存器文件,所述寄存器文件直接将总线模式、是否包括地址ADDR_INC、输入字节数、输出字节数、操作码以及发送使能组合为单条命令分别进行传输;
数据缓冲模块,所述数据缓冲模块对读写数据进行缓冲;
状态机,所述状态机对数据的收发进行控制,并按照预设的顺序发送代码;
输入输出控制模块,所述输入输出控制模块与外部多线SPIflash芯片进行交互,并根据所述状态机的状态对所述多线SPIflash芯片管脚的三态端口的方向进行控制;
Fill_req接口,所述Fill_req接口与外部的Cache控制器进行Fill_req的握手和响应;
RAM接口,所述RAM接口用于数据缓冲模块与外部的RAM存储器进行数据交换传输。


2.根据权利要求1所述的一种多线SPIflash控制器,其特征在于,所述寄存器文件包括命令寄存器和地址...

【专利技术属性】
技术研发人员:卢鼎雷海燕宋存杰
申请(专利权)人:大唐半导体科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1