基于TMS320VC5502的交通灯DSP实习报告docWord格式文档下载.docx
- 文档编号:22609193
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:23
- 大小:224.85KB
基于TMS320VC5502的交通灯DSP实习报告docWord格式文档下载.docx
《基于TMS320VC5502的交通灯DSP实习报告docWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于TMS320VC5502的交通灯DSP实习报告docWord格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
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-位存储器:
0X540000~0X57FFFF
0X280000~0X2BFFFF
0X580000~0X5BFFFF
0X2C0000~0X2DFFFF
0X5C0000~0X5FFFFF
0X2E0000~0X2FFFF
接口32-位存储器:
0X680000~0X6FFFFF
0X340000~0X2BFFFF
0X700000~0X77FFFF
0X380000~0X2DFFFF
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<
csl.h>
csl_pll.h>
csl_emif.h>
csl_chip.h>
stdio.h>
//实验操控:
//选择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;
//夜间模式
#ifTESTCOMMAND==0x03
TestCommand=EAST;
//交通灯东西通
#ifTESTCOMMAND==0x04
TestCommand=SOUTH;
//交通灯南北通
#ifTESTCOMMAND==0x05
TestCommand=FORBID;
//禁行
for(;
;
)
{
switch(TestCommand)
{
/*自动运行模式*/
caseAUTO:
/*白天模式*/
/*从东西到南北*/
*DEL=EASTEWEST;
delay(2000);
*DEL=IOCHANGE;
delay(1000);
*DEL=SOUTHNORTH;
delay(8000);
/*从南北到东西*/
break;
/*夜间模式*/
caseNIGHT:
delay(6000);
*DEL=0;
/*交通灯东西通*/
caseEAST:
*DEL=IOCHANGE;
delay(2000);
TestCommand=0;
/*交通灯南北通*/
caseSOUTH:
/*禁行*/
caseFORBID:
*DEL=ALLFORBIN;
default:
}
}
}
voiddelay(intperiod)
inti,j;
for(i=0;
i<
period;
i++)
{
for(j=0;
j<
0x1000;
j++);
}
/******************************************************************************\
*Endof5502_FALSH.c
\******************************************************************************/
/********************************************************************************/
/*Filename:
emif.c*/
/*Function:
Configemif*/
/*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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 TMS320VC5502 交通灯 DSP 实习 报告 doc