基于DSP的交通灯控制的设计.docx

上传人:b****5 文档编号:7797537 上传时间:2023-01-26 格式:DOCX 页数:29 大小:1.20MB
下载 相关 举报
基于DSP的交通灯控制的设计.docx_第1页
第1页 / 共29页
基于DSP的交通灯控制的设计.docx_第2页
第2页 / 共29页
基于DSP的交通灯控制的设计.docx_第3页
第3页 / 共29页
基于DSP的交通灯控制的设计.docx_第4页
第4页 / 共29页
基于DSP的交通灯控制的设计.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于DSP的交通灯控制的设计.docx

《基于DSP的交通灯控制的设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的交通灯控制的设计.docx(29页珍藏版)》请在冰豆网上搜索。

基于DSP的交通灯控制的设计.docx

基于DSP的交通灯控制的设计

1设计目的及要求......................................4

1.1设计目的.........................................4

1.2设计要求.........................................4

1.2.1交通灯控制................................4

1.2.2计时......................................5

1.2.3紧急情况..................................5

1.2.4程序设计..................................5

2设计原理及方案.....................................7

2.1课程设计总体方案................................7

2.1.1设计思路..................................7

2.2课程设计原理.....................................7

2.2.1 系统工作原理...............................7

2.2.2系统工作状态..............................8

3硬件设计..........................................10

3.1硬件总体设计..................................10

 3.2 交通灯显示模块 ..............................11

3.3计数显示模块..................................12

3.4开关模块......................................13

4软件设计...........................................14

4.1程序流程......................................14

4.2交通灯模拟显示................................15

4.3定时器及中断设计..............................15

4.4外中断设计....................................16

5系统调试...........................................18

5.1硬件调试......................................18

5.1.1电源调试..................................18

5.1.2Emulator调试..............................18

5.2软件调试........................................21

5.2.1软件设计....................................21

5.2.2程序运行....................................23

5.3系统下载......................................24

6结论分析及体会.....................................25

7参考文献...........................................26

 

1设计目的及要求

1.1设计目的

(1)熟悉使用ICETEK–F2812-AE评估板控制ICETEK-CTR上交通灯的方法。

练习自主独立的设计,实现理论和实践的统一,提高自我动手能力。

 

(2)掌握TMS320F2812DSP定时器的使用和编程。

 

(3)掌握TMS320F2812DSP外中断的使用和编程。

 

(4)学习复杂控制程序设计思路。

 

(5)利用DSP开发环境CCS  C2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。

 

(6)通过此次课程设计,学习DSPF2812芯片的I/O端口控制方法,熟悉字模的简单构建和使用,熟悉掌握在DSP软硬件环境下的程序开发流程,达到学以致用的目的。

1.2设计要求

1.2.1交通灯控制要求:

利用ICETEK-EDU实验箱提供的设备,设计模拟实际生活中十字路口交通灯控制的程序。

要求如下:

 

交通灯分红黄绿三色,东、南、西、北各一组,用灯光信号实现对交通的控制:

绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。

 计时显示:

8×8点阵显示两位计数,为倒计时,每秒改变计数显示。

 正常交通控制信号顺序:

正常交通灯信号自动变换 

(1)南北方向绿灯,东西红灯(20秒)。

 

(2)南北方向绿灯闪烁3次,东西红灯(6秒)。

 

(3)南北方向黄灯,东西红灯(4秒)。

 

(4)南北方向红灯,东西方向绿灯(20秒)。

 

(5)南北方向红灯,东西方向绿灯闪3次(6秒)。

 

(6)南北方向红灯,东西方向黄灯(4秒)。

 

(7)返回

(1)循环控制 

紧急情况处理:

模仿紧急情况(重要车队通过、急救车通过等)发生时,交通警察手动控制 

(1)当任意方向通行剩余时间多于10秒,将时间改成10秒。

 

(2)正常变换到四面红灯(20秒)。

 

(3)直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。

1.2.2计时要求:

使用TMS320VC5416DSP片上定时器,定时产生时钟计数,再利用此计数对应具体时间。

1.2.3紧急情况要求:

利用ICETEK-CTR上键盘产生外中断,中断正常信号顺序,模拟突发情况。

1.2.4程序设计要求

根据设计要求,由于控制是由不同的各种状态按顺序发生的,我们可以采用状态机制控制方法来解决此问题。

这种方法是:

首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制。

对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成。

时钟计数:

采用250ms一次中断进行累加计数。

表格1

状态编号

信号灯状态

状态定义

保持时间(计数值,起始时间,结束时间)

计数显示

1

南北绿灯,东西红灯

statusNSGreenEWRed

20秒(160,0,159)

20-0

2

南北绿灯闪烁,东西红灯

statusNSFlashEWRed

6秒(24,160,183)

0

3

南北黄灯,东西红灯

statusNSYellowEWRed

4秒(16,184,199)

20

4

南北红灯,东西黄灯

statusNSRedEWYellow

4秒(16,200,215)

20

5

南北红灯,东西绿灯

statusNSRedEWGreen

20秒(160,216,375)

20-1

6

南北红灯,东西绿灯闪烁

statusNSRedEWFlash

6秒(24,376,399)

0

7

南北红灯,东西黄灯

statusNSRedEWYellow

4秒(16,400,415)

20

8

南北黄灯,东西红灯

statusNSYellowEWRed

4秒(16,416,431)

20

*

南北红灯,东西红灯

StatusHold

20秒(160,0,159)

20-1

其中,正常顺序每112秒(计数值448)为一个循环,状态“*”为非顺序状态。

这样,只要根据计数值就可确定当前状态,根据状态再分情况处理。

对于计数显示,当处于状态1、5、*中时需要进行倒计时,需要计算在此状态中的计数值增量,根据增量判断是否更新计数显示。

 

2设计原理及方案

2.1设计总体方案

2.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

图52设计总流程图

2.2课程设计原理

2.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秒时,南北黄灯灭,南北红灯亮,同时东西红灯灭,东西绿灯亮。

紧接着开始第二周期的动作,以后周而复始的循环。

2.2.2系统工作状态

系统工作状态

状态一:

南北绿灯、东西红灯,延时20秒,20秒后南北绿灯闪3次,东西红灯延时6秒;如图所示

图2.1状态一

状态二:

南北黄灯、东西红灯,持续6秒;

图2.2状态二

状态三:

东西绿灯、南北红灯,延时20秒,20秒后东西绿灯闪3次,南北红灯持续6秒;

图2.3状态三

状态四:

东西黄灯、南北红灯,持续6秒;

图2.4状态四

状态五:

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

图2.5状态五

3硬件设计

3.1硬件总体设计

1根据设计要求,由于控制是由不同的各种状态按顺序发生的,我可以采用状态机制控制方法来解决此问题。

这种方法是:

首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制,对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成。

 

2突发事件设置, 在实际交通过程中会出现突发状况, 比如说有救护车或者110 紧急车要通过, 此时就可以通过小键盘进行突发状况模拟。

通过按键进入到中断服务子程序, 相当于原来先要通过的车辆在突发状况来了以后就要先让紧急车辆通过。

原理框图如图3.1所示。

 

 

     图3.1 ICETEK-F2812-AE原理框图

 3.2 交通灯显示模块 

利用ICETEK-CTR上的一组发光二极管(共12只,分为东西南北四组、红黄绿三色)的亮灭实现交通信号的模拟。

TMS320F2812 DSP有最多56个专门的通用输入输出管脚。

这些通用输入输出管脚通过专用寄存器可以由软件控制,比如指定输入、输出以及输出值等。

通过ICETEK-F2812-AE评估板的插座,扩展板(通用输出/控制模块ICETEK-CTR)将板上的一个指示灯和DSP的一个通用输入/输出管脚直接相连。

这个管脚为PWM12,可以设置成通用输入/输出管脚使用。

扩展原理如图3.2所示。

图3.2发光二极管设计原理

 

3.3计数显示模块 

计数显示采用放光二极管显示阵列显示。

TMS320F2812 DSP的存储器扩展接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。

这一接口提供地址线、数据线和一组控制线,ICETEK-F2812-A评估板已将这些扩展线引到了板上的扩展插座上,供扩展使用。

发光二极管显示阵列由扩展端口控制,EMIF接口的两个寄存器提供具体控制。

原理图如图3.3所示。

图3.3 计数显示原理

3.4开关模块 

开关模块采用外部外部存储器扩展接口(EMIF)上的PS2接口键盘,通过扫描码判断输入键值。

TMS320F2812 DSP的扩展存储器接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。

这一接口提供地址线、数据线和一组控制线,ICETEK-F2812-A评估板已将这些扩展线引到了板上的扩展插座上。

键盘的扫描码由DSP的扩展地址0x108001给出,当有键盘输入时,读此端口得到扫描码,当无键被按下时读此端口的结果为0。

开关设计原理如图3.4所示。

图3.4 开关设计原理 

 

4软件设计

4.1程序流程

该设计实现的功能是南北方向绿灯,东西红10秒,南北方向绿灯闪烁3次,东西红灯4秒,南北方向黄灯,东西红灯2秒,南北方向红灯,东西方向绿灯10秒,南北方向红灯,东西方向绿灯闪3次4秒,南北方向红灯,东西方向黄灯(2秒)。

在紧急情况下,当任意方向通行剩余时间多于10秒,将时间改成10秒,正常变换到四面红灯20秒,然后直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。

程序流程图如图4.1所示。

 

图4.1程序流程图

4.2交通灯模拟显示

显示/控制模块上的发光二极管是由连接在2812DSP扩展地址接口上的寄存器EWR和SNR控制的。

这两个寄存器均为6位寄存器,其位定义见表4.1表4.2。

两个寄存器的地址均映射到2812DSP的扩展空间,CTRLR地址为0x108007,DSP通过对该地址的写操作来修改两个寄存器上各位的状态,当寄存器某位取‘1’值时,相应指示灯被点亮,取‘0’值则熄灭。

当写入CTRLR的数据(8位有效值)的高两位为‘00’时,数据的低6位将写入EWR寄存器;当高两位的值为‘01’时,写入SNR寄存器

bit5

bit4

bit3

bit2

bit1

bit0

东-红

东-黄

东-绿

西-红

西-黄

西-绿

表4.1寄存器EWR

bit5

bit4

bit3

bit2

bit1

bit0

南-红

南-黄

南-绿

北-红

北-黄

北-绿

表4.2寄存器SNR

4.3定时器及中断设计

TMS320F2812A内部有三个32位通用定时器(TIMER0/1/2),定时器1和2被保留给实时操作系统(DSPBIOS)用,只有定时器0可以提供给用户使用。

定时器采用中断方式,中断过程如下:

a.接受中断请求。

必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。

b.响应中断。

必须能够响应中断请求。

如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。

而对于非可屏蔽中断和软件中断,会立即作出响应。

c.准备执行中断服务程序并保存寄存器的值。

d.执行中断服务子程序。

调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。

定时器及中断的流程如图4.2。

 

图4.2定时器及中断流程图

4.4外中断设计

紧急情况时,利用ICETEK-CTR上键盘产生外中断,中断正常信号顺序,模拟突发情况。

显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存,同时向DSP的XINT2发送中断信号;当DSP读键盘时将扫描码送到数据总线上。

小键盘上每次按下一个键将产生2个扫描码、2次中断。

外中断的程序流程图如图4.3所示。

 

图4.3外中断程序流程图

 

5系统调试

5.1硬件调试

5.1.1电源调试

1.连接电源:

打开实验箱,取出三相电源连接线(如右图),将电源线的一端插入实验箱外部左侧箱壁上的电源插孔中。

确认实验箱面板上电源总开关(位于实验箱底板左上角)处于“关”的位置,连接电源线的另一端至220V交流供电插座上,保证稳固连接。

2.使用电源连接线(如右图,插头是带孔的)连接各模块电源:

确认实验箱总电源断开。

连接ICETEK-CTR板上边插座到实验箱底板上+12V电源插座;ICETEK-CTR板下边插座到实验箱底板上+5V电源插座;如使用PP(并口)型仿真器,则连接仿真器上插座到实验箱底板上+5V电源插座;连接DSP评估板模块电源插座到实验箱底板上+5V电源插座。

注意各插头要插到底,防止虚接或接触不良。

3.连接DSP评估板信号线:

当需要连接信号源输出到A/D输入插座时,使用信号连接线(如右图)分别连接相应插座。

4.接通电源:

检查实验箱上220V电源插座(箱体左侧)中保险管是否完好,在连接电源线以后,检查各模块供电连线是否正确连接,打开实验箱上的电源总开关(位于实验箱底板左上角),使开关位于“开”的位置,电源开关右侧的指示灯亮。

5.1.2Emulator调试

1.启动Simulator方式

双击桌面上图标:

2.启动Emulator方式

(1)首先将实验箱电源关闭。

连接实验箱的外接电源线。

(2)检查ICETEK-5100USB仿真器的黑色JTAG插头是否正确接到ICETEK-VC5416-A板的J3插头上。

注:

仿真器的插头中有个孔加入了封针与J3插头上的缺针位置应重合,保证不会插错。

(3)检查是否已经用电源连接线连接了ICETEK-VC5416-A板的POW1插座和实验箱底板上+5V电源插座。

(4)检查其他连线是否符合实验要求。

检查实验箱上三个拨动开关位置是否符合实验要求。

(5)打开实验箱上电源开关(位于实验箱底板左上角),注意开关边上红色指示灯点亮。

ICETEK-VC5416-A板上指示灯D1和D2点亮。

如果打开了ICETEK-CTR的电源开关,ICETEK-CTR板上指示灯L1、L2和L3点亮。

如果打开了信号源电源开关,相应开关边的指示灯点亮。

(6)用实验箱附带的USB信号线连接ICETEK-5100USB仿真器和PC机后面的USB插座,注意ICETEK-5100USB仿真器上指示灯Power和Run灯点亮。

(7)(7)双击桌面上仿真器初始化图标:

如果出现下面图5.1提示窗口,表示初始化成功,按一下空格键进入下一步操作。

图5.1初始化图

如果窗口中没有出现“按任意键继续…”,请关闭窗口,关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第

(2)步重试。

如果窗口中出现“Theadapterreturnedanerror.”,并提示“按任意键继续…”表示初始瑞泰创新——ICETEK-VC5416-A-USB-EDU教学实验系统软件实验指导

III-7化失败,请关闭窗口重试两三次,如果仍然不能初始化则关闭实验箱电源,再将USB电缆从仿真器上拔出,返回第

(2)步重试。

⑧双击桌面上图标:

启动CCS2.21。

⑨如果进入CCS提示错误,先选“Abort”,然后用“初始化ICETEK-5100USB2.0仿真器”初始化仿真器,如提示出错,可多做几次。

如仍然出错,拔掉仿真器上USB接头(白色方形),按一下ICETEK-VC5416-A板上S1复位按钮,连接USB接头再做“初始化ICETEK-5100USB2.0仿真器”。

⑩如果遇到反复不能连接或复位仿真器、进入CCS报错,请打开Windows的“任务管理器”,在“进程”卡片上的“映像名称”栏中查找是否有“cc_app.exe”,将它结束再试。

5.2软件调试

5.2.1软件设计

CCS可以工作在纯软件仿真环境中,就是由软件在PC机内存中构造一个虚拟的DSP环境,可以调试、运行程序。

但一般软件无法构造DSP中的外设,所以软件仿真通常用于调试纯软件的算法和进行效率分析等。

在使用软件仿真方式工作时,无需连接板卡和仿真器等硬件。

(1)单击桌面上图标:

进入CCS设置窗口。

(2)在出现的窗口中按标号顺序进行如下图5.2设置:

图5.2仿真设置图

接着在下面出现的窗口中选择“否(N)”。

此时CCS已经被设置成Simulator方式(软件仿真TMS320VC5416器件的方式),如果一直使用这一方式就不需要重新进行以上设置操作了。

2.设置CCS通过ICETEK-5100USB仿真器连接ICETEK-VC5416-A硬件环境进行软件调试和开发。

(1)单击桌面上图标:

进入CCS设置窗口

(2)在出现的窗口中按标号顺序进行如下图5.3设置:

图5.3CSS2设置图

(3)接着在下面的窗口中按标号顺序进行如下图5.4选择:

图5.4CSS2设置图

在出现的窗口按标号顺序进行如下图5.5设置:

图5.5CSS2设置图

(5)在出现的窗口按标号顺序进行如下图5.6设置:

图5.6CSS2设置图

以上设置完成后,CCS已经被设置成Emulator的方式(用仿真器连接硬件板卡的方式),并且指定通过ICETEK-5100USB仿真器连接ICETEK-VC5416-A评估板。

如果您需要一直使用这一方式就不需要重新进行以上设置操作了。

5.2.2程序运行

选择菜单“Project”的“New…”项。

如图5.7所示。

图5.7CSS2设置图

如下图,按编号顺序操作建立Trafficlight.pjt工程文件:

展开主窗口左侧工程管理窗口中“Projects”下新建立的“Trafficlight.pjt”,其中各项均为空。

(2)在工程文件中添加程序文件:

选择菜单“Project”的“AddFilestoProject…”项;在“AddFilestoProject”对话框中

选择文件目录为C:

\ICETEK-VC5416-EDULab\Lab0601-UseCCS,改变文件类型为“CSource

Files(*.c;*.ccc)”,选择显示出来的文件“Trafficlight.c”;重复上述各步骤,添加Trafficlight.cmd文件,到volume工程中;

添加C:

\ti\C5400\cgtools\lib\rts.lib。

(3)编译连接工程:

选择菜单“Project”的“RebuildAll”项,或单击工具条中的按钮;注意编译过程中CCS主窗口下部的“Build”提示窗中显示编译信息,最后将给出错误和警告的统计数。

5.3系统下载

(1)下载程序:

执行File→LoadProgram,在随后打开的对话框中选择刚刚建立的

C:

\ICETEK-VC5416-EDULab\Lab0601-UseCCS\Debug\Trafficlight.out文件。

(2)设置软件调试断点:

在项目浏览窗口中,双击Trafficlight.c激活这个文件,移动光标到main()行上,单击鼠标右键选择ToggleBreakpoint或按F9设置断点(另外,双

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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