利用WHDL设计洗衣机控制器.doc
《利用WHDL设计洗衣机控制器.doc》由会员分享,可在线阅读,更多相关《利用WHDL设计洗衣机控制器.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、利用VHDL设计洗衣机控制器1 引言2 选题研究的意义21 课题来源22 课题研究的背景23 研究的目的和意义4 应解决的主要问题与应达到的技术要求241 需解决的主要问题洗衣机控制系统的核心部件是控制器。洗衣机控制电路包括控制器、控制对象、状态显示电路、计时器与报警电路。它是一闭环系统,部结构有洗衣机状态转23 / 23换时间信号产生器、状态计数器、数据选择器和状态译码器,它能自动发出顺序循环控制信号(S、R、L),并同时完成在该状态下的计时功能。另外,它还向控制对象提供一个工作过程的周期信号(T),作循环次数累计。控制对象是由4位二进制计数器和4位数值比较器构成,它对T作计数,与此同时与人
2、工输入的预置循环数比较,随时将反应受控器自身状态的信号反馈给控制器,从而实现系统的控制功能。242 需实现洗衣机控制器的控制功能 洗衣机的状态为待机5s正转60s待机5s反转60s,并用3个LED灯和7段显示器分别表示其工作状态和显示相应工作状态下的时间。自行设定洗衣机的循环次数,这里设最大的循环次数为15次。 具有紧急情况的处理功能。当发生紧急情况时,立即转入到待机状态,紧急情况解除后继续执行后续步骤。 洗衣机设定循环次数递减到零时立即报警,以表示洗衣机设定的循环次数已经结束。 输入变量:时钟CLK,直接清零RD,暂停/连续EN,设定洗衣机的循环次数SET。输出变量:三个工作状态S、R、L,
3、一个过程周期T(T4),8421BCD码Q7Q0输出与报警信号。25 国外研究现状,发展趋势与存在的主要问题26设计工具介绍3 洗衣机控制器设计的方案论证3.1 洗衣机控制器设计的方案选择设计洗衣机控制器,通常可以用三种方法来实现。方法一,可以用纯机械式来设计控制器。本方法利用机械原理来设计定时器。例如可以利用弹簧储存能量和释放能量的过程得到定时时间。其原理如同机械式(上发条)的钟表。由于长时间工作,金属容易疲劳,一旦出现这样的情况,其定时的误差变大,导致定时不准确。同时由于金属的疲劳和磨损等,可能引发定时器停摆,轮子打滑,进水等问题。但机械式控制器具有制造方便,成本低等特点,所以在很多场合应
4、用面依然比较广。方法二,利用单片机控制。利用单片机设计控制器也是一种理想的设计方案。其优点突出,主要表现为:前期开发投入少,效率高,设计周期短,控制精度较高。但单片机芯片单价高,如果大批量生产,其性价比较低;另外,在实际工作过程中容易出现死机,程序调用混乱等问题。方法三,采用FPGA。FPGA具有体积小,可靠性高等优点。它一方面克服了机械式控制器所引发的定时器停摆,轮子打滑,进水等缺点;另一方面也克服了利用单片机设计的控制器的问题,不易出现死机,程序调用混乱等问题。同时,采用大批量生产时,其性价比高。虽然方案二也能实现设计任务,但程序结构繁冗,用户看起来不太直观。方案三只用一个转换器就能实现,
5、程序简单也能较好的完成设计任务。且移植性好,功能更容易扩展。本设计选择方案三实现洗衣机控制器的功能。3.2数字系统的FPGA设计流程 3.2.1设计系统结构框图系统结构框图8如图2所示。洗衣机控制电路包括控制器,控制对象,状态显示电路,计时器与报警电路。控制器是系统的核心部件。它是一闭环系统,部结构有5s和60s信号产生器,状态计数器,数据选择器和状态译码器,它能自动发出顺序控制信号(S、R、L),并同时完成在该状态下的计时功能。另外,它还向控制对象提供一个工作过程的周期信号(T),作循环次数累计。控制对象是由4位二进制计数器和4位数值比较器构成,它对T作计数,与此同时与人工输入的预置循环数比
6、较,随时将反应受控器自身转台的信号反馈给控制器,实现系统的控制功能8。图2 系统的结构框图状态显示电路是通过3个LED灯来显示洗衣机的状态:当洗衣机暂停或出现紧急情况时第二个LED灯亮,当洗衣机正转时第一个LED灯都亮,当洗衣机反转时,只有第三个LED灯亮。报警控制电路的功能是当设定的循环次数减到零时提示用户。LED灯和数码管显示电路:通过LED灯来显示洗衣机的各种工作状态,利用数码管来显示时间。3.2.2洗衣机控制框图蜂鸣报警系统(根据机器运行的过程或状态给出蜂鸣或报警)供电系统(提供控制板电源)门盖状态检测(检测洗涤过程中门盖状态)供排水系统(按照一定的洗涤中期进水或排水)电机驱动系统(驱
7、动电机按照一定的周期或节奏洗涤与脱水)负载检测系统( 检测衣物重量 )用户接口(获得用户输入同时反映机器状态)控制器图3 洗衣机控制系统3.2.3洗衣机控制系统流程图洗涤洗涤放入衣物水流设置水位设置模式选择洗涤时间设置默认洗涤时间手动设置洗涤时间进水进水排水进水清洗排水脱水自动断电图4 洗衣机控制系统流程图3.2.4洗衣机状态转移图S0S1S2S211S221S3S4S5S222S212S8S7S6图5 洗衣机状态转移图4 设计论述系统有3个工作状态:正转,反转,暂停,由状态标志量count控制。count=0时,洗衣机正转,时间持续60s;count=1时洗衣机第一次暂停,时间持续5s;co
8、unt=2时洗衣机反转,时间持续60s;count=3时洗衣机第二次暂停,时间持续5 s,此时一个工作周期结束会产生控制信号T,设定的循环次数减1,若减1后循环次数为零,则洗衣机停止工作,产生报警信号;若循环次数不为零则继续工作。如果系统产生复位信号,则洗衣机停止工作产生报警信号。整个控制功能的VHDL程序见附录一。该程序经编译后创立的模块图如图8所示,其输入输出信号说明如下:系统时钟CLK,直接清零RD,暂停/连续EN,设定洗衣机的循环次数SET,报警脉冲信号CLK_1024;LAMP:洗衣机运行各状态指示灯Seg2,seg1:各状态运行时间的显示Seg4,seg3:设定工作周期显示时间计数
9、ALARM:报警信号部信号说明:temp:状态转换控制信号count:状态转换信号C:清零信号s1,s2,s3,s4:状态值T:控制器产生的控制信号A:报警信号图11 I/O模块图432 使用说明 在EN为低电平时通过SET设定洗衣机循环工作的次数。 通过按键将EN置为高电平,启动洗衣机工作,以后可通过EN暂停/继续。 若中途发生故障,可通过按键RD直接清零复位,待清除故障后重新启动。 洗衣机结束工作,报警,可通过RD或EN直接取消报警,将EN置为低电平,即可重新设定工作次数。44 测试仿真步骤 在Max+plus软件平台上进行仿真的基本步骤如下: 选File/Project/Name菜单建立
10、项目名。见图12图12 选File/New菜单,并选text Editor条目,进入文本编辑窗,然后输入电路设计文件。见图13图13 选File/Project/Save & Check 菜单将文件存盘并检查文件的正确性。见图14。图14 选Max+plus/waveform Editor菜单,编辑输入信号波形(在波形编辑窗口,选Node/Enter Nodes from SNF菜单将输入和输出端口调入,然后再编辑)。见图15。图15 选Max+plus/Simulator 菜单进行行为仿真。见图16图16 观察仿真结果,研究设计的正确性。5 结果分析测试仿真波形见附录二BCD码模块仿真波形和
11、七段显示译码模块仿真波形如附录二中图1和图2所示,测试波形正确。执行设定次数为2的波形图见附录二图3所示,测试波形符合要求。加入暂停信号后的波形。从附录二图4整体上看暂停有效。从附录二图5细节上看程序具有记忆功能,能从断点处装载,继续工作,符合要求。加入RD信号后的波形附录二图6复位信号有效,复位后报警提示成功。6 设计总结设计过程中采用了VHDL语言进行编写,并用MAX + plus软件进行仿真,它主要是对洗衣机工作状态、时间进行控制,在整个设计过程中,我先对FPGA的结构和VHDL的语法结构进一步的掌握,然后着重根据设计原理和思路着手编程,其间参考了不少文献资料,对计数器、数据选择器、译码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 WHDL 设计 洗衣机 控制器
限制150内