本文主要是关于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的相关介绍就到这了,如有不足之处欢迎指正。
相关阅读推荐:揭开zynq z-7000从spi接口挂载的flash启动的神秘面纱
相关阅读推荐:详细讲解重用外设驱动代码_spi_nor_flash存储器
软硬兼施 寒武纪同步推出Neuware训练软件栈
英特尔正与脸书合作开发一种新的人工智能芯片
华为凌霄IoT Wi-Fi芯片: 面向家电,或将下半年推出
FHA60T65A IGBT单管为何是后极逆变电路中的首选元器件呢?
自动化控制系统配置原则和方法介绍
SPI FLASH与NOR FLASH的区别 详解SPI FLASH与NOR FLASH的不一样
珞石机器人活塞去毛刺方案
为保证自动驾驶汽车的安全性 车用传感器必不可少
测试case为什么会发生如此大的性能差距
水质多参数在线检测仪监测系统
接触器a1和a2怎么接线
工业主板具备的五大优势都有哪些呢?
交流电中的有效电流是如何定义的?
手持终端定制|PDA|手持机|rfid手持终端设备开发解决方案
大家需要什么样的clocktree呢?芯片的动脉CLOCK TREE介绍
华为5G随行WiFi值不值得买
采取几个步骤,使物联网转型更容易
华为推送新系统,流畅度不逊于苹果iOS
Wolfspeed模块产品组合如何服务于整个功率范围
数字电路中何时会发生亚稳态