天津工业大学电子与信息工程学院电子1102班嵌入式系统设计专题实践交通灯控制系统专业:电子信息工程班级:电子1102班学生姓名:王石岩学号:1110910213指导教师:高华天津工业大学电子与信息工程学院电子1102班2目录一、方案设计与论证................................错误!未定义书签。1.1系统任务描述.................................错误!未定义书签。1.2系统方案设计.................................错误!未定义书签。1.3系统框图.....................................................5二、硬件电路设计..................................................52.1K60P144M100SF2RM最小系统设计................................52.2数码管显示模块设计...........................................72.3交通灯指示模块设计...........................................8三、系统软件设计..................................................83.1系统软件流程图...............................................83.2500ms定时器子程序设计.......................................93.3计数显示子程序设计.........................................10四、系统调试.....................................................124.1硬件调试....................................................114.2软件调试....................................................114.3综合调试...................................................12五、总结.........................................................12六、心得体会.....................................................12七、附录.........................................................137.1系统实物图..................................................137.2程序代码....................................................147.3参考文献....................................................19天津工业大学电子与信息工程学院电子1102班3摘要当前伴随着信息化社会的快速发展,国家不断走向繁荣昌盛。与此同时,快节奏也成为当代人们在各大城市的主要特征。当今社会上汽车越来越多,为了减少城市交通阻塞和维持良好稳定的交通次序、加强对道路的管理力度。因此合理设计交通灯控制系统对维护道路安全和社会交通次序有着不可替代的作用。本文主要阐述交通灯控制系统的设计原理和过程,采用飞思卡尔K60作为系统的控制芯片,对系统的软件和硬件进行模块化设计,最终实现了基于飞思卡尔K60芯片的交通灯控制系统。该系统用红、黄、绿三种颜色的发光二极管来代替三种实际中的交通灯,在控制器的驱动下来形象化的演示实际中交通灯的运行模式和工作过程。最终该系统实现了对车辆直行、左转、停止等待等基本功能。能够有效地对城市中的车辆产生明确的指导和控制。关键词:交通灯K60P144M100SF2RM数码管定时显示一、方案设计与论证1.1系统任务描述本次设计中根据实际需要,结合嵌入式系统的特点,完成对交通灯的控制系统设计。系统功能包括实现对车辆的直行,左拐、停止等待等功能。基于飞思卡尔K60P144M100SF2RM控制器,实现对车辆进行指导控制。本系统中主要由控制器最小系统、数码管显示模块、交通灯模块等相关模块构成。系统任务包括三个环节。假设十字路口南北方向为主干车道,东西方向为支干道。状态一:南北方向、东西方向均设有红、黄、绿三个指示灯。首先南北方向绿灯亮一分钟、东西方向红灯亮一分钟。此时处于向北方向的车辆处于绿灯状态,可以直行通过十字路口,而处于向东方向的车辆由于是红灯等待则不能前行,需在线外等待向东方向的绿灯来临才能前行。状态二:一分钟之后,北方向的绿灯变为黄灯亮,且亮十秒钟。而在向东方向的红灯还没转变状态,红灯此时会连续闪烁10秒钟,作为东西方向天津工业大学电子与信息工程学院电子1102班4将变成绿灯通行状态的提示。与此同时,向西方向的左转指示灯会变亮,也是亮10秒钟,车辆可以左转。状态三:10秒钟过后,北方向的黄灯灭,红灯亮60秒,处于主干道上的车辆不能直行通过。与此同时东方向的红灯会灭,绿灯亮60秒,处于干道上的车辆可以直行。向北方向的车辆不能左转。左转指示灯会熄灭。状态三执行完毕重新进入状态一开始执行,整过过程在K60控制器上电以后就进入工作状态,无需人工干预。图1—1为系统的工作状态图:K60上电:图1—1系统的工作状态图北南西东图1—2系统的工作方式图1.2系统方案设计本系统基于K60P144M100SF2RM控制器设计的交通灯控制系统。设计过程主要采用自上向下的设计思路和模块化设计的设计思想,对软件和各个硬件模块进行独立设计,综合调试。软件包括显示、定时器、GPIO、时钟等设置。硬件电路包括由三极管驱动的数码管显示电路以及交通灯显示电路。状态一60秒状态二10秒状态三60秒天津工业大学电子与信息工程学院电子1102班51.3系统框图图1—3系统框图二、硬件电路设计本系统中硬件系统包括K60P144M100SF2RM最小系统设计、数码管显示模块、交通灯显示模块。采用模块化设计的思想对以上模块进行设计。2.1K60P144M100SF2RM最小系统设计Kinetis是低功耗可扩展和在工业上使用混合信号ARMCortex-M4系列MCU的最好的组合。Kinetis系列MCU结合了最新的低功耗革新技术和高性能,高精密混合信号功能与连通,人机界面,安全及外设广泛。KinetisMCUs使用了飞思卡尔和ARM第三方合作伙伴的市场领先的捆绑模式。所有Kinetis系列都包涵强大的逻辑、通信和时序阵列和带有伴随着闪存大小和I/O数量的集成度等级的控制外围部件。Kinetis产品组合内核具有以下特点:ARMCortex-M4内核带DSP指令,性能可达1.25DMIPS/MHz(部分Kinetis系列提供浮点单元);32通道的DMA可用于外设和存储器数据传输并减少CPU干预;提供不同级别的CPU频率50MHz、72MHz和100MHz(部分Kinetis系列提供120MHz和150MHz);10种低功耗操作模式用于优化外设活动和唤醒时间以延长电池的寿命;行业领先的快速唤醒时间。正是由于K60控制器在性能上有较多的优点和较低的功耗,因而适合用来开发交通灯控制系统。以下为本控制器的最小系统原理图:K60P144M100SF2RM控制器最小系统电源交通灯指示模块数码管显示计时模块天津工业大学电子与信息工程学院电子1102班6(1)(2)(3)图2—1最小系统原理图天津工业大学电子与信息工程学院电子1102班72.2数码管显示模块设计数码管分为七段和八段两种。根据极性也可分为共阴和共阳两种类别。其原理是根据发光二极管的组合成显示0~9,还包括字母A,B,C,D,E,F等。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。图2—2数码管工作原理图分别对三个状态进行计时,个位和十位分别用一个数码管显示,每次计时加一的时间是1s。以下是本模块的原理图:图2—3数码管显示模块原理图其中由数码管的位选端和段选端进行控制数码管的显示程序。根据PNP三极管的导通原理,当位选端为低电平时,三极管导通,根据共阳极编码进天津工业大学电子与信息工程学院电子1102班8行合理设置即可。此外用三极管驱动数码管的原因是三极管显示更明亮一些。用数码管显示效果比较直观。2.3交通灯指示模块设计本模块用红、黄、绿三种颜色的发光二极管来代替实际中的交通指示灯。红灯亮则表示车辆停止等待,黄灯亮则表示绿灯在向红灯的跳变过程中允许已经越过规定线的车辆继续前行。绿灯则表示车辆可以直行通过。在此系统中,一共有7个指示灯。图2—4交通灯指示模块原理图三、系统软件设计3.1系统软件流程图在系统的软件设计时,需要对系统时钟进行设计,以满足对本次系统的功能需求。还需对GPIO端口进行初始化设置,500ms定时延迟设置。然后需要考虑交通灯的三个工作状态,合理安排显示与计数的时序关系。NY图3—1系统软件流程图开始系统初始化程序时钟设置交通指示灯交替亮灭500ms定时器设置计数程序数码管显示计数结束?结束天津工业大学电子与信息工程学院电子1102班93.2500ms定时器子程序设计本模块是将产生500ms定时器,让在计数器计数时提供计时间隔,同时也可作为数码管个位和十位的刷新时间,即每次数码管显示更新递增一个数字经过的时间是1s。以下是本模块的子程序软件流程图:YN图3—2定时器子程序软件流程图3.3计数显示子程序设计计数显示是在定时器运行前提下进行工作的。数码管每刷新一个数时,时间是1s。这样的好处是显示与指示灯状态同步起来。同时也能做到效果比较直观。以下是此部分模块的流程图:开始设置LPTMR定时器1KHzLPO时钟计数设置count_val比较值触发输出清除标志位Reachcount_v值?结束天津工业大学电子与信息工程学院电子1102班10YNYYNN图3—3计数显示模块流程图四、系统调试4.1硬件调试在硬件调试时,K60最小系统的调试就是用集成Mini核心板进行调试,开始dis_0=0dis_1=0dis_2=0初始化数码管译码指示灯亮1000ms定时器dis_0++dis_060dis_110?1000ms定时器数码管译码指示灯亮dis_2++dis_260?结束dis_1++数码管译码指示灯亮1000ms定时器天津工业大学电子与信息工程学院电子1102班11当系统上电后,将系统示例程序下载到开发板中,用一个示例LED等进行测试能否正常运行。在GPIO端口进行初始化后,应对端口进行合理设置。在对核心板程序下载成功后,在程序能正确运行时,可以根据共阳数码管的特点进行测试,对显示电路能否正常工作进行测试。验看数码管计数时是否与预想的一样,若不一样营及时修正程序。最终使结果出现与预期一样。4.2软件调试在软件调试时,在IARforARM6.30版本平台上进行编程下载,通过J—LinkJI进行下载到K60核心板中。在调试时可以用单步调试,全速运行,设置断点等方式。与此同时观看寄存器和变量的值在调试中常常发挥着重要作用。在修改和完善程序后,最终下载到核心板中运行。以下是IAR开发界面:图4—1IAR开发界面图4.3综合调试在综合调试时,首先应确保硬件和软件都调试完毕,将程序下载到硬件系统中后,首先应注意以下事项;天津工业大学电子与信息工程学院电子1102班12在上电之前应用数字万用表检测硬件电路的电源VCC