flash存储器的在线编程与数据写入的过程是怎样的?
采用flash介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
更多
Flash存储器的在线编程和数据写入是一个涉及物理特性、电子操作和软件控制的精密过程,以下是详细步骤分解:
核心前提:独特的物理机制
Flash基于浮栅MOS晶体管(Floating Gate MOSFET):
- 写入(Program):控制栅加高压,电子隧穿进入浮栅,抬高阈值电压(Vt),代表“0”。
- 擦除(Erase):源极加高压,电子从浮栅抽出,降低Vt,代表“1”。
- 数据以电荷形式存储,非易失。
在线编程与写入的完整流程
-
准备工作:解锁与通信
- 通信接口:通过SPI、I²C、SDIO或并行总线连接主控器(如MCU)。
- 解除保护:发送特定命令序列(如
0xAA 0x55)解锁写保护位。 - 状态寄存器检查:确认Flash空闲(
BUSY=0)。
-
擦除操作(写入前的必经之路)
- 原因:Flash只能将比特位从“1”翻转为“0”,而擦除可重置区块为全“1”。
- 发送擦除命令:
Send_Command(ERASE_SECTOR); // 如0x20 Send_Address(Sector_Addr); // 指定扇区地址 Send_Confirm(0x30); // 确认命令 - 物理过程:
- 施加高压(~20V)到源极,浮栅电子被抽离(Fowler-Nordheim隧穿)。
- 耗时较长:典型扇区擦除需50ms~2s。
- 轮询等待:持续读取状态寄存器直到
BUSY=0。
-
数据写入(编程)过程
- 写入单位:
- NOR Flash:可按字节/字写入,但需连续写多字节时效率低。
- NAND Flash:必须以页(如4KB)为单位写入。
- 发送写入命令:
Send_Command(PROGRAM); // 如0x80 Send_Address(Page_Addr); // 页起始地址 Send_Data(Buffer, 256); // 发送数据缓冲区 Send_Confirm(0x10); // 触发写入 - 物理过程:
- 控制栅加高压(~12V),电子注入浮栅(热电子注入或隧穿)。
- 将目标位从“1”变为“0”(单次写入不可逆)。
- 写入时间:页编程约200μs~1ms。
- 自动校验:芯片内部比对数据与缓冲内容(ECC校验)。
- 写入单位:
-
验证与错误处理
- 读取回数据:写入后立即读取对比原数据。
- ECC纠错:
- NAND Flash每页生成ECC校验码,读取时修正位错误。
- 超过纠错能力则标记坏块(Bad Block)。
- 状态寄存器检查:
PROGRAM_FAIL或ERASE_FAIL位为1表示失败,需重试或换块。
-
后处理
- 重新上锁:发送写保护命令防止意外修改。
- 更新映射表(FTL层):
- 在SSD/eMMC中,闪存转换层记录逻辑块到物理块的映射,避免频繁擦写。
关键挑战与应对方案
-
写前擦除限制
- 写入放大(Write Amplification):小数据修改需搬移整个块,通过损耗均衡(Wear Leveling)算法优化。
-
可靠性问题
- 擦写寿命:SLC约10万次,MLC/TLC仅数千次。
- 数据保持:浮栅电荷泄漏导致比特翻转,需定期刷新(Read-Scrub)。
-
掉电保护
- 写缓冲电容:企业级SSD用钽电容保证意外断电时完成写入。
与在线编程的关系
- 在应用编程(IAP):MCU在运行时从Flash A区执行代码,同时擦写Flash B区。
- 关键操作:将擦写代码加载至RAM执行(避免自修改冲突)。
- 应用场景:固件空中升级(OTA)、参数存储。
可视化流程图
graph TD
A[开始] --> B[解锁写保护]
B --> C{需擦除?}
C -- 是 --> D[发送擦除命令]
D --> E[高压擦除扇区]
E --> F[等待擦除完成]
F --> G[验证擦除状态]
C -- 否 --> H[发送写入命令]
G --> H
H --> I[加载数据到页缓存]
I --> J[高压编程]
J --> K[内部ECC校验]
K --> L{成功?}
L -- 是 --> M[读取回读验证]
L -- 否 --> N[标记坏块/重试]
M --> O[重新上锁]
O --> P[结束]
注:实际流程因Flash类型(NOR/NAND)和控制器设计有所差异,但核心物理机制一致。现代闪存通过多平面操作(Interleaving)和缓存加速提升吞吐量。
Flash存储器在MCS-51系统中的应用
介绍了 Flash 存储器的特性和应用场合 ,在16 位地址总线中扩展大容量存储的一般方法。讨论了 MCS-51 系列单片机与
资料下载
姚小熊27
2021-03-18 09:50:04
如何进行单片机存储器的扩展详细技术说明
ROM的特点是把信息写入存储器以后,能长期保存,不会因电源断电而丢失信息。计算机在运行过程中,只能读出只读
资料下载
佚名
2019-08-29 17:03:38
单板硬件设计:存储器( NAND FLASH)
停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。 1.1 存储器ROM介绍 rom最初不能
2023-05-19 15:59:37
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 芯片的工作原理是什么?
- ssd是什么意思
- 什么是蓝牙?它的主要作用是什么?
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- EDA是什么?有什么作用?
- 苹果手机哪几个支持无线充电的?
- dtmb信号覆盖城市查询
- 怎样挑选路由器?
- 华为芯片为什么受制于美国?
- 元宇宙概念股龙头一览
- type-c四根线接法图解
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- amoled屏幕和oled区别
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 传感器常见类型有哪些?
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
- 元宇宙概念龙头股一览