十字路口交通灯的设计

十字路口交通灯的设计

摘要

DSP数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。本次设计是基于DSP原理设计交通灯控制系统软硬件系统,利用发光二级管亮灭模拟交通信号,数码管显示倒计时时间,利用TMS320VC5402 DSP片上定时器定时产生时钟计数,设计模拟实际生活中十字路口交通灯。

关键词:DSP;TMS320VC5402;交通灯控制;发光二极管;

目  录

绪论………………………………………………………………………………………1

2  课程设计内容及要求……………………………………………………………………2

2.1  课题设计内容………………………………………………………………………2

   2.2  课题设计要求………………………………………………………………………2

3  课程设计方案及原理…………..……………………………….………………………..3

   3.1  课程设计总体方案…………………………………………………………………3

        3.1.1  设计思路…………………………………………………………………...3

        3.1.2  设计流程图………………………………………………………………...3

3.2  课程设计原理………………………………………………………………………5

        3.2.1  系统工作原理…………………………………………………………...…5

        3.2.2  系统工作状态………………………………………………………...……6

4  设计步骤及过程…………………………………………………………………….…....8

   4.1  硬件的选择…………………………………………………………………………8

        4.1.1  主控制器的选择……………………………………………………….…..8

4.1.2  电压转换芯片的选择…………………………………………………...…9

4.1.3  锁存器的选择…………………………………………………………...…9

4.1.4  译码器的选择……………………………………………………………..10

4.1.5  数码显示输出模块……………………………………………….……….11

4.1.6  指示灯输出模块…………………………………………………………..12

4.2  软件的使用………………………………………………………………………..13

4.2.1  CCS文件名介绍…………………………………………………………..13

4.2.2  汇编源程序(.Asm)…..…………………………………………………….14

4.2.3  COFF目标文件…………………………………………………………...14

5  心得体会………………………………………………………………………….…..…16

参考文献………………………………………………………………………………….…17

附录…………………………………………………………………………………………18

  1. 绪论

十字路口交通灯在我们的日常生活中随处可见,它为繁忙的道路交通及人们的安全提供了较好的保障。然而,我们只知道交通灯在红、黄、绿三色之间交替更换来控制人车流量,去对其内部的工作原理及软硬件的设计了解很少,因此要通过此次简单道路交通灯控制系统软硬件设计来进一步研究交通灯的内部结构。最重要的是将学习到的DSP系统的组成与原理应用到交通灯的设计当中。

通过《DSP技术及应用》课程设计,使学生能将学到的DSP系统的组成与原理用到具体的实际系统中,加深对DSP系统的理解,是将该门课程与实际问题相连接的关键步骤。通过课程设计,能够提高学生分析问题,解决问题,从而运用所学知识解决实际问题的能力,并培养基本的,良好的系统软硬件设计等能力。

  1. 课程设计内容及要求

2.1 课题设计内容

DSP课程设计是对《数字信号处理》、《DSP原理及应用》等课程的较全面练习和训练,是实践教学中的一个重要环节。

通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,掌握电子系统设计的一般方法。通过课程设计,基本技能的训练,如查阅设计资料和手册、程序的设计、调试等,提高学生分析问题、解决问题的能力。

本题目为急救车与十字路口交通灯的设计,目的是熟练掌握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、启动开关按下时,交通灯开始运行,再按一下表示停止。

5、急救灯的控制按钮按下时,四个路口全红灯状态。

6、按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。

  1. 课程设计总体方案及原理

3.1课程设计总体方案

3.1.1  设计思路

根据DSP的硬件中断、定时器、I/O访问的原理。用定时器定时,用I/O口控制红绿黄灯的开关,用硬件外部中断模拟急救车的到达。有急救车到达时,两向为全红,以便让急救车通过。急救车通过后,交通灯恢复硬件中断前的状态。触发开关(红色按纽)为中断申请,表示有急救车通过。在实验箱上交通灯模块由高8位数据线控制:南北红灯D9、D11为高,南北黄灯D9、D11、D13、D15为高,南北绿灯D13、D15为高,东西红灯D8、D10为高,东西黄灯由D8、D10、D12、D14为高,东西绿灯D12、D14为高。交通灯模块的I/O地址:0x5008h

3.1.2  设计流程图

图3.1  中断程序服务图

图3.2  设计总流程图

图3.3  数码管显示流程图

3.2课程设计原理

3.2.1  系统工作原理

本设计硬件由定时模块、发光二极管模块、数码管显示模块和紧急中断模块组成。信号灯受芯片中输出高低电平的控制。当锁存器I/O口输出为高电平时,他所驱动的信号灯即发光二极管就会亮起来。定时模块采用硬件定时和软件定时相结合的方法,用DSP定时/计数器定时100ms,再用软件计时实现所需的定时。发光二极管模块由DSP控制发光二极管来实现。数码管显示模块由实验平台上的LED显示模块实现。紧急中断模块是由单脉冲发生单元和DSP中断控制器组成。本次设计中东西南北路口的红灯均亮1秒,信号灯开始工作,东西红灯亮20秒,在东西红灯亮的同时,南北绿灯亮20秒。到20秒时,东西绿灯闪亮,绿灯闪亮的周期为2秒(亮1秒,灭1秒)。绿灯闪亮3次后灭,东西黄灯亮并维持4秒。到4秒时,东西黄灯灭,东西红灯亮,同时南北红灯灭,南北绿灯亮。东西红灯亮维持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 状态四

状态五:紧急状态下东西南北均亮红灯;

图3.8  状态五

4  设计步骤及过程

4.1 硬件的选择

4.1.1主控制器的选择

采用TI公司DSP芯片TMS320VC5402。C5402采用改进的Harvanl处理结构,指令流水线操作。计算和处理速度很高,系统单指令周期可达到10ns。在片内提供16k的RAM用作程序和数据存储,其最大可扩展寻址空间为1M字节。C5402提供的McBSP串口和DAM数据传送方式极大地方便它在通信领域的应用和开发。如下图所示:

图4.1  TMS320VC5402

4.1.2  电压转换芯片的选择

由于TMS320VC5402的工作电压为3.3V,而外部存储器的工作电压为5V,用74LVC4245A完成3.3V到5V的电平转换。其功能是完成对芯片内部的Flash的编程工作,当程序在PC机上调试通过后,通过此接口就可以把程序完整地下载到Flash中去。

图 4.2  74LVC4245A

4.1.3  锁存器的选择

本次设计通过主控制器产生时钟计数,并将锁存信号提供给锁存器,所以选择TTL带公共时钟复位的74LS273锁存器。是带有清除端的8D触发器,只有在清除端保持高电平时,才具有锁存功能,锁存控制端为11脚CLK,采用上升沿锁存。 CPU 的ALE信号必须经过反相器反相之后才能与74LS273的控制端CLK 端相连。1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作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  74LS273

4.1.4  译码器的选择

选择常用的74LS138译码器,译码产生8种输出结果,进而控制数码管的显示。74LS138 为3 线-8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式,其工作原理如下:

  当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

图4.4  74LS138

4.1.5  数码显示输出模块

 数码管显示采用了四位一体的数码管。其显示由DSP的高八位数据线控制位码显示,低八位数据线控制段码显示。其数据经过了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方式对数码管进行操作,即向数码管送数据,高8位数据线D8~D15为数码管的段码,低8位数据线D0~D7为数码管的位码,此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(此写成RST)来对锁存器清零

LEDCS2<=ios or not a15 or not a14 or a2 or not a1 or a0;-- DSP采用I/O方式访问指示灯,所以DSP的控制线IS(此写IOS)和地址线组合来锁存送往指示灯的数据,其地址C002h。其硬件图如下:

图4.8  指示灯输出模块硬件图

4.2软件的使用

本次设计主要使用的是CCS软件,CCS是一种针对TMS320系列DSP的集成开发环境,在Windows操作系统下,采用图形接口界面,提供有环境配置、源文件编辑、程序调试、跟踪和分析等工具。

CCS有两种工作模式,即:软件仿真器模式:可以脱离DSP芯片,在PC机上模拟DSP的指令集和工作机制,主要用于前期算法实现和调试。

硬件在线编程模式:可以实时运行在DSP芯片上,与硬件开发板相结合在线编程和调试应用程序。

4.2.1  CCS文件名介绍

在使用CCS前,应该先了解以下软件的文件名约定(在编写程序时最好在某盘根目录下建立一文件夹,将所有的用户文件放置该文件夹中,建议用字母来作为所有文件的文件名,而不要用汉字或数字):

  1. project.pjt CCS定义的工程文件
  2. program.c C 程序文件
  3. program.asm 汇编语言程序文件
  4. filename.lib 库文件
  5. project.cmd 连接命令文件
  6. program.obj 编译后的目标文件
  7. program.out 可在目标DSP上执行的文件,可在CCS监控下调试/执行
  8. project.wks 工作空间文件,可以记录你的工作环境设置。
  9. programcfg.h54 头文件
  10. programcfg.s54 汇编原文件
  11. program.cdb CCS的设置数据库文件,是使用DSP/BIOS API必须的,其他没有使用DSP/BIOS API的程序也可以使用,当新建一个设置数据库时,会产生下面的文件。

4.2.2  汇编源程序(.asm)格式

C5X的程序以段(Section)为基本单元构成,一个程序文件由若干段构成,每段又由若干语句(Statement)构成。C5X的程序分为初始化(Initialized)段和未初始化(Uninitialized)段两大类。初始化段可以是程序代码,也可以是程序中用到的常量、数据表等。我们可以从程序下载的角度来理解,初始化就是需要程序空间写数据(代码或数据)的段,如同初始化程序空间一样。而未初始化段为变量,在下载时,这些变量是没有值的,所以无需向程序空间写,只需留出一些空间以便在运行时存放变量的值,因此这段空间在程序未运行前是没有初始化的。段的名称和属性可以由用户自定义,如果用户不定义,汇编器将按默认的段来处理。C5X汇编器默认的段有3个:“.text”、“.data”、“.bss”。其中,“.text”为程序代码段,而“.data”为数据段,“.bss”为变量段,所以“.text”和“.data”是初始化段,而“.bss”是未初始化段,用户自定义用“.sect”和“.usect”两个汇编指示符来完成。其中“.sect”用于定义初始化段,“.usect”用于定义未初始化段,语法如下:

symbol      .set       “section-name”

symbol      .set       “section-name”,length

4.2.3  COFF目标文件

TMS320C5X的汇编器和连接器都会生成公共目标文件格式( COFF,Common Object File Format )的目标文件。在本章中,将汇编器生成的文件称为COFF的目标文件,将连接器生成的文件称为COFF执行文件。目前,COFF目标文件格式已被广泛使用,因为它支持模块化(段)编程,能够提供有效灵活的管理代码段和目标系统(Target System)存储空间的方法。

5  心得体会

这次数字信号处理课程设计历时两个星期,前面几天就是在寝室学习和熟悉CCS软件,学到了很多很多的东西,同时不仅可以巩固以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。过程中也遇到了很多问题,不过及时的问老师解决问题,使我更加了解了DSP的原理。在自己有余的时间还帮助同学修改性能指标,通过这次设计,进一步加深了对DSP的了解,让我对它有了更加浓厚的兴趣。特别是当每一步成功时,心里特别的开心。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟是第一次接触通信仿真,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

 总的来说,这次十字路口交通灯的设计还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于游逆而解,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

参考文献

[1] 邹彦. DSP原理及应用[M]. 北京:电子工业出版社,2005.1.

[2] 戴明桢.TMS320C54xDSP结构、原理及应用[M].北京航空航天大学出版社,2001.8.

[3] 胡圣尧. DSP原理及应用[M].东南大学出版社,2008.7.

[4] 清源科技.TMS320C54xDSP应用程序设计教程[M].机械工业出版社,2004.1.

[5] 清源科技.TMS320C54x硬件开发教程[M].机械工业出版社,2003.1.

附录

MEMORY

{

  PAGE0: VECS:origin=0xff80,length=0x80

         PROG:origin=0x1000,length=0x2000

  PAGE1: DATA:origin=0x2000,length=0x1000

         STACK:origin=0x3000,length=0x1000

}

SECTIONS

{

 .vectors:{}> VECSPAGE0

 .text:     {}>PROGPAGE0

 .data:     {}>DATAPAGE1

 .stack:    {}>STACKPAGE1

}

************************************************

* FileName: ex8.asm                        *

* Description: 急救车与交通灯实验             *

* Copyright(C) SanZhi Electronic, Author Zpin  *

************************************************

.title "ex8"

.global _c_int00

.mmregs

LED_ADDR .set 5008h

STATUS0 .set 00h

STATUS1 .set 01h

STATUS2 .set 02h

STATUS3 .set 03h

STATUS4 .set 04h

STA2_PRE_0 .set 05h

STA2_PRE_1 .set 06h

STA4_PRE_0 .set 07h

STA4_PRE_1 .set 08h

CURRENT_STA .set 60h

.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,04100h,06900h

DELAY .macro sec_tenth ;延时 sec_tenth/10 秒

STM sec_tenth-1,AR5

loop1? STM #09h,AR6

loop0? STM #49999,AR7

BANZ $,*AR7-

BANZ loop0?,*AR6-

BANZ loop1?,*AR5-

.endm

.sect ".vectors"

rst: B _c_int00

NOP

NOP

.space 15*4*16

int0: b bus_come

NOP

NOP

int1: nop

nop

nop

nop

int2: ;b bus_come

        nop

        nop

nop

nop

.space 13*4*16

.text

_c_int00

LD #0h,DP

STM #3000h,SP

SSBX INTM

SSBX SXM

STM #07FFFh,SWWSR ;IO总线外部等待时间14个周期

STM #01h,2Bh

STM #0h,CLKMD ;20MHz工作

tst BITF CLKMD,#1h

BC tst,TC

STM #1087h,CLKMD

RPT #0FFh

NOP

ST #0FFFFh,IFR

ORM #0001h,IMR

RSBX INTM

LD #40h,DP

LD STATUS0,T

PORTW STATUS0,LED_ADDR ;全部红灯

DELAY #10 ;延时1秒

circle LD STATUS1,T

        ;nop

        ;nop

        ;nop

        ;nop

PORTW STATUS1,LED_ADDR ;南北红灯、东西绿灯

;nop

        ;nop

        ;nop

        ;nop

DELAY #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 #3

LD STA2_PRE_1,T

;nop

        ;nop

        ;nop

        ;nop

        PORTW STA2_PRE_1,LED_ADDR

;nop

        ;nop

        ;nop

        ;nop

        DELAY #3

flash1 NOP ;南北绿灯闪3次、东西红灯

LD STATUS2,T

PORTW STATUS2,LED_ADDR ;南北黄灯、东西红灯

DELAY #30 ;延时3秒

        

        LD STATUS3,T

PORTW STATUS3,LED_ADDR ;南北红灯、东西绿灯

DELAY #200 ;延时20秒

STM #2h,BRC

RPTB flash2

LD STA4_PRE_0,T

PORTW STA4_PRE_0,LED_ADDR

DELAY #3

LD STA4_PRE_1,T

PORTW STA4_PRE_1,LED_ADDR

DELAY #3 ;南北红灯、东西绿灯闪3次

flash2 NOP

LD STATUS4,T

PORTW STATUS4,LED_ADDR ;南北红灯、东西黄灯

DELAY #30 ;延时3秒

        B circle

bus_come

PSHM AR5

PSHM AR6

PSHM AR7

PORTW STATUS0,LED_ADDR ;急救车来,全部红灯

DELAY #100 ;延时10秒

ST T,CURRENT_STA

PORTW CURRENT_STA,LED_ADDR ;恢复现场

POPM AR7

POPM AR6

POPM AR5

RETE

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
6.1.3、退出……………………..……………………………….…5 6.2、编辑…………………………..…………………………………5 6.2.1、灰度………………………..………………….……………5 6.2.2、亮度………………………..………………….……………6 6.2.3、截图…………………………..……………….……………7 6.2.4、缩放…………………………..…………….………………7 6.3、旋转…………………………………..…………………………9 6.3.1、上下翻转…………………….…………….………………9 6.3.2、左右翻转………………….…………….…………………9 6.3.3任意角度翻转…………………………….…………………9 6.4、噪声………………………………..…………..………………10 6.5、滤波……………………………………..………..……………10 6.6、直方图统计……………………………………………………11 6.7、频谱分析………………………………………..…..…………12 6.7.1、频谱图………………………… …… …… ……….……12 6.7.2、通过高通滤波器………………… …… .……………….12 6.7.3、通过低通滤波器……………………………….. ……….13 6.8、灰度图像处理………………………………………… . …….14 6.8.1、二值图像……………………………………………….. .14 6.8.2、创建索引图像……………………………………… .…..14 6.9、颜色模型转换……………………………..… ..……………14 6.10、操作界面设计……………………………………..…………15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值