摘要:为下降规划本钱,缩短规划周期,提出一种依据VHDL的洗衣机操控器的规划计划。该计划选用模块化的规划思维,并运用状况机完结操控模块的规划。整个体系在QuartusⅡ开发平台上完结规划、编译和仿真,并在FPGA硬件试验箱上进行测验。仿真波形和测验成果均标明该规划计划切实可行。
为进步洗衣机操控体系的智能性,以及守时和转速的精确度,现在洗衣机操控体系一般选用数字电路而不是传统的机械式操控。跟着EDA(Electronic Design Automation,电子规划主动化)技能的开展,选用硬件描绘言语在EDA开发软件上完结电子体系的规划和仿真,并下载到可编程逻辑器件上调试已成为数字电路规划的新趋势。
与传统的数字电路规划办法比较,EDA技能具有以下特色:1)用软件办法规划硬件;2)用软件办法规划的体系到硬件体系的转化是由有关开发软件主动完结的;3)规划进程中可用有关软件进行各种仿真;4)体系可现场编程,在线晋级;5)整个体系可集成在一个芯片上,体积小、功耗低、可靠性高;6)规划的移植性好、效率高;7)合适分工规划、团队协作;8)规划本钱低、规划周期短。依据此,咱们运用硬件描绘言语VHDL在EDA干流开发软件QuartusⅡ上完结洗衣机操控器规划、编译和仿真,并下载到FPGA硬件试验箱上进行测验。测验成果标明该规划计划切实可行。
1 整体规划计划
经过对市面上的洗衣机操控器的查询,规划洗衣机操控体系需完结洗刷方式挑选,水位操控,洗刷电机操控,洗衣状况、水位与剩余时刻显现等功用。详细功用为:1)能对洗刷方式、水位、洗刷时刻、漂洗时刻、脱水时刻进行设置;2)依据不同的洗刷方式,设置不同的电机转速;3)能经过数码管和LED显现灯的方式显现水位、洗衣的剩余时刻、当时洗衣的状况等信息;4)能在洗衣进程中随时暂停,发动后从暂停前状况继续开端洗衣;5)能完结体系复位功用,按复位键后使洗衣机体系康复到开端状况。
依据洗衣机操控器的功用,设置了4个模块,别离是按键挑选模块、计数模块、操控模块和时刻显现模块,其体系框图如图1所示。依据模块化规划思维,选用自顶向下的层次化规划办法进行规划,其输入为:发动信号、暂停信号、各种用户设置信号、1 Hz的计时时钟信号和1kHz的扫描时钟信号;其输出为:当时状况剩余时刻显现(2位共阴极7段数码管显现)、洗衣状况、电机操控信号、水位和进水信号。
2 中心模块规划
2.1 按键挑选模块规划
洗衣机洗衣进程分为4阶段:进水→洗刷→漂洗→脱水。其间进水时刻由水量巨细决议。水量设置为高、中、低3档,用户经过拨动两位水量设置按键进行挑选。当用户不拨动任何按键时,即按键值为00时,水量设置为默许值:即中档,4升。表1给出了水量设置按键与水量巨细和进水时刻的对应联系。
洗刷、漂洗和脱水时刻由洗衣方式决议。咱们将洗衣方式分为主动设置和手动设置两种。在手动设置时,用户经过拨动3组手动洗衣设置按键:洗刷设置按键、漂洗设置按键和脱水设置按键别离设置洗刷、漂洗和脱水时刻。表2给出了这3组设置按键与洗刷、漂洗和脱水时刻的对应联系。当用户不拨动任何按键时,时刻取默许值,即中档(按键值为10时对应的时刻)
主动设置方式包括:强力、常用、轻柔3种洗衣方式,用户经过拨动两位主动洗衣方式挑选键进行挑选。当用户挑选主动设置方式时,操控器将依据用户挑选的洗衣方式主动设置相应的洗刷时刻、漂洗时刻、脱水时刻。表3给出了不同洗衣方式下的洗刷、漂洗和脱水时刻。
需求留意的是:主动设置方式的优先级高于手动设置方式。若用户误操作,一起拨动了主动洗衣方式挑选键和手动洗衣时刻设置键(这种状况很容易发生),洗衣机操控器以为挑选的是主动洗衣方式,本模块将按挑选的主动洗衣方式输出相应时刻和洗刷转速到操控模块。而当用户不拨动任何主动洗衣方式挑选键时,默许挑选手动设置方式。风趣的是,当主动洗衣方式挑选键和手动洗衣时刻设置按键均未拨动时,即用户直接发动洗衣机,将挑选手动设置方式的默许值(中档)。此刻,洗刷、漂洗和脱水时刻别离为15,20,5分钟,而这和主动设置方式中的常用洗衣方式完全相同。这种洗衣方式是最常用的一种方式,经过这种默许设置,用户能够有用防止杂乱的挑选,直接发动洗衣机洗衣。
不论是挑选什么洗衣方式,洗刷电机的逻辑操控进程一直相同:在洗衣和漂洗时,电机以洗刷转速正向接连作业5秒,暂停作业1秒,然后以相同的洗刷转速反向接连作业5秒,暂停作业1秒,如此循环操控电机,直到洗衣和漂洗守时完毕;在脱水时,电机以600转/分钟的转速正向接连作业5秒,暂停作业1秒,如此循环操控电机,直到脱水守时完毕。洗刷电机的洗刷转速将依据洗衣方式有所调整,其默许转速为60转/分钟。当洗衣方式为强力时,电机转速增加为72转/分钟;当洗衣方式为轻柔时,电机转速下降为45转/分钟;而其他方式,包括手动设置方式均选用默许转速60转/分钟。
按键挑选模块的主要功用是依据用户拨动的各种设置按键,如水量设置、主动洗衣方式挑选、手动洗衣时刻设置,进行汇总,依照前面所供给的各种设置按键与操控信息之间的联系,输出进水、洗、漂洗、脱水时刻、洗刷转速到操控模块操控洗衣进程,输出洗衣总时刻到计数模块操控计数,输出水位信号操控水位显现的LED灯。
2.2 计数模块规划
计数模块的输入为来自按键挑选模块的洗衣总时刻total、1 Hz计时时钟信号以及复位和暂停信号。计数模块完结从0到total的计数,并输出计数到操控模块。计数模块的计数初值num为零,每过一时钟周期,计数值num加1。当num
2.3 操控模块规划
操控模块是洗衣机操控器的中心模块,它依据按键挑选模块输入的各种操控信息和计时模块输入的计时信息操控洗衣4种状况的转化和电机转速,并输出当时洗衣状况、电机转速,以及剩余时刻。
洗衣四种状况的转化能够便利对由状况机完结。状况机是一种输出由当时状况和当时输入决议的时序电路,它一般能够用状况转化图表明。运用VHDL规划状况机不用知道电路的详细完结细节,只需在逻辑上加以描绘,因而选用状况机完结操控模块是一种十分便利的办法。
状况机的用VHDL完结有通用格局,它包括两个个进程:状况机状况转化进程Change_State和状况机输出进程Output_Process。其间状况转化进程由状况转化图决议,洗衣机的状况转化图如图2所示,S0、S1、S2、S3、S4别离为进水、洗刷、漂洗、脱水以及完毕状况,n0、n1、n2、n3别离表明由按键挑选模块输出的进水、洗刷、漂洗与脱水时刻,num为计数模块输出的洗衣机运转时刻,reset为洗衣机发动信号。当洗衣机发动时,即reset按键拨动,进入S0状况,开端进水;当洗衣机运转时刻num=n0时,进水完结,状况转为S1,开端洗刷;当洗衣机运转时刻num=n0+n1时,洗刷完结,状况转为S2,开端漂洗;当洗衣机运转时刻num=n0+n1+n2时,漂洗完结,状况转为S3,开端脱水;当洗衣机运转时刻num=n0+n1+n2+n3时,脱水完结,状况转为完毕状况S4,洗衣中止。
状况转化进程的VHDL代码如下:
当reset=1时,发动进程,当时状况state置S0。每逢扫描时钟scan_clk为上升沿时,发动进程,依据当时状况state和洗衣机运转时刻num,依照状况转化图决议新的当时状况。
输出进程经过输出4种洗衣状况信号操控4个LED灯当明灭来显现当时洗衣状况。输出进程经过输出进水信号操控进水。当洗衣为进水状况时,若暂停信号为0,则输出进水信号为1,开端进水;若暂停信号为1,输出进水信号为0,暂停进水。而当洗衣为其他状况时,输出进水信号一直为0,中止进水。输出进程经过输出电机操控信号操控电机运转。依据洗刷电机的逻辑操控进程,当洗衣状况为进水时,输出电机操控信号为零电平,表明电机暂停;当洗衣状况为洗刷和漂洗时,输出电机操控信号为频率为洗刷转速(默许60转/分钟,即1Hz)的方波继续5秒(默许时输出1 Hz的方波5个),然后高电平继续1秒(操控电机极性转向);洗衣状况为脱水时,输出电机操控信号为频率为脱水转速(600转/分钟,即10 Hz)的方波继续5秒(默许状况下,输出10 Hz的方波50个),然后零电平继续1秒(操控电机暂停)。输出进程依据当时状况和洗衣机运转时刻输出当时状况剩余时刻到显现模块。例如,当洗衣为洗刷状况时,输出剩余时刻为n0+n1-num。
2.4 显现模块规划
本模块用于在7段数码管上显现当时状况剩余时刻,其输入为操控模块输出的当时状况剩余时刻和扫描时钟。首要,将输入的剩余时刻由秒转化为分钟(四舍五入);然后进行分位,分为个位ge和十位shi(明显剩余时刻不超越100分钟,最多2位);最终经过动态扫描在2个共阴极的七段数码上替换显现个位数字和十位数字。当替换频率高于28 Hz时,因为人眼的视觉残留作用,这2位数字看上去是一起显现在2个七段数码管上。动态扫描进程的VHDL代码如下:
3 完毕语
咱们在QuartusⅡ软件开发平台上,依据模块化的规划思维,运用VHDL言语完结洗衣机操控器规划、编译和仿真,并下载到FPGA硬件试验箱上进行测验。仿真波形和测验成果标明该洗衣机能正确完结各种规划功用,该规划计划切实可行。