微芯片技术的闪存程序存储器操作详解

需积分: 43 46 下载量 72 浏览量 更新于2024-08-09 收藏 7.97MB PDF 举报
"闪存程序存储器是微控制器中一种非易失性存储技术,尤其在嵌入式系统中广泛使用。在基于上海地铁1号线的ATS(列车自动控制系统)仿真系统中,理解闪存的工作原理至关重要。" 在11.3章节中,详细介绍了闪存程序存储器的基本结构和操作。闪存存储器被组织成行列结构,每一行包含了固定的14位程序存储器字。最小的擦除单位是行,用户可以通过编程擦除这些行。在进行写或擦除操作前,必须确保目标地址不在由配置字寄存器的WRT<1:0>位定义的写保护区域内。 擦除操作后,用户可以部分或全部重写该行。写入数据通过14位宽的数据写锁存器进行,这些锁存器是用户不可直接访问的,只能通过写入EEDATH:EEDATL寄存器对来加载数据。值得注意的是,写锁存器的数量可能并不等于行的单元数,因此可能需要多次编程操作以完成整个行的重编程。例如,在一个有32字行大小和8个写锁存器的设备中,需要分四次进行编程操作。 读取闪存程序存储器的过程包括以下几个步骤:首先,将低有效和高有效地址位写入EEADRH:EEADRL寄存器;其次,清除EECON1寄存器的CFGS位;接着,设置EECON1寄存器的EEPGD控制位;最后,置位EECON1寄存器的RD控制位。一旦RD被置位,数据将在第二个指令周期被读取,并存储在EEDATH:EEDATL寄存器对中,可供后续指令使用。如果要修改已编程的行的部分内容,必须先读取整个行到RAM中,然后擦除再重新编程。此外,读取指令后的两条指令应为NOP,以避免双周期指令的执行问题。 表格11-1展示了不同器件的闪存存储器特性,以PIC16(L)F1946/47为例,其擦除块(行)大小为32字,边界由EEADRL<4:0> = 00000定义,写锁存器数也为32字,同样边界。 闪存程序存储器的管理涉及到地址映射、擦除编程机制以及安全读取策略。在基于PIC微控制器的系统中,如上海地铁1号线ATS仿真系统,理解和掌握这些知识点对于系统的稳定运行和软件更新至关重要。同时,用户应当遵循Microchip提供的技术规格和指南,以确保正确地使用和保护其知识产权。