中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 存储设计 >>电子行业新闻正文

Flash存储器在TMS320C3x系统中的应用

时间:2007/3/17 12:50:00  作者:  来源:ic72  浏览人数:1414
 
 

      摘要:以基于TMS320C32 DSP开发的故障录波装置为模型,介绍AMD公司的Flash存储器Am29F040的原理和应用;利用它操作过程实现断电后仍然可以将子程序保存在Flash存储器内的特性,结合TMS320C3x提出实现DSP系统上电后用户程序的自动引导的方法。

      关键词:Flash存储器 TMS320C32 自动引导 Am29F040

      引言

      在对电力系统断路器的状态监测过程中,需要对故障数据进行保存,以便于查扑克;在则故障期间难免会出现停机的现象,因此,如何在断电的状态下保存数据,就成为一个关键问题。对于故障出现的监测装置必须满足两个基本的特性——实时性和快速性。这两种特性都需要以快速处理大量的数据信息为基础,所以我们采用数据信号处理DSP来满足这方面的要求。现在,闪存(Flash Memory)已经成为DSP系统的一个基本的配置。

      这里Flash存储器主要用来存放用户程序代码。一般来说,将用户需要的程序代码装入Flash存储器有三种方法:一种是在存储器出厂前将数据写入;一种是用户使用编程器自己编程;最后一种是将存储器安装在用户电路板后进行编程。随着芯片制造工艺的提高,芯片的集成度也越来越高,使Flash存储器正在向小型化、帖片式方向发展。本文结合TMS320C3x系列的DSP上电引导表产生方法,讨论AMD公司生产的Am29F040闪存在系统中的编程方法。

      1 Flash存储器Am29F040

      Am29F040是AMD公司生产的Flash存储器,主要作用是固化程序和保存历史数据,也就是开机后执行闪存的程序,并在程序执行的过程中实时地保存或修改其内部的数据单元。

      下面首先介绍Am29F040的特点和操作。

      Am29F040是采用5V单电源供电的可编程只读存储器,是一种电可擦除与重新编程的器件。该器件由8个独立的64K字节块组成,访问速度为55~150ns。片内的状态机编程和擦除器件、嵌入式字节编程与区段/芯片擦除功能是全自动的。内部结构框图如图1所示。

      A0~A18:地址线。其中A8~A18提供存储区地址,行地址确定所在扇区;A0~A7选定其扇区的一个字节,扇区容量是256字节。

      DQ0~DQ7:数据输入/输出。在读周期输出数据;

      在写周期接收数据。写过程中写入的数据被内部锁存。

      CE:输入,芯片使能,低电平时选中该器件。

      OE:输入,输出使能,低电平时打开数据输出缓冲区,允许读操作。

      WE:输入,写使能,低电平时允许写操作。

      Vcc为5V电源。Vss为地。

      工用方式有读方式、待机方式、输出禁止及算法选择。

      例如,对于写操作的编程命令,如表1所列。

      其中:RA为被读出的存储单元地址;

      PA为被编程的存储单元地址;

      RD为所选地址单元被读出的数据;

      PD为所选地址单元被编程的数据。

      除编程地址、区段地址和读地址之外的所有总线周期地址,地址引脚A18、A17、A16、A15为高或低。

      下面以命令表的编程命令为例。简要介绍字节编程。表1所列命令是一个4总线周期指令。首先,在地址5555H写入数据0AAH,地址2AAAH写入数据055H,再在地址5555H写入数据A0H,最后是编程的地址和数据。

      表1 软件命令简表

命  令 总线周期 第一周期 第二周期 第三周期 第四周期
地址 数据 地址 数据 地址 数据 地址 数据
读/复位 1 XXXXH F0H            
读/复位 4 5555H AAH 2AAAH 55H 5555H F0H RA RD
算法选择 4 5555H AAH 2AAAH 55H 5555H 90H RA RD
字节编程 4 5555H AAH 2AAAH 55H 5555H A0H PA PD

      对于芯片擦除功能,自动地提供编程和电擦除之前,校验所有存储单元所需的电压和时序,然后自动擦除并校验单元界限。利用数据轮询(datapolling)特性,可以监视自动芯片擦除操作期间器件的状态,以检验操作是否完成。

      程序如下:

      int Chip_Erase()

      {

      (int)0x00005555=0xAAAAAAAA; /*写芯片擦除命令部分*/

      *(int *)0x00002AAA=0x55555555;

      *(int *)0x00005555=0x80808080;

      *(int)0x00005555=0xAAAAAAAA;

      *(int *)0x00002AAA=0x55555555;

      *(int *)0x00005555=0x10101010;

      while((*int)0x00005555&0x80808080)!=0x80808080)/*数据轮询*/

      对于区段擦除暂停,在区段擦除期间擦除暂停有效,数据值为B0H,不管地址值。区段擦除恢复,仅在擦除暂停之后擦除有效,数据值为30H,不管地址值。下面是简要的程序代码:

      int Sector_Erase(sectadd)

      int * sectadd;

      {

      (int)0x00005555=0xAAAAAAAA; /*写区段擦除命令部分*/

      *(int *)0x00002AAA=0x55555555;

      *(int *)0x00005555=0x80808080;

      *(int *)0x00005555=0xAAAAAAAA;

      *(int *)0x00002AAA=0x55555555;

      *sectadd=0x30303030;

      对于数据保护,此特性禁止在1~8个区段的任何组合进行编程和擦除操作。执行编程和擦除被保护区段的命令时,不改变区段内的数据。数据轮询位和跳转位工作在2~100μs,然后返回到有效数据。在地址引脚A9和控制引脚E,使用11.5~12.5V高电压VID,且在控制引脚E上使用VIL将使此特性起作用。其具体操作为:当W为VIH,E为VIL且地址引脚G为VID时,区段保护方式被激活,地址引脚A18、A17、A16用来选择被保护的区段。一旦地址稳定,W处于脉冲低电平,操作开始于W的下降沿。

      2 在TMS320C3x中的应用

      TMS320C3x支持32位或16位宽度的程序外部存储器。由于Am209F040的数据宽度是8位,而从RAM单元中取出的数据宽度为32位,所以还要采用移位的方法写入Am29F040。

      引导表的格式主要由下面几部分组成:首先,是包括引导表数据宽度和其它数据总线寄存器值的头文件。接着,是COFF文件中各个段的数据,其中每个段都包含一个该段的文件头来说明该段的代码长度和地址。最后是结束段。

      这里,采用COFF格式生成引导表比较麻烦。TI公司提供了一个很有用的转换工具HEX30,只须编写一个命令文件,就可使用这个转化工具自动生成引导表。Flash存储器烧写流程如图2所示。

      采用TI公司的TMS320C32的DSP,AMD公司生产的8位Am29F040作为Flash存储器,这里使用了4片Am29F040。

      编写时必须注意:

      ①目标字宽度,也就是处理器的操作码长度。选好DSP后,该长度也就确定了。按照我们的例子为32位。

      ②数据宽度。由-datawidth设定,为32位。

      ③存储器宽度。由-Memwidth设定,本例中为32位。

      ④ROM宽度。由-romwidth设定,为8位,由Flash存储器确定。

      程序如下:

      C3XCHECK.OUT

      -MAP 29f040.MAP

      -i /*输出文件为Intel格式*/

      -datawidth 32

      -Memwidth 32

      -romwidth 8

      ROMS

      {

      FLASHROM:org=000000h,len=80000h,romwidth=8, /*512K×8*/

      files={f040.b0 f040.b1 f040.b2 f040.b3}

      }

      SECTIONS

      {

      .text :paddr=00000040h

      .ffttxt:paddr=000008d1h

      .data:paddr=0000000h

      .sintab:paddr=000009eeh

      .paras:paddr=00000a2eh

      }

      命令文件按照上述编写,生成了4个文件,分别为f040.b0、f040.b1、f040.b2及f040.b3,然后可以直接用编程器烧写至4片Am29F040即可。

      利用上面的方法已经可以完成工作,但是我们还可以利用TMS320C32的boot loader(上电加载)功能直接调入到存储器中。

      DSP芯片复位以后,将自动地运行固化0H~0FFH空间内的引导装载程序,执行引导程序装载功能。进入引导装载程序以后,DSP将一直等待中断INT0~INT3的中断状态,根据不同中断,决定是以BOOT1~BOOT3的存储空间装载程序到指定的快速闪存,还是以从串口将程序引导装载到指定的快速闪存。TI公司的引导装载程序公开的(如果需要,可由其网站下载得到)。实现引导装载功能时,需要自己设计程序头,其中必须描述:

      ①待装载程序的存储器宽度为8位/16位/32位;

      ②SWW等待状态发生器的方式;

      ③装载到快速RAM的程序大小;

      ④装载的目的地址。

      如果在实际系统中目的地址不止一个,其操作过程也是一样的,当一个模块装载完毕以后,如果还有一个另外的模块,那么它将继续执行。与上面的方法一样,在程序头加上必要的信息就可以了。

      如将引导表作为程序的一个初始化段,在运行程序的时候将该段的内容也直接写到Flash存储器里面。具体来说,首先编写段C语言程序,将上面由HEX30生成的文件转化为.dat数据文件(使得DSP可以识别,DSP不能识别.b0文件)。然后,在编程程序中建一个段,其中包含这个数据文件。最后,在直接运行程序时,将其中的内容烧写到存储器里面。采用这种方法,比采用EPROM编程器编程速度更快,而且省时省力,需要修改时不用取出Flash存储器,可以在线编程修改。

      3 结论

      通过实际的电路仿真测试,证明这种设计思想简单、程序语法正确,数据传输效率高,充分利用了TMS320C32编程语言特点。这种方法能够实现Flash存储器在系统编程和在DSP系统上电后的用户程序的自动引导。同时,由对Flash存储器Am29F040应用的讨论可知,其不仅可以利用编程器编程,而且可以通过TMS320C32在线进行擦除、读写及编程。

 
【相关文章】
·带RTC的I2C总线铁电存储器FM31256
·基于C8051F320USB接口的数据采集存储电路的设计
·基于PS501的智能电池系统
·传富士康拟收购商丞品安涉足内存业
·基于EP9315的附网络存储NAS系统设计
·串行DataFlash存储器及其与单片机的接口
·嵌入式系统中的Flash存储管理
·铁电存储器在仪表中的应用
·Flash存储器在TMS320C3x系统中的应用
·针对共模雷电冲击试验的开关电源设计
·Ramtron 推出汽车级16Kb SPI接口FRAM器件
·虚拟技术助存储网络实现三大目标
·串行存储器AT45DB161B在车辆行驶记录仪中的应用
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9