基于TMS320VC5502的交通灯DSP实习报告doc.docx

上传人:b****8 文档编号:9473144 上传时间:2023-02-04 格式:DOCX 页数:23 大小:224.85KB
下载 相关 举报
基于TMS320VC5502的交通灯DSP实习报告doc.docx_第1页
第1页 / 共23页
基于TMS320VC5502的交通灯DSP实习报告doc.docx_第2页
第2页 / 共23页
基于TMS320VC5502的交通灯DSP实习报告doc.docx_第3页
第3页 / 共23页
基于TMS320VC5502的交通灯DSP实习报告doc.docx_第4页
第4页 / 共23页
基于TMS320VC5502的交通灯DSP实习报告doc.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于TMS320VC5502的交通灯DSP实习报告doc.docx

《基于TMS320VC5502的交通灯DSP实习报告doc.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5502的交通灯DSP实习报告doc.docx(23页珍藏版)》请在冰豆网上搜索。

基于TMS320VC5502的交通灯DSP实习报告doc.docx

基于TMS320VC5502的交通灯DSP实习报告doc

DSP实习报告

基于TMS320VC5502的交通灯

 

实习题目:

基于DSP的交通灯设计

学院:

电气信息工程学院

班级:

信息

学号:

xx

姓名:

实习日期:

指导教师:

xxx

 

DSP实习报告

 

实习题目:

语音信号的编解码

学院:

电气信息工程学院

班级:

电子10-1

学号:

2号

姓名:

陈晓辉

实习日期:

2013.05.06-2013.05.17

指导教师:

刘柏生

十一、实习心得………………………………………………………………….18

 

十二、参考文献…………………………………………………………………19

 

基于TMS320C5502DSP的交通灯设计

一、实习目的与要求

1、熟悉使用SEED-DEC5502板控制SEED-DEC—IO上交通灯的方法;

2、掌握DSP扩展数字I/O接口的方法;

3、了解SEED-DEC5502的硬件系统。

通过本实验,了解DSP对I/O口的操作,完成交通灯的控制。

熟练使用CCS对程序进行调试。

二、实习内容

1、DSP初始化;

2、UART初始化;

3、TMS320C5502硬件系统;

4、TMS320C5502的扩展数字I/O口使用;

5、交通灯实现程序;

6、通过本实验,了解DSP对I/O接口的操作,完成交通灯的控制;

7、熟练使用CCS对程序进行调试。

三、实习设备

计算机、SEED-DTK5502实验箱、仿真器、交通灯模块。

四、DSP数字信号处理简介

DSP芯片,也称数字信号处理器,是一种针对数字信号处理而特别设计的微处理器。

随着超大规模集成电路技术上取得的突破进展,集成化的DPS数字信号处理器具有体积小、功耗低和运算速度快等诸多优点,因此非常适用于语音信号的压缩处理。

目前的DPS芯片以其强大的数据处理功能而在通信和其他信号处理领域得到广泛注意,并已成为开发应用的热点技术。

五、实习背景资料

用C语言程序完成对交通灯的控制,实现相关控制

DSP系统中一般只有少量的数字I/O资源,而一些控制中经常需要大量的数字量的输入与输出。

因而,在外部扩展I/O资源是非常有必要的。

在扩展I/O资源时一般占用DSP的I/O空间。

其实现方法一般有两种:

其一为采用锁存器像74LS273、74lS373之类的集成电路;另一种是采用CPLD在其内部做锁存逻辑,我们采用的是后者。

SEED-DEC5502模板提供标准化的存储器扩展总线,以方便用户扩展其专用的电路。

SEED-DEC5502的存储器扩展总线,包含3个存储空间。

SEED-DEC5502的这3个存储空间被映射到’C5502的和空间中。

子空间平均分成3块,分别分配为扩展总线的

,扩展总线的

可接口多种类型、多种数据宽度(8/16/32-位)的存储器,使用时,应根据它们所接口的存储器类型和存储器数据宽度来动态调整子空间的配置。

接口不同存储器数据宽度时扩展总线的

子空间的具体映射如下:

接口8-位存储器:

字节地址

字地址

XCE1

0X4A0000~0X4BFFFF

0X250000~0X25FFFF

XCE2

0X4C0000~0X4DFFFF

0X260000~0X26FFFF

XCE3

0X4E0000~0X4FFFFF

0X270000~0X27FFF

接口16-位存储器:

字节地址

字地址

XCE1

0X540000~0X57FFFF

0X280000~0X2BFFFF

XCE2

0X580000~0X5BFFFF

0X2C0000~0X2DFFFF

XCE3

0X5C0000~0X5FFFFF

0X2E0000~0X2FFFF

接口32-位存储器:

字节地址

字地址

XCE1

0X680000~0X6FFFFF

0X340000~0X2BFFFF

XCE2

0X700000~0X77FFFF

0X380000~0X2DFFFF

XCE3

0X780000~0X7FFFFF

0X3C0000~0X2FFFF

扩展总线的

还可映射到’VC5502的

子空间,扩展总线的

映射的切换有系统控制寄存器1(SYSCNTL1)中的XCE3SEL控制位决定。

当XCE3SEL=0时,

分配给板上SDRAM使用;当XCE3SEL=1时,

分配给扩展总线

使用,此时,应根据

接口的存储器类型来配置

控制寄存器。

子空间的具体定位如下:

字节地址

字地址

CE3

0XC00000~0XFFFFFC

0X600000~0X7FFFFE

上电复位后,XCE3SEL=0,

缺省配置给SDRAM使用。

在EPD实验箱中我们将I/O板映射到SEED-DEC5502模板的

空间,地址映射关系如下:

实验箱I/O板对应的起始地址为:

0x600000(字地址);

TRAFFICLED的偏移地址为:

0x000000;即TRAFFICLED的地址为:

0x600000;

SEED-DTK5502系统中数字IO所占资源如下:

D11

D10

D09

D08

D07

D06

D05

D04

D03

D02

D01

D00

SR

SY

SG

WR

EG

EY

WY

ER

WG

NR

NY

NG

NG:

方向北的绿灯控制位;

NY:

方向北的黄灯控制位;

NR:

方向北的红灯控制位;

WG:

方向西的绿灯控制位;

ER:

方向东的红灯控制位;

WY:

方向西的黄灯控制位;

EY:

方向东的黄灯控制位;

EG:

方向东的绿灯控制位;

WR:

方向西的红灯控制位;

SG:

方向南的绿灯控制位;

SY:

方向南的黄灯控制位;

SR:

方向南的红灯控制位;

当以上各位置“1”时,点亮各控制位所代表的交通灯状态的LED灯。

六、方案论证及系统设计

1.5502_IO.c:

这是实验的主程序,包含了系统初始化,并完成控制交通灯按照所选择的不同模式输出显示,以及LED灯按照可输入的8位二进制数显示结果;

2.Emif.c:

包含DSP对EMIF外部接口的初始化;

3.SEED_DEC5502.cmd:

声明了系统的存储器配置与程序各段的连接关系。

本次实习有两种方案,C语言和汇编语言实现,由于考虑到算法的特点,以及C语言的简练,我采用C语言版。

1、新建一个项目:

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

2、新建一个源文件:

点击File-New-SourceFile可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(ExpFIR),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为AD7822.asm,同样建立并命名一个为InitC5402.asm。

3、在项目中添加源文件:

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

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

七、程序流程图

八、源程序

实验中取一个交通灯显示模块

#include

#include

#include

#include

#include

 

//实验操控:

//选择TESTCOMMAND:

0x01为自动运行,0x02为夜间模式,0x03为交通灯东西通,

//0x04为交通灯南北通,0x05为禁行。

#defineTESTCOMMAND1//交通灯操作命令选择

unsignedintTestCommand=0;//无操作

#defineAUTO0xAA14//自动运行模式

#defineNIGHT0xAA16//夜间模式

#defineEAST0xAA1A//东西通行

#defineSOUTH0xAA1B//南北通行

#defineFORBID0xAA1C//禁行

#defineEASTEWEST0x88c//交通灯东西通(南北禁行)

#defineSOUTHNORTH0x311//交通灯南北通(东西禁行)

#defineIOCHANGE0x462//交通灯各方向黄灯亮

#defineALLFORBIN0x914//交通灯各方向均禁行

voiddelay(intperiod);

 

volatileunsignedchar*DEL=(volatileunsignedchar*)0x600000;//交通灯

volatileunsignedchar*DECCTL=(volatileunsignedchar*)0x280001;//控制寄存器

main()

{

/*初始化CSL库*/

CSL_init();

/*设置系统的运行速度为300MHz*/

PLL_setFreq(1,0xF,0,1,3,3,0);

/*初始化DSP外部EMIF*/

Emif_Config();

*DECCTL=0x40;

#ifTESTCOMMAND==0x01

TestCommand=AUTO;//自动运行

#endif

#ifTESTCOMMAND==0x02

TestCommand=NIGHT;//夜间模式

#endif

#ifTESTCOMMAND==0x03

TestCommand=EAST;//交通灯东西通

#endif

#ifTESTCOMMAND==0x04

TestCommand=SOUTH;//交通灯南北通

#endif

#ifTESTCOMMAND==0x05

TestCommand=FORBID;//禁行

#endif

for(;;)

{

switch(TestCommand)

{

/*自动运行模式*/

caseAUTO:

/*白天模式*/

/*从东西到南北*/

*DEL=EASTEWEST;

delay(2000);

*DEL=IOCHANGE;

delay(1000);

*DEL=SOUTHNORTH;

delay(8000);

/*从南北到东西*/

*DEL=SOUTHNORTH;

delay(2000);

*DEL=IOCHANGE;

delay(1000);

*DEL=EASTEWEST;

delay(8000);

break;

/*夜间模式*/

caseNIGHT:

*DEL=IOCHANGE;

delay(6000);

*DEL=0;

delay(6000);

break;

/*交通灯东西通*/

caseEAST:

*DEL=IOCHANGE;

delay(1000);

*DEL=EASTEWEST;

delay(2000);

TestCommand=0;

break;

/*交通灯南北通*/

caseSOUTH:

*DEL=IOCHANGE;

delay(1000);

*DEL=SOUTHNORTH;

delay(2000);

TestCommand=0;

break;

/*禁行*/

caseFORBID:

*DEL=IOCHANGE;

delay(1000);

*DEL=ALLFORBIN;

delay(2000);

TestCommand=0;

break;

default:

break;

}

}

}

voiddelay(intperiod)

{

inti,j;

for(i=0;i

{

for(j=0;j<0x1000;j++);

}

}

/******************************************************************************\

*Endof5502_FALSH.c

\******************************************************************************/

 

/********************************************************************************/

/*Filename:

emif.c*/

/*Function:

Configemif*/

/********************************************************************************/

#include

#include

/*FLASH的EMIF设置*/

EMIF_ConfigMyEmifConfig={

EMIF_GBLCTL1_RMK(//EMIFGlobalControlRegister1

EMIF_GBLCTL1_NOHOLD_HOLD_ENABLED,//Holdenable

EMIF_GBLCTL2_EK2HZ_HIGHZ,//EMIF_GBLCTL1_EK1HZ_EK1ENHigh-Zcontrol

EMIF_GBLCTL1_EK1EN_ENABLED//ECLKOUT1Enable

),

EMIF_GBLCTL2_RMK(//EMIFGlobalControlRegister2

EMIF_GBLCTL2_EK2RATE_1XCLK,//ECLKOUT2Rate

EMIF_GBLCTL2_EK2HZ_HIGHZ,//EMIF_GBLCTL2_EK2HZ_EK2ENEK2HZ=0,ECLKOUT2isdrivenwithvaluespecifiedbyEKnENduring

EMIF_GBLCTL2_EK2EN_DISABLED//ECLKOUT2Enable(enabledbydefault)

),

EMIF_CE1CTL1_RMK(//CE1SpaceControlRegister1

EMIF_CE1CTL1_TA_OF(3),//Turn-Aroundtime

EMIF_CE1CTL1_READ_STROBE_OF(6),//Readstrobewidth

EMIF_CE1CTL1_MTYPE_16BIT_ASYNC,//Accesstype

EMIF_CE1CTL1_WRITE_HOLD_MSB_LOW,//Writeholdwidth

bitHIGH

EMIF_CE1CTL1_READ_HOLD_OF(3)//Readholdwidth

),

EMIF_CE1CTL2_RMK(//CE1SpaceControlRegister2

EMIF_CE1CTL2_WRITE_SETUP_OF(4),//Writesetupwidth

EMIF_CE1CTL2_WRITE_STROBE_OF(10),//Writestrobewidth

EMIF_CE1CTL2_WRITE_HOLD_OF

(2),//Writeholdwidth

EMIF_CE1CTL2_READ_SETUP_OF

(2)//Readsetupwidth

),

EMIF_CE0CTL1_RMK(//CE0SpaceControlRegister1

EMIF_CE0CTL1_TA_DEFAULT,

EMIF_CE0CTL1_READ_STROBE_DEFAULT,

EMIF_CE0CTL1_MTYPE_DEFAULT,

EMIF_CE0CTL1_WRITE_HOLD_MSB_DEFAULT,

EMIF_CE0CTL1_READ_HOLD_DEFAULT

),

EMIF_CE0CTL2_RMK(//CE0SpaceControlRegister2

EMIF_CE0CTL2_WRITE_SETUP_DEFAULT,

EMIF_CE0CTL2_WRITE_STROBE_DEFAULT,

EMIF_CE0CTL2_WRITE_HOLD_DEFAULT,

EMIF_CE0CTL2_READ_SETUP_DEFAULT

),

EMIF_CE2CTL1_RMK(//CE2SpaceControlRegister1

EMIF_CE2CTL1_TA_DEFAULT,//NotuseforSDRAM(asynchronousmemorytypesonly)

EMIF_CE2CTL1_READ_STROBE_DEFAULT,//Readstrobewidth

EMIF_CE2CTL1_MTYPE_32BIT_SDRAM,//32-bit-wideSDRAM

EMIF_CE2CTL1_WRITE_HOLD_DEFAULT,//Writeholdwidth

EMIF_CE2CTL1_READ_HOLD_DEFAULT//Readholdwidth

),

EMIF_CE2CTL2_RMK(//CE2SpaceControlRegister2

EMIF_CE2CTL2_WRITE_SETUP_DEFAULT,//Writesetupwidth

EMIF_CE2CTL2_WRITE_STROBE_DEFAULT,//Writestrobewidth

EMIF_CE2CTL2_WRITE_HOLD_DEFAULT,//Writeholdwidth

EMIF_CE2CTL2_READ_SETUP_DEFAULT//Readsetupwidth

),

EMIF_CE3CTL1_RMK(//CE3SpaceControlRegister1

EMIF_CE3CTL1_TA_OF(3),//Turn-Aroundtime

EMIF_CE3CTL1_READ_STROBE_OF(6),//Readstrobewidth

EMIF_CE3CTL1_MTYPE_16BIT_ASYNC,//Accesstype

EMIF_CE3CTL1_WRITE_HOLD_MSB_LOW,//WriteholdwidthMSBbitHIGH

EMIF_CE3CTL1_READ_HOLD_OF(3)

),

EMIF_CE3CTL2_RMK(//CE3SpaceControlRegister2

EMIF_CE3CTL2_WRITE_SETUP_OF(4),//Writesetupwidth

EMIF_CE3CTL2_WRITE_STROBE_OF(10),//Writestrobewidth

EMIF_CE3CTL2_WRITE_HOLD_OF

(2),//Writeholdwidth

EMIF_CE3CTL2_READ_SETUP_OF

(2)//Readsetupwidth

),

EMIF_SDCTL1_RMK(//SDRAMControlRegister1

EMIF_SDCTL1_TRC_OF(6),//SpecifiestRCvalueoftheSDRAMinEMIFclockcycles.

EMIF_SDCTL1_SLFRFR_DISABLED//Auto-refreshmode

),

EMIF_SDCTL2_RMK(//SDRAMControlRegister2

0x11,//4banks,11rowaddress,8columnaddress

EMIF_SDCTL2_RFEN_ENABLED,//Refreshenabled

EMIF_SDCTL2_INIT_INIT_SDRAM,

EMIF_SDCTL2_TRCD_OF

(1),//SpecifiestRCDvalueoftheSDRAMinEMIFclockcycles

EMIF_SDCTL2_TRP_OF

(1)//SpecifiestRPvalueoftheSDRAMinEMIFclockcycles

),

0x61B,//SDRAMRefreshControlRegister1

0x0300,//SDRAMRefreshControlRegister2

EMIF_SDEXT1_RMK(//SDRAMExtensionRegister1

EMIF_SDEXT1_R2WDQM_1CYCLE,

EMIF_SDEXT1_RD2WR_3CYCLES,

EMIF_SDEXT1_RD2DEAC_1CYCLE,

EMIF_SDEXT1_RD2RD_1CYCLE,

EMIF_SDEXT1_THZP_OF

(1),//tPROZ2=2

EMIF_SDEXT1_TWR_OF(0),//

EMIF_SDEXT1_TRRD_2CYCLES,

EMIF_SDEXT1_TRAS_OF(4),

EMIF_SDEXT1_TCL_2CYCLES

),

EMIF_SDEXT2_RMK(//SDRAMExtensionRegis

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

当前位置:首页 > 总结汇报 > 学习总结

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

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