1、 草鱼草鱼 草鱼 草鱼 草鱼 基于 FPGA的 洗衣机 控制电路实现 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 姓 草鱼 草鱼名 : pork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼草鱼 草鱼 学 草鱼 草鱼号 : pork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 专 草鱼 草鱼业 : pork 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 2010-11-15 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 洗衣机洗涤控制电路设计 草鱼 一 、 pork洗衣机洗 涤控制电路的性能要求 草鱼 草鱼 1强洗 、 pork标准
2、 、 pork轻柔三种洗涤模式 草鱼 强洗周期水流控制 : pork正向电机接通 5 秒后 , 鲤鱼 停 2 秒 ; pork再反向电机接通 5 秒 , 鲤鱼 停 2 秒 ; pork然后又正向电机接通 5 秒 。 草鱼 如此循环控制电机 , 鲤鱼 直到洗涤定时结束 。 草鱼 草鱼 标准洗周期水流控制 : pork其过程与强洗周期水流控制相同 , 鲤鱼 不同的是正向接通时间为 3.5 秒 ,鲤鱼 停止时间为 1.5 秒 , 鲤鱼 反向接通时间为 3.5 秒 。 草鱼 草鱼 轻柔洗周期水流控制 : pork正向接通时间为 2.5 秒 , 鲤鱼 停止时间为 1.5 秒 , 鲤鱼 反向接 通时间为
3、2.5 秒 。草鱼 草鱼草鱼 2三种洗涤定时 草鱼 洗衣机洗涤定时可有三种选择 : por k5 分钟 、 pork10 分钟 、 pork15 分钟 。 草鱼 草鱼 3上电复位后的初始设定 草鱼 初始设定为标准模式 , 鲤鱼 定时时间为 15 分钟 。 草鱼 如需修改可按模式选择按键和定时选择按键 。 草鱼每按一次按键转换一次 , 鲤鱼 可多次进行循环选择 。 草鱼 当某一次洗涤过程结束后 , 鲤鱼 自动返回初始状态 , 鲤鱼 等待下一次洗涤过程开始 。 草鱼 草鱼草鱼 4启 /停控制 草鱼 洗涤过程由启 /停键控制 。 草鱼 每按一次启 /停键 , 鲤鱼 状态转换一次 。 草鱼 草鱼 5洗
4、涤定 时精度 草鱼 洗涤定时误差要求不大于 0.1 秒 。 草鱼 草鱼 为简化设计洗衣机洗涤控制电路 , 鲤鱼 只要求输出正向和反向的电机控制信号 。 草鱼草鱼 草鱼 二 、 pork洗衣机洗涤控制电路的结构 草鱼 根据上述对洗衣机洗涤控制电路的性能要求 , 鲤鱼 可以画出如 下 图所示的结构框图 。 草鱼 草鱼 该控制器由四大部分组成 : por k主分频器 、 pork主控制器 、 pork洗涤定时器和水流控制器 。 草鱼草鱼 草鱼 洗衣机洗涤控制电路的结构框图 草鱼 主分频器 草鱼 主分频器用来产生 0.1 秒的时钟供主控制器使用 。 草鱼 本方案 DE2 板自带时钟 草鱼 , 鲤鱼 其
5、振荡频率为50MHz。 草鱼 这样 , 鲤鱼 主分频器的分频系数为 5M。 草鱼 现采用 3 个分频器构成主分频器的分频电路 。草鱼 3 个分频器是 1k 分频器 、 pork1k 分频器和 5 分频器 。 草鱼 主分频器的结构如 下图 所示 。 草鱼 草鱼 草鱼 草鱼 主分频器的结构 草鱼 三 、 pork洗衣机洗涤控制电路的算法状态机图描述 草鱼 1主控制器算法状态机图描述 草鱼 根据主控制器的工作要求 , 鲤鱼 洗衣机洗涤时的工作状态共有以下 9 种 : pork草鱼 标准 15 分钟 标准 10 分钟 草鱼 标准 5 分钟 轻柔 15 分钟 草鱼 轻柔 10 分钟 轻柔 5 分钟 草鱼
6、 强洗 15 分钟 强洗 10 分钟 草鱼 强洗 5 分钟 草鱼草鱼 1) 模式选择控制状态机图 草鱼 草鱼 2) 草鱼 定时选择控制状态机图 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 3) 草鱼 启 /停控制算法状态机图描述 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 s _15 m i n/ s e t _15 m i nt i m e r _dow n是 否 有 效
7、 ?Ys e t _15 m i n 0t i m e r _s e lNNs _10 m i n/ s e t _10 m i nt i m e r _dow n是 否 有 效 ?Yt i m e r _s e l是 否 有 效 ?NNYs e t _10 m i n 0s _5 m i n/ s et _5 m i nt i m e r _dow n是 否 有 效 ?Yt i m e r _s e l是 否 有 效 ?NNYs e t _5 m i n 0Ys _s t op 停 止 状 态s t a r t _s t op是 否 有 效 ?s t a r t 0NYs _s t a r
8、t / s t a r tt i m e r _do w n是 否 有 效 ?Ys t a r t _s t op是 否 有 效 ?Ns t a r t 0启 动 状 态s t a r t 1NY2洗涤定时器算法状态机图描述 草鱼 洗涤定时器有 3 种状态 : pork停止状态 (IDLE)、 pork计时状态 (INCCOUNT)和暂停状态 (TMP_STOP)。草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 3水流控制器算法状态机图描述 草鱼 该状态机图有 3 种状态 : pork停止状态 (STOP)、
9、pork电机接通定时计数状态 (ON_TIME)和电机断开定时计数状态 (OFF_TIME)。 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 I D L Es t a r t 1 ?NYt i m e r _o n 1I N C C O U N Ts t a r t 1 ?s 1 m i n 到 来 否 ?YNNt i m e r _o n 0T M P _S T O Ps t a r t 1 ?Yt i m e r _o n 1Yc ou nt c ou nt 1c ou nt c ou nt _v ?NYt i
10、 m e r _o n 0t i m e r _d ow n 1c ou nt 000 0 s t a r t 0NS T O Pt i m e r _o nYs e t _o nYNNO F F _t i m e rt i m e r _o nNYc l k_ 01 NYof f _count of f _count 1of f _count of f _count _vNYof f _d ow n 1s e t _o f f 0s e t _o n 1of f _count 0t i m e r _d ow nNon _coun t 0of f _count 0s e t on 1Yon
11、_t i m e rt i m e r _o nNYc l k_ 01 NYon _coun t on _coun t 1on _coun t on _coun t _vNYon _d ow n 1s e t _o f f 1s e t _o n 0on _coun t 0t i m e r _d ow nNon _coun t 0of f _count 0s e t on 1Y四 、 pork洗衣机洗涤控制电路的 VHDL 语言描述 草鱼 1主分频器 timectr_clkdiv 模块 草鱼 主分频器的功能是将 50M 草鱼 Hz 的主频分频为 10 草鱼 Hz 的时钟 。 草鱼 该模块由
12、3个进程组成 , 鲤鱼 其 VHDL语言描述的程序清单如下 : por k 草鱼草鱼 LIBRARY 草鱼 IEEE;pork草鱼 USE 草鱼 IEEE.STD_LOGIC_1164.ALL;pork草鱼 USE 草鱼 IEEE.STD_LOGIC_UNSIGNED.ALL;por k草鱼 草鱼 ENTITY 草鱼 timectr_clkdiv 草鱼 IS 草鱼 PORT(sysclk:IN 草鱼 STD_LOGIC;pork草鱼 clk_01:OUT 草鱼 STD_LOGIC);pork草鱼 END 草鱼 timectr_clkdiv;pork草鱼 草鱼 ARCHITECTURE 草鱼 r
13、tl 草鱼 OF 草鱼 timectr_clkdiv 草鱼 IS 草鱼 SIGNAL 草鱼 div1:STD_LOGIC_VECTOR(9 草鱼 DOWNTO 草鱼 0):=“0000000000“;pork草鱼 -divide 草鱼 by 草鱼 1k 草鱼 counter 草鱼 SIGNAL 草鱼 div2:STD_LOGIC_VECTOR(9 草鱼 DOWNTO 草鱼 0):=“0000000000“;pork草鱼 -divide 草鱼 by 草鱼 1k 草鱼 counter 草鱼 SIGNAL 草鱼 div3:STD_LOGIC_VECTOR(2 草鱼 DOWNTO 草鱼 0):=“00
14、0“;pork草鱼 -divide 草鱼 by 草鱼 5 草鱼 counter 草鱼 SIGNAL 草鱼 clk1,clk2:STD_LOGIC;pork草鱼 草鱼 BEGIN 草鱼 div_1k:PROCESS(sysclk)草鱼 BEGIN 草鱼 IF(sysclkEVENT 草鱼 AND 草鱼 sysclk=1)THEN 草鱼 IF(div1=“1111100111“)THEN 草鱼 div1 草鱼 set_b 草鱼 set_z 草鱼 set_j 草鱼 set_15min 草鱼 set_10min 草鱼 set_5min 草鱼草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 IF(start_stop_rising=1) 草鱼 THEN 草鱼 nextstate3 草鱼草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 草鱼 IF(timer_down_rising=1) 草鱼 THEN 草鱼 clrstartclrdownIF(start_in=0) 草鱼 THEN 草鱼 clron=1;porknextstate=TMP_STOP;pork草鱼