DSP与外部存储器和键盘接口电路设计.docx

上传人:b****8 文档编号:10250057 上传时间:2023-02-09 格式:DOCX 页数:21 大小:131.36KB
下载 相关 举报
DSP与外部存储器和键盘接口电路设计.docx_第1页
第1页 / 共21页
DSP与外部存储器和键盘接口电路设计.docx_第2页
第2页 / 共21页
DSP与外部存储器和键盘接口电路设计.docx_第3页
第3页 / 共21页
DSP与外部存储器和键盘接口电路设计.docx_第4页
第4页 / 共21页
DSP与外部存储器和键盘接口电路设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

DSP与外部存储器和键盘接口电路设计.docx

《DSP与外部存储器和键盘接口电路设计.docx》由会员分享,可在线阅读,更多相关《DSP与外部存储器和键盘接口电路设计.docx(21页珍藏版)》请在冰豆网上搜索。

DSP与外部存储器和键盘接口电路设计.docx

DSP与外部存储器和键盘接口电路设计

09750201

 

DSP课程设计

设计说明书

DSP与外部存储器和键盘接口电路设计

起止日期:

2012年12月17日至2012年12月22日

安从源

09电气2班

导教

师(签

字)

控制与机械工程院

2012年12月22日

天津城市建设学院

课程设计任务书

2012—2013学年第一学期

控制与机械工程学院电气工程及其自动化专业2班级

课程设计名称:

DSP原理及应用

设计题目:

DSP与外部存储器和键盘接口电路设计

完成期限:

自2012年12月17日至2012年12月22日共1周

设计依据、要求及主要内容(可另加附页):

一、课程设计的目的

通过本课程设计,锻炼学生查阅资料、方案比较、运用知识的能力。

使学生掌握C54系列DSP芯片

的结构、原理和典型应用,并且能够熟悉DSP的开发流程和基本的设计方法,既巩固所学的基础理论知识,

又为学生日后从事开发设计奠定基础。

、课程设计的内容及要求

DSP与外部存储器和键盘接口电路设计,完成

选择合适的器件,了解元器件的工作原理,进行

1、外部存储器RAM与DSP接口电路设计

2、3X5阵列键盘与DSP接口电路设计

3、编写键盘驱动程序

4、书写设计说明书

三、参考资料:

4、苏涛.DSP实用技术•西安:

西安电子科技大学出版社

指导教师(签字):

教研室主任(签字):

批准日期:

年月日

摘要

20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,DSP的应用,已

得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念。

本次设计在CCS开发平台上利用C语言设计矩阵键盘控制接口电路。

要求设计一个3X5矩阵键盘,

一共有三个模块,分别为:

扫描电路模块、时钟产生模块、键盘译码电路和按键标志位产生电路。

扫描模块中是为了产生扫描信号,来利用扫描信号来扫描键盘中是否有按键按下。

键盘译码电路和按键标志位产生电路也是为了配合扫描模块来扫描电路中是否有按键按下,而且还要求它来产生按键标志信号,以便和外部电路握手。

时钟产生电路是为了产生不同频率的信号,来驱动上面两个电路的运转。

通过对课题的分析研究,掌握了DSP语言编程方法,同时也增强了个人的学习能力和动手能力。

关键词:

C54x;DSP;存储空间;程序存储器;数据存储器;扩展;芯片TMS320C5402矩阵键盘扫描。

1.外部存储器RAM与DSP接口电路系统设计5

.1存储空间的分配5

1.3程序存储器7

1.3数据存储器9

23X5阵列键盘与DSP接口电路系统设计11

2.13X5阵列键盘设计原理11

2.3电路设计11

2.3编写键盘驱动程序13

3心得体会16

4参考资料:

17

1.外部存储器RAM与DSP接口电路系统设计

通常,C54x的总存储空间为192K字。

这些空间可分为3个选择的空间:

64K字的程序存储空间、64K字的数据存储空间和64K字的I/O空间。

所有的C54xDSP片内都有随机存储器(RAM和只读存储器(ROM。

RAM有两种类型:

单寻址RAM(SARAM和双寻址RAM(DARA)

表1-1列出了各种C54xDSP片内存储器的容量。

C54xDSP片内还有26个映象到数据存储空间的CPU

寄存器和外围电路寄存器。

C54DSP结构上的并行性及在片RAM的双寻址能力,使它能够在任何一个给定

的机器周期内同时执行4次存储器操作,即一次读两个操作数和写一个操作数。

我们可以将双寻址DARAM和单寻址SARAME置为数据存储器或程序存储器。

与片外存储器相比,片内存储器具有不需要插入等待状态、成本和功耗低等优点,但片外存储器具有较大存储空间能力。

表1-1C54xDSP片内程序和数据存储器(单位:

K字)

存储器类

C541

C542

C543

C545

C546

C548

C549

C5402

C5410

C5402

ROM

28K

2K

2K

48K

48K

2K

16K

4K

16K

0

程序ROM

20K

2K

2K

32K

32K

2K

16K

4K

16K

0

程序/数据

8K

0

0

16K

16K

0

16K

4K

0

0

DARAM

5K

10K

10K

6K

6K

8K

8K

16K

8K

32K

SARAM

0

0

0

0

0

24K

24K

0

56K

168K

.1存储空间的分配

C54xDSP的存储空间可以分成3个可单独选择的空间,即程序、数据和I/O空间。

在任何一个存储空间内,RAMROMEPROMEEPROM或存储器映象外设都可以驻留在片内或片外。

这三个空间的总地址范围为192K字。

程序存储器空间存放要执行的指令和执行中所用的系数表,数据存储器存放执行指令所要用的数据,I/O空间与存储器映象外围设备相接口也可以作为附加的数据存储空间。

在C54x中,片内存储器的形式有DARAMSARAM和ROM3种,取决于芯片的型号。

RAM总是安排到数

据存储空间,但也可以构成程序存储空间,ROM一般构成程序存储空间,也可以部分安排到数据存储空间。

C54x通过3个状态位,可以很方便地“使能”和“禁止”程序和数据空间中的片内存储器。

1)MP/MC位

若MP/MC=0则片内ROM安排到程序空间;

若MP/MC=1则片内ROM不安排到程序空间。

2)OVLY位

若OVLY=1则片内RAM安排到程序和数据空间;

若0VLY=1则片内RAM只安排到数据存储空间。

3)DROM位

当DROM=1则部分片内RAM安排到数据空间;

当DROM=0则片内RAM不安排到数据空间。

DRO啲用法与MP/MC的用法无关。

上述三个状态位包含在处理器工作方式状态寄存器(PMST中。

图1.1以C5402为例给出了数据和程序存储区图,并说明了与MP/MCOVLY及DROM3个状态位的关

系。

C5402可以扩展程序存储空间。

采用分页扩展方法,使其程序空间扩展到1024K字。

为此,设有20根

地址线,增加了一个额外的存储器映像寄存器一程序计数器扩展寄存器(XPC,以及6条寻址扩展程序空

间的指令。

C5402中的程序空间分为16页,每页64K字,如图1.2所示。

第0贞程序存储器第0页程厚存储器数据存储器」

保留(OVL诈1)或

JP

保笛C07LY=l)或

存储器映像寄存器存

唆宙(0VLY=O)口

A

外部COVLT=O)P

暂存寄存器”

片内

片内

片内DAMtlSK

EAKAin(OVLY=l)或

DAW(OVLY=1)或

字2

外gg(OVLY=0)^

p

外部(OVLY=OM

外的

Jp

夕啷中

片内ROM(DROJn=l)

片内KOM(4E字)护

怒卜部(DR0E2

保留q

保留ROM(LRO1T1)

中断向量表(外部h

中断向量表(片內》

或外昶(PROM二02

徽处理器方徴计算机模|

图1.1C5402存储器图

第0页

64K字

第1页

32K字

(外部)

第2页

32K字

(外部)

第15页

32K字

(外部)

第1页

32K字

(外部)

第2页

32K字

(外部)

第15页

32K字

(外部)

注:

1.当OVLY=0时,1〜15页的低32K字是可以获得的。

2.当OVLY=1时,则片内RAM映射到所有程序空间页的低32K字。

图1.2C5402扩展程序存储器图

1.3程序存储器

多数C54XDSP勺外部程序存储器可寻址64K字的存储空间。

它们的片内ROM双寻址RAM(DARAM以

及单寻址RAM(SARA),都可以通过软件映象到程序空间。

当存储单元映像到程序空间时,处理器就能自动的对它们所处的地址范围寻。

如果程序地址生成器(PAGEN发出的地址处在片内存储器地址范围以外,

处理器就能自动地对外部寻址。

表1-2列出了C54xDSP可用的片内程序存储器的容量。

由表可见,这些

片内存储器是否作为程序存储器,取决于软件对处理器工作方式状态寄存器(PMST的状态位MP/MC和OVLY

的编程。

表1-2C54xDSP的片内程序存储器

器件

ROM(MP/MC=0

DARAM(OVLY=1)

SARAM(OVLY=0)

C541

28K

5K

C542

2K

10K

C543

2K

10K

C545

48K

6K

C546

48K

6K

C548

2K

8K

24K

C549

16K

8K

24K

C5402

4K

16K

C5410

16K

8K

56K

C5420

32K

168K

为了增强处理器的性能,对片内ROM!

细分为若干块,这样,就可以在片内ROM勺一个块内取指的同

时,又在别的块中读取数据。

当处理器复位时,复位和中断向量都映像到程序空间的FF80。

复位后,这些向量可以被重新映像到程

序空间中任何一个128字页的开头。

这就很容易将中断向量表从引导ROM中移出来,然后再根据存储器图

安排。

C54xDSP的片内ROM容量有大有小,容量大的片内ROM可以吧用户的程序代码编进去,然而片内高

2K字ROM中的内容是由TI公司定义的,这2K字程序空间中包含如下内容:

(1)自举加载程序。

从串行口、外部存储器、I/O接口或主机接口自举加载。

(2)256字A律压扩表。

(3)256字u律压扩表。

(4)256字正弦函数值查找表。

(5)中断向量表。

图1.3所示为C54xDSP片内高2K字ROM中的内容及其地址范围。

如果MP/MC=0则用于代码的地址范围

F800h~FFFFh被映射到片内ROM

C548、C549C5402、C5410和C5420可以在程序存储器空间使用分页的扩展存储器,允许访问最高达8192K

字的程序存储器。

为了扩展程序存储器,上述芯片应该包括以下的伏加特征:

(1)23位地址线代替16位的地址线

(2)一个特别的存储器映射寄存器,即程序计数器扩展器存器(XPC;

(3)6个特别的指令,用于寻址扩展程序空间。

C541/545/546C542/543/548/549/5402/5410

图1.3片内ROM程序存储器映射

扩展程序成初器的页号由XPC寄存器设定。

XPC映像到存储单元001Eh,在硬件复位时,XPC初始化为

0。

C548C549、C5402、C5410和C5420的程序存储器空间被组织为128页,每页长度为64K字长,此时

片内RAM不映射到程序空间(OVLY=0。

当片内RAM安排到程序空间(OVLY=1时,每页程序存储器分为两部分:

一部分是公共的32K字,另

一部分是各自独立的32K字。

公共存储区为所有页共享,而每页独立的32K字存储区只能按指定的页号寻址,如图2.17所示。

如果片内ROM被寻址(MP/MC=0,它只能在0页,不能映像到程序存储器的其他页。

为了通过软件切换程序存储器的页面,有6条专用的影响XPC值的指令。

(1)FB:

远转移。

(2)FBACC元转移到累加器A或B指定的位置。

(3)FCALA元调用累加器A或B指定的位置的程序。

(4)FCALL远调用。

(5)FRET远返回。

(6)FRETE带有被使能的中断的远返回。

以上指令都可以带有或不带有延时。

1.3数据存储器

C54xDSP的数据存储器容量最多达64K字。

除了单寻址和双寻址RAM(SARAM和DARAM外,C54x还

可以通过软件将片内ROM映像到数据存储空间。

表1-3列出了各种C54x可用的片内数据存储器的容量。

表1-3各种C54x可用的片内数据存储器的容量

器件

程序/数据ROM(DROM=)

DARAM

SARAM

C541

8K

5K

C542

10K

C543

10K

C545

16K

6K

C546

16K

6K

C548

8K

24K

C549

8K

8K

24

C5402

4K

16K

C5410

16K

8K

56K

C5420

32K

168K

当处理器发出的地址处在片内存储器的范围内时,就对片内的RAM或数据ROM(当ROM设为数据存储

器时)寻址。

当数据存储器的地址产生器发出的地址不在片内存储器的范围内时,处理器就会自动地对外部数据存储器寻址。

数据存储器可以驻留在片内或片外。

片内DARAM都是数据存储空间。

对于某些C54XDSP用户可以通过设置PMST寄存器的DROMfc,将部分片内ROM映像到数据存储空间。

这一部分片内ROM及可以在数据空间使能(DROM=)1,也可以在程序空间使能(MP/MC=0。

复位时,处理器将DROM位清0。

对数据ROM勺单操作数寻址,包括32位长字操作数寻址,单个周期就可完成。

而在双操作数寻址时,

如果操作数驻留在同一块内则要2个周期;若操作数驻留在不同块内则只需要1个周期就可以了。

为了提高处理器性能,片内RAM也细分为若干块。

分块以后,用户可以再同一周期内从同一DARAM

中取出两个操作数,将数据写入另一块DARAMK

C54xDSP中DARAM前1K数据存储器包括存储器映象CPU寄存器和外围电路寄存器、32字暂存器以及896

字DARAM

寻址存储器映象CPU寄存器,不需要插入等待周期。

外围电路寄存器用于对外围电路的控制和存放数

据,对它们寻址,需要2个机器周期。

表1-4列出了存储器映像CPU寄存器的名称及地址。

表1-4存储器映像CPU寄存器

地址

CPU寄存器名称

地址

CPU寄存器名称

0

IMR(中断屏蔽寄存器)

12

AR2(辅助寄存器2)

1

IFR(中断标志寄存器)

13

AR3(辅助寄存器3)

2~5

保留(用于测试)

14

AR4(辅助寄存器4)

6

ST0(状态寄存器0)

15

AR5(辅助寄存器5)

7

ST1(状态寄存器1)

16

AR6(辅助寄存器6)

8

AL(累加器A低字)

17

AR7(辅助寄存器7)

9

AH(累加器A高字)

18

SP(堆栈指针)

A

AG(累加器A保护位)

19

BK(循环缓冲区长度寄存器)

B

BL(累加器B低字)

1A

BRC(块重复寄存器)

C

BH(累加器B高字)

1B

RSA(块重复起始地址寄存器)

D

BG(累加器保护位)

1C

REA(块重复结束地址寄存器)

E

T(暂时寄存器)

1D

PMST(处理器工作方式寄存器)

F

TRN状态转移寄存器)

1E

XPC(程序计数器扩展寄存器,仅

C548以上型号)

10

AR0(辅助寄存器0)

11

AR1(辅助寄存器1)

1E~1F

保留

 

3X5阵列键盘与DSP接口电路系统设计

2.13X5阵列键盘设计原理

设计一个3X5的行列式键盘。

2812的8个I/O口与之相连,这里按键的识别方法是扫描法。

键被按

下时,与此键相连的行线电平将由于此键相连的列线电平决定,而行线的电平在无按键按下时处于高电平状态。

如果让所有的列线也处于高电平,那么键按下与否不会引起行线电平的状态变化,时钟为高电平。

所以,让所有的列线处于高电平是无法识别出按键的。

现在反过来,让所有的列线处于低电平,很明显,按键所在的行电平将被拉成低电平。

根据此行电平的变化,便能判断此行一定有按键被按下,但还不能确定是哪个键被按下。

假如是5键按下,为了进一步判定是哪一列的键被按下,可在某一时刻只让一条列线处于低电平,而其余列线处于高电平。

那么,按下键的那列电平就会拉成低电平,判断出哪列为低电平就可以判断出按键号码。

2.3电路设计

具体电路设计如图2.1,图中用到了TMS320C5402芯片。

关于TMS320系列中同一代芯片具有相同的CPU吉构,但是片内存储器和片内外设的配置是不同的。

TMS320C54xDSP具有如下的优点:

1)具有哈佛结构的CPU具有高度的并行性;

2)包含定点,浮点,多CPU

3)主要用于实时处理;

4)灵活的指令集;

5)高速;

6)并行;

7)性价比高;

8)c编程。

TMS320C54xDSP芯片的总体结构如下:

从上图可以看出,DSP芯片具有计算,存储,和通信的功能。

这恰好与数字思想是吻合的。

只要对数字比特进行运算和存储及传输就能完成任何复杂的功能,这就是数字化的思想。

在此CPU充当计算功能,

而片内存储起数据缓存作用,另外片内外围电路则是传输通道。

除上述结构特征外,DSP芯片还具有适合

于数字信号处理的特点:

1)改进的哈佛结构。

冯•诺依曼结构,其特点是程序和数据共用一个存储空间。

统一编址依靠令计数器提供的地址进行区分。

由于对数据和程序进行分时读写,执行速度慢。

哈佛结构是程序和数据具有独立的存储空间,有着各有的独立总线。

由于可同时对数据和程序进行寻址,它大大地提高了数据处理能力。

改进型哈佛结构是在数据总线和程序总线之间建立交叉连接。

这样允许数据存放在程序存储器内,另外指令可存储在CACHEK

2)流水线操作。

一个指令是分为取指令、译码、取操作数、执行。

显然是顺序的,但如果有多条这样的流水同时进行,将会大大减少指令执行时间。

3)采用硬件乘法器。

4)一套专门为数字信号处理而设计的指令系统。

5)快速的指令周期。

6)良好的多机并行运行特性,提供了并行运行的通信接口。

DSP系统具有如下特点:

1)精度高,相比R/L/C网络只要提高A/D和D/A的精度将有效提高整体精度。

2)可靠性强。

由数字电路的特点所决定。

3)集成度咼。

4)接口方便。

对于系统集成接口设计是关键。

5)灵活性好。

可编程。

6)保密性好。

N键盘按I1屯路设计

IMSJ2UC54U2

AdVJ)

IXS

1A

IT

inr.TPP

Vdd

UE

OF

QI

LESf

QI

D?

D3

 

 

图2.13x5键盘电路图

2.3编写键盘驱动程序

#include"exp3_2407.h"

unsignedintnum=O;

voidsys_ini()

{

/*关总中断*/

asm("setcINTM");

/*抑制符号位扩展*/

asm("clrcSXM");

/*累加器中结果正常溢出*/

asm("clrcOVM");

/*禁止看门狗*/

*WDCR=0x00E8;

/*配置时钟锁相为4倍频CLKOUT=4*10=40M*假设外部精振为10MHz

*SCSR1=0x8104;//使能EVA模块时钟

/*清除所有中断标志,”写1清0"*/

*IFR=0xFFFF;

}

 

voidtimer1」ni()//

定时器1的初始化程序

/*使能int2中断*/定时器1为INT2优先级

*IMR=0x0002;

/*使能T1PINT中断*/

*EVAIMRA=0x0080;

/*清EVA中断标志*/

*EVAIFRA=0xFFFF;

/*连续增计数模式,预分频为8,定时器计时使能,内部时钟,定时器1比较使能*/

*T1CON=0x134C;

/*1ms产生一次中断*/

*T1PER=0x1388;//0x1388=5000(D)/(40/8)/1000ms

/*计数器清零*/

*T1CNT=0x0000;

/*开总中断*/

asm("clrcINTM");

}

voidIO_ini(){

*MCRA=OXOOOO;//配置A端口0-7为通用10

*PADATDIR=0X0F80;//A端口低三位为输出状态,高五位为输入状态}

interruptvoidnothing()//{

return;

}

interruptvoidtimer1()//定时器1中断子程序

{

/*记中断次数50次,产生50ms延时*/

if(num==50)

{

num=0;

unsignedcharTmp;//定义临时变量

Tmp=keyj();

if(Tmp!

=0xf0)

{

delay(5000);

if(keyj()==Tmp)

{

KeyValue=key();

}

}

elsenum++;

/*计数器清零*/

*T1CNT=0x0000;

/*清EVA中断标志*/

*EVAIFRA=0xFFFF;

 

}

***********************

功能函数*************************

 

 

unsignedcharkey()

{

unsignedcharx=0xff;

*PADATDIR=0X0006;//扫描第一行if(*PADATDIR&0x00f8)==0xf0)x=1;

elseif(*PADATDIR&0x00f8)==0xe8)x=2;elseif(*PADATDIR&0x00f8)==0xd8)x=3;elseif(*PADATDIR&0x00f8)==0xb8)x=4;elseif(*PADATDIR&0x00f8)==0x78)x=5;else

{

*PADATDIR=0X0005;//扫描第二行if(*PADATDIR&0x00f8)==0xf0)x=6;

elseif(*PADATDIR&0x00f8)==0xe8)x=7;elseif(*PADATDIR&0x00f8)==0xd8)x=8;elseif(*PADATDIR&0x00f8)==0xb8)x=9elseif(*PADATDIR&0x00f8)==0x78)x=10;

}

else

{

*PADATDIR=0X0003;//扫描第三行if(*PADATDIR&0x00f8)==0xf0)x=11;

elseif(*PADATDIR&0x00f8)==0xe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1