1目录1系统概述.........................................................21.1设计目的.....................................................21.2设计任务....................................................22方案论证........................................................32.1设计思路.....................................................32.2设计方案.....................................................32.3工作状态....................................................43硬件设计..........................................................53.1硬件总体设计.................................................53.2交通灯显示模块..............................................63.3计数显示模块.................................................73.4开关模块.....................................................74软件设计..........................................................84.1程序流程.....................................................84.2交通灯模拟显示...............................................94.3定时器及中断设计............................................104.4外中断设计..................................................115系统调试.........................................................125.1硬件调试....................................................125.2软件调试....................................................145.3系统下载....................................................176设计心得........................................................17参考文献..........................................................18附录..............................................................1921系统概述1.1设计目的(1)熟悉使用ICETEK–F2812-AE评估板控制ICETEK-CTR上交通灯的方法。练习自主独立的设计,实现理论和实践的统一,提高自我动手能力。(2)掌握TMS320F2812DSP定时器的使用和编程。(3)掌握TMS320F2812DSP外中断的使用和编程。(4)学习复杂控制程序设计思路。(5)利用DSP开发环境CCSC2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。(6)通过此次课程设计,学习DSPF2812芯片的I/O端口控制方法,熟悉字模的简单构建和使用,熟悉掌握在DSP软硬件环境下的程序开发流程,达到学以致用的目的。1.2设计任务利用ICETEK-EDU实验箱提供的设备,设计模拟实际生活中十字路口交通灯控制的程序。要求如下:交通灯分红黄绿三色,东、南、西、北各一组,用灯光信号实现对交通的控制:绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。计时显示:8×8点阵显示两位计数,为倒计时,每秒改变计数显示。正常交通控制信号顺序:正常交通灯信号自动变换(1)南北方向绿灯,东西红灯(10秒)。(2)南北方向绿灯闪烁3次,东西红灯(4秒)。(3)南北方向黄灯,东西红灯(2秒)。(4)南北方向红灯,东西方向绿灯(10秒)。(5)南北方向红灯,东西方向绿灯闪3次(4秒)。(6)南北方向红灯,东西方向黄灯(2秒)。(7)返回(1)循环控制。3功能键:(1)启动开关(2)急救灯的启动开关紧急情况处理:模仿紧急情况(重要车队通过、急救车通过等)发生时,交通警察手动控制(1)当任意方向通行剩余时间多于10秒,将时间改成10秒。(2)正常变换到四面红灯(20秒)。(3)直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。2方案论证2.1设计思路根据DSP的硬件中断、定时器、显示/控制模块上的发光二极管控制的原理。用定时器定时,用连接在2812DSP扩展地址接口上的寄存器EWR和SNR控制红绿黄灯的开关,用硬件外部中断模拟急救车的到达。有急救车到达时,两向为全红,以便让急救车通过。急救车通过后,交通灯恢复硬件中断前的状态。触发开关为中断申请,表示有急救车通过。在实验箱上交通灯模块由连接在2812DSP扩展地址接口上的寄存器EWR和SNR控制,这两个寄存器均为6位寄存器,交通灯模块(CTRLR)的I/O地址:0x108007。2.2设计方案2.2.1设计原理根据设计要求,由于控制是由不同的各种状态按顺序发生的,可以采用状态机制控制方法来解决此问题。这种方法是:首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制。对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成。时钟计数:采用250ms一次中断进行累加计数。如表2.1所示。4状态编号信号灯状态状态定义时间(计数值,起始时间,结束时间)计数显示1南北灯绿,东西灯红statusNSGreenEWRed10s(40,0,39)10-12南北绿灯闪,东西红灯statusNSFlashEWRed4s(16,40,55)4-13南北黄灯,东西红灯statusNSYellowEWRed2s(8,56,63)2-14南北红灯,东西绿灯statusNSRedEWGreen10s(40,64,103)10-15南北红灯,东西绿灯闪statusNSRedEWFlash4s(16,104,119)4-16南北红灯,东西黄灯statusNSRedEWYellow2s(8,120,127)2-1*南北红灯,东西红灯statusNSRedEWRed20s(80,0,79)20-1表2.1信号灯状态图2.2.2定时器设计MS320F2812A内部有三个32位通用定时器(TIMER0/1/2),定时器1和2被保留给实时操作系统(DSPBIOS)用,只有定时器0可以提供给用户使用。定时器采用中断方式,可以提高CPU的利用率。2.2.3倒计时显示设计利用ICETEK-CTR上的发光二极管显示阵列模拟显示。DSP须将显示的图形按列的顺序存储起来(8×8点阵,8个字节,高位在下方,低位在上方),然后定时刷新控制显示。具体方法是,将以下控制字按先后顺序、每两个为一组发送到端口0x602802,发送完毕后,隔不太长的时间(以人眼观察不闪烁的时间间隔)再发送一遍。由于位值为“0”时点亮,所以需要将显示的数据取反。2.2.4紧急状况下设计利用ICETEK-CTR上键盘产生外中断,中断正常信号顺序,进入突发情况。2.3工作状态状态一:南北绿灯、东西红灯,延时10秒,10秒后南北绿灯闪3次,东西红灯延时4秒;如图2.1所示图2.1状态一5状态二:南北黄灯、东西红灯,持续2秒;图2.2状态二状态三:东西绿灯、南北红灯,延时10秒,10秒后东西绿灯闪3次,南北红灯持续4秒;图2.3状态三状态四:东西黄灯、南北红灯,持续2秒;图2.4状态四状态五:紧急状态下东西南北均亮红灯;图2.5状态五3硬件设计3.1硬件总体设计①根据设计要求,由于控制是由不同的各种状态按顺序发生的,我可以采用状态机制控制方法来解决此问题。这种方法是:首先列举所有可能发生的状态;6然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制,对于突发情况,可采用在正常顺序的控制中插入特殊控制序列的方式完成。②突发事件设置,在实际交通过程中会出现突发状况,比如说有救护车或者110紧急车要通过,此时就可以通过小键盘进行突发状况模拟。通过按键进入到中断服务子程序,相当于原来先要通过的车辆在突发状况来了以后就要先让紧急车辆通过。原理框图如图3.1所示。图3.1ICETEK-F2812-AE原理框图3.2交通灯显示模块利用ICETEK-CTR上的一组发光二极管(共12只,分为东西南北四组、红黄绿三色)的亮灭实现交通信号的模拟。TMS320F2812DSP有最多56个专门的通用输入输出管脚。这些通用输入输出管脚通过专用寄存器可以由软件控制,比如指定输入、输出以及输出值等。通过ICETEK-F2812-AE评估板的插座,扩展板(通用输出/控制模块ICETEK-CTR)将板上的一个指示灯和DSP的一个通用输入/输出管脚直接相连。这个管脚为PWM12,可以设置成通用输入/输出管脚使用。扩展原理如图3.2所示。TMS320F2812PGFAJTAGPORT片上资源:主频:150MHzA/DRAM:128K*16bitFLASH128*16bitCANDSP总线SRAM:64K*16bit扩展DSP引脚CPLDLED数据地址控制I/OPWMSPI驱动RS232CANJTAG16路,12bit驱动4个用户可控开关7图3.2发光二极管设计原理3.3计数显示模块计数显示采用放光二极管显示阵列显示。TMS320F2812DSP的存储器扩展接口(EMIF)用来与大多数外围设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址线、数据线和一组控制线,ICETEK-F2812-A评估板已将这些扩展线引到了板上的扩展插座上,供扩展使用。发光二极管显示阵列由扩展端口控制,EMIF接口的两个寄存器提供具体控制。原理图如图3.3所示。图3.3计数显示原理3.4开关模块开关模块采用外部外部存储器扩展接口(EMIF)上的PS2接口键盘,通过扫描码判断输入键值。TMS320F2812DSP的扩展存储器接口(EMIF)用来与大多数外围8设备进行连接,典型应用如连接片外扩展存储器等。这一接口提供地址线、数据线和一组控制线,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所示。9图4.1程序流程图4.2交通灯模拟显示显示/控制模块上的发光二极管是由连接在2812DSP扩展