NorFlash 知识点总结

一、介绍

        NorFlash(也称为 NOR 型闪存)是一种非易失性存储器,常用于嵌入式系统和存储设备中。NorFlash 是一种闪存类型,可以用于存储程序代码、固件、操作系统以及其他数据。与 NAND Flash 相比,NorFlash 具有较低的存储密度和较高的成本,但具有较快的读取速度、较低的读取延迟和较好的随机访问性能。这使得 NorFlash 适合用作执行代码和存储需要低延迟和高可靠性的关键数据的应用程序。它在嵌入式系统中被广泛应用于引导存储器和关键数据存储,为设备的启动和运行提供了可靠的解决方案。

二、相关知识补充

1、NorFlash ID

        NorFlash 的 ID 定义规则是根据具体的芯片型号和厂商的规定而定的,一般格式如下:

厂商 ID

用于标识 NorFlash 芯片的制造厂商。每个厂商都有自己独特的 ID

设备 ID

设备 ID 是指 NorFlash 芯片的设备标识符。不同芯片厂商有不同的设备 ID 命名规则

存储密度

用于标识 NorFlash 芯片的存储容量

Flash ID 可在对应的 NorFlash 手册中查询,以 GD25LT 为例:

2、命令

        主控制器通过总线发送不同的命令访问 NorFlash 芯片,常见的命令包括 GET ID、GET STATUS、READ、WRITE、ERASE 等。不同的命令拥有不同的命令字和传输协议,这部分在 NorFlash 手册中有详细的描述。以 GD25LT 的读命令为例:

        上表中可以看出,GD25LT 包含 5 种 READ 命令,对应了 5 中不同的命令传输协议,适配 NorFlash 时根据实际情况选择合适的命令即可。

3、命令传输协议

命令组成结构

        主控制器对 NorFlash 的所有操作都基于命令进行,一条命令由 Command、Address、Extra、Dummy、Data 五个命令段中的部分段组成。如下图所示:

命令段

描述

Command

命令字段

Address

地址字段

Extra

扩展字段

Dummy

延时字段

Data

数据字段

        以 GD25LT 的读命令 03H 为例,包含 1B 的命令字 03H,3B 的地址字段,后面紧接着是若干字节的数据字段。各字段数据均以 1 线方式传输:

        再以 GD25LT 的读命令 6BH 为例,包含 1B 的命令字 6BH,3B 的地址字段,8 位 Dummy 周期,后面紧接着是若干字节的数据字段。其中命令字段、地址字段以 1 线方式传输,数据字段以 4 线方式传输:

1/2/4/8 线和 SDR/DDR

        用于传输数据的 Data 线数量可能存在 1/2/4/8 这四种情况。数据线上有 SDR、DDR 两种模式,SDR 表示一个时钟周期采样一位,DDR 表示一个时钟周期采样两位。1 线 SDR 模式一个时钟周期传输一位数据,而 8 线 SDR 模式一个时钟周期传输 1 字节数据。以此类推 8 线 DDR 模式一个时钟周期传输 2 字节数据。不同芯片、不同命令、不同字段需要使用的 Data 线数量和模式都不一样,具体需要在手册中查询。

        我们在这里将一条命令的传输协议用 xy-xy-xy 的形式表示,三个部分分别代表 Command、Address、Data 字段,x 表示 Data 线数量,y 表示 Data 线模式。具体表示方式参考如下几个案例。

        还以 GD25LT 的读命令 03H 为例,从手册中可以看出 Command、Address、Data 三个字段均以 1 线形式传输,且都为 SDR 模式,因此 GD25LT 的读命令 03H 的传输协议可以被标记为 1s-1s-1s

        再看 GD25LT 的读命令 6BH,从手册中可以看出 Command、Address 这两个字段的数据通过 1 线形式传输,Data 字段以 4 线形式传输,且都为 SDR 模式,因此 GD25LT 的读命令 6BH 的传输协议可以被标记为 1s-1s-4s

        再来看一个 DDR 的情况,MT35XU 的读命令 9DH Command 字段使用 1 线 DDR 模式(可以看成 DDR 模式传输 2 字节 Cmd),Address、Data 使用 8 线 DDR 模式。因此 MT35XU 的读命令 9DH 的传输协议可以被标记为 1d-8d-8d:

Dummy

        Dummy 延时一般出现在读数据、状态命令的 Address 字段和 Data 字段之间,是为了让 Flash 有时间去准备被读取的数据。芯片手册中会规定具体的 Dummy 延时周期数,某些芯片中这个值可以通过 Nor 寄存器进行配置。

4B 地址模式

        命令传输协议中默认 Address 字段长度为 3 字节,即寻址范围为 0 - 16MB。当 NorFlash 的容量超过 16MB 时,3 字节的 Address 字段就不够了,这时需要使能 4B 地址模式。使能 4B 地址模式后,主控制器需要在传输 Address 字段是发送 4 字节地址。

Data Strobe Signal(DQS)

        DQS 信号在主控制器期读操作期间由 Flash Device 输出,一般用于在高速模式下代替 CLK 信号,已达到提高数据采样稳定性的作用。在 DQS 使能后,主控制器会根据 DQS 的时钟边沿从数据线上采样数据。

4、状态/配置寄存器

        NorFlash 芯片中包含一系列状态、配置寄存器,可以通过读取、写入状态、配置寄存器完成 NorFlash 状态查询、设置 Dummy 值、设置模式等操作。GD25LT 的状态寄存器如下所示:

        从上表中可以看状态、配置寄存器有 Volatile、Non-volatile 两种模式。Volatile 表示易失,即配置后掉电(复位)后丢失,Non-volatile 表示非易失,即配置后掉电(复位)后数据不丢失。NorFlash 会提供具体的命令用于读取、写入状态、配置寄存器。GD25LT 的读寄存器命令如下所示:

5、Busy 状态

        NorFlash 在执行擦除、写入数据、写入非易失寄存器后会立即进入 Busy 状态。在此期间除了读取状态寄存器命令外,NorFlash 不会响应任何其他的命令。在 NorFlash 内部完成对应的擦除、写入操作后会恢复到 Idle 状态,主控制器可以通过查询状态寄存器 WIP 位判断当前 NorFlash 状态,1 表示 Busy 状态,0 表示 Idle 状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【infiniband】ibdump抓包

ibdump用于捕获和转储InfiniBand网络的流量。 这种工具通常用于调试和分析InfiniBand网络问题,包括性能瓶颈和配置错误。ibdump工具在Mellanox InfiniBand环境中较为常用,现由NVIDIA提供支持。 使用ibdump的基本步骤 请注意,您需要在安装了…

详解接口测试

目录 什么是接口? 接口协议的类型 接口测试是什么 HTTP接口的测试用例设计 HTTP接口的测试方法 什么是接口? 在面向对象编程中,接口是一个抽象的概念,用于定义类应该具有的方法和属性。一个类可以实现一个或多个接口&#xf…

【Jmeter】Jmeter基础8-Jmeter元件介绍之断言

断言主要用于对服务器响应的数据做验证。Jmeter提供了多个断言元件,其中最常用的是响应断言。 2.8.1、响应断言 作用:对Jmeter取样器返回值进行断言。参数说明: 测试字段 响应文本:从服务器返回的响应文本,Response B…

大数据云计算之OpenStack

大数据云计算之OpenStack 1.什么是OpenStack,其作用是什么?OpenStack主要的组成模块有哪些?各自的主要作用是什么? OpenStack是一个开源的云计算平台,旨在为企业和服务提供商提供私有云和公有云的建设和管理解决方案…

USB设备共享服务USB Redirector如何安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序,它提供了共享和访问本地或互联网上的U…

排序算法(详解)

排序在日常生活中十分重要,购物平台上商品的排序,各国高校等级的排序......可以说,现代生活中已经离不开排序了;因此学好排序算法至关重要,本篇文章就来讲讲常见的排序算法 排序的种类非常多,按照种类划分&…

分割均衡字符串 - 华为OD统一考试(C卷)

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 均衡串定义:字符串只包含两种字符,且两种字符的个数相同。 给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。 约定字符串中只…

汇川SV660P伺服MODBUS通信设置回原

汇川伺服MODBUS-RTU通信的详细设置可以查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/134942690https://rxxw-control.blog.csdn.net/article/details/134942690首先我们介绍最简单的回原方式,就是以当前位置为原点回原,此时伺服电机不动作,绝对…

Layui实现自定义的table列悬停事件并气泡提示信息

1、概要 使用layui组件实现table的指定列悬停时提示信息&#xff0c;因为layui组件中没有鼠标悬停事件支持&#xff0c;所以需要结合js原生事件来实现这个功能&#xff0c;并结合layui的tips和列的templte属性气泡提示实现效果。 2、效果图 3、代码案例 <!DOCTYPE html&g…

智能优化算法应用:基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于乌鸦算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.乌鸦算法4.实验参数设定5.算法结果6.参考文献7.MA…

vue2-安装elementUI时警告

警告内容&#xff1a;npm WARN deprecated core-js2.6.12: core-js<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up …

微软免费开发隧道(内网穿透)服务

软件下载 Windows x64&#xff1a;https://aka.ms/TunnelsCliDownload/win-x64 macOS (arm64)&#xff1a;https://aka.ms/TunnelsCliDownload/osx-arm64-zip macOS (x64)&#xff1a;https://aka.ms/TunnelsCliDownload/osx-x64-zip Linux x64&#xff1a;https://aka.ms/…

漏电保护芯片——可直接驱动SCR,输出脉宽模式可选择。适用于交流110V~220V(50~60Hz)供电系统

D4140 D4145 D4147 D54123等芯片适用于交流110V~220V(50~60Hz)供电系统&#xff0c;用于检测AC型剩余漏电信号&#xff0c;可直接驱动SCR&#xff08;可控硅&#xff09;&#xff0c;当有漏电信号时&#xff0c;OS输出高电平延时脉冲&#xff0c;输出脉宽模式可选择。

docker安装RabbitMQ3.8.34

&#x1f60a; 作者&#xff1a; 瓶盖子io &#x1f496; 主页&#xff1a; 瓶盖子io-CSDN博客 a.拉取rabbitmq镜像 docker pull rabbitmq:3.8.34-management b.根据镜像创建容器 在yml配置文件中port是5672 访问是ip:15672 docker run --name rabbitmq -d -p 5672:5672 -…

JavaScript如果实现一段文字的高亮显示

JavaScript实现将一段文字检索高亮显示,效果如下: 实现方法:调用highlight函数 highlight("JavaScript如果实现一段文字的高亮显示", "高亮")实战代码实现: function highlight(value, search)

node.js express JWT token生成与校验

目录 JWT header&#xff08;标头&#xff09; payload&#xff08;有效负载&#xff09; signature&#xff08;签名&#xff09; 访问令牌&#xff08;token&#xff09; express jwt生成、验证 生成jwt 验证jwt JWT JWT 是轻量级的数据交换格式&#xff0c;相对于传…

5分钟搞懂Kubernetes:轻松理解所有组件

Kubernetes 首先&#xff0c;我想强调的是&#xff0c;在学习任何一项知识时&#xff0c;官方文档都是最重要的资源&#xff1a;Kubernetes 文档 | Kubernetes 官方文档提供了详尽、准确的信息&#xff0c;帮助我们深入了解和掌握这个技术。因此&#xff0c;如果你真的对Kubern…

Jenkins 添加节点报错

报错日志 Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime (cl…

Python接口测试 requests.post方法中data与json参数区别

引言 requests.post主要参数是data与json&#xff0c;这两者使用是有区别的&#xff0c;下面我详情的介绍一下使用方法。 Requests参数 1. 先可以看一下requests的源码&#xff1a; def post(url, dataNone, jsonNone, **kwargs):r"""Sends a POST request.…

c# 字段和属性(get、set、init)

目录 基本概念&#xff1a; 个人理解&#xff1a; 访问器的默认写法&#xff1a; set与init无法共存&#xff1a; init&#xff1a; 必须在类的实例化时给字段赋值的情况(require属性): 基本概念&#xff1a; “字段”就是类内成员变量&#xff0c;一般为了隐藏数据&…