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. 092、部署Graylog日志系统(2019-05-16 周四)

    参考https://www.cnblogs.com/CloudMan6/p/7808708.html   Graylog 是与 ELK 可以相提并论的一款几种式日志管理方案,支持数据收集.检索.可视化 ...

  2. luogu P1587 [NOI2016]循环之美

    传送门 首先要知道什么样的数才是"纯循环数".打表可以发现,这样的数当且仅当分母和\(k\)互质,这是因为,首先考虑除法过程,每次先给当前余数\(*k\),然后对分母做带余除法,那 ...

  3. vue引入jquery插件

    在vue中使用jquery插件 1.引入jquery 第一种方法:全局引入jquery 在webpack.base.conf.js,新增以下代码 plugins: [ new webpack.opti ...

  4. 列举java语言中反射的常用方法

    package review;/*12:43 2019/7/21*/ import model.AnotherClass; import model.OneClassMore; import mode ...

  5. 错误代码errno值的含义

    错误代码errno值的含义 查看错误代码errno是调试程序的一个重要方法.当C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义, ...

  6. 在window环境下安装symfony2框架注意事项

    首先先放上放上安装的教程:http://www.symfonychina.com/doc/current/setup.html 然后说一下笔者遇到的坑 在运行这条命令的时候,虽然成功下载读取下来了,但 ...

  7. 微软推出全新的Windows终端应用程序

    微软正推出一款名为Windows Terminal的新命令行应用程序.它被设计为访问PowerShell,cmd.exe和Windows子系统Linux(WSL)等环境的中心位置.微软正在为想要调整终 ...

  8. wordpress的固定链接问题

    在安装完wordpress后,按照其方法在/etc/apache2/sites-available/000-default.conf文件中添加了下述代码中的加重部分: [...] ServerAdmi ...

  9. 写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true;

    写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true:也就是实现这样一个函数boolean isPalindrome(int x); 分析一下,该题目主要是通过 ...

  10. samba服务和client挂载

    服务端 1.安装samba服务 yum -y install samba 2.创建系统用户 因为Samba 服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性混乱 ...