以依据TMS320C32 DSP开发的毛病录波设备为模型,介绍AMD公司的Flash存储器Am29F040摘 要 的原理和运用;运用它的操作进程完结断电后依然能够将子程序保存在F1ash存储器内的特 性,结合TMS320C3x提出完结DSP体系上电后用户程序的主动引导的办法。
关键词 Flash存储器 TMS320C32 主动引导 Am29F040
引 言
在对电力体系断路器的状况监测进程中,需求对毛病数据进行保存,以便于检查;而在毛病期间难免会呈现停机的现象,因而,如安在断电的状况下保存数据,就成为一个关键问题。关于毛病呈现的监测设备有必要满意两个根本的特性–实时性和快速性。这两种特性都需求以快速处理很多的数据信息为根底,所以咱们选用数据信号处理DSP来满意这方面的要求。现在,闪存(Flash Memory)现已成为DSP体系的一个根本的装备。 这儿Flash存储器首要用来寄存用户程序代码。一般来说,将用户需求的程序代码装入F1ash存储器有三种办法:一种是在存储器出厂前将数据写入;一种是用户运用编程器自己编程;最终一种是将存储器装置在用户电路板后进行编程。跟着芯片制作工艺的进步,芯片的集成度也越来越高,使Flash存储器正在向小型化、贴片式方向开展。本文结合TMS320C3x系列的DSP上电引导表发生办法,评论AMD公司出产的Am29F040闪存在体系中的编程办法。
1 Flash存储器Am29F040
Am29F040是AMD公司出产的Flash存储器,首要作用是固化程序和保存历史数据,也便是开机后履行闪存的程序,并在程序履行的进程中实时地保存或修正其内部的数据单元。 下面首要介绍Am29F040的特色和操作。 Am29F040是选用5 V单电源供电的可编程只读存储器,是一种电可擦除与从头编程的器材。该器材由8个独立的64 K字节块组成,拜访速度为55~150 ns。片内的状况机操控编程和擦除器材、嵌入式字节编程与区段/芯片擦除功用是全主动的。内部结构框图如图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写入数据AOH,最终是编程的地址和数据。 关于芯片擦除功用,主动地供给编程和电擦除之前,校验一切存储单元所需的电压和时序,然后主动擦除并校验单元边界。运用数据轮询(data-polling)特性,能够监督主动芯片擦除操作期间器材的状况,以查验操作是否完结。 程序如下:int Chip-Erase (){*(int*)0x00005555=0xAAAAAAAA; /*写芯片擦除指令部分*/*(int*)0x00002AAA=0x55555555;*(int*)0x00005555=0x80808080;*(int)0x00005555=0xAAAAAAAA:*(int*)0x00002AAA=0x55555555;*(int*)0x00005555=0x10101010;while((*(int)0x000055550x80808080)!=0x80808080) /*数据轮询*/ 关于区段擦除暂停,在区段擦除期间擦除暂停有用,数据值为BOH,不论地址值。区段擦除康复,仅在擦除暂停之后擦除有用,数据值为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.5 V高电压VID’且在操控引脚E上运用VIL将使此特性起作用。其具体操作为:当W为VIH’E为VIL且地址引脚G为VID时,区段维护办法被激活,地址引脚A18、A17、A16用来挑选被维护的区段。一旦地址安稳,W处于脉冲低电平,操作开始于W的下降沿。
2 在TMS320C3x中的运用
TMS320C3x支撑32位或16位宽度的程序外部存储器。因为Am29F040的数据宽度是8位,而从RAM单元中取出的数据宽度为32位,所以还要选用移位的办法写入Am29F040。 引导表的格局首要由下面几部分组成:首要,是包括引导表数据宽度和其它数据总线寄存器值的头文件。接着,是COFF文件中各个段的数据,其间每个段都包括一个该段的文件头来阐明该段的代码长度和地址。最终是结束段。 这儿,选用COFF格局生成引导表比较费事。TI公司供给了一个很有用的转化东西HEX30,只须编写一个指令文件,就可运用这个转化东西主动生成引导表。F1ash存储器烧写流程如图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 X 8*/files={f040.bo f040.b1 f040.b2 f040.b3}}SECTIONS{ .text :paddr=00000040h .ffttxt :paddr=000008dlh .data :paddr=0000000h .sintab :paddr=000009eeh .paras :paddr=00000a2eh} 指令文件依照上述编写,生成了4个文件,分别为f040.b0、f040.bl、f040.b2及f040.b3,然后能够直接用编程器烧写至4片Am29F040即可。 运用上面的办法现已能够完结作业,可是咱们还能够运用TMS320C32的boot loader(上电加载)功用直接调入到存储器中。 D S P芯片复位今后,将主动地运转固化0H~0FFH空间内的引导装载程序,履行引导程序装 载功用。进入引导装载程序今后,DSP将一向等候中止INT0-INT3的中止状况,依据不同的中止,决议是以BOOTl-BOOT3的存储空间装载程序到指定的快速闪存,还是以从串口将程序引导装载到指定的快速闪存。TI公司的引导装载程序是揭露的(假如需求,可由其网站下载得到)。完结引导装载功用时,需求自己规划程序头,其间有必要描绘: ① 待装载程序的存储器宽度为8位/16位/32位; ②S W W 等候状况发生器的办法; ③装载到快速R A M 的程序巨细; ④装载的意图地址。 假如在实践体系中意图地址不止一个,其操作 进程也是相同的。当一个模块装载结束今后,假如还有一个别的的模块,那么它将持续履行。与上面的办法相同,在程序头加上必要的信息就能够了。 如将引导表作为程序的一个初始化段,在运转程序的时分将该段的内容也直接写到F1ash存储器里边。具体来说,首要编写一段C言语程序,将上面由HEX30生成的文件转化为.dat数据文件 (使得DSP能够辨认,DSP不能辨认.bO文件)。然后,在编程程序中建一个段,其间包括这个数据文件。最终,在直接运转程序时,将其间的内容烧写到存储器里边。选用这种办法,比选用EPROM编程器编程速度更快,并且省时省力,需求修正时不必取出 F1ash存储器,能够在线编程修正。
3 结 论
经过实践的电路仿真测验,证明这种规划思维简略、程序语法正确,数据传输效率高,充分运用了TMS320C32编程言语特色。这种办法能够完结F1ash存储器在体系编程和在DSP体系上电后的用户程序的主动引导。一起,由对Flash存储器Am29F040运用的评论可知,其不只能够运用编程器编程,并且能够经过TMS320C32在线进行擦除、读写及编程。
参考文献
1 Texas Instruments.TMS320C3x User’s Guide.1997 2 Texas Instruments.TMS320C3x/C4x AssemblyLanguage Tools User’s Guide.1998 3 AMD.Am29F040 运用手册.1996-11(收修正稿日期:2002—ll—27)