NorFlash 知识点总结

news2024/9/28 11:21:30

一、介绍

        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.coloradmin.cn/o/1309860.html

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

相关文章

C语言之动态内存管理

一、引言 当我们写了一段程序,创建了一个变量或者一个数组,这些操作都需要在内存中开辟出一块空间。但是我们过去的这些操作有一定的局限性:开辟的空间大小是固定的,并且数组在申明的时候,必须指定数组的长度&#xf…

HarmonyOS创建属性动画

属性动画的使用 1 概述 属性动画,是最为基础的动画,其功能强大、使用场景多,应用范围较广。常用于如下场景中: 一、页面布局发生变化。例如添加、删除部分组件元素。二、页面元素的可见性和位置发生变化。例如显示或者隐藏部分…

RHEL8中ansible的安装

本章主要介绍在RHEL8中如何安装ansible ansible是如何工作的在RHEL8中安装ansible 1.1 ansible的工作原理 如果管理的服务器很多,如几十台甚至几百台,那么就需要一个自动化管理工具了, ansible就是这样的一种自动化管理工具 ansible是通过…

用print太慢了!强烈推荐这款Python Debug工具~

作为程序员,我们都深知调试(Debug)在编程过程中的重要性。然而,使用传统的"print"语句进行调试可能效率较低,今天,笔者将推荐一款独具一格的Python调试工具——Reloadium。Reloadium为IDE添加了热…

【PyTorch】卷积神经网络

文章目录 1. 理论介绍1.1. 从全连接层到卷积层1.1.1. 背景1.1.2. 从全连接层推导出卷积层 1.2. 卷积层1.2.1. 图像卷积1.2.2. 填充和步幅1.2.3. 多通道 1.3. 池化层(又称汇聚层)1.3.1. 背景1.3.2. 池化运算1.3.3. 填充和步幅1.3.4. 多通道 1.4. 卷积神经…

Google Tag Manager账号的创建

1,通过官网链接进入主页面 点击创建账号 官网链接-https://www.tagmanager.google.com 2,按提示填写账号名称 账号名称建议填写网址,或者公司名称,全称简称都可, 国家地区按默认的就好不用特地更改, 不…

MySQL进阶2 - 索引

MySQL进阶1 - 索引 1. 索引概述2. 索引结构2.1 二叉树2.2 B-Tree(多路平衡查找树)2.3 BTree2.4 Hash 3. 索引分类4. 索引语法5. SQL性能分析5.1 SQL执行频率5.2 慢查询日志5.3 profile5.4 explain执行计划5.3.1 EXPLAIN执行计划各字段含义: 6. 索引使…

vue实现滑动验证

效果图: 源码地址:github文档地址: https://github.com/monoplasty/vue-monoplasty-slide-verify 使用步骤:1,安装插件: npm install --save vue-monoplasty-slide-verify 在main.js中使用一下&#xff…

记一次跨入smartKettle大门随即转身就走的简单体验过程

目录 📚第一章 背景📗目的📗总体方向 📚第二章 源码解读📗官方说明📗controller接口📕swagger📕源码 📗Kettle API 📚第三章 总结⁉️问题记录❓问题一&#…

使用CFimagehost源码自建无需数据库支持的PHP图片托管服务

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3.Cpolar稳定隧道(本地设置) 4.公网访问测…

SpringCloud系列(六)| 聊聊负载均衡

一、负载均衡概述 上一篇文章中,我们在集成OpenFeign的过程中提示我们需要加入了一个依赖就是: spring-cloud-starter-loadbalancer。 顾名思义,这个包的作用就是用来做负载均衡的。 简单解释一下什么是负载均衡,就是当我们的服…

Python面经【11】- Python可迭代对象一网打尽专题

Python面经【11】- Python可迭代对象一网打尽专题 可迭代对象Python的迭代器、生成器1) 迭代器2) 生成器 可迭代对象、迭代器的区别12. 生成器、迭代器的区别什么是装饰器?函数装饰器有什么作用一句话解释什么样的语言能够使用装饰器Python中的作用域?什…

节流防抖:提升前端性能的秘密武器(上)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

我常用的几个经典Python模块

Python常用的模块非常多,主要分为内置模块和第三方模块两大类,且不同模块应用场景不同又可以分为文本类、数据结构类、数学运算类、文件系统类、爬虫类、网络通讯类等多个类型。 大家常用的内置模块比如:math、re、datetime、urllib、os、ra…

自动化测试流程详解

最近很多小伙伴问我自动化测试到底该怎么做?流程是什么样的?在每个阶段都需要注意什么?本文也就主要从自动化测试的基本流程入手,对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友,也可以参考此流程&#xf…

AI扩图哪家强?我们实地测试了5款扩图工具

AI扩图的命运齿轮开始转动了。 近日,“AI扩图”在各个社交平台上频频出圈,#AI扩图#话题,在抖音平台累计播放数超7.8亿次。 何为AI扩图? AI 扩图功能给我们带来了一个观察世界的新角度。在 AI 的加持下,我们可以看到…

门窗企业网站建设作用是什么

门窗作为市场重要的组合部分,其应用广泛使得众多商家入局经营,无论大型建筑还是家庭应用,都有较高需求度,尤其对品牌商来说,无论直售还是加盟都可以获得不菲效益。 但对门窗企业来说,也需要解决几个痛点&a…

【计算思维】第14届蓝桥杯省赛计算思维U8组真题试卷

选择题 第 1 题 单选题 要把下面 4 张图片重新排列成蜗牛的画像,该如何排列这些图片?( ) A. B. C. D. 第 2 题 单选题 下图的几张牌,每次可以交换任意 2 张。 如将它们按照下面的顺序排列,最少需要交换( )次。 A.4 B.5 C.6 D.7 …

YOLOv8改进 | 2023Neck篇 | BiFPN双向特征金字塔网络(附yaml文件+代码)

一、本文介绍 本文给大家带来的改进机制是BiFPN双向特征金字塔网络,其是一种特征融合层的结构,也就是我们本文改进YOLOv8模型中的Neck部分,它的主要思想是通过多层级的特征金字塔和双向信息传递来提高精度。本文给大家带来的结构可以让大家自…

2023年贺岁电影:一眼多,二眼好多

如果从11月末开始统计,今年贺岁档共有72部贺岁片,平均一天就有2部电影上映,看完总计需要花费7400分钟。 这个数量几乎快赶上2021年到2022年贺岁片的总和。 今年电影市场快速回暖以来,多部爆款作品接力上映,持续刺激市…