铁电存储器FM18L08在DSP系统中的应用
1 引 言 铁电存储器(FRAM)是Ramtron公司近年推出的一款掉电不挥发存储器,它结合了高性能和低功耗操作,能在没有电源的情况下保存数据。FRAM克服了EEPROM和FLASH写入时间长、擦写次数低的缺点,其价格又比相同容量的不挥发锂电SRAM低很多,已在地铁系统、抄表系统及IT工业中得到了广泛的应用。 TMS320VC5402(以下简称C5402)是美国德州仪器公司(TI)推出的一款性价比极高的16bit定点数字信号处理器(DSP),操作速率可达100MIPS,它丰富的内部资源配置为用户构造系统提供了很大便利,已经在通信、电子、图象处理等领域得到了广泛的应用。但是,C5402是RAM型器件,掉电后不能保持任何用户信息,所以需要用户把程序代码放在不挥发的存储器内,在系统上电时,通过执行自行引导装载(Bootloader)程序将存储在外部媒介中的代码装载到C5402高速的片内存储器或系统中的扩展存储器内,装载成功后自动去执行代码,完成自启动。基于实践经验,本文介绍了一种并行接口铁电存储器FM18L08的特点,同时还分析了C5402 并行引导装载模式的特点,给出了一种基于铁电存储器FM18L08和C5402接口的设计方案, 实现了基于并行引导装载模式的DSP脱机独立运行系统设计,并且该设计方案已成功的应用到一种语音门锁系统中。 2 FM18L08 FRAM的特点 Ramtron’s FRAM存储器技术的核心是微小的铁电晶体集成到**体单元,以至于它能象快速的不挥发RAM一样操作。当一个电场被加到铁电晶体,中心原子顺着电场的方向移动。 移去电场,中心原子保持不动,保存**体的状态, FRAM **体不需要定期刷新,掉电后立即保存数据。 FM18L08是Ramtron公司近年推出的一款存储容量为32k╳8bits FRAM,其主要特点如下:3.0-3.65V单电源供电;并行接口;提供SOIC和DIP两种封装;功耗低,静态电流小于15uA,读写电流小于10mA;非挥发性,掉电后数据能保存10年;读写无限次。 FM18L08引脚结构如图1: /CE:片选 /WE:写使能 /OE:输出使能 A0-A14:地址端 DQ0-DQ7:数据端 VDD:电源 VSS:地
3 C5402并行引导装载模式设计
3.1 C5402系统的程序引导装载模式类型: C5402提供以下几种引导装载模式类型: ① HPI(主机接口)引导装载模式欲执行的程序代码通过主机接口总线由外部处理器加载至DSP片内存储器中。当外部处理器将被加载代码的起始地址(C5402片内地址007FH)的内容改变,便开始执行引导装载程序。 ② 8位/16位并行引导装载模式引导装载程序通过外部并行接口总线读取存放在外部数据存储单元中的数据。外部数据单元中的数据是按照一定格式存储的,其信息包括:欲加载的各段程序代码、各段程序代码长度、各段程序代码存放的目标地址、程序代码的入口地址以及其他配置信息。 ③ 8位/16位标准串行口引导装载模式引导装载程序通过被设置为标准模式的多通道缓冲串口(McBSP)读取存放在外部数据存储单元中的数据。多通道缓冲串口1(McBSP1)支持8位串行接收方式,多通道缓冲串口0(McBSP0)支持16位串行接收方式。 ④ 8位串行EEPROM引导装载模式引导装载程序通过一串联的EEPROM读取存放在外部数据存储单元中的数据。在此种方式中,EEPROM与设置为SPI工作模式的McBSP1相连接。 ⑤I/O引导装载模式引导装载程序通过外部并行接口总线地址为00H的I/O口读取数据。该外部并口接口总线使用异步握手协议(使用C5402的XF和BIO引脚),使数据传输速度可按外部存储器设备的要求执行。 3.2 C5402并行引导装载模式设计 当C5402工作在微计算机模式(MP/MC=0)时,上电后自动运行Bootloader程序,按照HPI引导装载模式串行EEPROM引导装载模式 并行引导装载模式 标准串行口引导装载模式 I/O口引导装载模式的顺序循环检测,以决定执行哪种启动模式。对于以C5402为核心的数字信号处理系统来说,并行引导装载模式被认为是最适用的。因为HPI引导装载模式、标准串行口引导装载模式和I/O口引导装载模式只适用于由其它处理器为C5402提供运行代码的多处理器系统中,串行EEPROM引导装载模式只支持价格偏高的SPI端口EEPROM,而并行引导装载模式可采用的并行EEPROM和Flash种类很多,有的价格比较低,操作起来比较简单,因而并行引导加载方案是最佳选择。 为使C5402能有效地把外扩FRAM中的程序引导到芯片内RAM,需要编制一个引导表。引导表定位于数据空间的4000h~FFFFh段,引导表的内容包含如下几个方面:(1)引导方式的标识;(2)程序存放的目标首地址;(3)程序执行的入口址址;(4)用户程序代码;(5)用户程序块长度。引导表结构如表1所示。数据区地址(H) 内容(H) 含义 8000,8001 8002,8003 8004,8005 8006,8007 8008,8009 800A,800B 800C,800D 800E,800F 8010,8011 8012,8013 …… 8030,8053 8054,8055 …… FFFE,FFFF 08,AA 7F,FF 88,06 00,00 00,80 00,44 00,00 00,80 F6,BD F0,70 …… F4,95 00,00 …… 80,00 8位引导标志 SWWSR寄存器初值BSCR寄存器初值 程序入口XPC 程序入口地址 程序段长度 程序存放目标XPC 程序存放目标地址 程序代码1 程序代码2 …… 程序代码N 程序块结束标志 …… 程序存储首地址 表1并行引导装载模式引导表片内ROM的引导程序首先读取I/O空间的FFFFh地址内容(指定为8000h)作为引导表的起始地址,通过判别引导表起始地址内的引导标识来确定是8位并行还是16位并行引导方式。若引导标识是10AAh,则是16位的并行引导方式;若引导标识是08AAh,则是8位的并行引导方式。当从I/O空间FFFFh地址读取不到有效的引导标识时,片内ROM的引导程序即读取数据空间FFFFh的内容作为引导表的起始地址。同样通过判别引导表起始地址内的引导标识来确定是8位并行还是16位并行引导方式。当EPROM数据位宽是8bit时,则要读取数据空间FFFFh地址的内容(低字节)和FFFEh地址的内容(高字节)作为引导表的起始地址。 8bit 并行引导装载的实现电路如图1所示。其中A15经过非门与/MSTRB相或是为了防止C5402的内部16K DARAM(0000H-3FFFH)与外部FRAM冲突,同时,对应上并行引导装载模式的引导表设置相对应。 图1 硬件系统原理图 4系统软件设计 这个系统中,软件编程的核心在于按照特定的格式将数据写到FM18L08 FRAM中,下面具体介绍软件系统的设计方法。在TI公司的软件开发工具CCS(Code Composer Studio)中,汇编器和连接器创建的目标文件采用COFF(Common Object File Format)格式,代码和数据都按段(Section)来组织设计。先通过CCS将程序下载到硬件系统的C5402的片内DARAM中,再运行程序将所需数据及程序按照表1的格式写到FM18L08 FRAM(对应于DSP数据寻址的08000h—0FFFFh)中,断开硬件系统与CCS环境的联系,重新上电或复位C5402,将看到灯在闪烁,此时硬件系统已经可以脱机独立运行了。 .mmregs .data table:.word 08aah ;16位引导标志 .word 7fffh,8806h ;SWWSR寄存器初值和BSCR寄存器初值 .word 0000h,080h,00044h ;程序入口XPC、程序入口地址和程序段长度 .word 0000h,080h ;存放目标XPC和存放目标地址 .global main .text main: stm #07fh,sp stm #0fffeh,ar1 ;向FRAM的07FFEh单元写入80h st #080h,*ar1+ nop st #00h,*ar1 ;向FRAM的07FFFh单元写入00h nop stm #table,ar1 ;向FRAM的0000h开始单元依次写入引导表要求的内容 stm #07h,brc stm #8000h,ar2 rptb loopa ld *ar1+,a nop stl a,*ar2+ ld a,-8,a stl a,*ar2+ loopa: nop nop stm #start,ar1 ;向FRAM中写入运行程序代码 stm #21h,brc nop ld *ar1+,a stl a,*ar2+ ld a,-8,a stl a,*ar2+ loopb: nop nop ld #00h,a nop stl a,*ar2+ stl a,*ar2 b $ .sect "chengxu" ;脱机独立运行系统程序 start: rsbx xf ;灯亮 …… ssbx xf ;灯灭 …… b start ret .end 主程序中,data段为上电引导程序提供了需要加载的各代码段的长度、源地址和目的地址这几个参数。其中,代码段长度既可以根据载入DSP系统后在CCS反汇编窗口算得,也可以从连接生成的映像文件(后缀为.map)中得到。 5 结束语 本文介绍的基于铁电存储器FM18L08的DSP 并行引导装载方案,可以在无需专用烧写器的情况下,实现DSP脱机独立运行系统的设计,并且该方案已成功的应用到一种语音门锁系统中。实验结果表明,该方法具有简化接口电路、节省系统资源、性价比高的优点。但是,如果脱机独立运行系统程序超过了64K字节,只能采用另外的替代方法,这是在一些电路设计方案论证时需要考虑的问题。
|