Nor Flash是Intel在1988年推出的非易失闪存芯片,可随机读取,擦写时间长,可以擦写1~100W次,支持XIP(eXecute In Place)。

本文以JS28F512M29EWH为例分析Nor Flash芯片的特性以及读、擦、写、查询等操作的具体实现原理。

1、芯片特性

1)页大小32Bytes, 块大小128KB, 写缓冲区1KB(芯片厂家决定写缓冲区大小)

2)随机或者按页读取

3)以块为单位擦除、写入(擦除之后所有位默认为1)

4)WP#引脚决定锁保护第一个块或者最后一个块(具体哪一个块由芯片厂家决定)

5)Byte#引脚决定数据总线位宽,低电平时为x8模式,高电平时为x16模式(数据总线位宽,地址总线位宽由硬件连接和CPU控制器决定)

6)兼容JEDEC或者CFI协议(JEDEC制定)

7)Extended Memory Block

2、引脚说明

1)Address Inputs (A0~Amax)

地址输入信号

2)Data Inputs/Outputs(DQ0~DQ7)

数据输入输出信号

3)Data Inputs/Outputs(DQ8~DQ14)

当BYTE#引脚为低电平(x8模式)时,DQ8~DQ14均为高阻态;当BYTE#为高电平(x16模式)时,DQ8~DQ14有效

4)Data Input/Output or Address Input (DQ15/A-1)

当BYTE#引脚为低电平(x8模式时),该引脚为A-1,即地址最低位;当BYTE#引脚为高电平(x16模式)时,该引脚为DQ15。

5)Chip Enable(CE#)

当CE#为低电平时,允许Bus Read和Bus Write操作;当CE#为高电平时,禁止Bus Read/Write操作

6)Output Enable(OE#)

输出使能控制信号,控制Bus Read操作

7)Write Enable(WE#)

写使能控制信号,控制Bus Write操作

8)Vpp/Write Protect(WP#)

当WP#引脚为低电平时,写保护第一个或者最后一个块。

备注:对于2Gbit或者1Gbit的Nor Flash,写保护第一个块和最后一个块;对于低于1Gbit的Nor Flash,写保护最后一个块(芯片厂家自定义)

9)Reset(RST#)

复位信号

10)Ready/Busy Output(RY/BY#)

在擦写操作时为低电平,在读操作时为高电平

11)Byte/Word Organization Select(BYTE#)

BYTE#引脚为低电平时,为x8模式(数据总线位宽);为高电平时,为x16模式

3、Nor Flash硬件连线

  从引脚说明部分可以看到,Nor Flash有自己独立的地址总线和数据总线,这样的总线称为Local Bus总线。

  通常,硬件设计上,x16模式下Nor Flash地址总线A0~An与处理器的地址总线A0~An是一一对应直连的。x8模式下错一位,Nor Flash地址总线A-1~An-1与处理器地址总线A0~An一一对应。

4、命令集和工作模式

  Nor Flash的读取和RAM很类似,但是不可以直接进行写操作,对Nor Flash的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。

  Nor Flash和Nand Flash一样,必须先擦后写。

  此外,Nor Flash芯片内部还写入了一些特定信息,需要进入特定模式查询。

  Nor Flash的Reset、Read、Program、Erase、Read CFI Query均需要通过上述命令序列才能实现。比如,往0x55地址写入0x98,才能进入Read CFI Query模式获取芯片预置信息。

5、CFI接口(Common Flash Interface)

  JEDEC(Joint Electron Device Engineering Council)即电子元件工业联合会。JEDEC是由生产厂商们制定的国际性协议,主要为计算机内存制定。JEDEC用来帮助程序读取Flash的制造商ID和设备ID,以确定Flash的大小和算法,如果芯片不支持CFI,就需使用JEDEC了。工业标准的内存通常指的是符合JEDEC标准的一组内存。

  不同公司的Nor Flash在erase/program/lock/unlock等操作上有差别,即command set不一致。

  CFI接口是由Intel, AMD, Sharp, Fujutsu推动JEDEC制定的一个通用接口,用来帮助程序读取Flash的制造商ID和设备ID,确定Flash的大小,获取Flash的各个物理特性,比如block块的擦除时间等。CFI标准目前只支持Parallel Nor Flash,还不支持SPI Flash和Spansion的ORNAND Flash。

CFI标准包括以下五部分:

  CFI是一组标准的数据结构,通过Read CFI Query Command命令(往0x55地址写0x98)进入Read CFI Query模式查询。为统一起见,通过CFI接口查询时,CFI接口地址均为Flash芯片的地址,通过CFI接口查询到的数据,以D7~D0低字节为准。

1) CFI Query Identification String CFI查询识别码字符串

在Read CFI Query模式,通过读取查询识别码信息部分,可以判断Nor Flash芯片是否支持CFI。

比如,在x16模式下,读取0x10开始的连续三个字节,如果为QRY字符串,则表示Nor Flash支持CFI。

2) System Interface String 系统接口字符串

在Read CFI Query模式下,通过读取系统接口信息部分,可以获取Nor Flash芯片的电气特性。

3) Device Geometry Definition 设备物理结构信息

在Read CFI Query模式下,通过读取设备物理结构信息部分,可以获取Nor Flash芯片的容量、数据总线位宽、单次写入字节数最大值、擦除块大小等信息。

4) Primary Vendor-Specific Extended Query 原始设备提供商查询信息

在Read CFI Query模式下,通过读取原始设备提供商信息部分,可以获取厂商信息。

5) Alternate Vendor-Specific Extended Query 可选供应商自定义扩展查询信息

厂家自定义,一般不涉及。

Nor Flash芯片特性分析的更多相关文章

  1. 智能设备逆向工程之外部Flash读取与分析篇

    智能设备逆向工程之外部Flash读取与分析篇 唐朝实验室 · 2015/10/19 11:19 author: rayxcp 0x00 前言 目前智能家居设备的种类很多,本文内容以某智能豆浆机为例完成 ...

  2. Flash芯片你都认识吗?

    [导读]Flash存储器,简称Flash,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程的性能,还不会因断电而丢失数据,具有快速读取数据的特点;在现在琳琅满目的电子市场上,Flash总类可谓繁 ...

  3. Arduino SPI + SPI Flash芯片W25Q80BV

    W25Q80BV是台湾华邦电子(Winbond)生产的8M-bit串行flash芯片.主要特性有: 工作电压:2.5 ~ 3.6 V 功耗:读写(active)时4mA,低功耗(power-down) ...

  4. MySQL · 特性分析 · 优化器 MRR & BKA【转】

    MySQL · 特性分析 · 优化器 MRR & BKA 上一篇文章咱们对 ICP 进行了一次全面的分析,本篇文章小编继续为大家分析优化器的另外两个选项: MRR & batched_ ...

  5. Nand flash 芯片工作原理

    Nand flash 芯片型号为 Samsung K9F1208U0B,数据存储容量为 64MB,采用块页式存储管理.8 个 I/O 引脚充当数据.地址.命令的复用端口. 芯片内部存储布局及存储操作特 ...

  6. 【linux】驱动-4-LED芯片手册分析

    目录 前言 4. LED芯片手册分析 4.1 内存管理单元MMU 4.1.1 MMU的功能 4.1.2 TLB的作用 4.2 地址转换函数 4.2.1 ioremap函数 4.2.2 iounmap函 ...

  7. Flash平台的分析与RIA的趋势

    10月3号,Flash Player 11 和 AIR 3.0正式提供下载,一片安静.最近这两年来,关于Flash的新闻一向是以负面为主,先是 Silverlight 的挑战,然后是 iphone和i ...

  8. mini2440 Nor Flash工作原理分析

    我的mini2440上是只接了一块Nor Flash,型号是S29AL016M90TAI02,这是一块2M Byte,16位宽度的Nor Flash,用于引导扇区的闪存.原理图里面关键的引脚是: 地址 ...

  9. Android 4.4 新特性分析-15项大改进!

    Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5.Android 4.4 KitKat有怎样的改进.是否值得升级呢,下面就为大家呈现Android 4.4 ...

随机推荐

  1. sql server 三角函数

    正弦函数SIN(x)和反正弦函数ASIN(x) --SIN(x)返回x的正弦,其中x为弧度值 --ASIN(x)返回x的反正弦,即正弦x的值,若x不在-1到1的范围内,则返回NULL 示例:selec ...

  2. 10.jQuery之停止动画排队stop方法(重点)

    重点:stop,在实际项目中,这个细节很重要 <style> * { margin: 0; padding: 0; } li { list-style-type: none; } a { ...

  3. mysql数据库之存储过程

    存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该 ...

  4. css 文本单行显示溢出时出现省略号 多行显示溢出时出现省略号 首行缩进

    一.文本单行显示溢出时出现省略号 二.文本多行显示溢出时出现省略号(这种样式只能在webkit和移动端使用,包括小程序,不能设置固定高度) 三.首行缩进两字符 text-indent: 2em; 四. ...

  5. 索引介绍,转载自:https://tech.meituan.com/2014/06/30/mysql-index.html

    索引原理 除了词典,生活中随处可见索引的例子,如火车站的车次表.图书的目录等.它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总 ...

  6. php关于jquery ajax json不返回数据的问题

    分析原因: 1.php端代码有错导致echo输出错误,导致ajax返回函数不执行 2.jquery版本原因 3.juqery前端script代码问题

  7. linux如何判断上一条命令执行是否正确

    echo $? 如果输出0代表结果正确 如果输出非0代表结果错误

  8. ax2+bx+c=0的根的算法

    每日一练作业 写一个函数,接受三个整数a, b, c,计算ax2+bx+c=0 的根. 另外,在计算时应当判断 b2 - 4ac 是否大于0. 我们什么都没有,唯一的本钱就是青春.梦想让我与众不同,奋 ...

  9. JVM垃圾回收之CMS收集器

    从前文JVM垃圾回收几种常见算法和常见收集器我们知道,CMS是老年代垃圾收集器.CMS 收集器主要关注系统停顿时间.CMS 是 Concurrent Mark Sweep 的缩写,意为并发标记清除,从 ...

  10. python实例31[生成随即的密码]

    代码: import random import string import time # strong.high = 3  #random for the whole passwd #storng. ...