转SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样

Posted eleclsc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样相关的知识,希望对你有一定的参考价值。

转自:http://m.elecfans.com/article/778203.html

本文主要是关于SPI FLASH与NOR FLASH的相关介绍,并着重对SPI FLASH与NOR FLASH的区别进行了详细的区分。

  SPI FLASH

  首先它是个Flash,Flash是什么东西就不多说了(非易失性存储介质),分为NOR和NAND两种(NOR和NAND的区别本篇不做介绍)。SPI一种通信接口。那么严格的来说SPI Flash是一种使用SPI通信的Flash,即,可能指NOR也可能是NAND。但现在大部分情况默认下人们说的SPI Flash指的是SPI NorFlash。早期Norflash的接口是parallel的形式,即把数据线和地址线并排与IC的管脚连接。但是后来发现不同容量的Norflash不能硬件上兼容(数据线和地址线的数量不一样),并且封装比较大,占用了较大的PCB板位置,所以后来逐渐被SPI(串行接口)Norflash所取代。同时不同容量的SPI Norflash管脚也兼容封装也更小。,至于现在很多人说起NOR flash直接都以SPI flash来代称。

  技术图片

  NorFlash根据数据传输的位数可以分为并行(Parallel,即地址线和数据线直接和处理器相连)NorFlash和串行(SPI,即通过SPI接口和处理器相连)NorFlash;区别主要就是:1、SPI NorFlash每次传输一bit位的数据,parallel连接的NorFlash每次传输多个bit位的数据(有x8和x16bit两种); 2、SPI NorFlash比parallel便宜,接口简单点,但速度慢。

  NandFlash是地址数据线复用的方式,接口标准统一(x8bit和x16bit),所以不同容量再兼容性上基本没什么问题。但是目前对产品的需求越来越小型化以及成本要求也越来越高,所以SPI NandFlash渐渐成为主流,并且采用SPI NANDFlash方案,主控也可以不需要传统NAND控制器,只需要有SPI接口接口操作访问,从而降低成本。另外SPI NandFlash封装比传统的封装也小很多,故节省了PCB板的空间。

  今天主要说下SPI NorFlash。

  二、有毛用啊

  节省成本,减小封装,存储数据。

  三、怎么用啊

  怎么用说白了对于Flash就是读写擦,也就是实现flash的驱动。先简单了解下spi flash的物理连接。

  之前介绍SPI的时候说过,SPI接口目前的使用是多种方式(具体指的是物理连线有几种方式),Dual SPI、Qual SPI和标准的SPI接口(这种方式肯定不会出现在连接外设是SPI Flash上,这玩意没必要全双工),对于SPI Flash来说,主要就是Dual和Qual这两种方式。具体项目具体看了,理论上在CLK一定的情况下, 线数越多访问速度也越快。我们项目采用的Dual SPI方式,即两线。

  当前涉及到具体的SPI flash芯片类型了,所以必须也得参考flash的datasheet手册了。我们以W25Q64JVSSIQ为例。

  这是基本信息的介绍,然后看下具体IO的定义

  这个是WSON封装的管脚定义,其他详细信息参考datasheet。

  硬件驱动的话也是和芯片强相关的,因为读写擦都是和硬件时序相关的,所以必须得参考硬件datasheet手册。

  上面的datasheet都详细说明了每个操作的时序周期发送的命令。上图中,第一列是指令名称,第二列是指令编码,第三列及以后的指令功能与对应的指令有关。带括号的字节内容为flash向主机返回的字节数据,不带括号则是主机向flash发送字节数据。

  A0~A23:flash内部存储器地址;MID0~MID7:制造商ID;ID0~ID15:flash芯片ID;D0~D7:flash内部存储的数据;dummy:指任意数据。

  比如获取deviceID:

  表示该命令由这四个字节组成,其中dummy意为任意编码,即这三个字节必须得发数据,但这些数据是任意的,上图命令列表中带括号的字节数据表示由FLASH返回给主机的响应,可以看到deviceID命令的第5个字节为从机返回的响应,(ID7~ID0),即返回设备的ID号。

  代码如下:

  uint32_t Get_Flash_DeviceID(void)

  

  uint8_t deviceID= 0x00;

  spiflashReset();

  spi_write( 0xAB);

  spi_write( Dummy);

  spi_write( Dummy);

  spi_write( Dummy);

  deviceID = spi_write( Dummy);

  spi_write( Dummy);

  spiflashSet() ;

  return deviceID;

  

  NOR FLASH

  NOR Flash是一种非易失闪存技术,是Intel在1988年创建。

  是现在市场上两种主要的非易失闪存技术之一。Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。紧接着,1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP ,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。——《ARM嵌入式Linux系统开发从入门到精通》 李亚峰 欧文盛 等编著 清华大学出版社 P52 注释 API Key

  性能比较

  flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。

  由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。

  执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。

  l 、NOR的读速度比NAND稍快一些。

  2、 NAND的写入速度比NOR快很多。

  3 、NAND的4ms擦除速度远比NOR的5s快。

  4 、大多数写入操作需要先进行擦除操作。

  5 、NAND的擦除单元更小,相应的擦除电路更少。

  此外,NAND的实际应用方式要比NOR复杂的多。NOR可以直接使用,并可在上面直接运行代码;而NAND需要I/O接口,因此使用时需要驱动程序。不过当今流行的操作系统对NAND结构的Flash都有支持。此外,Linux内核也提供了对NAND结构的Flash的支持。

  详解

  NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。

  像“flash存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清楚NAND闪存技术相对于NOR技术的优越之处,因为大多数情况下闪存只是用来存储少量的代码,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。

  NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。

  NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理需要特殊的系统接口。

  SPI FLASH与NOR FLASH的区别

  1、SPI Flash (即SPI Nor Flash)是Nor Flash的一种;

  2、NOR Flash根据数据传输的位数可以分为并行(Parallel)NOR Flash和串行(SPI)NOR Flash;

  3、SPI Nor Flash每次传输一个bit位的数据,parallel Nor Flash每次传输多个bit位的数据(有x8和x16bit两种);

  4、SPI Nor Flash比parallel便宜,接口简单点,但速度慢。

  SPI FLASH是指外接口符合SPI协议,也就是串口。

  NOR FLASH与NAND 是相对的,指的是芯片内部的串型和并行。

  SPI FLASH是NOR FLASH的一种。

  结语

  关于SPI FLASH与NOR FLASH的相关介绍就到这了,如有不足之处欢迎指正。

以上是关于转SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样的主要内容,如果未能解决你的问题,请参考以下文章

SPI FLASH与NOR FLASH的区别?

SPI FLASH与NOR FLASH的区别?

宏旺半导体科普SPI NAND Flash和SPI NOR Flash的区别

NOR NANDRaw Flash和 Managed Flash的区别(转)

nand flash nor flash mcp flash 的区别

spi flash是啥,和其他有啥区别?