《DSP十字路口交通灯论文.doc》由会员分享,可在线阅读,更多相关《DSP十字路口交通灯论文.doc(27页珍藏版)》请在三一办公上搜索。
1、十字路口交通灯的设计摘要DSP数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。本次设计是基于DSP原理设计交通灯控制系统软硬件系统,利用发光二级管亮灭模拟交通信号,数码管显示倒计时时间,利用TMS320VC5402 DSP片上定时器定时产生时钟计数,
2、设计模拟实际生活中十字路口交通灯。关键词:DSP;TMS320VC5402;交通灯控制;发光二极管; 目 录1 绪论12 课程设计内容及要求22.1 课题设计内容2 2.2 课题设计要求23 课程设计方案及原理.3 3.1 课程设计总体方案3 3.1.1 设计思路.3 3.1.2 设计流程图.33.2 课程设计原理5 3.2.1 系统工作原理.5 3.2.2 系统工作状态.64 设计步骤及过程.8 4.1 硬件的选择8 4.1.1 主控制器的选择.84.1.2 电压转换芯片的选择.94.1.3 锁存器的选择.94.1.4 译码器的选择.104.1.5 数码显示输出模块.114.1.6 指示灯输
3、出模块.124.2 软件的使用.134.2.1 CCS文件名介绍.134.2.2 汇编源程序(.Asm).144.2.3 COFF目标文件.145 心得体会.16参考文献.17附录181 绪论十字路口交通灯在我们的日常生活中随处可见,它为繁忙的道路交通及人们的安全提供了较好的保障。然而,我们只知道交通灯在红、黄、绿三色之间交替更换来控制人车流量,去对其内部的工作原理及软硬件的设计了解很少,因此要通过此次简单道路交通灯控制系统软硬件设计来进一步研究交通灯的内部结构。最重要的是将学习到的DSP系统的组成与原理应用到交通灯的设计当中。通过DSP技术及应用课程设计,使学生能将学到的DSP系统的组成与原
4、理用到具体的实际系统中,加深对DSP系统的理解,是将该门课程与实际问题相连接的关键步骤。通过课程设计,能够提高学生分析问题,解决问题,从而运用所学知识解决实际问题的能力,并培养基本的,良好的系统软硬件设计等能力。2 课程设计内容及要求2.1 课题设计内容DSP课程设计是对数字信号处理、DSP原理及应用等课程的较全面练习和训练,是实践教学中的一个重要环节。通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计,基本技能
5、的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。本题目为急救车与十字路口交通灯的设计,目的是熟练掌握DSP定时器的控制、中断系统的应用以及程序的编写调试。2.2 课程设计要求1、南北、东西各三个灯(红、黄、绿); 2、南北、东西两向各有倒计时功能(各两位数码管显示);(1)南北绿灯、东西红灯,延时20秒(2)南北绿灯闪3次、东西红灯(6秒)(3)南北黄灯、东西红灯(4秒)(4)南北红灯、东西绿灯(20秒)(5)南北红灯、东西绿灯闪3次(6秒)(6)南北红灯、东西黄灯延时3秒(4秒)(7)回到(1)3、功能键:(1)启动开关 (2)急救灯的启动开关4、启动开关
6、按下时,交通灯开始运行,再按一下表示停止。5、急救灯的控制按钮按下时,四个路口全红灯状态。6、按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。3 课程设计总体方案及原理3.1课程设计总体方案3.1.1 设计思路根据DSP的硬件中断、定时器、I/O访问的原理。用定时器定时,用I/O口控制红绿黄灯的开关,用硬件外部中断模拟急救车的到达。有急救车到达时,两向为全红,以便让急救车通过。急救车通过后,交通灯恢复硬件中断前的状态。触发开关(红色按纽)为中断申请,表示有急救车通过。在实验箱上交通灯模块由高8位数据线控制:南北红灯D9、D11为高,南北黄灯D9、D11、D13、D15为高,南北绿灯D
7、13、D15为高,东西红灯D8、D10为高,东西黄灯由D8、D10、D12、D14为高,东西绿灯D12、D14为高。交通灯模块的I/O地址:0x5008h3.1.2 设计流程图开始保护现场全部红灯延时10秒恢复现场结束图3.1 中断程序服务图开始初始化DSP全部红灯延时1秒南北绿灯、东西红灯,延时20秒南北绿灯闪3次、东西红灯南北绿灯闪3次、东西红灯南北黄灯、东西红灯延时3秒南北红灯、东西绿灯延时20秒南北红灯、东西绿灯闪3次南北红灯、东西黄灯延时3秒图3.2 设计总流程图图3.3 数码管显示流程图3.2课程设计原理3.2.1 系统工作原理本设计硬件由定时模块、发光二极管模块、数码管显示模块和
8、紧急中断模块组成。信号灯受芯片中输出高低电平的控制。当锁存器I/O口输出为高电平时,他所驱动的信号灯即发光二极管就会亮起来。定时模块采用硬件定时和软件定时相结合的方法,用DSP定时/计数器定时100ms,再用软件计时实现所需的定时。发光二极管模块由DSP控制发光二极管来实现。数码管显示模块由实验平台上的LED显示模块实现。紧急中断模块是由单脉冲发生单元和DSP中断控制器组成。本次设计中东西南北路口的红灯均亮1秒,信号灯开始工作,东西红灯亮20秒,在东西红灯亮的同时,南北绿灯亮20秒。到20秒时,东西绿灯闪亮,绿灯闪亮的周期为2秒(亮1秒,灭1秒)。绿灯闪亮3次后灭,东西黄灯亮并维持4秒。到4秒
9、时,东西黄灯灭,东西红灯亮,同时南北红灯灭,南北绿灯亮。东西红灯亮维持20秒,南北绿灯亮维持20秒,到20秒时,南北绿灯闪亮3次后灭,南北黄灯亮,并维持4秒。到4秒时,南北黄灯灭,南北红灯亮,同时东西红灯灭,东西绿灯亮。紧接着开始第二周期的动作,以后周而复始的循环。3.2.2 系统工作状态状态一:南北绿灯、东西红灯,延时20秒,20秒后南北绿灯闪3次,东西红灯延时6秒;如图所示图3.4 状态一状态二:南北黄灯、东西红灯,持续6秒;图3.5 状态二状态三:东西绿灯、南北红灯,延时20秒,20秒后东西绿灯闪3次,南北红灯持续6秒;图3.6 状态三状态四:东西黄灯、南北红灯,持续6秒;图3.7 状态
10、四状态五:紧急状态下东西南北均亮红灯;图3.8 状态五4 设计步骤及过程4.1 硬件的选择4.1.1主控制器的选择采用TI公司DSP芯片TMS320VC5402。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。如下图所示:图4.1 TMS320VC54024.1.2 电压转换芯片的选择由于TMS320VC5402的工作电压为3.3V,而外部存储器的工作电压为5V,用74LV
11、C4245A完成3.3V到5V的电平转换。其功能是完成对芯片内部的Flash的编程工作,当程序在PC机上调试通过后,通过此接口就可以把程序完整地下载到Flash中去。图 4.2 74LVC4245A4.1.3 锁存器的选择本次设计通过主控制器产生时钟计数,并将锁存信号提供给锁存器,所以选择TTL带公共时钟复位的74LS273锁存器。是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,
12、常用作8位地址锁存器。(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位; (2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.图4.3 74LS2734.1.4 译码器的选择选择常用的74LS138译码器,译码产生8种输出
13、结果,进而控制数码管的显示。74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下:当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。图4.4 74LS1384.1.5 数码显示输出模块 数码管显示采用了四位一体的数码管。其显示由DSP的高八位数据线控制位码显示,低八位
14、数据线控制段码显示。其数据经过了74HC273锁存,图中锁存信号是LEDALE,清零信号是LEDCS,这两信号经过CPLD逻辑组合而来,逻辑功能描述如下:LEDALE=ios or not a15 or not a14 or a2 or a1 or a0;- DSP采用I/O方式访问数码管,所以DSP的控制线IS(此为IOS)和地址线组合来锁存送往数码管的数据,其地址C000h,LEDCS=rst;-DSP的复位RS(此写成RST)来对锁存器清零。图4.5 数码显示输出模块本实验也是采用CPLD(EPM7128)给DSP扩展了一个I/O口,来完成DSP对I/O口的访问。本实验是由DSP通过IO
15、方式对数码管进行操作,即向数码管送数据,高8位数据线D8D15为数码管的段码,低8位数据线D0D7为数码管的位码,此I/O端口地址是C000h,该实验中要求熟练运用DSP的各种指令,能使显示数据出现左移或右移等。硬件原理图和I/O端口地址译码请参考1.1.7输入输出模块中的数码显示输出模块。图4.6 数码显示硬件图4.1.6 指示灯输出模块图4.7 指示灯输出模块DSP的低八位数据线送往锁存器,然后由指示灯来显示。图中的LEDCS1是锁存器74HC273的清零信号,LEDCS2是锁存器的锁存信号,这两信号经过CPLD逻辑组合而来,逻辑功能描述如下:LEDCS1=rst;- DSP的复位RS(此
16、写成RST)来对锁存器清零LEDCS2 VECSPAGE0 .text: PROGPAGE0 .data: DATAPAGE1 .stack: STACKPAGE1* FileName:ex8.asm * Description:急救车与交通灯实验 * Copyright(C) SanZhi Electronic, Author Zpin *.title ex8.global _c_int00.mmregsLED_ADDR.set5008hSTATUS0.set00hSTATUS1.set01hSTATUS2.set02hSTATUS3.set03hSTATUS4.set04hSTA2_PRE
17、_0.set05hSTA2_PRE_1.set06hSTA4_PRE_0.set07hSTA4_PRE_1.set08hCURRENT_STA.set60h.data;东西、南北 红红 绿红 黄红 红绿 红黄 空红 绿红 红空 红绿;.word 0f00h,5a00h,5f00h,0a500h,0af00h,0a00h,5a00h,0500h,0a500h.word 0f000h,0a500h,0f500h,5a00h,0fa00h,0a000h,0a500h,5000h,05a00h;.word 0C300h,9600h,0D700h,6900h,0EB00h,08200h,9600h,04
18、100h,06900hDELAY.macro sec_tenth;延时 sec_tenth/10 秒STM sec_tenth-1,AR5loop1?STM #09h,AR6loop0?STM #49999,AR7BANZ $,*AR7-BANZ loop0?,*AR6-BANZ loop1?,*AR5-.endm.sect .vectorsrst:B _c_int00NOPNOP.space 15*4*16int0:b bus_comeNOPNOPint1:nopnopnopnopint2:;b bus_come nop nopnopnop.space 13*4*16.text_c_int0
19、0LD #0h,DPSTM #3000h,SPSSBX INTMSSBX SXMSTM #07FFFh,SWWSR;IO总线外部等待时间14个周期STM #01h,2BhSTM #0h,CLKMD;20MHz工作tstBITF CLKMD,#1hBC tst,TCSTM #1087h,CLKMDRPT #0FFhNOPST #0FFFFh,IFRORM #0001h,IMRRSBX INTMLD #40h,DPLD STATUS0,TPORTW STATUS0,LED_ADDR;全部红灯DELAY #10;延时1秒circleLD STATUS1,T ;nop ;nop ;nop ;nopPO
20、RTW STATUS1,LED_ADDR;南北红灯、东西绿灯;nop ;nop ;nop ;nopDELAY #200;延时20秒STM #2h,BRC;nop ;nop ;nop ;nop RPTB flash1;nop ;nop ;nop ;nop LD STA2_PRE_0,T;nop ;nop ;nop ;nop PORTW STA2_PRE_0,LED_ADDR;nop ;nop ;nop ;nop DELAY #3LD STA2_PRE_1,T;nop ;nop ;nop ;nop PORTW STA2_PRE_1,LED_ADDR;nop ;nop ;nop ;nop DELAY
21、 #3flash1NOP;南北绿灯闪3次、东西红灯LD STATUS2,TPORTW STATUS2,LED_ADDR;南北黄灯、东西红灯DELAY #30;延时3秒 LD STATUS3,TPORTW STATUS3,LED_ADDR;南北红灯、东西绿灯DELAY #200;延时20秒STM #2h,BRCRPTB flash2LD STA4_PRE_0,TPORTW STA4_PRE_0,LED_ADDRDELAY #3LD STA4_PRE_1,TPORTW STA4_PRE_1,LED_ADDRDELAY #3;南北红灯、东西绿灯闪3次flash2NOPLD STATUS4,TPORTW STATUS4,LED_ADDR;南北红灯、东西黄灯DELAY #30;延时3秒 B circlebus_comePSHM AR5PSHM AR6PSHM AR7PORTW STATUS0,LED_ADDR;急救车来,全部红灯DELAY #100;延时10秒ST T,CURRENT_STAPORTW CURRENT_STA,LED_ADDR;恢复现场POPM AR7POPM AR6POPM AR5RETE