
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2018-05-13 标题【转】Nand FlashNor FlashCFI FlashSPI Flash 之间的关系分类编程NAND Flash/NOR Flash/CFI Flash/SPI Flash简单笔记本文转自《 https://blog.csdn.net/wangzhen209/article/details/44060071 》前言在嵌入式开发中如uboot的移植kernel的移植都需要对Flash 有基本的了解。下面细说一下标题中的中Flash中的关系Flash的内存存储结构flash按照内部存储结构不同分为两种nor-flash和nand-flash。NorFLASH使用方便易于连接可以在芯片上直接运行代码稳定性出色传输速率高在小容量时有很高的性价比这使其很适合应于嵌入式系统中作为 FLASH ROM。相对于NorFLASHNandFLASH强调更高的性能更低的成本更小的体积更长的使用寿命。这使NandFLASH很擅于存储纯资料或数据等在嵌入式系统中用来支持文件系统。Nand Flash在工艺制程方面分两种类型MLC和SLC。MLC和SLC属于两种不同类型的NAND FLASH存储器。SLC全称是Single-Level Cell即单层单元闪存而MLC全称则是Multi-Level Cell即为多层单元闪存。它们之间的区别在于SLC每一个单元只能存储一位数据MLC每一个单元可以存储两位数据MLC的数据密度要比SLC 大一倍。在页面容量方面分NAND也有两种类型大页面NAND flas如HY27UF082G2B和小页面NAND flash如:K9F1G08U0A。这两种类型在页面容量命令序列、地址序列、页内访问、坏块标识方面都有很大的不同并遵循不同的约定所以在移植驱动时要特别注意。Nor Flash在通信方式上Nor Flash 分为两种类型CFI Flash和 SPI Flash。CFI Flash英文全称是common flash interface,也就是公共闪存接口是由存储芯片工业界定义的一种获取闪存芯片物理参数和结构参数的操作规程和标准。CFI有许多关于闪存芯片的规定有利于嵌入式对FLASH的编程。现在的很多NOR FLASH 都支持CFI但并不是所有的都支持。CFI接口相对于串口的SPI来说也被称为parallel接口并行接口另外CFI接口是JEDEC定义的所以有的又成CFI接口为JEDEC接口。所以可以简单理解为对于Nor Flash来说CFI接口JEDEC接口Parallel接口 并行接口SPI Flashserial peripheral interface串行外围设备接口,是一种常见的时钟同步串行通信接口。CFI Flash 和 SPI Flash 比较SPI flash和 CFI Flash 的介质都是Norflash 但是SPI 是通过串行接口来实现数据操作而 CFI Flash 则以并行接口进行数据操作SPI容量都不是很大市场上 CFI Flash 做大可以做到128Mbit而且读写速度慢但是价格便宜操作简单。而parallel接口速度快容量上市场上已经有1Gbit的容量价格昂贵。Nor Flash 又分为SPI Flash(串行 使用SPI通信)和 Nor Flash(并行 总线上传输)SPI Flash : 每次传输一个bit位的数据传输速度慢但是价格便宜任意地址读数据擦除按扇区进行Nor Flash : 每次传输一个字节 速度快任意地址读数据擦除按扇区进行Nand Flash芯片操作是以“块”为基本单位.NAND闪存的块比较小一般是8KB然后每块又分成页页大小一般是512字节.要修改NandFlash芯片中一个字节必须重写整个数据块读和写都是按照扇区进行的。简单来说Norflash可以任意地址读取NandFlash不可以。