基于DSP的流水灯系统设计.docx

上传人:b****8 文档编号:9443039 上传时间:2023-02-04 格式:DOCX 页数:22 大小:259.15KB
下载 相关 举报
基于DSP的流水灯系统设计.docx_第1页
第1页 / 共22页
基于DSP的流水灯系统设计.docx_第2页
第2页 / 共22页
基于DSP的流水灯系统设计.docx_第3页
第3页 / 共22页
基于DSP的流水灯系统设计.docx_第4页
第4页 / 共22页
基于DSP的流水灯系统设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于DSP的流水灯系统设计.docx

《基于DSP的流水灯系统设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的流水灯系统设计.docx(22页珍藏版)》请在冰豆网上搜索。

基于DSP的流水灯系统设计.docx

基于DSP的流水灯系统设计

 

课程设计说明书

 

题目:

基于DSP的流水灯系统设计

 

学院:

专业班级:

学号:

学生:

指导教师:

2017年1月13日

理工大学课程设计(论文)任务书

电气与信息工程学院

学号

学生

专业(班级)

题目

基于DSP的流水灯系统设计

设计

技术

参数

1.使用TMS320VC5416作为CPU;

2.具有简单的键盘输入可控制功能;

3.具有存放程序的外部FLASH芯片;

4.外部输入电压+5V电源;

5.设计JTAG接口方便测试以及调试;

6.设计8为数码管显示电路,实现8个流水灯正向反向依次闪烁,时间间隔为0.5s

设计

要求

1.画出最小DSP系统电路图以及控制电路图(电源、存储、JTAG、复位等),使用Protell或者Visio画出硬件设计电路图或者框图;

2.给出系统设计软件流程图以及程序;

3.掌握运用CCS软件实现软件调试以及烧写。

注:

可填写说明书(论文)的字数要求或要完成的图纸数量。

1.不少于3000字;

2.页数不少于8页;

3.给出所有电路图结构图。

工作

计划

1.选择DSP芯片;

2.硬件设计与调试;

3.软件编程与调试;

4.系统集成;

5.系统调试与性能测试;

参考

资料

1.红怡.DSP技术与应用实例.电子工业,2003.6.

2.雄伟.DSP集成开发与应用实例.电子工业,2002.6

3.雄伟.DSP芯片原理的开发与应用.电子工业,2000.2

4.戴逸民.基于DSP的现代电子系统设计.电子工业,2002.12

5.钮心忻,义先.软件无线电技术与应用.邮电,2000.9

6.小牛,楼义才,徐建良.软件无线电原理与应用.电子工业,2001.1

7.红,吴冠.TMS320C54xDSP应用系统设计.航空航天大学,2002.5

指导教师签字

系主任签字

理工大学课程设计成绩评定表

学生:

学号:

专业班级:

课程设计题目:

基于DSP的流水灯系统设计

指导教师评语:

 

 

成绩:

指导教师:

年月日

摘要

 

DSP(DigitalSignalProcessing)也就是我们常说的数字信号处理,它是利用计算机或专用处理设备,以数字形式对信号进行采集,变换,滤波,估值,增强,压缩,识别等处理,以得到符合人们需要的信号形式。

DSP的主要应用有数字化移动,数据调制解调器,磁盘/光盘控制器需求,图形图像处理需求,汽车电子系统等。

DSP在航空航天方面,主要用于雷达和声纳信号处理;在通信方面,主要用于移动,IP,ADSL和HFC的信号传输;在控制方面,主要用于电机控制,光驱和因公安驱动器;在电子娱乐方面,主要用于高清晰电视,机顶盒,家庭影院,DVD等应用;还有数字相机,网络相机等等。

可以说没有DSP就没有对互联网的访问,也没有多媒体,也没有无线通信。

随着科学技术的发展,将会出现更多的DSP新应用领域。

本设计使用TMS320VC5416作为CPU,进行基于DSP的流水灯系统设计,要求:

1.具有简单的键盘输入可控制功能;

2.具有存放程序的外部FLASH芯片;

3.外部输入电压+5V电源;

4.设计JTAG接口方便测试以及调试;

5.设计8为数码管显示电路,实现8个流水灯正向反向依次闪烁,时间间隔为0.5s

关键词:

DSP;TMS320VC5416;流水灯;最小系统;JTAG接口

第一章TMS320VC5416芯片

1.1TMS320VC5416芯片特点

本设计用到的芯片是IT公司的TMS320VC5416,其引脚封装图如下所示:

TMS320VC5416是为实现低功耗,高性能而专门设计的定点DSP芯片,它主要应用于无线系统中。

TMS320VC5416基本特点:

1.中央处理单元

先进的多总线结构,有一条程序总线(PB),三条数据总线(CB,DB和EB)和四条地址总线(PAB,CAB,DAB和EAB);1个40位的算术逻辑单元(ALU),1个40位的桶形移位器和2个独立的40位累加器A和B;1个17x17的乘法器和两个40位加法器,乘法器可以耦合到加法器以完成单周期的MAC指令;部集成了维特比加速器以及与它相关的比较,选择和存储单元(CSSU);指数编码器用来在单周期计算40位累加器值的指数;2个地址产生器,其中包括8个辅助寄存器和2个辅助寄存器运算单元。

2.存储器

192Kx16-bit可寻址存储空间,其中包括64K字程序空间,64K字数据空间和64K字I/O空间,对于548,549,5402和5410还可以外部扩展程序空间

3.数据寻址

5416提供了7种数据寻址方式:

立即数寻址;绝对寻址;累加器寻址;直接寻址;间接寻址;存储器映射寄存器寻址;堆栈寻址;

4.程序存储器寻址

使用程序计数器(PC)寻址,但是,对于一些指令需要用到绝对寻址。

5.中断

5416支持软件中断(如INTR,TRAP,RESET)和硬件中断,中断可分为可屏蔽中断(如TINT,INT0等)和不可屏蔽中断(如RESET和NMI),其中RESET的优先级最高,不可屏蔽中断的优先级高于可屏蔽中断的优先级,硬件中断的优先级则高于软件中断的优先级。

6.流水线

5416有6级流水线:

预取指,取指,解码,访问,读取和执行。

7.运算速度

指令周期为25/20/15/12.5/10ns,运算能力为40/50/66/80/100MIPS(百万条指令/秒)。

8.低功耗方式

TMS320VC5416可以在3.3V或2.7V电压下工作,三个低功耗方式(IDLE1,IDLE2和IDLE3)可以节省DSP的功耗,所以它特别适合于无线移动设备。

9.片上的外设

可软件编程的等待状态发生器,使得与速度较慢的设备通讯更加方便;片上的锁相环时钟发生器可以对外部始终信号进行倍频或分频,从而得到自己所需要的时钟频率,当分频时还可节省系统的功耗;可以禁止对外部数据总线,地址总线以及控制信号的控制;可以软件编程的定时器;

10.JTAG扫描逻辑电路

符合国际IEEE1149.1标准的边界扫描逻辑接口,即JTAG扫描逻辑电路,用于仿真和测试,可以实现在线仿真。

1.2TMS320VC5416的指令集

5416的指令可以分为四个大类:

算术指令,逻辑指令,程序控制指令,读取和存储指令

1.算术指令

包括了加法指令(ADD...),减法指令(SUB...),乘法指令(MPY...),乘加指令(MAC...)和乘减指令(MAS...),32位操作数指令(DADD,DSUB...)和一些专用指令(ABDST,FIRS,SQDST...)。

其部分指令都只需要一个指令周期,只有个别指令需要2-3个指令周期。

2.逻辑指令

包括了与指令(AND...),或指令(OR...),异或指令(XOR...),移位指令(ROL...)和测试指令(BITF...)。

根据操作数的不同,这些指令需要1-2个指令周期。

3.程序控制指令

包括了转移指令(B,BC...),调用指令(CALL...),中断指令(INTR,TRAP),返回指令(RET...),重复指令(RPT...),堆栈操作指令(FRAME,POPD...)和其它程序控制指令(IDLE,NOP...)。

这些指令根据情况不同分别需要1-6个指令周期。

4.读取和存储指令

包括了读取指令(LD...),存储指令(ST...),条件存储指令(CMPS,SACCD...),并行的读取和乘法指令(LD||MAC...),并行的读取和存储指令(ST||LD...),并行的存储和乘法指令(ST||MAC...),并行的读取和加减指令(LD||ADD,LD||SUB)以及其它读取类型和存储类型指令(MVDD,PORTW,READA...)。

这些指令根据情况不同分别需要1-5个指令周期。

 

第二章硬件设计

2.1整体框图

2.2电源电路

2.3存储电路

2.4时钟电路

 

2.5复位电路

2.6JTAG电路

 

2.7键盘电路

2.8显示模块

 

第三章软件设计

1.1设计流程

1.2软件设计步骤

3.2.1进入CCS

用仿真机将计算机与ZY13DSP12BD实验箱连接好,并依次打开实验箱电源、仿真机电源,然后运行CCS软件。

3.2.2新建一个项目

点击Project-New,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。

3.2.3新建一个源文件

点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(main),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型)。

3.2.4在项目中添加源文件

在新建立了一个源文件以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。

添加方法是在工程管理器中右键单击LED.pjt,在弹出的菜单中选择AddFiles,然后将刚才建立的main.asm文件添加到该项目中去。

3.2.5程序代码

输入以下程序代码:

1.初始化程序

.mmregs

.includec54.inc

.defc54init

.sect"progsys"

c54init:

STM#0x7208,SWWSR;0111001000001000

STM#0,SWCR

STM#0xF800,BSCR;1111100000000000

STM#0,ST0

STM#0x2b00,ST1;0010101100000000

STM#0x2fe4,PMST;0010111111100100

STM#0xFFFF,IFR

STM#0x0000,IMR;关闭所有中断

STM#0,CLKMD

clkcon:

LDMCLKMD,A

AND#0x01,A

BCclkcon,ANEQ

STM#0x43ff,CLKMD;0100001111111111

STM#0x0010,TCR1;timer1stop

STM#0x0010,TCR;TSS=1Timerstop

STM#12800,PRD

STM#0x0020,TCR

RSBXINTM

NOP

NOP

RET

.end

2.主函数程序:

.mmregs

.ref_c_int00

.includec54.inc

.refc54init

;数码管地址

Digital0.set0x0010

Digital1.set0x0011

Digital2.set0x0012

Digital3.set0x0013

Digital4.set0x0014

Digital5.set0x0015

Digital6.set0x0016

Digital7.set0x0017

.data

DATA:

.word80FCH,8060H,80DAh,80F2h,8066H,80B6H,80BEH,80E0H;测试数据

.sect"progsys"

.align0x10

_c_int00:

STM#0x0f80,SP

CALLc54init

LD#DATA,DP

LOOP:

STM#DATA+7,AR1

PORTW*AR1-,Digital7

CALLDelay

PORTW*AR1-,Digital6

CALLDelay

PORTW*AR1-,Digital5

CALLDelay

PORTW*AR1-,Digital4

CALLDelay

PORTW*AR1-,Digital3

CALLDelay

PORTW*AR1-,Digital2

CALLDelay

PORTW*AR1-,Digital1

CALLDelay

PORTW*AR1-,Digital0

CALLDelay

BLOOP

Delay:

STM#999,AR3;循环次数1000

LOOP1:

STM#999,AR2;循环次数1000

LOOP2:

BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断

BANZLOOP1,*AR3-;如果AR1不等于0,AR1减1,跳转到LOOP1

RET

.end

3.向量文件

****************************vectors.asm****************

*PlugintheentrypointatRESETintheinterruptvectortable

*

*

.includec54.inc

.sect".vectors"

.ref_c_int00

;mainprogrom

;.reftimer0,hpisys,usb_read

.align0x80;mustbealignedonpageboundary

RESET:

;resetvector

B_c_int00;branchtomainprogrom

NOP

NOP

nmi:

RETE;enableinterruptsandreturnfromone

NOP

NOP

NOP;NMI~

;softwareinterrupts

sint17.space4*16

sint18.space4*16

sint19.space4*16

sint20.space4*16

sint21.space4*16

sint22.space4*16

sint23.space4*16

sint24.space4*16

sint25.space4*16

sint26.space4*16

sint27.space4*16

sint28.space4*16

sint29.space4*16

sint30.space4*16

int0:

RETE

NOP

NOP

NOP

int1:

RETE

NOP

NOP

NOP

int2:

RETE

NOP

NOP

NOP

tint:

RETE

NOP

NOP

NOP

rint0:

RETE

NOP

NOP

NOP

xint0:

RETE

NOP

NOP

NOP

DMAC0:

RETE

NOP

NOP

NOP

DMAC1:

RETE;tint1

NOP

NOP

NOP

int3:

RETE

NOP

NOP

NOP

HPINT:

RETE

NOP

NOP

NOP

DMAC2:

RETE;rint1

NOP

NOP

NOP

NOP

xint1:

RETE

NOP

NOP

NOP

DMAC4:

RETE

NOP

NOP

NOP

DMAC5:

RETE

NOP

NOP

NOP

.end

4.MEMORY程序

-msensor.map

MEMORY

{

PAGE0:

PROG:

origin=0x2000,len=0x0f80/*8k-128word*/

VECT:

origin=0x2f80,len=0x80/*128word*/

PAGE1:

DRAM:

origin=0x3000,len=0xf80/*4kword*/

 

}

SECTIONS

{

.progsys:

load=PROGPAGE0

.vectors:

load=VECTPAGE0

.data:

load=DRAMPAGE1align16

}

3.2.6对项目进行编译和

点击Project-CompileFile,在项目编译成功之后点击Project-Build选项对该项目进行,生成*.out文件。

3.2.7装载可执行文件

要让程序代码在DSP部运行必需将生成的*.OUT文件装载到DSP部,装载方法是点击:

File-LoadPrograme再选择生成的LED.out文件就可以将程序装载到DSP的部存储器中。

3.2.8运行程序并查看结果:

点击Debug-Run让程序在DSP部运行。

结果如下图:

 

设计心得及体会

为期两周的DSP课程设计结束了,在这次课程设计过程中,我学会了很多课本以外的东西,获得了许多难能可贵的经验。

通过这次的课程设计,提高自己动手能力的同时也学到了很多有关方面的知识,对DSP有了更深入的理解,巩固了以前学到的知识,是自己更加充实。

通过调试以上程序运行无误,完成了流水灯要求,使用DSP芯片设计流水灯;使用数码管显示;利用程序延时,接口转换实现流水灯。

通过本次课程设计实现了用DSP芯片设计流水灯,学习到了很多关于DSP的基础知识。

并且更加深刻的巩固了课堂上所学的课本知识,DSP技术有了更进一步的认识和了解。

掌握了DSP的基本实验方法,提高了工程设计和组织实验能力。

通过这次课程设计,我学会了原理图的绘制,元件的生成与调用,学会了流程图的绘制,这些技术的掌握对以后的工作、学习都有很大的帮助。

在这次课程设计中,通过自己查找相关资料,遇到问题积极解决,与同学积极讨论,最终完成了课程设计,我也体会到了成功的喜悦。

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

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

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

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