




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川师范大学成都学院电子工程系课程设计报告前言 嵌入式系统是嵌入式计算机嵌入到各种设备及应用产品内部的计算机系统,它体积小,结构紧凑,使设备及应用产品智能化。在数字化产品日益普及的今天,从手机、MP3到飞机的自动导航系统,军事、工业、商业、家电、通信、网络产品无一不充斥着嵌入式系统。我们的交通灯控制系统中也有它的身影,可以说,它无处不有,无所不在。嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统及用户的应用程序等部分组成,因此,嵌入式系统开发技术、嵌入式芯片技术、嵌入式操作系统、嵌入式软件、嵌入式系统平台,是当今最热门的课题。 Stellaris系列微控制器采用ARM公司最新的CortexM3内核。Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。Cortex的优势应该在于低功耗、低成本、高性能3者(或2者)的结合。 1. 设计要求本次设计用红、绿、黄三种颜色作为交通信号控制,分别指示主道和支道的通行状态实现十字路口的红绿灯控制。 在相应信号灯字母的下方,用数字表示该信号灯切换的剩余时间。该时间每秒钟减一,减为零时,切换信号灯。信号灯切换时间缺省为 60 秒。某方向由红灯切换为绿灯时,应有5秒钟的缓冲时间,以确保另一方向的车辆安全通过。即在切换信号灯时,有5秒钟的时间两个方向的信号灯都是红灯。不能出现两个方向都是绿灯的情况。 用户可通过键盘输入信号灯切换时间,切换时间范围为20秒至120秒之间。用户输入的数字以回车键结束。对于错误的输入,系统可不作任何响应。对于正确的输入,下次信号灯切换后,采用新输入的切换时间。2 . 设计原理 2.1 显示模块 2.1.1 电路的显示模块 电路的显示模块可分为三部分,因为有三种显示部分,红绿灯显示、人行横道显示、时间显示,红绿灯显示器是最简单的一种电路连接方式,它有三种颜色的发光二极管,每种颜色的有7个二极管并连接起来,假如每个发光二极管的电流为10mA,所以一种发光颜色的电流为70mA,电路的并联虽然会产生较大的电流,但他所需要电压低,小电压就能驱动起来,如果7个二极管都串联所需电流比较低但所需总电压高,假如每个二极管的导通压降为1.5V,那么一种颜色发光所需要10.5V 电压来驱动,这样很有可能损坏二极管,并且串联的二极管如果有一支损坏就都不会点亮导致工作的可靠性不高,因此采用并联。如图 2.1 图 2.1 红绿灯显示2.1.2 人行横道显示 人行横道显示部分是比较复杂的一个设计了,它不像红绿灯一样只要三种状态显示就行,它需要动态人行走动显示,但单片机只提供了三种状态输出,所以我们的人行横道显示必须进行电路的设计。我采用的是二极管隔离显示,采用 13 个二极管隔离,以完成目的。人行横道人行走路显示为绿色灯显示,暂停为红色灯显示。如图 2.2: 图 2.2 人行横道原理图2.1.3 时间显示 CD4511是七段码十六进制锁存译码驱动芯片,它能将四位二进制数编码转换为七段LED显示器的字段码,同时具有锁存和驱动能力。CD4511有四个输入端,ABCD-BCD 码输入端,LE锁存允许端。当LE锁存允许端为0 时,4 位BCD码进入锁存器,当LE锁存允许端为1时,输入的数据被锁存。CD4511的输出接七段数码显示器,七段数码显示器是共阴极。见图 2.3 2.3 时间显示电路2.1.4 电源部分 本实验采用直流稳压电源。如图2.4所示。电源变压器是将交流电网220V的电压变为所需要的电压值。交流电经过二极管整流之后,方向单一了,但是电流强度大小还是处在不断地变化之中。这种脉动直流一般是不能直接用来给集成电路供电的,而要通过整流电路将交流电变成直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近稳恒的直流电。但这样的电压还随电网电压波动,一般有10%左右的波动,负载和温度的变化而变化,因而在整流、滤波电路之后,还需要接稳压电路。稳压电路的作用是当电网电压波动,负载和温度变化时,维持输出直流电压稳定。220V交流电通过9V变压器变为9V的交流电,9V交流电通过四个二极管的全桥整流后变为9V直流电,然后经过电解电容(10F)进行一级滤波,以去除直流电里面的杂波,防止干扰。9V直流电出来后再经过三端稳压器LM7805稳压成为稳定的5V电源,其中7805的Vin脚是输入脚,接9V直流电源正极,GND是接地脚,接9V直流电源负极,Vout为输出脚,它和接地脚的电压就是+5V了。5V电源出来再经过电解电容的二级滤波,使5V电源更加稳定可靠。同时在5V稳压电源加上一个10K的电阻和一个红色发光二极管,当上电后,发光二极管点亮,表示电源工作正常。 图2.4 3.3V与2.5V电源输出2.2 LED 2.2.1 LED灯具的优点LED 照明灯具在近期得到飞跃的发展,LED 作为绿色环保的清洁光源得到广泛的认可。LED 光源使用寿命长、节能省电、应用简单方便、使用成本低,因而在LED 手电筒、LED 矿灯及便携照明;在建筑照明、装饰照明、标识牌照明;在汽车的仪表板背光、前后雾灯、第三刹车灯、方向灯、尾灯.。 LED 高节能:节能能源无污染即为环保。直流驱动,超低功耗(单管0.03瓦-1 瓦)电光功率转换接近100%,相同照明效果比传统光源节能80%以上。LED 利环保:LED 是一种绿色光源,环保效益更佳。光谱中没有紫外线和红外线,热量低和无频闪,无辐射,而且废弃物可回收,没有污染不含汞元素,冷光源,可以安全触摸,属于典型的绿色照明光源。2.2.2 LED灯具驱动原理LED灯具驱动需要先将高压的交流电变换成低压的交流电(AC/AC),然后将低压的交流电经桥式整流变换成低压的直流电(AC/DC),再通过高效率的DC/DC 开关稳压器降压和变换成恒流源,输出恒定的电流驱动LED 光源。LED光源是按灯具的设计要求由小功率或大功率LED 多串多并而组成。每串的IF 电流是按所选用的LED光源IF要求设计,总的正向电压VF 是N 颗LED 的总和。LED 灯具选用36V 以下的交流电源可以考虑非隔离供电,如选用220V 和100V 的交流电源应考虑隔离供电。目前 MR11、MR16 射灯、水底灯、洗墙灯、路灯、隧道灯、汽车工作灯等LED 灯具大多选用散热较好的自带铜基或铝基板的1W、3W 大功率LED 光源,使用AC/DC12-36V 电源,因而需要使用DC/DC 的降压(Buck)+ 恒流给LED提供VF 和IF。LED 灯具大多使用低压电源,因此在这类灯具的电路设计上,LED的串联个数在1-9 颗,尤以1-3 颗为常见。串联的总VF 应低于电源Vin。如三颗LED 串联,VF=3.4V X 3=10.2V。在Vin12V,能正常工作。MR11、MR16射灯常见的是1W X 3 串联或3W X 1;水底灯常见的是1W X 3 串联2-3 并,三个一组;洗墙灯常见的是1W X 7-9 串联;路灯常见的是1W X 9 串联3 并,4-6个一组;、汽车工作灯常见的是1W X 3-6 串联3 并。当然LED 的串并联的方案是多种多样的,串联个数与其工作电压(Vin)有关,这里就DC12-36V 工作电压而言。目前1W 的LED 光源散热较好,因此选用较多。2.2.3 LED灯具对低压驱动芯片的要求 驱动芯片的标称输入电压范围应当满足DC5-40V,以覆盖应用面的需要,耐压如能大于40V 更好;AC 12V 或24 V 输入时简单的桥式整流器输出电压会随电网电压波动,特别是电压偏高时输出直流电压也会偏高,驱动IC 如不能适应宽电压范围,往往在电网电压升高时会被击穿,LED 光源也因此被烧毁。 驱动芯片的标称输出电流要求大于1.2-1.5A,作为照明用的LED 光源,1W功率的LED 光源其标称工作电流为350mA,3W 功率的LED 光源其标称工作电流为700mA,功率大的需要更大的电流,因此LED 照明灯具选用的驱动IC 必需有足够的电流输出,设计产品时必需使驱动IC 工作在满负输出的70-90%的最佳工作区域。使用满负输出电流的驱动IC 在灯具狭小空间散热不畅,容易疲劳和早期失效。 驱动芯片的输出电流必需长久恒定,LED 光源才能稳定发光,亮度不会闪烁;同一批驱动芯片在同等条件下使用,其输出电流大小要尽可能一致,也就是离散性要小,这样在大批量自动化生产线上生产才能有效和有序;对于输出电流有一定离散性的驱动芯片必选在出厂或投入生产线前分档,调整PCB 板上电流设定电阻(Rs)的阻值大小,使之生产的LED 灯具恒流驱动板对同类LED 光源的发光亮度一致,保持最终产品的一致性。2.3系统设计 2.3.1 设计方案 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,指示灯燃亮的方案如下表60S5S60S5S东西道红灯亮黄灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮黄灯亮(1)当东西方向为红灯、南北道为绿灯;东西干道车辆、行人禁止通行,南北干道车辆、行人通行。时间为60秒。(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,南北方向为红灯;东西干道车辆、行人通行;南北道车辆行人禁止通过。时间60秒。 东西方向车流量大通行时间长。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。(5)此表可根据车流量动态设定红绿灯初始值。2.3.2 交通信号灯控制方案 信号灯 R Y G 主红支绿30s 1 0 0 0 0 1 主路口街道 主干道 次干道 红支黄5s 1 0 0 0 1 0 主绿支红40s 0 0 1 1 0 0 主黄支红5s 0 1 0 1 0 0主干道车辆通行时间是30s,次干道为20s,红绿灯转换之间黄灯亮5s,控制三色灯的信号为开关信号,约定逻辑0表示灯灭,逻辑1表示灯亮。 这是一个非常简单的微控制器最小系统,其中,发光二极管实际为若干发光二极管组成的阵列,每个发光二极管只是一个像素点,能显示红、黄、绿三种颜色,这是因为每个发光二极管封装内包含两个发光二极管。仅当Red亮时,灯显红色,仅当Green亮时,灯显绿色,当两者同时点亮时,由混色原理可知,灯显黄色。2.3.3 C/OS-II做为操作系统内核的原因 C/OS-II 是一种基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量, 邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。 C/OS-II 是一个完整的、可移植、可固化、可裁剪的占先式实 时多任务内核。C/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。 至今从8位到6 4位,C/OS-II 已在超过 40 种不同架构上的微处理器上运行。C/OS-II 已经在世界范围内得到广泛应用,包括很多领域,如手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制上。实际上,C/OS-II已经通过了非常严格的测试,这说明C/OS-II是稳定可靠的,可用于与人性命攸关的安全紧要(safety critical)系统。更重要的是C/OS-II的源码公开,便于移植和维护。3. 系统实现 3.1总体工作过程 交通灯示意图如图3.1所示:在十字路口的东,南,西,北方向装有主干道“红绿黄”灯 ,人行道“红绿黄”灯,其中主干道的“红绿黄”灯又分为左转“红绿黄”灯和直行“红绿黄”灯。当南北方向绿灯亮东西方向红灯亮时表示通往南北方向的车和人直行,而通往东西方向的车和人停止,并且此时在东方向的车需要到达北方向,在西方向的车需要到达南方向可以右转弯到达。如果东西方向绿灯亮南北方向红灯亮时,从南到北或者从北到南的人和车禁止通行,而通往东西方向的车和人直行,此时可以允许机动车通过左转弯从西到北或者从东到南。 图 3.1 交通灯的布置图3.2 函数说明流程图 系统服务后从main函数开始执行,C/OS-II便是在main函数中启动的,main函数调用OSInit初始化操作系统,调用OSTaskCreate创建一个初始化任务,然后调用OSStart开始系统多任务调度,C/OS-II便全部运行起来了。 Main函数流程图 初始化C/OS-II 保存DOS环境 C/OS-II中断 启动多任务管理 Main函数源码: int main (void)intDisAll(); /* Disable all the interrupts */ /* 关闭所有中断 */OSInit(); /* Initialize the kernel of uC */ /* OS-II 初始化uC/OS-II的内核 */OSTaskCreate ( taskStart, (void *)0, &GstkStartTASK_START_STK_SIZE-1, TASK_START_PRIO );/* Initialize the start task */ /* 初始化启动任务 */ OSStart(); /* Start uC/OS-II 启动uC/OS-II */return(0) ;在这个系统中设计了两个任务Task1和Task2。 其中Task1的任务是接收键盘的输入,判断是否是回车,回车后结束,如果接收到字母的话不做任何响应,如果是数字的话要判断是不是在20到 120之间,要是不在此区间内则清空缓冲区,接受下一次输入,如果在区间内的话,则传递给Task2,同时在屏幕上显示下一次循环的时间。如果是ESC的话则任务退出。Task2用来设置交通灯的残留时间,初始值为 60秒改变一次,当接收到Task1传来的值后,下一次循环按此值计数。 Task1 流程图 Key =enterInstall time IR Set time frequency True Digit aInitialize statistics task 20=a 120) SetTime = 120; if (key = 0x32) SetTime-; / 如果按下数字1键则将 SetTime 的全局变量减一if (SetTime 20) SetTime = 20; OSCtxSwCtr = 0; OSTimeDly(OS_TICKS_PER_SEC); / 设置 1 秒钟的时延 /* * 界面显示函数 * */Static void TaskStartDispInit (void) PC_DispStr( 0, 0, “ Traffic Lights System “, DISP_FGND_WHITE+ DISP_BGND_RED + DISP_BLINK);PC_DispStr( 0, 1, “ “ , DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 2,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE); PC_DispStr( 0, 3,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 4,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0,5,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 6,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 7,” N-S Light : ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 8,” Time Remain: (s) ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 9,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 10,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 11,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 12,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 13,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE); PC_DispStr( 0,14,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 15,”W-E Light : ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 16,” TimeRemain: (s) ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 17,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 18,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 19,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 20,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 21,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 22,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);PC_DispStr( 0, 23,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE); PC_DispStr( 0, 24,” ”, DISP_BGND_BLACK+DISP_FGND_WHITE);/* 初始化显示 * */static void TaskStartDisp (void) char *arr ;int arrow2 = 49,50;sprintf(arr, SetTime : %d ( %c Add, 23, %c Reduce), SetTime,arrow0,arrow1); PC_DispStr ( 0, 23, arr, DISP_BGND_BLACK+DISP_FGND_WHITE);/*创建任务 * */ Static void TaskStartDisp (void) OSTaskCreateExt(TaskClk, (void*)0, &TaskClkStkTASK_STK_SIZE-1, TASK_CLK_PRIO, TASK_CLK_ID, &TaskClkStk0, TASK_STK_SIZE, (void*)0, OS_TASK_OPT_STK_CHK OS_TASK_OPT_STK_CLR); OSTaskCreateExt (Task1, (void *) 0, &Task1StkTASK_STK_SIZE - 1, TASK_1_PRIO, TASK_1_ID, &Task1Stk0, TASK_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK OS_TASK_OPT_STK_CLR);OSTaskCreateExt(Task2, (void *)0, &Task2StkTASK_STK_SIZE - 1, TASK_2_PRIO, TASK_2_ID, &Task2Stk0, TASK_STK_SIZE, (void *)0, OS_TASK_OPT_STK_CHK OS_TASK_OPT_STK_CLR); /* * 交通灯显示任务 * */void Task1 (void *pdata) Int sem = 0; Int change = 0;INT8U err; OS_STK_DATA data;INT16U time;INT8U i ;Charr *ss = NULL;Char s80;INT32U T;pdata = pdata;for (;) sprintf(ss,%d,LightTime); / 将当前剩余时间转换成为字符串PC_DispStr(56, 8, ss , DISP_FGND_LIGHT_RED + DISP_BGND_BLACK); / 打印剩余时间PC_DispStr(23, 16, ss , DISP_FGND_LIGHT_RED + DISP_BGND_BLACK);if (LightTime 10) PC_DispStr (57, 8, , DISP_FGND_LIGHT_RED + DISP_BGND_BLACK); / 处理个位显示 PC_DispStr(24, 16, , DISP_FGND_LIGHT_RED + DISP_BGND_BLACK); if (LightTime 4) sem = 1; / 通过信号和 change 变量控制信号灯的逻辑if (change & LightTime = 0) change = 0; else if (!change & LightTime = 0) change = 1; if (sem = 1 & LightTime = 0 & change = 0) sem = 0 else if (sem = 1 & LightTime = 0 & change = 1) sem = 2; DisplayLight(sem); OSTimeDlyHMSM(0, 0, 1, 0); /* 显示交通灯状态 */void D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 双流区劳务派遣合同范本
- 原油天然气销售合同范本
- 加盟店品牌转让合同范本
- 劳动合同的变更补充协议
- 喷粉设备转让合同协议书
- 商铺搬迁补偿协议书范本
- 交通赔偿死亡协议书范本
- 健康行业调理协议书范本
- 亚马逊卖家转让合同范本
- 双方约定房产价格协议书
- GB/T 20671.1-2006非金属垫片材料分类体系及试验方法第1部分:非金属垫片材料分类体系
- 熵权法教学讲解课件
- 医师病理知识定期考核试题与答案
- 电子工业出版社小学-信息技术-第五册-5年级-上册-全册课件
- 课堂因“融错·容错·溶措”而精彩
- 阳光晾衣房钢结构专项施工方案
- 安宁疗护服务流程
- 肿瘤科实习生入科培训课件
- 热分析DSC培训new
- 注塑机安全操作规程
- 运动处方(课堂PPT)
评论
0/150
提交评论