简易洗衣机设计eda.docx
- 文档编号:5434441
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:21
- 大小:406.14KB
简易洗衣机设计eda.docx
《简易洗衣机设计eda.docx》由会员分享,可在线阅读,更多相关《简易洗衣机设计eda.docx(21页珍藏版)》请在冰豆网上搜索。
简易洗衣机设计eda
广州大学松田学院
课程设计说明书
题目
姓名
专业
班级
系(部)
指导教师
二0一一年十二月日
目录
摘要
此设计是一种基于EDA技术的多路数据采集电路的方案,本次设计所所提出的一种基于EDA技术的多路数据采集电路,采用CPLD复杂可编程逻辑器件的I/O端口多,能自由编程支配、定义其功能的特点,配以VHDL语言编写的执行软件,能更好的解决采集的信号多路的问题。
随着数字生活的到来,多路数据采集系统在生活中越显重要,模拟信号和数字信号之间的转换已成计算机控制系统中不可缺少的环节,CPLD复杂可编辑逻辑器件能将大量的逻辑功能集成与一个集成电路中,而VHDL编写的执行软件内部对各组数字量是按并行处理的,形成速度快,效率高及组成形式灵活等特点。
本文讨论了EDA技术多路数据采集电路的构思、设计方案、工作原理,主要系统包括CPLD芯片区、多路选择与A/D采样电路、ADC0809芯片等。
主要组成部分包括:
数据采集转换模块、数据存储模块、键盘控制模块、主控电路模块。
通过键盘选择采集哪一路信号的数据,或者按照一定的顺序循环采集各路信号。
目录
前言
1.1背景4
1.2意义10
第一章4
1.1设计任务与要求12
1.2基本原理13
1.3简易洗衣机的简介5
第三章设计方案6
第四章设计程序8
第五章仿真结果14
第六章真结果分析16
第七章体会小结17
第八章元器件清单18
第九章参考文献19
前言绪论
1.背景与意义
1.1背景
EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。
1.2意义
随着信息科学的进步,现代电子产品的性能越来越高,复杂度越来越大,更新步伐也越来越快,电子技术的发展进入了划时代的阶段。
其中电子技术的核心便是电子设计自动化EDA(ElectronicDesignAutomatic)技术。
EDA是指以计
简易洗衣机控制器设计
第一章设计任务与要求
1.1设计任务与要求
(设计一简易全自动洗衣机控制器。
该控制器由两大状态A和B组成,每个状态分三个子状态,每个状态分别由选择A和选择B控制。
其中A为步进选择按纽,每步跳转一个子状态、B也为步进选择按纽,但每步选择B中的所有组合中的一种。
当启动时,时间序列控制器按已选的B类子状态顺序执行。
过程启动由启动/暂停键控制(暂停键在过程启动后任意时间可暂停/恢复过程)
过程启动后机盖开启应均能暂停过程,复盖间停30秒后重新继续原过程。
A:
强洗标准弱洗
B:
洗涤漂洗甩干
(洗涤,漂洗时电机分别正转、反转)
强洗:
(共36分钟)
洗涤18分
漂洗14分
甩干4分
(洗涤时电机分别正转4分、反转4分,正反转间停30秒;漂洗时电机分别正转3分、反转3分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
标准:
(共26分钟)
洗涤14分
漂洗8分
甩干4分
(洗涤时电机分别正转3分、反转3分,正反转间停30秒;漂洗时电机分别正转1.5分、反转1.5分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
弱洗(共20分钟)
洗涤10分
漂洗6分
甩干4分
(洗涤时电机分别正转2分、反转2分,正反转间停30秒;漂洗时电机分别正转1分、反转1分,正反转间停30秒;甩干时电机分别正转1.5分,间停30秒)
设定秒脉冲已给定,指示为LED,整过程完成后,蜂鸣器响30秒。
整个设计为正逻辑。
1.2基本原理
洗衣机控制器的设计主要是定时器的设计,由一片FRGA和外围构成了电气控制部分。
FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、启停控制和运动状态控制。
对FPGA芯片的编程采用模块化的VHDL(硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。
顶层和中间层多数是由VHDL的元件例化语句实现。
中间层由无刷直流电机控制、运行模式选择、洗涤选择、定时器、显示器控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制模块组成,他们分别调控底层模块。
第二章
设计方案
设计时参考了已有程序,此芯片有五个输入和三个输出,输入COUNT_M和输入COUNT_N是状态控制键,输入START是输入启动和暂停键,以及一个时钟CLK。
输出是洗衣结束铃声端口和电机驱动端口。
在设计中,为便于调试和观察将时钟周期假设为30S。
本次设计大致可以分成两个模块来看待,控制端和工作端。
控制部分使用了三个进程来处理,进程一控制状态COUNT_M,进程二控制状态COUNT_N,进程三控制开始和暂停。
工作部分使用了一个进程来处理,在该进程中主要处理强制开盖,洗衣的各个状态,以及洗衣结束后的铃声。
控制端COUNT_M中,SG是工作结束标志信号,信号TS控制洗衣机的暂停和重新启动,DT是状态的中间变量。
COOKK为强开洗衣机盖子信号端,DCP输入状态中间信号。
洗衣机正常工作过程:
洗衣机总共有九种工作状态,这九种状态可以分成三大部分,强洗,标准,弱洗,此三种状态的洗衣过程类似,因此以强洗来解释说明。
洗涤完成后,将信号TP变换到漂洗状态,然后变换到甩干,甩干结束后将TP置零,以及输出状态置一。
然后等待下次洗涤。
图3设计方案二
第四章设计程序
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYstudentIS
PORT(COUNT_N,COUNT_M,START,COOK,CLK:
INSTD_LOGIC;
LOOK:
OUTSTD_LOGIC;
DOUT:
OUTSTD_LOGIC_VECTOR(1DOWNTO0));
ENDSTUDENT;
ARCHITECTUREBEHAVOFstudentIS
SIGNALDT1,DT2:
STD_LOGIC_VECTOR(1DOWNTO0);
SIGNALDICSOUNT,TEM:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALDCP:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALCT:
STD_LOGIC_VECTOR(5DOWNTO0);
SIGNALCT1,CT2:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALSG,CMKS:
STD_LOGIC;
BEGIN
PROCESS(COUNT_N,SG)
BEGIN
IFSG='1'THEN
DT1<="00";
ELSIFCOUNT_N'EVENTANDCOUNT_N='1'THEN
IFDT1=3THEN
DT1<="01";
ELSE
DT1<=DT1+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(COUNT_M,SG)
BEGIN
IFSG='1'THEN
DT2<="00";
ELSIFCOUNT_M'EVENTANDCOUNT_M='1'THEN
IFDT2=3THEN
DT2<="01";
ELSE
DT2<=DT2+1;
ENDIF;
ENDIF;
ENDPROCESS;
PROCESS(START)
BEGIN
IFSG='1'THEN
CMKS<='0';
ELSIFSTART'EVENTANDSTART='1'THEN
DICSOUNT<=DT1&DT2;CMKS<=CMKSXOR'1';
ENDIF;
ENDPROCESS;
PROCESS(CLK,START,COOK)
BEGIN
IFSTART='1'ANDDCP="0000"THEN
DCP<=DICSOUNT;
ELSIFCLK'EVENTANDCLK='1'THEN
IFCOOK='1'THEN
DOUT<="00";
ELSIFSTART='1'ANDDCP>"0000"THEN
DOUT<="00";
ELSIFSG='1'THEN
IFCT1<"0001"THEN
CT1<="0000";SG<='0';
ENDIF;
ELSIFCMKS='1'THEN
CASEDCPIS
WHEN"0101"=>
IFCT<35THEN
CT<=CT+1;
IFCT1<8THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=8THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<8THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=8THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="0110";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"0110"=>
IFCT<27THEN
CT<=CT+1;
IFCT1<6THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=6THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<6THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=6THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="0111";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"0111"=>
IFCT<8THEN
CT<=CT+1;
IFCT1<3THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=3THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<3THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=3THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="0000";CT<="000000";CT1<="0000";CT2<="0000";SG<='1';
ENDIF;
WHEN"1001"=>
IFCT<27THEN
CT<=CT+1;
IFCT1<6THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=6THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<6THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=6THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="1010";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"1010"=>
IFCT<15THEN
CT<=CT+1;
IFCT1<3THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=3THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<3THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=3THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="1011";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"1011"=>
IFCT<8THEN
CT<=CT+1;
IFCT1<3THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=3THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<3THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=3THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="0000";CT<="000000";CT1<="0000";CT2<="0000";SG<='1';
ENDIF;
WHEN"1101"=>
IFCT<19THEN
CT<=CT+1;
IFCT1<4THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=4THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<4THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=4THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="1110";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"1110"=>
IFCT<11THEN
CT<=CT+1;
IFCT1<2THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=2THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<2THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=2THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="1111";CT<="000000";CT1<="0000";CT2<="0000";DOUT<="00";
ENDIF;
WHEN"1111"=>
IFCT<8THEN
CT<=CT+1;
IFCT1<3THEN
DOUT<="01";CT1<=CT1+1;
ELSIFCT1=3THEN
DOUT<="00";CT1<=CT1+1;
ELSIFCT2<3THEN
DOUT<="10";CT2<=CT2+1;
ELSIFCT2=3THEN
DOUT<="00";CT1<="0000";CT2<="0000";
ENDIF;
ELSE
DCP<="0000";CT<="000000";CT1<="0000";CT2<="0000";SG<='1';
ENDIF;
WHENOTHERS=>
DOUT<="00";
ENDCASE;
ENDIF;
ENDIF;
ENDPROCESS;
LOOK<=SG;
ENDBEHAV;
第五章仿真结果
漂洗全部过程
强洗漂洗、甩干
强洗(甩干)
标准全部过程
标准(漂洗、甩干)
标准(甩干)
弱洗全过程
弱洗(漂洗、甩干)
九、弱洗(甩干)
强开盖子:
一、强洗强开盖
一、标准强开盖
二、弱洗强开盖
暂停和启动
一、强洗暂停
二、强洗重新启动
三、标准暂停
四、标准重新启动
五、弱洗暂停
六、弱洗重新启动
两次洗衣
两次标准(漂洗、甩干)
一、两次弱甩干
第六章仿真结果分析
在仿真的过程中,出现波形的结果基本符合要求,计数器的工作也很理想,“正转”、“反转”、“暂停”的指示灯动作也很好,定时结束时,自动清零,同时指示灯亮,提醒时间到。
,唯一不足的是没有将电路置数的功能设计好,只能按照预设的时间100分钟开始工作。
除此之外,以至于出现的脉冲波形不是标准的占空比为百分之五十的方波。
不过,总的来说,仿真结果还是比较令人满意的,比较成功。
第七章体会小结
经过了这次课程设计,深有感触啊。
每天都在想周这个问题该如何解决,那个地方有什么不对;大家都急啊,千呼万唤出来了,可以想象搞开发是如何的不容易了,工作更是不简单,生活不是我们在寝室里所想象的那样,首先自己的事情主要还是靠自己,虽然合作也同样重要,有一个好的合作伙伴也是不容忽视的,现在的很多工程、项目或者开发都是一个团体共同努力,每一个成员都要用功,一个项目或课题决定在几个人手里,那是不健康的、没有什么刚好的前途的,从本次课程设计的目的来看,收获也是不少的,它使我们对课本以及以前学过的知识有了一个更好的总结与理解,也让我们知道了,光分开使不够的,从外面学到的知识要把形成一各整体,这也很好的训练了外面对开发一个项目应该有怎样的思路和准备更清晰。
无论是从C语言课程设计到金工实习,还是从电子实习到现在的数电课程设计,每一次自己都觉得有一个进步,虽然有些方面自己做不出,但可以从老师和其他同学那里学到更好更多的东西,他们从另一个方面透析了自己的困难,这是很重要的,它让我学会了怎样学习别人的长处并把它变成自己的长处。
有这样的机会和收获,要感谢老师的辅导以及同学的帮助,是他们让自己有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路,虽然自己走出来的路要崎岖的多,但觉得踏实、放心。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 洗衣机 设计 eda