资源预览内容
第1页 / 共46页
第2页 / 共46页
第3页 / 共46页
第4页 / 共46页
第5页 / 共46页
第6页 / 共46页
第7页 / 共46页
第8页 / 共46页
第9页 / 共46页
第10页 / 共46页
亲,该文档总共46页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1电机控制综合课程设计报告书课 题: 基于 FPGA 的洗衣机控制器 院 (系): 信息与控制工程学院 专 业: 电子信息工程 学生姓名: 褚祥 学 号: 12052215 题 目 类 型 : 理 论 研 究 实 验 研 究 工 程 设 计 工 程 技 术 研 究 软 件开 发2014 年 6 月 30 日2前言一、洗衣机控制器主要内容l.任务要求和内容 设计制作一个洗衣机的正反转定时控制线路。1)控制洗衣机的电机作如下运转定时开始正转 10S暂停 5S反转 10S暂停 5S定时到停止定时未到2)用 2 位七段数码管显示定时时间(S) 。2洗衣机控制器的使用步骤:(1)电路上电后,在 Start 拨码开关未闭合前可以由 UpKey 和 DownKey 按键开关“+”“-”设置总的工作时间,确定洗衣机控制器工作允许时间。(2)设定好允许工作时间后,闭合 Start 开关,洗衣机控制器开始工作。(3)可以看见指示正转 LED 灯亮 10s,停转 LED 灯亮 5S,反转 LED 灯亮10s,停转 LED 亮 5s,如此反复直至工作允许时间为 0,蜂鸣器发出警报。二、设计原理简介洗衣机控制器的设计主要是时序控制和定时器的设计,由一片 FPGA 和外围电路构成电器控制部分。FPGA 接收键盘的控制命令,控制洗衣机的正转、反转、停机和定时时间为 0 报警的工作状态、控制并显示工作状态以及显示定时时间。对 FPGA 芯片的编程采用模块化的 Verilog HDL (硬件描述语言)进行设计,设计由分频模块,按键消抖模块,定时时间自减模块,时序中心控制模块,数码管显示模块组成,顶层实现整个芯片的功能。顶层使用原理图实现,底层由 Verilog HDL 语句实现。FPGA 的输入时钟为 20M hz,因此使用了分频模块输出 1hz 的方波给定时器设定自减模块提供每 1s 自减 1 的信号,定时器模块输出的自减值输入给数码管显示译码模块和时序控制模块,通过译码模块定时器的值可以在数码管上显示,同时定时器的值输入到时序控制模块由此可以控制洗衣机的正转、反转、停机3和报警工作方式。通过按键消抖模块可以准确无抖动的设定定时器的工作时间。目录一 、前言2二、 目录 3三 、正文 43.1 洗衣机控制器的整体框图及原理 43.2 洗衣机控制电路单元模块设计和仿真53.2.1 按键消抖模块的设计53.2.2 时钟分频模块的设计63.2.3 定时器设定和自减模块的设4计7 3.2.4 时序中心控制模块的设计83.2.5 数码管显示译码模块的设计9 四、电路调试11五、结束语和心得体会12六、参考文献13七、附录137.1 FPGA 系统板部分原理图13 7.2 FPGA 系统板 PCB图155三、正文3.1 洗衣机控制器的整体框图及原理:基于 fpga 的洗衣机控制器电路主要由五大模块组成,分别为按键消抖模块,时钟分频模块,定时器设定和自减模块,时序中心控制模块,数码管显示译码模块。具体电路如图 1 所示:图 1由于输入时钟为 20M hz,因此使用了分频模块输出 1hz 的方波(中间上方6模块)给定时器设定和自减模块(中间下方模块)提供每 1s 自减 1 的信号,定时器模块输出的自减值输入给数码管显示译码模块(右下方模块)和时序控制模块(右上模块) ,通过译码模块定时器的值可以在数码管上显示,同时定时器的值输入到时序控制模块由此可以控制洗衣机的正转、反转、停机和报警工作方式。按键消抖模块(左下方模块)的作用是为了消除按键抖动而设立的。3.2、洗衣机控制电路单元模块设计和仿真3.2.1 按键消抖模块的设计在进行独立按键或者矩阵式按键的设计的时候,我们在按下键盘的时候其实并不只是按下去而是有一个抖动的过程,就连松手的过程也有抖动,然而这个抖动通常被人们所忽略,从而导致输入数据的错误和乱码,因此我们必须对按键进行按键的消抖处理。我们通常在单片机的消抖使用的是延时消抖,这种消抖也称为软件消抖,但是 fpga 的 Verilog HDL 语言是硬件描述语言,所以也称作硬件消抖,主要运用了状态机和延时的消抖方式。按键消抖模块图如图 2:图 2其 Verilog HDL 语言描述如下:module Key_module (Key_in,Key_out,Clk,Rst);input Clk,Rst,Key_in;output Key_out;reg Reset; reg H_L_f1;reg H_L_f2; reg H_L_f3;reg H_L_f4; reg 17:0 Count; wire H_L_sig;parameter Delay10ms = d200_000;always (posedge Clk ) /异步复位同步释放begin Resetd0 Led_out=DisplayrDate%10; end /段选else begin Led_sel=b111_101; Led_out=DisplayrDate/10; endendassign Dig_sel = Led_sel;assign Dig_out = Led_out;endmodule四、电路调试1定时器自减值与洗衣机控制器的正转、反转,停机,报警在 RTL 仿真的时候是同步的,但是下载到硬件上运行的时候出错,不能同步。解决方法:反复的研究 Verilog HDL 程序后发现,开始是使用分频器输出的1hz 的时钟输入给时序中心控制器模块,而定时器模块的时钟是 20M hz 的,两个模块的时钟不能同步,因此就存在一定的延时不同步导致错误。然后我把时序中心控制模块的时钟也改为 20M hz,让两个模块的时钟同步,定时器自减输出的值输入到时序中心控制模块作为时序控制的信号,问题顺利解决。2程序在运行的时有时候数码管会显示定时器的起始值,洗衣机控制器又重新从头开始运行。解决方法:研究硬件电路的设计发现,启动工作控制开关,默认设置为了低电平是不启动的,高电平启动并保持才能使洗衣机控制器正常工作,而在启动后工作中,电平出现不稳的状态,电平并不能很好的起到拉高的作用,因此怀疑是上拉能力不足和电源纹波的干扰,导致电平的不稳定性使洗衣机控制器有时复位。随后我便在电源的输出端并接一个 220uf 的电解电容和一个 0.1uf 的瓷片电容,再用示波器测试发现纹波减少很多;同时为了防止上拉能力不足导致13错误,我便把启动控制开关默认设置为高电平,低电平为启动和保持。然后再测试,问题解决。3使用按键修改定时器模块的设定值时,按一下按键,数据变化好几次,不是每按一次改变一个值。解决方法:根据以往的经验可以知道是因为按键没有消抖所致,在设计电路的时候忘记了使用按键消抖模块,随后编写了按键消抖模块,再接入控制系统测试,数据正确,问题解决。五、结束语和心得体会在经过了几天的学习设计仿真,我学到了很多东西,主要是对数字电路的基础理论知识的复习巩固和对 FPGA 方面知识的掌握,更加清楚了解到了 Verilog HDL 语言的魅力,对以前学的理论知识通过实践来检验,更深入的理解了理论联系实际的重要性。通过这次的 FPGA 设计,我可以说是受益良多。看到洗衣机控制器的题目,我首先想到的是状态机的设计,因为课本上说状态机其实就是控制器,后来经过看书觉得应该是摩尔型状态机,可是分析后发现设计题目比较复杂,如果用状态机的思路来设计,比较困难。结合以前做课程设计的经验,如果用模块化层次化的设计思路更清晰,设计起来也更容易,特别是更符合 FPGA 设计的的流程,故自己开始设计各功能模块。洗衣机控制器主要实几种状态的循环改变,还有计时和数码显示的功能,所以我觉得电路主要有五大部分组成,包括:按键消抖模块,时钟分频模块,定时器设定和自减模块,时序中心控制模块,数码管显示译码模块。在设计的过程中,我也遇到了不少困难,在经过耐心的调试后还是顺利解决了所有问题。通过这次设计,让我更深入的掌握了 Verilog 14HDL 的设计方法与一些技巧,让我对 FPGA 的编程、定时器和计数器的设计更加熟悉,让我更加明白时序组合门电路设计思路和方法。在设计中学到不少课本上没有的东西,并且充分认识到家电控制电路设计在一片 FPGA 芯片内,具有体积小、可靠性高、降低成本、设计周期短,功能灵活的特点,本人受益匪浅。我相信通过此次课程设计,一定会对以后的设计工作提供很大帮助。六、参考文献1、黑金开发板配套教程 VerilogHDL 那些事儿2、康华光主编 电子技术基础 数字部分(第五版)3、陈明义主编、电子技术课程设计实用教程S 2002 年 05 月第 1 版4、EDA 先锋工作室 设计与验证 Verilog HDL5、马建国 孟宪元 编著 FPGA 现代数字系统设计七、附录7.1 FPGA 系统板部分原理图1516177.2 FPGA 系统板 PCB 图- 18 -附件 1: 大学本科毕业论文(设计)工作程序工作程序及要求 完成时间(一)确定题目和指导教师1.学院(系)成立毕业论文(设计)领导小组;2.学院(系)向教师(具有讲师以上职称或具有研究生学历的助教)分派指导论文(设计)任务,院(系)公布 备选题目一览表;3.学院(系)召开指导教师和学生参加的毕业论文(设计)布置大会;4.学生根据自己的专业兴趣、学 术特长选定论文题目,确定指导教师,也可与指导教师协商后确定论文题目;5.学院(系)将选题结果汇总成表, 报教务处实践教学科备 案。每学年第一学期第 8 周前第一阶段(准备阶段)(二)做好论文开题、写作的准备工作1.指导教师向学生传达毕业论文(设计)要求及有关管理规定,师生沟通交流课题任务,使学生正确理解 课题, 为开题做准备;2.学生确定论文题目后,应在指 导教师的指导下进行文献 检索、 实习调研以及实验等论文前期准备工作。每学年第一学期第 8 周以后(三)做好开题报告教研室组织教师指导学生做好开题报告,院(系) 检查开题 情况,教 务处抽查。每学年第二学期第 2 周前(四)认真进行毕业论文(设计)指导、检查工作。1指导教师做好指导工作,定期检查学生的工作进度和质 量,及时解答和处理学生提出的有关问题;2学院(系)要随时了解、检查论文写作进展情况,及时研究协调处理毕业论文写作过程中的有关问题。每学年第二学期第二阶段(开题及写作阶段)(五)毕业论文中期检查教研室组织中期毕业论文检查工作,做好 记录,学生 须向指 导教师汇报工作进度和工作质量,并填写中期 检查表。每学年第二学期第 8 周(六)指导教师评定毕业论文答辩前一周,学生将毕业论文交指 导教师,指 导教师需认真 审阅
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号