ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:33.32KB ,
资源ID:8564936      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8564936.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交通灯控制系统课程设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

交通灯控制系统课程设计.docx

1、交通灯控制系统课程设计交通信号灯控制系统的设计一前言红绿灯的起源可追溯到19世纪初的英国。那时,在英国的约克城,身着红装的女人表示“已婚”,然而身着绿装的女人则是“未婚”。当时,伦敦议会大厦前经常发生马车轧人的事故。受红绿装启发,英国机械师德哈特于1868年设计了红、绿两色的煤气交通信号灯,由一名手持长杆的警察通过牵动皮带来转换灯的颜色。可惜的是,这盏灯的历史只有23天,中断的原因是煤气灯突然爆炸使一位警察殉职。1914年,克里夫兰市率先在街道中恢复交通信号灯,随后纽约、芝加哥等城市也开始出现。这时的交通信号灯已从煤气进化为电气,这与现代的交通信号灯已经没有多少差距,除了信号灯本身,美国人还完

2、善了信号控制系统。中国最早的红绿灯出现在上海的英租界。据资料显示,早在十九世纪二十年代的上海的外国租界,在某些交通繁忙的交通路口就通过机械动力装置来指挥路口的交通有序进行,那年四月份时候,在南京路的十字路口首先安装了具有现代特性的红绿灯信号设备。 1961年,心理学家卡尔佩格劳为东德交通部设计了一种新的行人信号灯,1969年在东柏林首次投入使用。在卡尔佩格劳的设计中,原本单调的图案,不但变成了一个站立的和一个行走的行人形象,而且两人体型肥胖,带着帽子,动作略显夸张,这样传递的视觉信号更为明显,形象也更可爱。这个信号灯受到政府的认可和民众的喜爱,并很快推广。在2013年一月一号“史上最严交规”的

3、修订版开始实施,对闯红灯、开车打电话、不系安全带等行为进行严格处罚,得到人们拥护。不过,其中关于“抢黄灯”扣6分的规定引发关注和热议。为了应对“闯黄灯扣6分”的规定,很多司机发现绿灯已亮一段时间后,便减缓车速避免“碰线”,不少司机反而觉得“红灯让人更安心”。 红绿灯作为城市道路交通资源的分配器,科学的设置才是确保有序交通秩序的应有之义。然而,红绿灯设置不合理,或维护不当现象时有发生,甚至造成严重的交通事故。由此可见,交通信号灯控制系统的研究将解决人类交通因需求的增多而日益严重而带来的问题,解决无规则交通带来的交通混乱和交通事故的发生,大大的保护了人们的生命财产安全。所以研发先进的城市交通信号灯

4、控制系统不仅具有学术价值更有使用价值。解决了城市交通拥堵的问题,提高了城市交通的利用效率。对我们未来交通的发展具有深远的意义。通过对基于DSP的交通灯设计,掌握TMS320F2812DSP定时器及中断的使用和编程,熟悉CCS集成开发环境,用C语言建立DSP源文件,掌握程序工程文件的生成方法,完成具体对象控制程序的编写并进行程序的调试,加深对DSP原理与应用的认识,将理论和实践结合起来。二、设计原理1设计思路根据DSP系统的硬件中断、定时器、交通灯控制的原理,用内部三个32位通用定时器(TIMER0/1/2)代替delay函数实现交通灯的交替闪烁。使交通灯运行东西通南北通禁行的流程。2系统基本功

5、能a)初始状态设置:设置程序开始时系统为东西通状态。b)正常时间设置:以时间为变量控制交通信号灯的变换,用不同的时间间隔来控制每种灯态的持续时间。c)灯态切换:交通灯可在红黄蓝三色中按预设顺序进行切换。2.LED 模块利用 SEED-DTK 上的一组发光二极管(共 12 只,分为东西南北四组,红黄绿三色)的亮灭实现交通信号的模拟。TMS320F2812DSP 最多有 56 个专门的通用输入输出管脚,这些通用输入输出管脚通过专用寄存器可以由软件控制,比如指定输入,输出及输出值等。通过试验箱上的拓展板与 DSP 的通用输入/输出管脚直接相连。显示/控制模块上的发光二极管是由连接在 2812DSP

6、扩展地址接口上的寄存器 EWR 和 SNR 控制的。这两个寄存器均为 6 位存器两个寄存器的地址均映射到2812DSP 的扩展空间, 通过对该地址的写操作来修改两个寄存器上各位的状态,当寄存器某位取 1值时,相应指示灯被点亮,取0值则熄灭。当写入 CTRLR的数据(8 位有效值)的高两位为“00时,数据的低 6 位将写入 EWR 寄存器;当高两位的值为“01时,写入 SNR 寄存器2.1交通灯组态说明灯组:在交通灯控制系统中,东西方和南北方各为一个组。灯态:每个组内红绿黄三色信号各为一个灯态。在所涉及的系统中一共生成三种状态:东西绿东西黄东西红南北绿南北黄南北红交通灯组合状态如下:1.东西绿灯

7、亮,南北黄灯亮2.东西南北黄灯亮3.南北绿灯亮,东西黄灯亮4.东西南北红灯亮2.2组态程序说明根据上述四种实际状态,可先在程序中定义好4种状态对应的四个参数,然后按顺序产生四种状态,并根据中断定时器控制每种状态时间。状态编号交通灯信号对应参数持续时间1东西绿南北黄define EASTEWEST 0x88c4s2东西黄南北黄define IOCHANGE 0x4622s3东西黄南北绿define SOUTHNORTH 0x3114s4东西红南北红define ALLFORBIN 0x914- 3.定时器说明 MS320F2812A 内部有三个 32 位通用定时( TIMER0/1/2),定时器

8、 1 和 2 被保留给实时操作系统( DSPBI0s)用,只有定时器 0 可以提供给用户使用。定时器采用中断方式,中断过程如下接受中断请求。a.必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。b.响应中断。必须能够响应中断请求。如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。而对于非可屏蔽中断和软件中断,会立即作出响应。c.准备执中断服务程序并保存寄存器的值。d.执行中断服务子程序。调用相应得中断服务程序 ISR,进入预先规定的向量地址,并且执行已写好的 ISR。定时器设定如下/*关中断*/ DINT; IER = 0x0

9、000; IFR = 0x0000; /*初始化PIE*/ InitPieCtrl(); /*初始化PIE中断矢量表*/ InitPieVectTable(); /*初始化外设*/ InitPeripherals(); EALLOW; PieVectTable.TINT0= &ISRTimer0; PieVectTable.XINT13= &ISRTimer1; PieVectTable.TINT2= &ISRTimer2; EDIS; /*设置CPU*/ ConfigCpuTimer(&CpuTimer0, 150, 4000000); ConfigCpuTimer(&CpuTimer1,

10、150, 2000000); ConfigCpuTimer(&CpuTimer2, 150, 4000000); StartCpuTimer0(); StopCpuTimer1(); StopCpuTimer2(); /*开中断*/ IER |= M_INT1; IER |= M_INT13; IER |= M_INT14; PieCtrl.PIEIER1.bit.INTx7=1; PieCtrl.PIEIER1.bit.INTx6=1; PieCtrl.PIEIER1.bit.INTx5=1; EINT; / Enable Global interrupt INTM ERTM; / Enab

11、le Global realtime interrupt DBGM num=0; den=0;4.CPU 定时寄存器定时器在工作的过程中,首先把周期寄存器的值装入 32 位计数寄存器,计数寄存器根据 SYSCLKOUT 时钟递减计数,当计数寄存器等于 0 时,定时器中断输出产生一个中断脉冲。在每个SYSCLKOUT脉冲后PSC减1,一直减到0。5.交通灯模型 本设计的硬件是由 DSP 模块、LED 模块、I/O 模块等组成。信号灯受芯片中输出高低电平的控制。定时模块采用硬件和软件定时结合的方法,用软件定时实现所需要的定时。本次设计中首先东西方向绿灯亮 4秒、南北方向黄灯亮4秒,当系统运行到 4

12、秒时,交通灯东西方向灯停、南北方向灯停,而且所有黄灯亮 2秒,然后切换成东西方向黄灯和南北方向绿灯,再运行4s后,切换到黄灯亮2秒,之后切换成东西南北红灯亮,之后开始循环。三原理的应用仿真 仿真的结果:首先东西方向绿灯亮 4秒、南北方向黄灯亮4秒,当系统运行到 4秒时,交通灯东西方向灯停、南北方向灯停,而且所有黄灯亮 2秒,然后切换成东西方向黄灯和南北方向绿灯,再运行4s后,切换到黄灯亮2秒,之后切换成东西南北红灯亮,之后开始循环。四结论通过对基于DSP的交通灯设计,掌握TMS320F2812DSP定时器及中断的使用和编程,加深对DSP原理与应用的认识,将理论和实践结合了起来。交通信号灯控制系

13、统的研究将解决人类交通因需求的增多而日益严重而带来的问题,解决无规则交通带来的交通混乱和交通事故的发生,大大的保护了人们的生命财产安全。所以研发先进的城市交通信号灯控制系统不仅具有学术价值更有使用价值。解决了城市交通拥堵的问题,提高了城市交通的利用效率。五参考文献【1】 戴明桢等. TMS320C28x DSP结构、原理及应用M. 北航出版社, 2001.11【2】 汪春梅等. TMS320C5000系列DSP系统设计与开发实例M. 电子工业出版社,2004. 7【3】 郑红等. TMS320C28x DSP应用系统设计M. 北航出版社,2002. 5【4】 AMD&Fujitsu Corpo

14、ration. S29AL004DAm29LV400DATA SHEET, 2005.12【5】TI Corporation. SPRS079ETMS320VC5402 FIXEDPOINT DIGITAL SIGNAL PROCESSORP, 2000. 8【6】 MAXIM Integrated Products, MAX813 DATA SHEET, 1995. 9六附录:主程序:/*/#include DSP28_Device.h#include comm.h#include ext_inf.hvolatile unsigned int num;volatile unsigned in

15、t den; interrupt void ISRTimer0(void);interrupt void ISRTimer1(void);interrupt void ISRTimer2(void);/*交通灯操作宏定义*/#define EASTEWEST 0x88c /交通灯东西通(南北禁行)#define SOUTHNORTH 0x311 /交通灯南北通(东西禁行) #define IOCHANGE 0x462 /交通灯各方向黄灯亮#define ALLFORBIN 0x914 /交通灯各方向均禁行/实验操控:/ 4为交通灯南北通,5为禁行/*定义扩展总线存储器空间页地址寄存器地址为0x

16、004020*/volatile unsigned int* p_ceselect=(volatile unsigned int *)0x004020;/*定义交通灯IO口的地址为0x80000*/volatile unsigned int* p_trafficaddr=(volatile unsigned int *)0x080000;/unsigned int iostatus=0;void delay(int period);/*/*/void main(void) /*初始化系统*/ InitSysCtrl(); /*关中断*/ DINT; IER = 0x0000; IFR = 0x

17、0000; /*初始化PIE*/ InitPieCtrl(); /*初始化PIE中断矢量表*/ InitPieVectTable(); /*初始化外设*/ InitPeripherals(); EALLOW; PieVectTable.TINT0= &ISRTimer0; PieVectTable.XINT13= &ISRTimer1; PieVectTable.TINT2= &ISRTimer2; EDIS; /*设置CPU*/ ConfigCpuTimer(&CpuTimer0, 150, 4000000); ConfigCpuTimer(&CpuTimer1, 150, 2000000)

18、; ConfigCpuTimer(&CpuTimer2, 150, 4000000); StartCpuTimer0(); StopCpuTimer1(); StopCpuTimer2(); /*开中断*/ IER |= M_INT1; IER |= M_INT13; IER |= M_INT14; PieCtrl.PIEIER1.bit.INTx7=1; PieCtrl.PIEIER1.bit.INTx6=1; PieCtrl.PIEIER1.bit.INTx5=1; EINT; / Enable Global interrupt INTM ERTM; / Enable Global rea

19、ltime interrupt DBGM num=0; den=0; *p_ceselect =0x6 ;/打开ce3空间 iostatus = EASTEWEST; *p_trafficaddr=iostatus; for(;);/东西到南北然后禁行 interrupt void ISRTimer0(void) CpuTimer0.InterruptCount+; if (num=0) StopCpuTimer0(); StartCpuTimer1(); StopCpuTimer2(); else StopCpuTimer0(); StopCpuTimer1(); StartCpuTimer

20、2(); iostatus = IOCHANGE; *p_trafficaddr=iostatus; if (den=1) iostatus = ALLFORBIN ; *p_trafficaddr=iostatus; den=0; PieCtrl.PIEACK.all = PIEACK_GROUP1; interrupt void ISRTimer1(void) CpuTimer1.InterruptCount+; StartCpuTimer0(); StopCpuTimer1(); StopCpuTimer2(); iostatus = SOUTHNORTH; *p_trafficaddr=iostatus; num+; den+; interrupt void ISRTimer2(void) CpuTimer2.InterruptCount+; num=0; iostatus = EASTEWEST; *p_trafficaddr=iostatus; StartCpuTimer0(); StopCpuTimer1(); StopCpuTimer2(); PieCtrl.PIEACK.all = PIEACK_GROUP1; /*/ /=/ No more./=

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

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