完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3个回答
|
|
该方案采用模块化的设计思想,并使用状态机完成控制模块的设计。整个系统在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)能实现系统复位功能,按复位键后使洗衣机系统恢复到起始状态。 |
|
|
|
2 核心模块设计
2.1 按键选择模块设计 洗衣机洗衣过程分为4阶段:进水→洗涤→漂洗→脱水。其中进水时间由水量大小决定。水量设置为高、中、低3档,用户通过拨动两位水量设置按键进行选择。当用户不拨动任何按键时,即按键值为00时,水量设置为默认值:即中档,4升。表1给出了水量设置按键与水量大小和进水时间的对应关系。 不论是选择什么洗衣模式,洗涤电机的逻辑控制过程始终相同:在洗衣和漂洗时,电机以洗涤转速正向连续工作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,洗衣停止。 输出进程通过输出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硬件实验箱上进行测试。仿真波形和测试结果表明该洗衣机能正确实现各种设计功能,该设计方案切实可行。 |
|
|
|
只有小组成员才能发言,加入小组>>
3020 浏览 3 评论
27849 浏览 2 评论
3602 浏览 2 评论
4082 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2452 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-28 17:54 , Processed in 0.666244 second(s), Total 79, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191