一种基于VHDL的洗衣机控制器设计
摘要:为降低设计成本,缩短设计周期,提出一种基于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转/分钟的转速正向
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)