您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于GPIO的LED流水灯设计
1学生课程设计题目基于GPIO的LED流水灯设计姓名蒋娜学号2010541230111系部电子信息工程系专业计算机控制技术指导教师李列文职称讲师2012年11月19日长沙师范专科学校教务处制2目录摘要..............................................................31设计内容........................................................31.1设计目的........................................................31.2设计意义........................................................32设计方案........................................................32.1设计要求........................................................32.2提出的问题......................................................33看门狗电路的设计................................................44软件设计........................................................54.1程序清单........................................................55心得体会........................................................86参考文献........................................................83看门狗的设计摘要:根据嵌入式系统的具体应用特点,应用常规看门狗芯片设计了一种看门狗电路,在未处理气进入休眠低功耗、编程、远程升级维护等模式时,看门狗功能被临时屏蔽,从而保障了这些模式的正常运行,该电路已应用在实际系统中,应用效果证明了设计的有效性。关键词:看门狗;低功耗;嵌入式系统1设计内容1.1设计目的看门狗的设计是为了实现一种灵活配置、多复位输出的看门狗电路(且复位时间可调),实现了在系统被复位前做好重要自愿的备份工作以满足具体的应用需求。1.2设计意义随着电子系统朝规模大、体积小、速度快等特点发展,关于看门狗电路的设计也层出不穷,以降低成本和空间,意法半导体退出一款看门狗定时器芯片STWD100,提供多种配置规格,超时设定包括3.4ms,6.3ms,102ms或者1.6s,另外还通过增加一个芯片使能输入接口,以实现当微处理器在系统编程或系统开机期间防止自动生成复位信号,为开发人员控制和管理应用提供了更好的灵活性。2设计方案2.1设计要求通常,硬件看门够只能监测微处理器是否正常“清狗”,却不能监测软件是否工作正常,特别是任务功能十分正常,因此,此设计提出了一种软件看门狗的设计思路,对软件任务在执行时间上进行时间约束利定时器对软件任务计时,当任务的执行时间超过了最大指定时间,将这个任务所使用的资源释放,也就是将这个任务复位,等待下一次的执行,以弥补或克服硬件看门狗电路的不足。2.2提出的问题“看门狗”原理如图1所示。工作正常的微处理器以T0周期频率向看门狗电路发送复位信号即“喂狗”信号,防止其产生复位信号。当出现异常时,微处理器没有发送喂狗信号的时间超过T1(通常,T1大于T0),即无法完成“喂狗”4任务,看门狗电路因“饥饿”而输出复位信号,强制重启微处理器,使其重新进入正常循环状态。3看门狗电路的设计图2是一种基于看门狗IC设计的一种嵌入式系统看门狗电路图。图中WDI是来自微处理器的喂狗信号;MR是看门狗芯片的手动复位输入端;WDO是看门狗芯片的超时输出端;RST是芯片的复位信号输出;S1是手动复位按钮;J1是跳线;该电路的工作状态时序图,如图3所示。5在T0时刻之前,S1处于闭合导通状态,看门狗芯片的RST输出低电平,复位微处理器。在T0—T1时刻,由于来自微处理器的WD端输出周期性的矩形波,其周期小于看门狗电路的复位时间,看门狗电路RST输出高电平。不会复位微处理器。在T1—T2时刻,由于微处理器不再输出清狗信号,即WDI保持低电平,引起看门狗芯片的WDO端输出低电平,复位微处理器,此为看门狗电路正常工作状态。在T2—T3时刻,为微处理器正常工作阶段,按照设定的频率发送喂狗信号,WDI端输出矩形波,防止看门狗芯片的WDO端输出低电平复位微处理器。在T3—T4时刻,嵌入式系统需要改变工作状态,微处理器将进入在线编程、升级维护、休眠模式等模式时,先把V设置为高电平,然后进入相应的运行模式,此时,微处理器讲不会输出周期性的清狗信号。在T4时刻后,当V为高电平,看门狗芯片的WDO输出低电平。4软件设计4.1程序清单/*****************************************************************************文件名:main.功能:运行WDT,并控制LED1--LED8显示输出。程序开始先对LED1--LED8闪烁控制,并进行喂*狗处理;然后只点亮LED1,并进入死循环,等待WDT复位。*说明:将跳线器JP23短接,JP15全部断开。6****************************************************************************/#includeconfig.h#defineLEDCON0x00ff0000;/*****************************************************************************名称:WdtFeed()*功能:看门狗喂狗操作。*入口参数:无*出口参数:无****************************************************************************/voidWdtFeed(void){WDFEED=0xAA;WDFEED=0x55;}/*****************************************************************************名称:DelayNS()*功能:长软件延时,具有喂狗功能。*入口参数:dly延时参数,值越大,延时越久*出口参数:无****************************************************************************/voidDelayNS(uint32dly){7uint32i;for(;dly0;dly--){for(i=0;i1000;i++)WdtFeed();}}/*****************************************************************************名称:main()*功能:初始I/O口及WDT,然后开始先对LED1--LED8闪烁控制,并进行喂狗处理;*然后只点亮LED1,并进入死循环,等待WDT复位。*说明:如果将程序烧写到FLASH运行,WDT复位后程序会重新开始;****************************************************************************/intmain(void){uint8i;IO2DIR=LEDCON;WDTC=11059200;//设置WDTC,喂狗重装值WDMOD=0x03;//复位并启动WDTWdtFeed();//进行喂狗操作for(i=0;i8;i++){IO2SET=0x00ff0000;DelayNS(50);IO2CLR=0x00ff0000;DelayNS(50);}IO2SET=0x00ff0000;8IO2CLR=0x00010000;while(1);return(0);}5心得体会本次设计使我学到了很多的知识,相信对我以后的发展打下了良好的基础,不管是硬件的动手能力和软件的编写能力都有很大的提升。本次的设计是基于ARM7的看门狗模块的设计。这个芯片和我以往接触的C51系列和MSP430系列单片机都要复杂的多。不管是对寄存器的设置还是底层的开发都是庞大的工程。做完这个模块的开发,使我对ARM7系列的寄存器的使用和启动印象深刻,这对以后开发类似的程序模块打下坚实的基础。在软件的编写和设计中,让我更一步了解了ADS1.2编译环境。学好这个软件就是学好了一个使用的应用技能6参考文献[1]刘发志,张东,杨艳等,基于DM642的看门狗电路设计与应用[J]。舰船电子工程,2008。[2]仇国庆,杨志龙,唐贤伦等,看门狗电路设计与应用[J]。自动化与仪器仪表,2005。[3]意法半导体(ST)推出独立看门狗IC[J]。电子制作,2009。[4]余娜敏,一种看门狗装置及看门狗中断预警方法[P].中国专利。
本文标题:基于GPIO的LED流水灯设计
链接地址:https://www.777doc.com/doc-4814631 .html