基于VHDL的洗衣机控制器的设计

发布者:创客1992最新更新时间:2014-10-21 来源: eefocus关键字:VHDL  FPGA  计数模块 手机看文章 扫描二维码
随时随地手机看文章

为降低设计成本,缩短设计周期,提出一种基于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)能实现系统复位功能,按复位键后使洗衣机系统恢复到起始状态。


图1 洗衣机控制器系统框图

根据洗衣机控制器的功能,设置了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转/分钟。[page]

按键选择模块的主要功能是根据用户拨动的各种设置按键,如水量设置、自动洗衣模式选择、手动洗衣时间设置,进行汇总,按照前面所提供的各种设置按键与控制信息之间的关系,输出进水、洗、漂洗、脱水时间、洗涤转速到控制模块控制洗衣过程,输出洗衣总时间到计数模块控制计数,输出水位信号控制水位显示的LED灯。

2.2计数模块设计

计数模块的输入为来自按键选择模块的洗衣总时间total、1 Hz计时时钟信号以及复位和暂停信号。计数模块实现从0到total的计数,并输出计数到控制模块。计数模块的计数初值num为零,每过一时钟周期,计数值num加1.

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,洗衣停止。


图2 洗衣机状态转换图

状态转换进程的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硬件实验箱上进行测试。仿真波形和测试结果表明该洗衣机能正确实现各种设计功能,该设计方案切实可行。

关键字:VHDL  FPGA  计数模块 引用地址:基于VHDL的洗衣机控制器的设计

上一篇:Android终端及FPGA控制的智能家居系统
下一篇:智能家居中四种技术的生存较量

推荐阅读最新更新时间:2024-05-02 23:14

FPGA技术实现模拟雷达信号
前言 FPGA(现场可编程门阵列)是由掩膜可编程门阵列和PLD(可编程逻辑器件)演变而来的,并将二者的特性结合在一起,使FPGA既有掩膜可编程门阵列的高逻辑密度和通用性,又有PLD的可编程特性。FPAG技术的发展使得单个芯片上集成的逻辑门数越来越多,能实现的功能越来越复杂。它以编程方便、集成度高、速度快等特点受到电子设计人员的青睐。人们可以通过硬件编程的方法设计和开发ASIC(专用集成电路)芯片,极大地提高芯片的研制效率、降低开发费用。 通过应用FPGA技术,较好地为“某型雷达告警设备”的配套检测仪器实现了模拟雷达信号发生器ASIC芯片的设计,该芯片能够提供“某型雷达告警设备”测试过程中所需的多种典型的重频脉冲及制导信号等
[半导体设计/制造]
啃下硬骨头实现市场突破,安路科技怎样用FPGA突围工业4.0
8月27日,在2020世界半导体论坛上,安路科技获评2019年度中国IC独角兽。 这是安路科技蝉联FPGA 独角兽荣誉的第二年。 伴随新一代信息技术的发展,全球进入空前的创新密集和产业变革时代。基于此,以物联网和智能制造为主导的工业4.0悄然来袭。 变革带来更多的想象空间与市场机遇,打开局面的“最先一公里“尤为重要。面对工业4.0如何破局、如何抢占先机,如何在国外巨头的垄断下”涉险滩“?安路科技选择的利器为FPGA。 在本次世界半导体大会的IC独角兽分论坛上,安路科技联合创始人陈利光博士发表了题为《FPGA在工业4.0中应用与挑战》的演讲。 工业4.0时代对FPGA催生出哪些新的需求,陈利光从工业革命的角度阐述了这个问题。
[手机便携]
关于Verilog简易UART的FPGA/CPLD实现
测试 平台:MACHXO640   可编程语言:Verilog   随机测试:是   波特率:9600   误码率: 1%oooooo   目标:在xo640上实现一个简单的 UART ,能够解析 串口 数据,并在 寄存器 中存储,用FIFO实现数据的传递。那么后期可以通过 开发板 上的 串口 经 CPLD 访问各种数据。比如PC=C PLD =E EPROM 等等,极大方便后期的开发和调试。   下面介绍一下重点:   1、Speed波特率及采样设置   这里的原理是:根据实际的波特率和 板卡 所使用的 晶振 频率,在容许的误差范围内(串口有一定的容错率)进行分频。这里强调一点,做法可以分为以下两类:分频与不分频。
[嵌入式]
基于SoC FPGA芯片的异步全彩LED显示控制器解决方案
1 LED显示屏市场概况 全彩LED显示被普遍应用于户外及室内的大型广告、舞台背景等场合(大多是同步显示),随着价格的下降,全彩LED显示已经开始被使用于门楣广告(异步显示)。当前门楣广告一般采用单双色LED显示,市场需求大。与单双LED相比,全彩LED能够展现更丰富的内容,如真彩图片,动画,视频等,全彩LED显示将是门楣广告屏的发展趋势。     图1:中国LED显示屏产值(数据来源:GLII) 2 市场流行方案的介绍 目前市场上比较流行的方案有以下几种: 1) ARM-CortexA8 + FPGA解决方案:     图2:ARM-CortexA8 + FPGA方案框图 特点:功能齐全,其中ARM Cortex-A8可以实
[电源管理]
基于SoC <font color='red'>FPGA</font>芯片的异步全彩LED显示控制器解决方案
FPGA在AI中扮演的角色比预期还要大
电子网消息,摩根士丹利发表研究报告指出,FPGA在机器学习进行「推论」(inference)时扮演的角色,可能比市场想象还要大,Xilinx有望受惠。 barron`.com 23日报导,大摩分析师Joseph Moore和团队在参加斯坦福大学「热门芯片」(Hot Chips)年度会议后,对FPGA的重要性大感讶异,因为全球前七大云端厂商中,就有三家公司针对FPGA的各项元素进行策略报告,与之相较,市场先前还对FPGA的云端应用感到相当怀疑。 不仅如此,若要实时使用深度学习的神经网络算法(即所谓的推论),FPGA于其中扮演的角色,也比投资人想象还要重要。大摩认为,Xilinx是主要受惠的厂商。举例来说,Xilinx客户百度正在打造
[半导体设计/制造]
FPGA虚拟化技术将成为未来主攻方向
利用FPGA虚拟化突破时空限制 在传统的FPGA开发模型中,使用者通常使用硬件描述语言(HDL)对应用场景进行建模,然后通过特定的FPGA开发工具将硬件模型映射到FPGA上,最终生成可以运行的FPGA映像。 这种开发模式的另外一个主要缺点是,FPGA只能由单一用户开发和使用,而与应用场景、FPGA的产品种类等无关。比如对于一个对资源需求不大、而且不需要连续运行的应用而言,大部分FPGA的硬件资源在大部分时间内都会闲置。很显然,这样很难在时空范围内对FPGA进行充分利用,见下图。 为了提高FPGA的开发效率、更好的利用FPGA的逻辑资源、方便FPGA的大规模部署和应用,需要将FPGA进行一定程度的逻辑抽象,使顶层
[嵌入式]
<font color='red'>FPGA</font>虚拟化技术将成为未来主攻方向
基于FPGA与ARM的遥测数据网络化采集
摘要:现有的遥测接收机为PCI接口,需安装在工控机上使用,为实现设备小型化、便携化,设计实现了小型网络接口遥测解调模块,可配合带有网口的计算机使用。采用FPGA进行遥测数据的帧同步与IRIG—B时码解调,将接收到的遥测数据添加时码后发送给ARM处理器中的Linux系统,并编写Linux 2.6下的FPGA驱动程序,实现FPGA数据的读取,然后通过网卡以TCP/IP格式发给主机,主机实现数据存储与显示。 关键词:FPGA;帧同步;ARM;遥测数据;网络化;Linux 以太网接口通信速度快,传输可靠,使用和配置方便,对于20 Mb/s以下的码速率,100 Mb/s的网卡可以进行不丢包转发,采用TCP包格式还可使设备小型化,便
[嵌入式]
基于<font color='red'>FPGA</font>与ARM的遥测数据网络化采集
新型的FPGA器件将支持多样化AI/ML创新进程
近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临 ,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU以更高的计算密度和能效胜出CPU一样,各种加速器件在不同的AI/ML应用或者细分市场中将各具优势,未来并不是只要贵的而是更需要对的。 此次GTC上新推出的用于AI/ML计算或者大模型的B200芯片有一个显著的特点,它与传统的图形渲染GPU大相径庭并与上一代用于AI/ML计算的GPU很不一样。在其他算力器件品种中也是如此,AI/ML计算尤其是推理应用需要一种专为高带宽工作负载优化的新型FPGA,下面我们以Ach
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved