自动搬运且适应器件的多线SPI‑Flash控制器制造技术

技术编号:15690817 阅读:234 留言:0更新日期:2017-06-24 03:31
本发明专利技术公开了一种自动搬运且适应器件的多线SPI-Flash控制器,包括总线从机接口模块、寄存器模块、中断产生模块、时钟信号产生模块、状态机模块、先进先出队列、移位控制模块、dma接口模块。本发明专利技术的SPI flash控制器除支持标准的单线SPI-flash外,同样也支持此类多线SPI-flash,在时钟频率较低时,相比标准的SPI-flash控制器,该多线SPI-flash控制器能够大大提高数据传输效率。本发明专利技术的SPI-flash控制器还包含DMA请求/响应及数据通道,利用系统中的通用DMA来搬运数据,这不仅可以大大减少CPU的负担、提高数据的传输效率,还充分利用了系统资源。

Multi line SPI Flash controller and adaptive automatic handling device

Multi line SPI-Flash controller of the invention discloses an automatic handling and adaptation device, including the bus slave interface module, register module, interrupt module, clock signal generation module, state machine module, FIFO queue, shift control module and DMA interface module. SPI flash controller of the invention not only support standard single SPI-flash, also support this kind of multi line SPI-flash, the clock frequency is low, compared with the standard SPI-flash controller, the multi line SPI-flash controller can greatly improve the efficiency of data transmission. The SPI-flash controller of the invention also includes the DMA request / response and data channels, using general DMA system to carry the data, which not only can greatly reduce the burden of CPU, improve data transmission efficiency, but also make full use of the system resources.

【技术实现步骤摘要】
自动搬运且适应器件的多线SPI-Flash控制器
.本专利技术涉及SPIFlash控制器领域,具体是一种自动搬运且适应器件的多线SPIFlash控制器。
技术介绍
标准的串行外围设备接口闪存控制器(简称SPIflashcontroller)均只支持单线对flash进行读写擦除等操作。如图1所示,在一个实际系统中,SPIFlash芯片一般用于存放程序或者数据等内容,且其容量往往比较大。在系统启动的时候,需要将SPIflash中的内容读取到片内存储器(memory)供使用。在此大批量数据传输的情况下,SPIflash控制器内的发送和接收缓存器(简称RXFIFO和TXFIFO)深度有限,需要处理器(CPU)在每一次FIFO满了之后进行读取和重新配置,大大加重了CPU的负担。SPIflash广泛应用于电子设备中用来进行数据的存储。传统的SPIflash一般主要包括时钟引脚(SCLK)、片选引脚(CS)、发送数据引脚(SI)、接收数据引脚(SO)、写保护引脚(WP)和保持引脚(HOLD)。如图2、图3所示是标准的SPIflash读操作、写操作时序,在读操作中,SPIflash控制器先从高位到低位发送一个8比特的指令和若干比特的地址,然后数据就按高位到低位从flash器件中输出,当CS拉高后,读操作结束;在写操作中,SPIflash控制器先从高位到低位发送一个8比特的指令和若干比特的地址,然后数据从高位到低位传送到flash器件中,当CS拉高后,写操作结束。这类SPIflash的特点是引脚数目少,且都是单向的,控制简单,但是其传输效率较低,特别是在时钟频率较低时尤为明显。由于标准SPIflash器件的上述缺点,Macronix等半导体供应商推出了另外一种SPIflash器件,与标准的单线SPIflash相比,其特点是大部分引脚是双向的,如发送数据引脚同时又是串行数据输入输出引脚0(即SI/SIO0),接收数据引脚同时又是串行数据输入输出引脚1(即SO/SIO1),写保护引脚同时又是串行数据输入输出引脚2(即WP/SIO2),保持引脚同时又是串行数据输入输出引脚3(即HOLD/SIO3),因此这类SPIflash器件均支持1/2/4线的读写擦除等操作。但是现有技术中缺少一种对标准SPIflash和多线SPIflash的读写擦除等操作的兼容控制的控制器。
技术实现思路
为了解决现有技术中存在的上述技术问题,本专利技术提供了一种自动搬运且适应器件的多线SPIFlash控制器,包括总线从机接口模块、寄存器模块、中断产生模块、时钟信号产生模块、状态机模块、先进先出队列、移位控制模块、dma接口模块,所述总线从机接口模块,作为处理器以及通用DMA等总线主机访问SPIflash控制器的通道,用于控制器与外部总线和内部FIFO和寄存器模块进行对接;并控制寄存器模块的读写;寄存器模块,用于接收总线从机接口发过来的配置信息,并存储;通过控制信号线C1~C5对各个模块进行配置和控制;状态机模块,用于所述SPIflash控制器的调度,其接收寄存器模块的控制信息以及FIFO的状态信息,利用这些控制信息产生相应的动作和信号;中断产生模块,用于从状态机模块收集异常信息、开始和结束等关键信息,利用这些信息并结合寄存器模块的控制信息(C5),产生对应的中断信号,并将此中断信号伸出提供给片上系统(SoC)使用;时钟信号产生模块,用来产生SPIflash接口的时钟SCLK,还接收状态机模块的控制信息;先进先出队列(TX/TXFIFO):作为发送FIFO(TXFIFO)和接收FIFO(RXFIFO),发送FIFO和接收FIFO的分时切换;移位控制模块:移位控制模块用于发送和接收数据的串行、并行之间相互转换;dma接口模块:接收寄存器模块的控制信息(C4)和先进先出队列的状态信号,通过判断FIFO的状态和控制信息,决定是否向通用DMA发起请求:若FIFO中的数据低于或者高于阈值,则发起dma请求,等待DMA返回dma响应,DMA给回响应之后,其通过总线从机接口对SPIFlash控制器进行操作,将存储器(memory)中的数据读出并发送到FIFO,或者从FIFO读取数据存到存储器。进一步的,所述寄存器模块存储的信息可以被主线从机接口读取,以供总线主机查询。进一步的,其控制方法如下:通过对SPIflash器件不同的操作的分析,可分为以下几个步骤:发送命令阶(即Commandtransfer),发送地址阶段(即Addresstransfer),发送无效字节阶段(即Dummytransfer)和发送或接收数据阶段(即Datatransfer)。进一步的,当需要接收或发送大量数据时,选择使用通用DMA来搬运数据以提高传输效率;当接收或发送少量数据时,不使能通用DMA,直接通过CPU将发送数据写入发送FIFO或从接收FIFO中将数据读出来。本专利技术还提供了一种利用所述的自动搬运且适应器件的多线SPIFlash控制器通过通用DMA搬运数据的方法,包括如下步骤:①将要发送的flash操作指令、地址、无效字节配置到寄存器模块;将传输数据连续的放入到存储器(memory)中;②CPU通过总线配置通用DMA;③CPU通过总线从机接口配置SPIflash控制器;④CPU配置SPIflash控制器使能和从机使能,在发送数据过程中,每当发送FIFO低于设定阈值时,会向通用DMA发送dma请求信号,然后DMA将待发送数据从存储器中搬运到发送FIFO;在接收数据过程中,每当接收FIFO高于设定阈值时,也会向DMA发送dma请求信号,然后DMA将接收FIFO中数据读出去;⑤当所有数据发送或接收完后,状态机模块自动将flash片选信号CS拉高,结束对flash的传输操作;进一步的,步骤②中的配置的信息包括DMA的搬运方式、DMA数据源地址、DMA数据目的地址。进一步的,步骤③中配置的信息包括:根据发送的flash操作指令选择是否使能发送命令极端、发送地址阶段、发送无效字节阶段和数据传输阶段,选择以1/2/4线发送命令、1/2/4线发送地址、1/2/4线发送无效字节和1/2/4线进行数据传输,读或写的时钟SCLK速率,发送和接收FIFO阈值,读取的数据量大小,是否使能发送和接收DMA,DMA发送和接收数据FIFO阈值。进一步的,步骤④中,若对flash进行读操作,首先DMA将数据搬到发送FIFO,然后SPIflash控制器按照选择的模式,在状态机模块和移位控制模块的控制下,将flash操作指令、地址和无效字节,以1/2/4比特的形式发送到flash器件中,flash器件接收到相关信息后,同样以1/2/4比特模式输出数据到SPIflash控制器,SPIflash控制器在内部移位模块的控制下,以1/2/4比特形式将接收好的一帧数据存放到接收FIFO,当接收到预定长度的数据,硬件自动拉高片选信号CS;当接收FIFO数据帧数等于或大于设定阈值时,则SPIflash控制器向DMA发出请求信号,DMA接收到请求信号后会将FIFO中的数据搬出,以继续接收数据。进一步的,步骤④中,若对flash进行写操作,首先DMA将数据搬到发送FIFO,然后SPIflash控制器按照选择的模式,在状态机模块和移位控制模块本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201710086193.html" title="自动搬运且适应器件的多线SPI‑Flash控制器原文来自X技术">自动搬运且适应器件的多线SPI‑Flash控制器</a>

【技术保护点】
自动搬运且适应器件的多线SPI Flash控制器,包括总线从机接口模块、寄存器模块、中断产生模块、时钟信号产生模块、状态机模块、先进先出队列、移位控制模块、dma接口模块,其特征在于:所述总线从机接口模块,作为处理器以及通用DMA等总线主机访问SPI flash控制器的通道,用于控制器与外部总线和内部FIFO和寄存器模块进行对接;并控制寄存器模块的读写;寄存器模块,用于接收总线从机接口发过来的配置信息,并存储;通过控制信号线C1~C5对各个模块进行配置和控制;状态机模块,用于所述SPI flash控制器的调度,其接收寄存器模块的控制信息以及FIFO的状态信息,利用这些控制信息产生相应的动作和信号;中断产生模块,用于从状态机模块收集异常信息、开始和结束等关键信息,利用这些信息并结合寄存器模块的控制信息(C5),产生对应的中断信号,并将此中断信号伸出提供给片上系统(SoC)使用;时钟信号产生模块,用来产生SPI flash接口的时钟SCLK,还接收状态机模块的控制信息;先进先出队列(TX/TX FIFO):作为发送FIFO(TX FIFO)和接收FIFO(RX FIFO),发送FIFO和接收FIFO的分时切换;移位控制模块:移位控制模块用于发送和接收数据的串行、并行之间相互转换;dma接口模块:接收寄存器模块的控制信息(C4)和先进先出队列的状态信号,通过判断FIFO的状态和控制信息,决定是否向通用DMA发起请求:若FIFO中的数据低于或者高于阈值,则发起dma请求,等待DMA返回dma响应,DMA给回响应之后,其通过总线从机接口对SPI Flash控制器进行操作,将存储器(memory)中的数据读出并发送到FIFO,或者从FIFO读取数据存到存储器。...

【技术特征摘要】
1.自动搬运且适应器件的多线SPIFlash控制器,包括总线从机接口模块、寄存器模块、中断产生模块、时钟信号产生模块、状态机模块、先进先出队列、移位控制模块、dma接口模块,其特征在于:所述总线从机接口模块,作为处理器以及通用DMA等总线主机访问SPIflash控制器的通道,用于控制器与外部总线和内部FIFO和寄存器模块进行对接;并控制寄存器模块的读写;寄存器模块,用于接收总线从机接口发过来的配置信息,并存储;通过控制信号线C1~C5对各个模块进行配置和控制;状态机模块,用于所述SPIflash控制器的调度,其接收寄存器模块的控制信息以及FIFO的状态信息,利用这些控制信息产生相应的动作和信号;中断产生模块,用于从状态机模块收集异常信息、开始和结束等关键信息,利用这些信息并结合寄存器模块的控制信息(C5),产生对应的中断信号,并将此中断信号伸出提供给片上系统(SoC)使用;时钟信号产生模块,用来产生SPIflash接口的时钟SCLK,还接收状态机模块的控制信息;先进先出队列(TX/TXFIFO):作为发送FIFO(TXFIFO)和接收FIFO(RXFIFO),发送FIFO和接收FIFO的分时切换;移位控制模块:移位控制模块用于发送和接收数据的串行、并行之间相互转换;dma接口模块:接收寄存器模块的控制信息(C4)和先进先出队列的状态信号,通过判断FIFO的状态和控制信息,决定是否向通用DMA发起请求:若FIFO中的数据低于或者高于阈值,则发起dma请求,等待DMA返回dma响应,DMA给回响应之后,其通过总线从机接口对SPIFlash控制器进行操作,将存储器(memory)中的数据读出并发送到FIFO,或者从FIFO读取数据存到存储器。2.如权利要求1所述的自动搬运且适应器件的多线SPIFlash控制器,其特征在于:所述寄存器模块存储的信息可以被主线从机接口读取,以供总线主机查询。3.如权利要求1所述的自动搬运且适应器件的多线SPIFlash控制器,其特征在于:其控制方法如下:通过对SPIflash器件不同的操作的分析,可分为以下几个步骤:发送命令阶(即Commandtransfer),发送地址阶段(即Addresstransfer),发送无效字节阶段(即Dummytransfer)和发送或接收数据阶段(即Datatransfer)。4.如权利要求3所述的自动搬运且适应器件的多线SPIFlash控制器,其特征在于:当需要接收或发送大量数据时,选择使用通用DMA来搬运数据以提高传输效率;当接收或发送少量数据时,不使能通用DMA,直接通过CPU将发送数据写入发送FIFO或从接收FIFO中将数据读出来。5.一种利用权利要求1-4之一所述的自动搬运且适应器件的多线SPIFlash控制器通过通用DMA搬运数据的方法,其特征在于:包括如下步骤:将要发送的flash操作指令、地址、无效字节配置到寄存器模块;将传输数据连续的放入到存储器(memory)中;CPU通过总线配置通用DMA;CPU通过总线从机接口配置SPIflash控制...

【专利技术属性】
技术研发人员:刘晶张晓旭
申请(专利权)人:杭州朔天科技有限公司
类型:发明
国别省市:浙江,33

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

1