老古开发网首页
导航:老古开发网首页文章索引文章分类嵌入式系统→[闪存Am29F400B的操作过程及动态数据保存]
| -文章搜索 - 最新文章 - |

闪存Am29F400B的操作过程及动态数据保存

发布时间:2006年2月25日 点击次数:544
来源:单片机与嵌入式系统应用   作者:武汉大学 黄天戍 尹文军 张旭良 周清睿 赵冰洁
 
闪存Am29F400B的操作过程及动态数据保存 武汉大学黄天戍尹文军张旭良周清睿赵冰洁 摘要以TMS320C32 DSP开发的电动机保护装置为模型,介绍对闪存Am29F400B的操作过程,以及利用其来实现动态数据保存的具体方法。 关键字闪存Flash MemoryTMS320C32DSP数据保存 在对电动机进行保护的过程中,需要对故障数据进行保存,以备查看。一般电动机产生故障的间隔时间是比较长的,而有些电动机的工作方式是非连续的,在故障间隔期间难免会出现停机现象。因此如何在掉电状态下保存数据便成为一个关键。电动机的保护装置须要具备两种基本的特性,即实时性和快速性。这两种特性都需要以快速处理大量的数据信息为基础,而专用的数据处理芯片DSP恰能很好地满足这方面的要求。当我们选用DSP芯片之后,对数据的更新和存储便有了更高的要求。下面给出一种以闪存Am29F400B为基础的解决方案。 1 外部闪存(Flash Memory)Am29F400B 保护装置的外部闪存采用Am29F400B,主要负责对固化程序及历史数据的保存,也即保护装置通电开机以后是在执行闪存内的程序,并在程序执行的过程中适时地保存或修改其内部的数据单元。为了更全面的叙述,首先介绍一下Am29F400B的特点及操作。 Am29F400B属于大容量的闪存,可以存储512K×8bit或者256K×16bit的数据。它具备了E2PROM的特点,且更优于E2PROM,在此仅举出如下几点: (1) 内嵌的擦除和编程算法。可自动段擦除或整片擦除,自动在指定地址写入或校验数据。提供命令接口、状态寄存器。 (2) 区段保护功能。具有防止对任何区段进行编程或擦除的硬件保护机制。 (3) 擦除挂起和恢复功能。在擦除过程中,支持读写不在擦除的段。 (4) 准备好信号RY/BY,输出指示信号,提供硬件检测。 (5) 硬件复位RESET引脚。芯片复位时,内部状态机自动处于读状态。 从以上特点可以看出,Am29F400B有一套内部操作机制。其芯片内部增加了控制逻辑,如命令接口、状态寄存器、内部状态机等,通过写入特定地址和数据序列到命令寄存器中来确定芯片的操作方式及对象。例如,处理器将编程命令及相应的目的地址和数据等传入芯片的命令寄存器中,则芯片内部将地址和数据锁存,并把命令字输入到内部状态机,从而执行内嵌的编程算法来自动完成一系列的操作。 对Am29F400B的操作主要分为以下几种:复位、读、字节编程、段擦除、片擦除。不同的操作具有不同的命令字及其相应的地址。例如编程命令为:0AAH→(5555H),055H→(2AAAH),0A0H→(5555H),然后就可进行写操作即PD→(PA)。 2 TMS320C32与扩展存储器接口及操作程序 针对以上介绍的Am29F400B的硬件特点,在控制器的主程序中设计了专门针对写入、擦除的函数。值得注意的是,在进行写入之前,首先要对将写入的单元进行擦除,且要注意对RY/BY状态的判断,以配合DSP与闪存之间的时序。若从RAM单元中取出的数据宽度为32位而Am29F400B的数据宽度为8位,则还要采用移位的方法写入。下面的程序就是在电动机保护装置的设计中,固化在闪存内的写入子程序。其它的可类似得出。 〖2〗.global〖〗f_wrtin 〖2〗.data〖1〗flash_ul1〖〗.word〖〗000AA00AAH〖1〗flash_ul2〖〗.word〖〗000550055H〖1〗flash_prog〖〗.word〖〗000A000A0H〖2〗 .text 〖1〗f_wrtin:〖〗PUSH〖〗DP〖〗;AR0→Address of ×555〖2〗PUSH〖〗R0 ;AR1→Address of ×2AA〖2〗LDP〖〗 flash_ul1,DP;AR2 →Address ;of Destination〖2〗LDI〖〗flash_ul1,R0;R1→ Data to ;be programmed〖2〗STI〖〗R0,*AR0;00AA00AAH→(555H)〖2〗LDI〖〗flash_ul2,R0〖2〗STI〖〗R0,*AR1;00550055H→(2AAH)〖2〗LDI〖〗@flash_prog,R0〖2〗STI〖〗R0,*AR0;00A000A0H→(555H)〖2〗STI〖〗R1,*AR2++ ;R1→(AR2)〖1〗f_pr_st:〖〗LDI〖〗*-AR2(1),R0〖2〗NOP〖2〗NOP〖2〗XOR〖〗*-AR2(1),R0〖2〗AND〖〗0FFFFH,R0〖2〗BNZ〖〗f_pr_st〖2〗POP〖〗R0〖2〗POP〖〗DP〖2〗RETS3 TMS320C32的引导程序 上面介绍的程序在实际应用中是以全局函数的形式给出的,提供给其它的程序进行调用,并且固化在闪存中,这便解决了数据的写入及断电保存问题,但同时又会出现另外一个问题:如果DSP从Am29F400B中顺序地读出并执行程序,那么,当运行到写入程序时,根据前面对闪存的硬件描述,其状态只能被设为单一的读或写,而不能像RAM一样可以随机地被读写,于是便强行地中断了程序。面对这一较普遍的问题,我们在设计电机保护装置时提出了一个行之有效的解决方案。其中心思想即是在程序运行的最初便将闪存的内容搬到SRAM内执行,从而使程序的执行区与数据保存区得到分离。这样既保证了程序的执行,又保证了数据的断电保存。为此,在内部ROM的引导区内写入如下一段“搬运程序”,即实现了程序由外部闪存至SRAM转移。其简化代码如下: 〖〗.text〖1〗F_load〖〗LSH〖〗9, AR1〖2〗LDI〖〗*AR1++(1),R1〖2〗LDI〖〗SUB_W, AR3〖2〗LSH〖〗26,R1〖2〗BN〖〗LOAD0〖2〗NOP〖〗*AR1++(1)〖2〗LDI〖〗sub_h, AR3〖2〗LSH〖〗1, R1〖2〗BN〖〗load0〖2〗LDI〖〗sub_AR3〖2〗ADDI〖〗 2, AR1〖1〗Load0〖〗CALLU〖〗AR3〖2〗STI 〖〗R1, *+AR0(64h)〖1〗Load2〖〗CALLU〖〗AR3〖2〗LDI〖〗R1, RC〖2〗CMPI〖〗 0, RC〖2〗BZ〖〗AR2〖2〗SUBI〖〗1, RC〖2〗CALLU〖〗AR3〖2〗LDI 〖〗R1, AR4〖2〗LDI〖〗R0, R0〖2〗LDIZ〖〗R1, AR2〖2〗LDI 〖〗-1, R0〖2〗SUBI 〖〗1, AR3〖2〗CALLU〖〗AR3〖2〗LDI〖〗1,R0〖2〗ADDI〖〗1,AR3〖2〗BR〖〗load2〖2〗RETS通过这样一段引导程序,使主机开机后首先完成了主程序的加载,即实现了本文开头提出的动态数据的保存;同时也由于SRAM的快速读取而提升了程序运行的整体速度,优化了系统的性能。MES 参考文献 1张雄伟,曹铁勇.DSP芯片的原理与开发应用.第二版.北京:电子工业出版社,2000 2北京闻亭科技发展有限责任公司.TMS320第三代数字信号处理器用户指南

欢迎进入老古论坛进行讨论
[嵌入式系统] 相关文章:
实时时钟RS5C348及其在嵌入式系统中的应用
简介:
实时时钟RS5C348及其在嵌入式系统中的应用 天津大学精密仪器与光电子工程学院张宝明张志荣曾周末 摘要介绍RS5C348实时时钟芯片的性能特点、功能设置、与MCS\ 51系列单片机的接口电路及编程技术。 关键词单片机实时时钟串行传输 概述 RS5C348是一种CMOS实时时钟芯片,利用三线串行传输方式向CPU提供时间和日历数据。具有体积小、功耗低等特点,适合在嵌入式系统中应用,其主要特点包括: · 宽数据保持电压范围:1.45~5.5V; · 低功耗:3V电压下工作电流0.35μA; · 三线制串行传输结构,最高移位频率2MHz; · 方便的中断方式设置; · 12/24h(小时)显示方式......

公路运输监控仪中多机并行工作的实现
低压电力线载波自动集中抄表系统的实现
PC机键盘接口深入分析与应用设计
具有远程操作功能的数码录音机设计
LonWorks模块TP/FT-10及其在抄表系统中的应用
嵌入式系统高级编程语言技术分析
基于ISA总线的ADSP2106x信号处理板的设计
嵌入式操作系统RTEMS内核的初步分析
单片机构成多处理器在LED矩阵显示中的应用
 
下一个:[嵌入式系统]基于MSP430F1121的虚拟示波器实现方法
简介:
基于MSP430F1121的虚拟示波器实现方法 燕山大学金海龙 摘要以低功耗、低电压单片机MSP430F1121为控制器,低电压、低功耗A/D转换器TLV2543为模拟量采样单元,采样的数据通过计算机并行口接收,用VB完成上位机显示波形、通道设置、放大倍数设定等功能。 关键字低功耗单片机并行口 引言 目前,高校电类的很多基础实验,基本使用计算机,在上位机上完成软件编程、编译、链接、调试等过程,调试时用示波器观察输出的波形,分析实验现象。很多实验既需要示波器,又需要计算机,因此既没有充分使用计算机资源,又增加了设备投资。本文提出用低功耗的MSP430F1121单片机为主控器实现虚拟示波器,工作......
 

上一个:[嵌入式系统]光电隔离的RS-232C串行接口设计

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:10分钟 执行时间:16毫秒