基于DSP外部并行存储器接口设计.docx
《基于DSP外部并行存储器接口设计.docx》由会员分享,可在线阅读,更多相关《基于DSP外部并行存储器接口设计.docx(12页珍藏版)》请在冰点文库上搜索。
![基于DSP外部并行存储器接口设计.docx](https://file1.bingdoc.com/fileroot1/2023-5/28/04f9a7fa-b2ef-41a8-9ee3-568383217542/04f9a7fa-b2ef-41a8-9ee3-5683832175421.gif)
基于DSP外部并行存储器接口设计
课程设计(论文)
题目名称基于DSP的外部并行存储器接口设计
课程名称专业课程设计II
学生姓名段红飞
学号00
系、专业信息工程系、通信工程
指导教师李星亮
2012年6月10日
1存储器TMS320C54X的接口设计
1.1外部RAM接口的设计
C54x系列DSP芯片外部RAM接口设计主要有以下三种扩展分离的方法:
(1)外接一个128K*16的RAM,程序区和数据区分开
它采用程序选通线(/PS)接外部RAM的A16地址线实现。
因此,程序区为RAM的钱64K,数据区为RAM的后64K。
(2)混合程序区和数据区
当OVLY=1时,内部RAM即使数据区又是程序区,这样设置的好处是程序可以在内部全速运行。
缺点是由于程序和数据是共用的,存储区就变小了,此外,在链接时必须将程序和数据分开,以避免重叠。
(3)一种优化的混合程序和数据区外接RAM方法
这种方法省去了DSP的A15地址线,将RAM分为32K长度的块。
采用这种方法吗,可充分利用外接的RAM,不会因内部RAM和外部RAM的地址重叠而造成外部RAM的浪费。
这种优化的外部RAM配置方法,使得在使用DSP内部RAM的情况下能够充分利用外部扩展RAM。
1.2Flash接口的设计
(1)Flash的控制逻辑信号
Flash有6根控制逻辑信号,如表2-1所示。
信号
定义及作用
—
CE
片选
—
OE
输出控制
—
WE
写控制
—
RP
复位
—
WP
写保护
Vpp
电源
表2-1
(2)控制信号
Flash的工作状态是由命令控制的,有三个常用的命令,如表2-2所示。
命令代码
工作模式
命令含义
FF
读取
从Flash中读数据
40
编程
将数据写入到指定地址
20
擦除
擦除Flash的块
表2-2
Flash存储器内部以扇区来组织,对Flash存储器编程是以块为单位进行的。
在对Flash编程前,必须先对扇区进行擦除。
编程和擦除都需要两个总线周期的操作,如表2-3所示。
命令
第1个总线周期
第2个总线周期
操作
地址
数据
操作
地址
数据
编程
写
X
40H
写
程序地址
程序数据
擦除
写
X
20H
写
扇区地址
D0H
表2-3
2系统硬件设计
2.1方案选择
对于基于DSP平台的Flash接口设计,经过综合考虑了几种方案之后决定,采用一个带TMS320C54XDSP内核的Flash接口芯片28F400B3(成本非常低),再加上简单的外围电路和时序调整电路。
这种芯片仅仅完成Flash底层的数据链路级交换,并提供给本地微控制器一个并行的接口,但是它并不完成协议层的工作。
协议层的工作需要对微控制器编程,控制Flash接口芯片来实现接口协议。
所以,开发难度相对来说大一些,要做的编程工作也多一点。
但是这套方案的成本非常低,而且由于直接用DSP作为微控制器,没有原单片机的瓶颈限制,所以可以实现很高的数据传输速率。
系统开发环境
CCS开发环境
CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
CCS支持如下图所示的开发周期的所有阶段。
图
2.3元器件的介绍
TMS320C549系列属于定点DSP芯片,低功耗和低成本是其主要的特点。
它是基于改进的哈佛结构的16bit定点DSP芯片,特别适用于无线通信的实时嵌入式系统。
其单周期为,最大运算能力为80MIPS.其内部的高性能CPU拥有40位算术逻辑单元,包括一个40bit的桶行移位器和两个独立40bit累加器,比较,选择和存储单元等。
最大可寻址能力192K字,扩展寻址模式时具有8M字的最大可寻址外部程序空间。
拥有一套高效灵活的指令集,具有强大的系统接口能力,从而为硬件设计提供了方便。
2.4硬件核心设计图
DSP与Flash的接口如图3-3所示:
3-3 DSP与Flash的接口
3系统软件设计
3.1软件流程图
下图为软件的编程流程图:
软件编程流程图
下图为软件擦除流程图:
软件擦除流程图
3.2软件核心代码
.mmregs
.defStart
.text
Start:
STM#00FEH,SP
STM#03B4H,SWWSR
CALLSET_READ_MODE;设置读模式
STM#0,AR1;AR1设置为块地址
CALLERASE
STM#4000H,AR1;AR1设置为数据地址
LD#55AAH,B
CALLPROGRAM
CALLSET_READ_MODE
SET_READ_MODE:
SSBXXF;启用命令写
LD#0FFH,A;读阵列命令代码
STM#4000H,AR1
STLA,*AR1;写命令代码
RPT#4
NOP;CPU延时
RSBXXF;禁用写命令
RET
ERASE:
PSHMAR1;保存块地址
SSBXXF;禁用写命令
LD#20H,A
STM#4000H,*AR1
STLA,*AR1;设置首字节为20h
LD#0D0H,A;设置第二个字节为0d0h
STLA,*AR1
RPT#4
NOP;CPU延时
RSBXXF
E_RS:
LD*AR1,A
ADDA,#0,B;B=A
AND#80H,B;测试
BCE_SC,BNEQ
AND#40H,A
BCError,ANEQ
BE_RS;读sr
E_SC:
AND#3AH,A
BCError,ANEQ
POPMAR1;恢复地址
RET
PROGRAM:
SSBXXF
LD#40H,A
STLA,*AR1
RPT#4
NOP;CPU延时
STLB,*AR1;写数据
RPT#4
NOP;CPU延时
RSBXXF;禁用命令写入
P_RS:
LD*AR1,A
ADDA,#0,B;b=a
AND#80H,B;测试
BCP_RS,BNEQ;读sr
P_SC:
AND#1AH,A
BCError,ANEQ;误码掩盖
RET
Error:
B$;循环
.sect".vec"
BStart
.end
Cmd文件如下:
MEMORY
{
PAGE1:
INT_D:
ORIGIN=80h,LENGTH=1F80h
PAGE0:
EXT_P:
ORIGIN=2080h,LENGTH=2000h
}
SECTIONS{
.text:
>EXT_PPAGE0
.int_table:
>(EXT_PALIGN(128)PAGE(0))
.bss:
>INT_DPAGE1
}
程序运行后CPU寄存器和DSP存储器的数据
4课程设计的总结与体会
在这次的课程设计中我遇到了些问题,如程序的设计中,语句的语法和常量定义都有严格的要求,有时输入一个中文标点,打错一个字母编译就不能通过。
在解决这些问题时也是一个再次学习的过程。
经过了两个星期的学习,我终于完成了外部并行存储器接口课程设计。
从开始接到论文要求到时钟的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战。
在这段时间里,我学到了很多知识也有很多感受,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,我感受到做论文是要用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
通过本次毕业设计,我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,DSP领域这对我今后进一步学习计算机方面的知识有极大的帮助。
在此,忠心感谢老师以及许多同学的指导和支持。
参考文献资料
[1]张雄伟.曹铁勇.DSP芯片的原理与开发应用第四版.电子工业大出版社,.
[2]..DSP应用系统设计实例第一版.北京航空航天大学出版社,.
[3]TMS320C54xDSP结构、原理及应用(第2版).北京航空航天大学出版社,.
[4]..DSP原理与应用技术.电子工业出版社,.
致谢
通过本次毕业设计,我在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,DSP领域这对我今后进一步学习知识有极大的帮助。
在此,忠心感谢我的指导老师李星亮和授课老师刘伟春。