1、基于TMS320VC5502的交通灯DSP实习报告doc DSP实习报告基于TMS320VC5502的交通灯实习题目:基于DSP的交通灯设计 学 院:电气信息工程学院 班 级:信息 学 号: xx 姓 名: 实习日期: 指导教师:xxxDSP实习报告实习题目:语音信号的编解码 学 院:电气信息工程学院 班 级:电子10-1 学 号: 2号 姓 名:陈晓辉 实习日期:2013.05.06-2013.05.17 指导教师:刘柏生 十一、实习心得.18十二、参考文献19基于TMS320C5502 DSP的交通灯设计一、实习目的与要求 1、熟悉使用SEED-DEC5502板控制SEED-DECIO上交
2、通灯的方法;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-DTK 5502实验箱、仿真器、交通灯模块。四、DSP数字信号处理简介 DSP芯片,也称数字信号处理器,是一种针对数字信号处理而特
3、别设计的微处理器。随着超大规模集成电路技术上取得的突破进展,集成化的DPS数字信号处理器具有体积小、功耗低和运算速度快等诸多优点,因此非常适用于语音信号的压缩处理。目前的DPS芯片以其强大的数据处理功能而在通信和其他信号处理领域得到广泛注意,并已成为开发应用的热点技术。五、实习背景资料用C语言程序完成对交通灯的控制,实现相关控制DSP系统中一般只有少量的数字I/O资源,而一些控制中经常需要大量的数字量的输入与输出。因而,在外部扩展I/O资源是非常有必要的。在扩展I/O资源时一般占用DSP的I/O空间。其实现方法一般有两种:其一为采用锁存器像74LS273、74lS373之类的集成电路;另一种是
4、采用CPLD在其内部做锁存逻辑,我们采用的是后者。SEED-DEC5502模板提供标准化的存储器扩展总线,以方便用户扩展其专用的电路。SEED-DEC5502的存储器扩展总线,包含3个存储空间。SEED-DEC5502的这3个存储空间被映射到C5502的 和 空间中。子空间平均分成3块,分别分配为扩展总线的、,扩展总线的、可接口多种类型、多种数据宽度(8/16/32-位)的存储器,使用时,应根据它们所接口的存储器类型和存储器数据宽度来动态调整 子空间的配置。接口不同存储器数据宽度时扩展总线的、在子空间的具体映射如下:接口8-位存储器:字节地址字地址XCE10X4A00000X4BFFFF0X2
5、500000X25FFFFXCE20X4C00000X4DFFFF0X2600000X26 FFFFXCE30X4E00000X4FFFFF0X2700000X27 FFF接口16-位存储器:字节地址字地址XCE10X5400000X57FFFF0X2800000X2BFFFFXCE20X5800000X5BFFFF0X2C00000X2D FFFFXCE30X5C00000X5FFFFF0X2E00000X2F FFF接口32-位存储器:字节地址字地址XCE10X6800000X6FFFFF0X3400000X2BFFFFXCE20X7000000X77FFFF0X3800000X2D FF
6、FFXCE30X7800000X7FFFFF0X3C00000X2F FFF扩展总线的还可映射到VC5502的子空间,扩展总线的映射的切换有系统控制寄存器1(SYSCNTL1)中的XCE3SEL控制位决定。当XCE3SEL = 0时,分配给板上SDRAM使用;当XCE3SEL = 1时,分配给扩展总线使用,此时,应根据接口的存储器类型来配置控制寄存器。子空间的具体定位如下:字节地址字地址CE30XC000000XFFFFFC0X6000000X7FFFFE上电复位后,XCE3SEL = 0,缺省配置给SDRAM使用。在EPD实验箱中我们将I/O板映射到SEED-DEC5502模板的空间,地址映
7、射关系如下: 实验箱I/O板对应的起始地址为:0x600000(字地址);TRAFFIC LED的偏移地址为:0x000000;即TRAFFIC LED的地址为:0x600000;SEED-DTK5502系统中数字IO所占资源如下:D11D10D09D08D07D06D05D04D03D02D01D00SRSYSGWREGEYWYERWGNRNYNGNG: 方向北的绿灯控制位;NY: 方向北的黄灯控制位;NR: 方向北的红灯控制位;WG: 方向西的绿灯控制位;ER: 方向东的红灯控制位;WY: 方向西的黄灯控制位;EY: 方向东的黄灯控制位;EG: 方向东的绿灯控制位;WR: 方向西的红灯控制
8、位;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
9、New,将项目命名为ExpFIR.pjt,并将项目保存在自己定义的文件夹下,注意文件夹一定要用英文名,不要将文件夹取名为中文名,因为CCS软件不能识别以中文命名的文件夹。2、新建一个源文件:点击FileNewSource File可以打开一个文本编辑窗口,点击保存按键,保存在和项目相同的一个文件夹下面(ExpFIR),保存类型选择*.ASM(如果源文件是C语言编写的,保存类型选择*.C,本实验中的例程是使用汇编语言编写的,所以选择*.ASM为保存类型),我们在这里将保存名字命名为AD7822.asm ,同样建立并命名一个为InitC5402.asm。3、在项目中添加源文件:在新建立了一个源文件
10、以后,要想使用CCS编译器对该源文件进行编译还需要将源文件添加到项目中去。添加方法是在工程管理器中右键单击traffic.pjt,在弹出的菜单中选择Add Files,然后将刚才建立的AD7822.asm文件和InitC5402.asm添加到该项目中去。七、程序流程图 八、源程序实验中取一个交通灯显示模块#include #include #include #include #include /实验操控:/选择TESTCOMMAND:0x01为自动运行,0x02为夜间模式,0x03为交通灯东西通,/ 0x04为交通灯南北通,0x05为禁行。#define TESTCOMMAND 1 /交通灯操
11、作命令选择unsigned int TestCommand =0;/无操作#define AUTO 0xAA14/自动运行模式#define NIGHT 0xAA16/夜间模式#define EAST 0xAA1A/东西通行 #define SOUTH 0xAA1B/南北通行#define FORBID 0xAA1C/禁行#define EASTEWEST 0x88c /交通灯东西通(南北禁行)#define SOUTHNORTH 0x311 /交通灯南北通(东西禁行) #define IOCHANGE 0x462 /交通灯各方向黄灯亮#define ALLFORBIN 0x914 /交通灯各
12、方向均禁行void delay(int period);volatile unsigned char* DEL = (volatile unsigned char *)0x600000;/交通灯volatile unsigned char* DECCTL = (volatile unsigned char *)0x280001;/控制寄存器main() /*初始化CSL库*/ CSL_init(); /*设置系统的运行速度为300MHz*/ PLL_setFreq(1, 0xF, 0, 1, 3, 3, 0); /*初始化DSP外部EMIF*/ Emif_Config(); *DECCTL=0
13、x40; #if TESTCOMMAND=0x01 TestCommand =AUTO;/自动运行 #endif #if TESTCOMMAND=0x02 TestCommand =NIGHT;/夜间模式 #endif #if TESTCOMMAND=0x03 TestCommand =EAST;/交通灯东西通 #endif #if TESTCOMMAND=0x04 TestCommand =SOUTH;/交通灯南北通 #endif #if TESTCOMMAND=0x05 TestCommand =FORBID;/禁行 #endif for(;) switch( TestCommand )
14、/*自动运行模式*/ case AUTO: /*白天模式*/ /*从东西到南北*/ *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; /*夜间模式*/ case NIGHT: *DEL=IOCHANGE; delay(6000); *DEL=0; delay(600
15、0); break; /*交通灯东西通*/ case EAST: *DEL=IOCHANGE; delay(1000); *DEL=EASTEWEST; delay(2000); TestCommand = 0; break; /*交通灯南北通*/ case SOUTH: *DEL=IOCHANGE; delay(1000); *DEL=SOUTHNORTH; delay(2000); TestCommand = 0; break; /*禁行*/ case FORBID: *DEL=IOCHANGE; delay(1000); *DEL=ALLFORBIN; delay(2000); Test
16、Command = 0; break; default: break; void delay(int period) int i, j; for(i=0; iperiod; i+) for(j=0; j0x1000; j+); /* End of 5502_FALSH.c*/*/* Filename: emif.c */* Function: Config emif */*/#include #include /*FLASH的EMIF设置*/EMIF_Config MyEmifConfig = EMIF_GBLCTL1_RMK( / EMIF Global Control Register 1
17、 EMIF_GBLCTL1_NOHOLD_HOLD_ENABLED, / Hold enable EMIF_GBLCTL2_EK2HZ_HIGHZ, / EMIF_GBLCTL1_EK1HZ_EK1ENHigh-Z control EMIF_GBLCTL1_EK1EN_ENABLED / ECLKOUT1 Enable ),EMIF_GBLCTL2_RMK( / EMIF Global Control Register 2 EMIF_GBLCTL2_EK2RATE_1XCLK, / ECLKOUT2 Rate EMIF_GBLCTL2_EK2HZ_HIGHZ, / EMIF_GBLCTL2_E
18、K2HZ_EK2ENEK2HZ = 0, ECLKOUT2 is driven with value specified by EKnEN during EMIF_GBLCTL2_EK2EN_DISABLED / ECLKOUT2 Enable (enabled by default) ), EMIF_CE1CTL1_RMK( / CE1 Space Control Register 1 EMIF_CE1CTL1_TA_OF(3), / Turn-Around time EMIF_CE1CTL1_READ_STROBE_OF(6), / Read strobe width EMIF_CE1CT
19、L1_MTYPE_16BIT_ASYNC, / Access type EMIF_CE1CTL1_WRITE_HOLD_MSB_LOW, / Write hold width bitHIGH EMIF_CE1CTL1_READ_HOLD_OF(3) / Read hold width ),EMIF_CE1CTL2_RMK( / CE1 Space Control Register 2 EMIF_CE1CTL2_WRITE_SETUP_OF(4), / Write setup width EMIF_CE1CTL2_WRITE_STROBE_OF(10), / Write strobe width
20、 EMIF_CE1CTL2_WRITE_HOLD_OF(2), / Write hold width EMIF_CE1CTL2_READ_SETUP_OF(2) / Read setup width ),EMIF_CE0CTL1_RMK( / CE0 Space Control Register 1 EMIF_CE0CTL1_TA_DEFAULT, EMIF_CE0CTL1_READ_STROBE_DEFAULT, EMIF_CE0CTL1_MTYPE_DEFAULT, EMIF_CE0CTL1_WRITE_HOLD_MSB_DEFAULT, EMIF_CE0CTL1_READ_HOLD_DE
21、FAULT ),EMIF_CE0CTL2_RMK( / CE0 Space Control Register 2 EMIF_CE0CTL2_WRITE_SETUP_DEFAULT, EMIF_CE0CTL2_WRITE_STROBE_DEFAULT, EMIF_CE0CTL2_WRITE_HOLD_DEFAULT, EMIF_CE0CTL2_READ_SETUP_DEFAULT ),EMIF_CE2CTL1_RMK( / CE2 Space Control Register 1 EMIF_CE2CTL1_TA_DEFAULT, / Not use for SDRAM (asynchronous
22、 memory types only) EMIF_CE2CTL1_READ_STROBE_DEFAULT, / Read strobe width EMIF_CE2CTL1_MTYPE_32BIT_SDRAM, / 32-bit-wide SDRAM EMIF_CE2CTL1_WRITE_HOLD_DEFAULT, / Write hold width EMIF_CE2CTL1_READ_HOLD_DEFAULT / Read hold width ),EMIF_CE2CTL2_RMK( / CE2 Space Control Register 2 EMIF_CE2CTL2_WRITE_SET
23、UP_DEFAULT, / Write setup width EMIF_CE2CTL2_WRITE_STROBE_DEFAULT,/ Write strobe width EMIF_CE2CTL2_WRITE_HOLD_DEFAULT, / Write hold width EMIF_CE2CTL2_READ_SETUP_DEFAULT / Read setup width ),EMIF_CE3CTL1_RMK( / CE3 Space Control Register 1 EMIF_CE3CTL1_TA_OF(3), / Turn-Around time EMIF_CE3CTL1_READ
24、_STROBE_OF(6), / Read strobe width EMIF_CE3CTL1_MTYPE_16BIT_ASYNC, / Access type EMIF_CE3CTL1_WRITE_HOLD_MSB_LOW, / Write hold width MSB bitHIGH EMIF_CE3CTL1_READ_HOLD_OF(3) ),EMIF_CE3CTL2_RMK( / CE3 Space Control Register 2 EMIF_CE3CTL2_WRITE_SETUP_OF(4), / Write setup width EMIF_CE3CTL2_WRITE_STRO
25、BE_OF(10), / Write strobe width EMIF_CE3CTL2_WRITE_HOLD_OF(2), / Write hold width EMIF_CE3CTL2_READ_SETUP_OF(2) / Read setup width ),EMIF_SDCTL1_RMK( / SDRAM Control Register 1 EMIF_SDCTL1_TRC_OF(6), / Specifies tRC value of the SDRAM in EMIF clock cycles. EMIF_SDCTL1_SLFRFR_DISABLED / Auto-refresh
26、mode ),EMIF_SDCTL2_RMK( / SDRAM Control Register 2 0x11, / 4 banks,11 row address, 8 column address EMIF_SDCTL2_RFEN_ENABLED, / Refresh enabled EMIF_SDCTL2_INIT_INIT_SDRAM, EMIF_SDCTL2_TRCD_OF(1), / Specifies tRCD value of the SDRAM in EMIF clock cycles EMIF_SDCTL2_TRP_OF(1) / Specifies tRP value of
27、 the SDRAM in EMIF clock cycles ),0x61B, / SDRAM Refresh Control Register 10x0300, / SDRAM Refresh Control Register 2EMIF_SDEXT1_RMK( / SDRAM Extension Register 1 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( / SDRAM Extension Regis
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1