几种DSP与外接存储器的连接方法
时间:09-25
来源:互联网
点击:
1 引言
存储器接口分为ROM接口和RAM接口两种。ROM包括EPROM和FLASH,而RAM主要是指SRAM。TMS320C5409具有32K字的片内RAM和16K字的掩膜ROM。但是在DSP应用的很多场合,尤其是带信号存储的DSP应用来说,TMS320C5409的片内存储资源是远远不够用的。因此,设计一个TMS320C5409硬件系统一般应该包括其与EPROM/FLASH和SRAM的接口设计,以存放程序和数据。本文介绍TMS320C5409与存储器的接口设计方案。
2 DSP与SRAM的接口设计
除了内部32k字RAM和16K字ROM之外,TMS320C5409还可以扩展外部存储器。其中,数据总空间总共为64k字(0000H~FFFFH),I/O空间为64K字(0000H~FFFFH),程序空间为8M。8M的程序空间的寻址是通过额外的7根地址线(A16~A22)实现的,由XPC寄存器控制。根据程序和数据的空间配置,扩展的方法主要有3种。
2.1 分开的程序和数据空间配置
这种方案是采用外接一个128k×16位的RAM,将程序区和数据区分开,如图1所示。采用程序选通线接外部RAM的A16地址线实现,因此,程序区为RAM的前64k字(0000H~FFFFH),数据区为RAM的后64k字(10000H~1FFFFH)。对DSP而言,程序区和数据区的地址范围均为0000H~FFFFH。
图1 分开的数据和程序空间配置
采用这种配置方法需要注意:如果内部RAM设置为有效,则相同地址的外部RAM自动无效;当外部RAM不能全速运行时,需要根据速度设置插入等待状态(设置SWWSR)。
2.2 混合的程序和数据空间配置
这种方案是令OVLY=1,此时内部RAM既是数据区也是程序区。这样设置的优点是程序可以在内部全速运行,缺点是由于程序和数据是共用的,因此存储区就变小了。此外,在链接时必须将程序和数据分开,以避免重叠。
这种配置方法如图2所示。将和信号接至一与非门,形成PDS信号,这个信号不论是有效还是有效都呈现有效(高电平),将这个信号经反向用作片选信号,就可以保证外部RAM既作为程序区也作为数据区。
图2 混合的数据和程序空间配置
2.3 优化的混合程序和数据空间配置
图3所示为一种优化的混合程序和数据区外接RAM的方法。这种配置方法省去了DSP的A15地址线,将RAM分成32k字长的块。采用这种方法后,可充分利用外接的RAM,不会因内部RAM和外部RAM的地址重叠而造成外部RAM的浪费。
图3 优化的混合数据和程序空间配置
由于外部扩展的空间很大,因此DSP程序区另外的地址空间也能访问到外部RAM。这种优化的外部RAM配置方法,使得在使用DSP的内部RAM的情况下,能够充分利用外部扩展RAM。
3 DSP与FLASH的接口设计
图4为DSP与FLASH的一种接口配置。图中FLASH采用Silicon Storage 公司的新一代256K×16位CMOS FLASH Memory产品SST39VF400A作为DSP的外部数据存储器,地址总线和数据总线接至DSP的外部总线,接至DSP的。DSP上的XF引脚用于启动编程。当XF为低时,FLASH处于读状态;当XF为高时,FLASH可擦或编程。为了满足SST39VF400A的时序要求,XF与相“或”后接至,引脚与相“或”后接至。
图4 DSP与FLASH的接口
4 FLASH的擦写
4.1 片外FLASH擦写原理
在实际应用中,选择的片外存储器通常是片外的RAM或FLASH Memory。但是,由于RAM中数据掉电即丢失,不适合长期保存数据,因此当需要保存到片外存储器的是一些无需频繁读/写但需要长期保存的数据时,如字模数据、端口地址等,通常选择使用片外的FLASH扩展DSP芯片的存储器空间。但是,使用片外的FLASH必须要解决对其的擦写问题。
在实际应用中,对FLASH的擦写主要有两种方式:一是使用通用编程器对FLASH芯片进行擦写;二是直接由DSP对FLASH进行擦写。这里介绍一种利用存储器映射技术,通过对DSP芯片编程实现片外FLASH擦写的方法。
CCS5000 IDE是TI公司专为TMS320C5409设计的开发平台,该平台具有简单明了的图形用户界面和丰富的软件开发工具。利用GPIO0口可以生成合适的片外FLASH和片内RAM片选信号,从而实现片外FLASH和片内RAM访问的切换,在电路上可以将GPIO0信号与数据选择信号或程序选择信号相“或”实现。
4.2 片外FLASH擦写流程
编写FLASH擦写程序的流程图如图5所示。
图5 FLASH擦写程序流程图
(1)将character[180][32]设置为全局变量。
(2)将程序编译下载到DSP芯片中,打开工程目录中output文件夹中的.map文件,找到character数组在RAM中存放的起始地址和长度。
(3)使用Save Memory命令将RAM中对应于character数组的地址段的数据以二进制形式保存在计算机上。
(4)打开FLASH擦写程序,修改数据在片内RAM中存储的起始地址和FLASH擦写的起始地址和数据长度,编译下载后,单步执行,直到擦写完FLASH,并将地址映射方式设置为映射到片内RAM处,数据便写到片外FLASH的相应地址中。
这一种通过地址映射方式的方法可适用于多种场合,针对多个FLASH芯片使用多个GPIO端口进行地址的扩展,即可实现对其进行擦写操作;若将部分擦写程序放置到片外FLASH中并作相应设置,即可实现系统得自举运行。
存储器接口分为ROM接口和RAM接口两种。ROM包括EPROM和FLASH,而RAM主要是指SRAM。TMS320C5409具有32K字的片内RAM和16K字的掩膜ROM。但是在DSP应用的很多场合,尤其是带信号存储的DSP应用来说,TMS320C5409的片内存储资源是远远不够用的。因此,设计一个TMS320C5409硬件系统一般应该包括其与EPROM/FLASH和SRAM的接口设计,以存放程序和数据。本文介绍TMS320C5409与存储器的接口设计方案。
2 DSP与SRAM的接口设计
除了内部32k字RAM和16K字ROM之外,TMS320C5409还可以扩展外部存储器。其中,数据总空间总共为64k字(0000H~FFFFH),I/O空间为64K字(0000H~FFFFH),程序空间为8M。8M的程序空间的寻址是通过额外的7根地址线(A16~A22)实现的,由XPC寄存器控制。根据程序和数据的空间配置,扩展的方法主要有3种。
2.1 分开的程序和数据空间配置
这种方案是采用外接一个128k×16位的RAM,将程序区和数据区分开,如图1所示。采用程序选通线接外部RAM的A16地址线实现,因此,程序区为RAM的前64k字(0000H~FFFFH),数据区为RAM的后64k字(10000H~1FFFFH)。对DSP而言,程序区和数据区的地址范围均为0000H~FFFFH。
图1 分开的数据和程序空间配置
采用这种配置方法需要注意:如果内部RAM设置为有效,则相同地址的外部RAM自动无效;当外部RAM不能全速运行时,需要根据速度设置插入等待状态(设置SWWSR)。
2.2 混合的程序和数据空间配置
这种方案是令OVLY=1,此时内部RAM既是数据区也是程序区。这样设置的优点是程序可以在内部全速运行,缺点是由于程序和数据是共用的,因此存储区就变小了。此外,在链接时必须将程序和数据分开,以避免重叠。
这种配置方法如图2所示。将和信号接至一与非门,形成PDS信号,这个信号不论是有效还是有效都呈现有效(高电平),将这个信号经反向用作片选信号,就可以保证外部RAM既作为程序区也作为数据区。
图2 混合的数据和程序空间配置
2.3 优化的混合程序和数据空间配置
图3所示为一种优化的混合程序和数据区外接RAM的方法。这种配置方法省去了DSP的A15地址线,将RAM分成32k字长的块。采用这种方法后,可充分利用外接的RAM,不会因内部RAM和外部RAM的地址重叠而造成外部RAM的浪费。
图3 优化的混合数据和程序空间配置
由于外部扩展的空间很大,因此DSP程序区另外的地址空间也能访问到外部RAM。这种优化的外部RAM配置方法,使得在使用DSP的内部RAM的情况下,能够充分利用外部扩展RAM。
3 DSP与FLASH的接口设计
图4为DSP与FLASH的一种接口配置。图中FLASH采用Silicon Storage 公司的新一代256K×16位CMOS FLASH Memory产品SST39VF400A作为DSP的外部数据存储器,地址总线和数据总线接至DSP的外部总线,接至DSP的。DSP上的XF引脚用于启动编程。当XF为低时,FLASH处于读状态;当XF为高时,FLASH可擦或编程。为了满足SST39VF400A的时序要求,XF与相“或”后接至,引脚与相“或”后接至。
图4 DSP与FLASH的接口
4 FLASH的擦写
4.1 片外FLASH擦写原理
在实际应用中,选择的片外存储器通常是片外的RAM或FLASH Memory。但是,由于RAM中数据掉电即丢失,不适合长期保存数据,因此当需要保存到片外存储器的是一些无需频繁读/写但需要长期保存的数据时,如字模数据、端口地址等,通常选择使用片外的FLASH扩展DSP芯片的存储器空间。但是,使用片外的FLASH必须要解决对其的擦写问题。
在实际应用中,对FLASH的擦写主要有两种方式:一是使用通用编程器对FLASH芯片进行擦写;二是直接由DSP对FLASH进行擦写。这里介绍一种利用存储器映射技术,通过对DSP芯片编程实现片外FLASH擦写的方法。
CCS5000 IDE是TI公司专为TMS320C5409设计的开发平台,该平台具有简单明了的图形用户界面和丰富的软件开发工具。利用GPIO0口可以生成合适的片外FLASH和片内RAM片选信号,从而实现片外FLASH和片内RAM访问的切换,在电路上可以将GPIO0信号与数据选择信号或程序选择信号相“或”实现。
4.2 片外FLASH擦写流程
编写FLASH擦写程序的流程图如图5所示。
图5 FLASH擦写程序流程图
(1)将character[180][32]设置为全局变量。
(2)将程序编译下载到DSP芯片中,打开工程目录中output文件夹中的.map文件,找到character数组在RAM中存放的起始地址和长度。
(3)使用Save Memory命令将RAM中对应于character数组的地址段的数据以二进制形式保存在计算机上。
(4)打开FLASH擦写程序,修改数据在片内RAM中存储的起始地址和FLASH擦写的起始地址和数据长度,编译下载后,单步执行,直到擦写完FLASH,并将地址映射方式设置为映射到片内RAM处,数据便写到片外FLASH的相应地址中。
这一种通过地址映射方式的方法可适用于多种场合,针对多个FLASH芯片使用多个GPIO端口进行地址的扩展,即可实现对其进行擦写操作;若将部分擦写程序放置到片外FLASH中并作相应设置,即可实现系统得自举运行。
- F1aSh存储器在TMS320C3X系统中的应用(11-11)
- 基于PIC18F系列单片机的嵌入式系统设计(11-19)
- DSP在卫星测控多波束系统中的应用(01-25)
- 基于PCI总线的双DSP系统及WDM驱动程序设计(01-26)
- 利用Virtex-5 FPGA实现更高性能的方法(03-08)
- DSP与单片机通信的多种方案设计(03-08)