课程设计基于FPGA全自动洗衣机设计Word文档下载推荐.docx
《课程设计基于FPGA全自动洗衣机设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计基于FPGA全自动洗衣机设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
![课程设计基于FPGA全自动洗衣机设计Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/3/b61d61e1-727e-4f14-8153-7982a516348a/b61d61e1-727e-4f14-8153-7982a516348a1.gif)
4.1.1LED状态灯模块流程图 6
4.1.2LED状态灯模块仿真结果和分析 6
4.2BCD译码器模块 7
4.2.1BCD译码器模块流程图 7
4.2.2BCD译码器模块仿真结果和分析 7
4.3报警器模块 8
4.3.1报警器模块流程图和仿真 8
5全自动洗衣机整体电路仿真 10
5.1全自动洗衣机整体流程图 10
5.2全自动洗衣机整体仿真结果和分析 10
6程序下载调试图 11
7设计总结 13
参考文献 14
附 录 15
1 课题背景
洗衣机是一种在家庭中不可缺少的家用电器,发展非常快,而全自动式洗衣机因使用方便更加得到大家的青睐,全自动即进水、洗涤、漂洗、甩干等一系列过程自动完成,控制器通常设有几种洗涤程序,对不同的衣物可选择不同的洗涤方式。
从古到今,洗衣服都是一项难于逃避的家务劳动,而在洗衣机出现以前,对于许多人而言,它并不像田园诗描绘的那样充满乐趣,手搓、棒击、冲刷、甩打„„这些不断重复的简单的体力劳动,留给人的感受常常是:
辛苦劳累。
1911年美国人又研制了世界上第一台电动洗衣机。
1920年美国
的玛依塔格公司又把洗衣机的木制桶改为铝制桶体,第二年又把铝制桶体改为外层铸铝、内层为铜板的双层结构。
1936年,他们又将搪瓷用于洗衣机桶体。
与此同时,世界各地也相继出现了洗衣机。
欧洲国家研究成功了喷流式洗衣机和滚筒式洗衣机[1]。
第二次世界大战结束后,洗衣机得到了迅速的发展,研制出具有独特风格的波轮式洗衣机。
这种洗衣机由于其波轮安装在洗衣桶底,又称涡卷式洗衣机。
全自动洗衣机的发展首先表现在洗涤方式发生巨大变化。
原先大多侧重于水流的改变、动力的加大。
现在,超音波、电解水、臭氧和蒸汽洗涤的运用,使洗衣机的去污能力从单纯依靠洗衣粉、洗涤剂的化学作用和强弱变化的水流机械作用,向更高层次的健康、环保洗涤方式转变,特别是电解水、超音波技术在洗衣机行业的运用几乎改变了洗衣机的历史——洗衣不用或少用洗衣粉、洗涤剂,减少化学品对皮肤的损害和对环境的污染。
电解水、臭氧、蒸汽的杀菌除味及消毒功能倍受青睐,引发了洗衣机消费健康潮。
另一变化就是高度自动化、智能化、人性化。
从半自动、全自动到现在流行的人工智能、模糊控制,只需按一下按钮一切搞定[2]。
18
2 QuartusII软件、FPGA硬件介绍
2.1QuartusII软件介绍
QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescription
Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点[3]。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;
支持Altera的片上可编程系统
(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台[4]。
MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、Chip
Editor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎[5]。
2.2FPGA硬件介绍
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC) 领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
它是当今数字系统设计的主要硬件平台,其主要特点就是完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写。
在修改和升级时,不需额外地改变PCB电路板,只是在计算机上修改和更新程序,使硬件设计工作成为软件开发工作,缩短了系统设计的周期,提高了实现的灵活性并降低了成本,因此获得了广大硬件工程师的青睐。
1984
年,在硅谷工作的Bernie Vonderschmitt、Ross Freeman 和 Jim
Barnett共同构建了一个设想,他们梦想创立一家不同于一般的公司。
他们希望创建一家在整个新领域内开发和推出先进技术的公司。
并且,他们还希望以这种方式领导它:
在这里工作的人们热爱他们的工作、享受工作的乐趣,并对他们所从事的工作着迷。
创造性地推出了“无晶圆半导体”公司的概念。
2009年2月18日,RossFreeman因他的这项发明--现场可编程门阵列(FPGA)而荣登2009美国发明家名人堂。
Freeman先生的发明是一块全部由“开放式门”组成的计算机芯片,其专利号为
4,870,302。
采用这种芯片,工程师可以根据需要进行编程,添加新的功能,满足不断发展的标准或规范要求,并可在设计的最后阶段进行修改。
对PROM、EPROM、E2PROM熟悉的人都知道这些可编程器件的可编程原理是通过加高压或紫外线导致三极管或MOS管内部的载流子密度发生变化,实现所谓的可编程,但是这些器件或只能实现单次可编程或编程状态难以稳定。
FPGA则不同,它采用了逻辑单元阵列LCA(LogicCellArray)这样
一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分[6]。
3全自动洗衣机的总体方案
3.1方案内容
1.设计一个电子定时器,控制洗衣机作如下运转:
定时启动®
正转20秒
®
暂停10秒®
反转20秒®
定时未到回到“正转20秒®
……”,定时到则停止;
2.若定时到,则停机发出音响信号;
3.用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;
洗涤过程由“开始”信号开始;
4.三只LED灯表示“正转”、“反转”、“暂停”三个状态[7]。
3.2设计原理
洗衣机控制器的设计主要是定时器的设计,由一片FPGA和外围电路
构成了电器控制部分。
FPGA接收按键的控制命令,控制洗衣机的工作状态、并控制显示工作时间以及设定直流电机正反转控制、制动控制、起停控制和运动状态控制(洗衣机洗涤过程如图3.1所示)。
对FPGA芯片的编程采用模块化的VHDL (硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。
顶层和中间层多数是由VHDL的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、定时器、显示控制、键盘扫描以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。
用LED显示正转20秒,暂停10秒,反转20秒,暂停10秒,60秒为一周期。
因此此次设计的关键是计数器和定时器的设计。
正转20秒
暂停10秒
暂停20秒
预置定时时间
Y
反转20秒
停止
启动
预置定时分钟数
初始化
N
图3.1设计框架
4全自动洗衣机各模块解析
4.1LED状态灯模块
由in_gei、in_shi输入分别为定时器个位和十位的时间信号,gei和
shi为输出信号。
此模块是为了实现洗衣机能够定时输入的功能,保证洗衣机能够正常运行。
4.1.1LED状态灯模块流程图
图4.1LED状态灯模块
Clk是状态灯的时间信号;
over是给灯模块提供停止信号;
deng是输出端,deng[2..0]三个灯分别亮时,说明洗衣机处于“正转”、“暂停”、“反转”三个状态。
4.1.2LED状态灯模块仿真结果和分析
图4.2LED状态灯模块仿真图
从仿真图上可以看到的我们给一个周期为20的时钟信号,那么输出上面的灯2代表的是正转.输出上面的1代表的是暂停.输出上面的0代表的是反转.那么随着时钟信号的输入.灯的运转的模式正好就是正转-暂停-反转-暂停的模式。
然后不断的循环输出.这正和我们设计的灯的输出是一致的,也就证明了LED灯设计的成功。
4.2BCD译码器模块流程图
Clk是分频器的时间信号,cp是以一秒钟为单位的60分频输出,提供给时间计数器的时间信号;
wash_cp是6分频输出,提供状态灯的状态信号。
4.2.1BCD译码器模块流程图
图4.3BCD译码器模块流程图
BCD是译码器的译码输入,led7是输出端口,接七段数码显示器。
4.2.2BCD译码器模块仿真结果和分析
图4.4BCD译码器模块仿真图
正如图上的一样,我们给BCD输入的为0到15的输入.那么我们可以从输出上面可以看到.正如我们所给的0到9阳极的数码管显示的数字。
比如输入为0,那么输出就是为0000001。
正好在数码管上能够显示0的数字。
我们的是7位,并不是8位,缺少一个数码管上的点的数字,但是并不影响数字的显示。
成功的输出了0到9的数字。
证明BCD译码器的波形仿真的成功。
4.3报警器模块
4.3.1报警模块流程图和仿真
图4.5报警器模块流程图
当报警器的输入cp=’1’时,输出信号warm和输入信号clk相同。
图4.6报警器模块仿真结果图
正如图所示的一样,我们给一个周期为20的时钟信号.随意给个CP高电