VC5402与外部存储器的接口设计

2011-09-21 10:45:33来源: 互联网

      作为DSP 芯片与外界交换数据的重要关口,外扩存储器接口的优劣程度直接影响着DSP 的适应性和控制功能,同时,高性能、灵活性强的外部存储器接口也是利用DSP 搭建图像采集处理系统的重要保证。基于上述原因,本文提出了一种基于CPLD 的VC5402 存储器扩展方案,此方法具有接口灵活、调试方便的优点。


  图像采集处理系统中资源的配置情况

为了更方便地了解VC5402 与外部存储器的接口设计,本文首先介绍在设计的图像采集处理系统中VC5402的资源配置状况。


VC5402 有3 个比特位(MP/ MC # ,OVL Y,DROM)共同影响着存储器的结构,用户可以根据需要修改PMST的值来配置存储空间。


本文采用了微处理器模式,设置MP/ MC # = 1 ,片上4 k 字的ROM 不映射到程序区,即ROM 不可访问。设置OVL Y= 0 ,片内16 k 字的RAM 不映射到程序存储器,使64 k 字的程序存储空间全部配置成外部存储器,利用2 片SRAM(记为SRAM1 ,SRAM2) 存放采集到的图像数据。


DSP 每执行一次复位,都将DROM 清零,在系统中没有改变该比特位的设置, 这样使得数据存储空间的低48 k 字全都对应外部存储器,其中低32 k 字空间映射为外挂FLASH ,用来存放引导程序、中断矢量表和用户代码等内容,其他16 k 字的空间映射为SRAM(记为SRAM3)用来存放数据处理的结果。


对于扩展程序存储空间、扩展数据存储空间所需要的时延可以通过软件编程的方法对DSP 的等待状态寄存器(SWWSR) 进行设置,使之达到最快速度。这样就避免了使用硬件进行握手通信,简化了接口的设计。


  程序存储器的扩展

系统中实际采集到的图像数据量大约有1 M ×8 b ,而VC5402 的数据空间只有64 k 字,并且VC5402 内部具有16 k 字的随机存储器和4 k 字的只读存储器,远远不能满足存储要求,因此需要将数据空间扩展到1 MB才能实现图像数据的存储。由于VC5402 的程序空间可以扩展到1 M ×16 b ,而且具有专门访问扩展存储器的指令。考虑到数据空间扩展的复杂性,我们将采集到的图像数据直接存放在扩展的程序空间中。系统中选用两片SRAM( IS61LV5128AL–12) 用来存放原始数据,IS61LV5128AL–12 芯片是512 k ×8 b 的高速CMOS 静态存储器,存取速度为12 ns。


两片存储器接口的实现方案设计如图1 所示.其中SRAM-CE1 ,SRAM-CE2 ,OE ,WE分别为2 片SRAM 的片选信号、读使能信号、写使能信号,这些逻辑组合是通过CPLD 实现的。仿真波形图如图2 所示。

进行程序空间扩展时,DSP 地址线的A (0) ~A (19)位都是有效的。VC5402 的程序空间被组织为16 页,每页64 k 字。内部64 k 字的程序空间可以直接访问,当访问超过64 k 字的程序区时,DSP 并不能提供直接访问XPC寄存器的指令(程序空间是按页进行管理的,页地址放在XPC 寄存器中) ,这时使用WRITA 和READA 这两条指令可以对高端程序空间进行访问,要么把数据空间的数据送到程序空间,要么把程序空间的数据送到数据空间,采用累加器寻址方案才能影响XPC 寄存器的值。


这种方案的优点在于:不用进行数据区的扩展,直接利用VC5402 可扩展的程序区,简单方便。


 数据存储器空间的扩展

脱机运行是此系统最主要的特点,所以必须考虑到存放脱机程序这一问题。在采集处理系统中,将存放程序的FLASH 映射在VC5402 的数据空间,由于图像处理算法的复杂性,只靠VC5402 的数据空间难以满足需求,因此需要对VC5402 进行数据空间扩展。


系统中选用了FLASH 存储器SST39VF400A ,该芯片的容量是256 k ×16 b ,他是一种低电源电压芯片,工作电压为3. 3 V ,速度是70 ns ,能和VC5402 实现无缝接口,数据保存时间超过100 年,他具有容量大、掉电后数据不丢失、可在线快速读写、可整片或者分页擦除等特点,同时由于其内部已经固化了相应的程序,使用时只需向特定的地址写入特定的命令字序列,这样使得SST39VF400A 的读写操作非常简单灵活。


另外,扩展了64 k ×16 b 的SRAM( SRAM3 ,型号为CY7C1021) 用来存放数据处理的结果,映射到VC5402 的外部数据空间。CY7C1021 除了电源和地以外,还有几个关键信号引脚如CE # ,WE # ,OE # ,BL E ,BHE 等。BL E决定该芯片的低字节是否有效,即数据位的低8 位是否有效,而BHE 则决定芯片的高字节(高8 位) 是否有效,引脚为低电平时有效。因为VC5402 的数据线为16 位,即其所用的寄存器和存储器都应该是16 位, 所以应该将CY7C1021 的高低字节都使能,使其有效,将BHE ,BL E 通过360 Ω的电阻接地。


VC5402 的真正I/ O 引脚只有2 个BIO # 和XF ,而且是单向的,这样他的I/ O 引脚太少,满足不了设计的要求。本方案将VC5402 的数据总线D[ 0 :2 ]扩展为通用I/ O 口来弥补I/ O 口的不足。数据空间扩展的具体方法: 将CPLD 作为DSP 的1 个I/ O 口,DSP 的数据线D[ 0 :2 ] 接至CPLD 的输入端。当DSP 的I/ O 选通信号IOSTRB #和IS # 有效时, DSP 通过这个I/ O 向CPLD 写数据D[ 0 :2 ] ,在CPLD 内部进行逻辑组合,完成数据锁存,等到数据选通信号有效时,将锁存的数据输出,产生分页信号Page[ 0 :2 ] ,分别接在FLASH 和SRAM3 的高端地址上。


要访问扩展的数据空间,必须通过CPLD 产生的页信号进行选择。256 k ×16 b 的FLASH 被组织为8 页,每页为32 k字长,信号Page2 , Page1 , Page0 负责对FLASH 各页进行选择。64 k ×16 b 的SRAM3 被划分为4 页,每页为16 k字长,信号Page1 , Page0 负责对各页进行选择。在Flash中,每页的32 k 字被映射到数据空间的08000 H ~0FFFFH 区域;在SRAM3 中,每页的16 k 字被映射到数据空间的04000 H~07FFFH。页信号产生的程序如下:

CPLD-CS < = DSP-IS OR (NOT DSP -A7) ;

CPLD-CS-IO < = CPLD-CS OR DSP-RW

OR DSP-IOSTRB ;

CPLD-CS-M < = DSP-DS OR DSP-MSTRB

OR DSP-RW;

PROCESS(CPLD-CS-IO ,CPLD-CS-M)

BEGIN

IF CPLD-CS-IO =′0′THEN

QQ < = DSP-D ;

END IF ;

IF CPLD-CS-M =′0′THEN

Q < = QQ ;

END IF ;

END PROCESS ;


认真分析了本方案中VC5402 数据存储空间的分配特点后,使用VC5402 的DSP A15 和数据选通信号DS #的逻辑组合来选通FLASH 和SRAM3 ,具体的连接如图3所示,其转换逻辑由CPLD 编程实现。


外扩FLASH 和SRAM 的读写控制信号的逻辑也是在CPLD 中实现的,数据存储器扩展所需控制信号的仿真波形图如图4 所示。

对FLASH 空间的某一地址进行访问时,应分为以下几步:

首先,解析该地址,进行地址分割,低15 位为页内地址,高3 位作为页选择地址;

其次,把页选择地址用PORTW 命令送到所分配的I/ O空间PA 中,等选通信号使能后,页地址就在所选存储器的高端地址线上;

 


最后,使用访问数据的指令。由于VC5402 的数据是16 位的,因此在调用数据指令时,需要16 位的数据。这里,低15 位来自所要访问的地址的低15 位,最高位补零。


要对Flash 存储器的高端进行访问,必须先对CPLD送数。如要寻址70000 H 存储单元时,假定AR3 辅助寄存器指向某一存储单元,CPLD 映射在VC5402 I/ O 空间的地址为PA ,其大致操作如下:

ST # 07H , *AR3

PORTW * AR3 ,PA


这样,CPLD 充当的锁存器将111 这3 位数给锁存住,在选通FLASH 时,将数据111 送至FLASH 的A15~A17端,然后再对DSP 存储器的地址0000 H 进行读写操作即可。

 

DSP 的扩展I/ O 端口

VC5402 仅有这2 个通用I/ O 引脚往往是不够的,DSP 为了一些特殊的需要提供了多个片上设备,比如3 个多功能串口、HPI 接口等。这些片上设备在系统中并没有用上,因此可以利用DSP 的扩展功能将这些设备的管脚扩展为通用I/ O 端口供系统使用。比如将HPI 端口的8 位并行数据线扩展为8 位I/ O 端口,用来和CPLD 进行通信,这些I/ O 口的扩展是通过对DSP 的相关寄存器进行相应的设置来实现的。


为了实现DSP 和CPLD 之间的交互,将HPI 的数据线用作通用I/ O 端口实现了VC5402 I/ O 口的扩展。HPI数据线扩展为通用I/ O 口的具体方法:在HPI 接口不允许,即在复位时HPIENA 引脚为低电平的情况下,使用2 个存储器映射寄存器(通用I/ O 控制寄存器GPIOCR 和通用I/ O 状态寄存器GPIOSR) 来控制HPI 数据引脚的输入输出。GPIOCR 和GPIOSR 在DSP 的物理地址分别是003CH 和003DH。


如要从扩展的HPI 口输出数据40 H ,需要进行以下3 步操作:

第一步:在复位时,将HPIENA 引脚置为低电平;

第二步:将通用I/ O 控制寄存器GPIOCR 的值设置为0x00FF ;

第三步:将通用I/ O 状态寄存器GPIOSR 的相应位设置为01000000 ,即40 H。

实现的程序代码如下:

STM # 0x003C ,AR3 ; 选中控制寄存器

ST # 0x00FF , *AR3 ; 将HPI数据端置为输出状态

STM # 0x003D ,AR3 ; 选中状态寄存器

ST # 0x0040 , *AR3 ; 输出数据40H


  结 语

利用CPLD 实现VC5402 的存储器空间扩展,大大简化了硬件电路的设计,编程灵活;调试时,只需对CPLD 电路进行调试,简单方便,此方案可以推广到其他便携式图像采集处理系统的存储器扩展中。。。 

关键字:外部  存储器  接口  设计

编辑:eeleader 引用地址:http://www.eeworld.com.cn/gykz/2011/0921/article_8565.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
外部
存储器
接口
设计

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved