NOR FLASH 和NAND FLASH 区别:
Nor Flash :写入和擦除的速度低;结构复杂,成本高;存储容量较小;一般用于存储Bootloader以及操作系统或者程序代码,可以在芯片内部直接运行代码。
NAND Flash :写入和擦除的速度较快;结构简单,成本低;存储容量较大;一般用于存储材料和数据。
Flash在外部接口上主要分为CFI flash 和SPI(STD/Dual/Quad) flash。CFI flash 读写速度快,需要的硬件引脚多且不同容量的硬件不兼容;而SPI(STD/Dual/Quad) flash读写速度慢,需要的硬件引脚少且不同容量的硬件兼容。
1.传统模式:
相当于普通的spi接口,就用spi协议的理解去理解就好了
2.STIG(Software Triggered Instruction Generator)模式
使用flash命令驱动的一种模式,通过对flash发送对应的操作命令,就可以直接进行通信的一种模式
3.DAC(Direct Access Controller )模式
这个模式又叫直接模式,所谓直接,就是通过直接操作AHB地址进行对flash的读写,不需要再像stig模式一样发送命令。
4. INDCA(Indirect Access Controller )模式
又叫间接模式,用于借助SRAM的地址和AHB地址进行间接通过,相比于DAC模式就是多了SRAM这个中间商。其实就是使用本地SRAM作为源存放读写数据,与外部FLASH进行读写传输,用户通过AHB读写操作,把数据读写入SRAM中(用于数据传输)
完整的描述是这样子的:
5. 轮询模式
此模式就是不需要自己手动向flash发送命令,我们可以通过设置此轮询模式的相关寄存器,设置好需要轮询的命令,轮询次数等,配置好之后flash就会自动发送相关的轮询命令。
6.XIP模式
这个描述是这样子的:如果设备启用了XIP作为非易失性配置设置,则可以以非易失性方式进入XIP模式。软件将无法通过闪存状态寄存器读取从POR中发现XIP状态,因为当启用XIP模式时,闪存设备将识别的唯一操作是XIP读取操作。
在系统启动时,不将代码复制到RAM,而是直接在非易失性存储位置执行。RAM中只存放需要不断变化的数据部分,如图1所示。
如果非易失性存储器的读取速度与RAM相近,则XIP可以节省复制和解压的时间。NOR Flash和ROM的读取速度比较快(约100 ns),适合XIP;而NAND Flash的读操作是基于扇区的,速度相对很慢(μs级),因此不宜实现XIP系统。而NAND
闪存写入速度比NOR快,更适合SND(存储和下载)系统。
然后在这些模式下。还可以对发送和接受的通信线数进行设置,分别有单线[SIO]模式、双线[Dual Input/Output]模式和四线[ Quad Input/Output ]模式。
SIO:这意思就是说,所以操作只在DQ0这条线上进行。
DIO:就是使用DQ0和DQ1配合进行地址和数据的收发
QIO:就是使用DQ0,DQ1,DQ2,DQ3四线线进行通信
接口: