痞子衡嵌入式:通用NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介



  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是CFI标准及SLC Parallel NOR

  NOR Flash是嵌入式世界里最常见的存储器,常常内嵌在微控制器里(Parallel型)或外置作为内存扩展(Serial型),作为代码存储器。对于嵌入式开发而言,NOR主要分为两大类:Serial NOR、Parallel NOR,最早出现的NOR是Parallel NOR,后来为了简化引脚数,逐渐发展出了Serial NOR,目前的格局是Serial NOR主要占据低容量NOR市场(128Mb以下),而Parallel NOR主要占据高容量NOR市场(128Mb以上),虽然这两类NOR的差异比较大(软件驱动开发角度而言),但是它们有一个共性,那就是均兼容CFI接口标准,这给软件驱动开发带来了便利。

一、CFI-JESD68标准由来

  关于NOR Flash发展史,我们知道早在1988年Intel便发表了NOR Flash结构,从此改变了由EPROM/EEPROM一统天下的局面。早期的NOR产品主要是Parallel NOR,作为半导体行业领导大厂,为了使NOR产品发展标准化,Intel于1996年制定了CFI 1.0标准(1.0版本属于draft版本,正式版本是1997年发布的1.1),CFI标准的存在是为了让Host能够从NOR Flash device中直接获取制造商ID、设备ID、Flash大小以及各种物理特性,从而使得NOR Flash产品在前后兼容性上表现更好,软件驱动设计也更加标准化。
  鉴于CFI已慢慢发展成为NOR Flash事实上的接口标准,JEDEC组织于1999年9月正式将CFI标准命名为JESD68,下表是CFI-JESD68标准制定的时间关系:

时间 NOR标准 制定者
1996.07 CFI 1.0 Intel
1997.05 CFI 1.1 Intel
1999.09 JESD68 JEDEC
2001.12 CFI 2.0 AMD
2003.09 JESD68.01 JEDEC

Note: CFI-JESD68标准原则上是为Parallel NOR制定的,但是部分Serial NOR也支持这一标准。

二、SLC Parallel NOR原理

2.1 Parallel NOR分类

  从软件驱动开发角度而言,Parallel NOR可以从以下几个方面进一步细分:

单元层数(bit/cell):SLC(1bit/cell) / MLC(2bit/cell)
地址模式: ADP / ADM / AADM
数据线宽度:x8 / x16
信号线模式:Asynchronous / Synchronous
数据采集模式:SDR / DDR
接口标准:CFI

  本文的主要研究对象是兼容CFI 2.0 (JESD68.01)标准的Asynchronous SDR SLC Parallel NOR Flash。

2.2 Parallel NOR内存模型

  NOR内存单元从大到小一般分为如下5层:Device、Block、Sector、Page、Byte,其中Byte、Page和Sector是必有的,因为Byte是读取的最小单元(即可以任意地址随机访问),Page是编程的最小单元,Sector是擦除的最小单元,而Block则不是必有的(如没有,可认为Block=1)。

Note: 关于Block有一点需要特别说明,即NOR的RWW(Read While Write)特性,我们知道NOR是可以存储代码直接原地执行XIP的,如果在某个Block里执行代码(即CPU从NOR中读取指令数据)的同时去擦除或编程这块Block会发生什么情况呢?有些NOR是支持这种RWW操作的,但也有的NOR不支持RWW(此时会产生hardfault/lockup),Block的存在是为了规避RWW问题,RWW问题的作用范围是Block,如果某Block中执行代码擦除/编程的是另一块Block,则完全不用担忧RWW问题。

2.3 Parallel NOR信号与封装

  CFI手册里并没有明确规定Parallel NOR信号线与封装,但业界有默认的标准,从信号线角度来说NOR和SRAM基本是一样的,如下是典型的Parallel NOR内部结构图,除了内存单元外,还有三大组成,分别是控制单元、地址译码单元和输出缓冲单元,信号线主要挂在这三大组成上,关于各信号线具体作用,请查阅相关文档。

  NOR芯片根据Flash size大小不同封装也不尽相同,以经典的128Mb容量的ADP NOR芯片为例,其封装一般有三种TSOP-56, TFBGA-56, LFBGA-64,下图是TSOP-56封装信号分布:

2.4 Parallel NOR接口命令

  CFI手册里也没有明确规定Parallel NOR接口命令,同样地业界还是有默认的标准,如下是从Micron MT28EW系列手册里截取的部分基本命令,包括Reset、Read、Read CFI、Program(Word program)、Buffer Program、Block(Sector) Erase,涵盖读写擦最基本的三种操作,这些基本命令在主流厂商的NOR产品里都被支持。此外,NOR还支持更多高级命令(Blank Check、security/protect相关,lower power相关等),那些命令因Device而异,不是本文讨论重点。









  除了读写擦这三个最基本命令外,还有一个Data Polling机制也非常常用,这个机制用于获取命令(主要是Program/Erase)执行状态与结果,当Program/Erase命令发给NOR device之后,NOR device是通过DQ[7:0]引脚来返回命令执行状态的,各bit意义如下图所示,简单来说DQ3(Erase timer bit)表明操作的开始,DQ5(Error bit)表明操作过程中是否发生硬件错误,DQ6(Toggle bit)表明操作是否结束。


  下图为Toggle bit检测的流程图,这个检测流程是最常用的,主要用于确认Program/Erase操作是否成功地执行了。

  此外,还有一个必有命令不得不提,这个命令是Read CFI,用于获取芯片内部存储的出厂信息(包括内存结构、特性、其他行为参数等),这个query table最多由五部分组成,其结构已由CFI规定如下表,痞子衡已经圈出了一些重要信息,在设计NOR软件驱动时,可以通过获取这个query table来做到代码通用。




2.5 Parallel NOR数据速率

  数据存取速率是个重要的技术指标,对于这个指标,CFI手册里并没有定义,所以需要根据NOR Flash手册里的AC characteristics表来确定。以异步模式Read命令为例讲解(以Micron生产的型号为MT28EW128ABA为例),下面是Read的两种模式Random Read和Page Read完整时序简图:


  从上述时序图,我们可以知道Page Read平均数据率肯定是比Random Read要高的,那么这两种数据率分别能达到多少呢?可继续参看如下时序参数表,tRC最小为70ns,那么Random Read数据率最大为2Bytes/70ns = 228.571Mbps,而tPAGE最大为20ns,那么Page Read的数据率最小为2Bytes / 20ns = 800Mbps。(注:均以x16 Device为例)

  如果想快捷地了解NOR Flash的性能,最简单的就是打开NOR Flash手册,看首页的feature介绍,如下是MT28EW128ABA的简要feature:

? Single-level cell (SLC) process technology
? Density: 128Mb
? Supply voltage
  – VCC = 2.7–3.6V (program, erase, read)
  – VCCQ = 1.65 - VCC (I/O buffers)
? Asynchronous random/page read
  – Page size: 16 words or 32 bytes
  – Page access: 20ns
  – Random access: 70ns (VCC = VCCQ = 2.7-3.6V)
  – Random access: 75ns (VCCQ = 1.65-VCC)
? Buffer program (512-word program buffer)
  – 2.0 MB/s (TYP) when using full buffer program
  – 2.5 MB/s (TYP) when using accelerated buffer program (VHH)
? Word/Byte program: 25us per word (TYP)
? Block erase (128KB): 0.2s (TYP)
? Memory organization
  – Uniform blocks: 128KB or 64KW each
  – x8/x16 data bus
? CFI (Common Flash Interface) support

三、SLC Parallel NOR产品

  最后痞子衡收集了可以售卖SLC Parallel NOR芯片的厂商及产品系列:

厂商 芯片系列 官方网址
Micron MT28EW, MT28FW https://www.micron.com

parallel-nor-part-catalog

Macronix MX68GL

MX29LA, MX29GL, MX29GA, MX29LV

MX29VS, MX29NS, MX29SL, MX29F

http://www.macronix.com

parallel-nor-part-catalog

Winbond W29GL http://www.winbond.com.tw

parallel-nor-part-catalog

Spansion S29GL, S29AL, S29AS, S29PL http://www.cypress.com/

parallel-nor-part-catalog

ISSI IS29GL www.issi.com

parallel-nor-part-catalog

Microchip SST38VF, SST39VF https://www.microchip.com

parallel-nor-part-catalog

  至此,CFI标准及SLC Parallel NOR痞子衡便介绍完毕了,掌声在哪里~~~

原文地址:https://www.cnblogs.com/henjay724/p/9251620.html

时间: 2024-11-08 09:40:15

痞子衡嵌入式:通用NOR接口标准(CFI-JESD68)及SLC Parallel NOR简介的相关文章

痞子衡嵌入式:并行接口NAND标准(ONFI)及SLC Raw NAND简介

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ONFI标准及SLC Raw NAND. NAND Flash是嵌入式世界里常见的存储器,对于嵌入式开发而言,NAND主要分为两大类:Serial NAND.Raw NAND,这两类NAND的差异是很大的(软件驱动开发角度而言),即使你掌握其中一种,也不代表你能了解另一种. Raw NAND是相对于Serial NAND而言的,Serial NAND即串行接口的NAND Flash,而Raw NAND是并行接口的NAND FLASH

《痞子衡嵌入式半月刊》 第 2 期

痞子衡嵌入式半月刊: 第 2 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期. 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿. 上期回顾 :<痞子衡嵌入式半月刊: 第 1 期> 唠两句 如果你第一时间阅读本期,此时应正是立春与雨水交节之时(2020年02月19日 12:56:53).雨水节气标示着降雨开始.雨量渐增,俗话说"

痞子衡嵌入式:飞思卡尔i.MX RT系列微控制器启动篇(9)- 从Parallel NOR启动

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Parallel NOR启动. 上一篇讲i.MXRT从Raw NAND启动的文章 飞思卡尔i.MX RT系列微控制器启动篇(8)- 从Raw NAND启动 一经放出,深入广大网友喜爱,短时间内阅读量飙升,这让痞子衡深入鼓舞,所以趁热打铁继续把从Parallel NOR启动也顺便一起讲了,为什么说是顺便呢?因为Parallel NOR与Raw NAND都是并行接口,属于同一门派,且这两种外存设备在i.

痞子衡嵌入式:史上最强i.MX RT学习资源汇总(持续更新中...)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MX RT学习资源. 类别 资源 简介 官方汇总 i.MXRT产品主页 恩智浦官方i.MXRT产品主页,最权威的资料都在这里,参考手册/数据手册,官方EVK板设计文件,各种应用笔记,各种参考设计方案.培训视频.软件SDK开发包,官方IDE/CFG工具,第三方软件支持等应有尽有,如果这上面文档你都能全部仔细看一遍,软件都能下载用起来,不用怀疑,你就是资深专家了. 其中痞子衡特别推荐你把所有应用笔记都看一遍,这些笔记凝结了所有恩智浦

痞子衡嵌入式:测一测i.MXRT1170 Raw NAND启动时间(从POR到进App的Reset_Handler)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT1170 Raw NAND启动时间. 关于i.MXRT1170这颗划时代的MCU,痞子衡去年10月在其刚发布的时候,专门写过一篇文章介绍过其特点(详见 <终于可以放开聊一聊i.MXRT1170这颗划时代MCU了>),眼看着其上市日期越来越近了,恩智浦软硬件技术支持团队也正在紧锣密鼓地开发SDK以及参考设计.因为官方首次在i.MXRT1170 EVK板上(Rev.B)放了一片旺宏的Raw NAND芯片,而i.MX

痞子衡嵌入式:飞思卡尔i.MX RT系列微控制器启动篇(13)- 从Serial(1-bit SPI) EEPROM/NOR恢复启动

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Serial EEPROM/NOR恢复启动. 在前几篇里痞子衡介绍的Boot Device都属于主动启动的Primary Boot Device(Serial NOR/NAND, Parallel NOR/NAND, SD/eMMC),试想一下如果遇到这样的情况,你选择启动的某个Primary Boot Device正常工作一段时间后某次开机突然因为某种未知原因无法启动了,此时系统无法正常工作,但如

痞子衡嵌入式:飞思卡尔i.MX RT系列微控制器启动篇(6)- Bootable image格式与加载(elftosb/.bd/.bin)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Bootable image格式与加载过程. 在i.MXRT启动系列第三篇文章 飞思卡尔i.MX RT系列微控制器启动篇(3)- Serial Downloader模式(sdphost, mfgtool) 里痞子衡在介绍使用sdphost引导启动Flashloader时使用过一个名叫ivt_flashloader.bin的image文件,其实这个image文件就是Bootable image的一种,

痞子衡嵌入式:飞思卡尔i.MX RT系列微控制器启动篇(4)- Flashloader初体验(blhost)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的Flashloader. 在上一篇文章 飞思卡尔i.MX RT系列微控制器启动篇(3)- Serial Downloader模式(sdphost, mfgtool) 里痞子衡为大家介绍了i.MXRT Boot的Serial Downloader模式,这种模式主要是用来引导启动Flashloader,那么Flashloader到底具有哪些功能?这是本篇文章痞子衡要为大家解惑的主题. 痞子衡在前面提过F

痞子衡嵌入式:并行接口NAND互操作性标准(JEDEC-JESD230)

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是JESD230标准. 众所周知,最流行的Raw NAND接口标准是ONFI标准,痞子衡在 并行接口NAND标准(ONFI)及SLC Raw NAND简介 里详细介绍过ONFI 1.0,但是微电子行业的标准哪能少得了大名鼎鼎的JEDEC组织,在Raw NAND技术及ONFI标准发展得较成熟的时候,JEDEC也制定了一套Raw NAND标准,即本文的主角JESD230标准,该标准并不是要和ONFI标准分庭抗礼,而是ONFI标准的补充与延