《EDA课程设计洗衣机EDA应用实训.docx》由会员分享,可在线阅读,更多相关《EDA课程设计洗衣机EDA应用实训.docx(16页珍藏版)》请在优知文库上搜索。
1、EDA课程设计洗衣机目录1绪论11.1 知识背景11.2 任务要求11.3 分析理解22方案的论证及选择22.1 设计原理及总体框图23单元电路的设计33.1 预置时间和编码电路33.2 数码管显示模块43.3 时序控制电路63.4 译码器模块73.5 减法计数器模块84电路图的绘制105电路的仿真及调试126心得体会13参考文献151绪论1.1 知识背景EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大
2、量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。利用可编程逻辑器件丰富的内部资源,借助EDA(电子设计自动化)工具(如MAX+PLUSII)把家电控制器电路集成在一片FPGA(现场可编
3、程门阵列)芯片内,这样就无需专门的单片机和外部逻辑电路。从而减小了电路的体积、提高了系统的稳定性。一个简易的全自动洗衣机就可以利用这个方法来实现对洗涤过程的控制O1.2 任务要求初始条件:设计一个洗衣机洗涤程序控制器,具有根据衣量设定不同洗涤时间、洗涤完毕有声音提醒等功能,在洗涤过程中通过不同颜色的指示灯反映洗涤三种状态:正转、反转和暂停。要求完成的主要任务:1)洗衣机工作时间可以在115分钟任意设定。2)电机运行规律为正转20S,停10S,反转20S,停10S,再正转20S,依此规律反复运行。3)以分为单位显示洗衣机剩余工作时间,每当电机运行1分钟,显示器自动减1,直到显示器为“0”,电机停
4、止运转,并发出3声蜂鸣声提醒洗涤完毕。4)电机正转、反转和暂停通过LED灯区分。5)广泛调研,提出几种可行的方案,多方论证,确定设计方案。在EDA仿真软件上完成设计和仿真。1.3分析理解针对任务具体要求,可以设想这样一个具有定时、显示、提醒、控制等功能的洗衣机应当包含有多个模块,这些模块相互配合才能完成全部的要求。定时需要减计数器,显示需要数码管,正转反转暂时的实际也需要计数器的控制,同时设定不同状态亮起不同颜色的LED灯,这需要译码器的使用,最后的报警则应设在时间到零时刻的时候对蜂鸣器进行触发。2方案的论证及选择2.1设计原理及总体框图洗衣机控制器的设计主要是定时器的设计,由一片FPGA和外
5、围电路构成了电器控制部分。FPGA接收键盘的控制命令,控制洗衣机的进水、排水、水位和洗衣机的工作状态、并控制显示工作状态以及设定直流电机速度、正反转控制、制动控制、起停控制和运动状态控制。对FPGA芯片的编程采用模块化的VHDL(硬件描述语言)进行设计,设计分为三层实现,顶层实现整个芯片的功能。顶层和中间层多数是由VHDL的元件例化语句实现。中间层由无刷直流电机控制、运行模式选择、洗涤模式选择、定时器、显示控制、键盘扫描、水位控制以及对直流电机控制板进行速度设定、正反转控制、启停控制等模块组成,它们分别调用底层模块。总体框图如图1所示:图1总体框图从框图看来,整个设计可以分为五个模块:数码管显
6、示模块、时序控制电路、预置时间和编码电路、译码器模块、减法计数器模块。从预置时间开始,给开始信号让电机开始运转,由数码管显示模块控制时间的显示,同时减法计数器进行计时操作,时序控制电路控制洗衣机的运转情况,通过译码模块来决定电机运转状态,即正转反转还是暂停,各个运转状态的时间也需减法计数器来控制。下面进行分模块讨论。3单元电路的设计3.1 预置时间和编码电路定义实体DlNGSHI,具有LOAD、FEN两个输入端口,0一个输出端口。LOAD是一个时钟信号,当其出现上升沿时,将输入的时间进行预置,而FEN的代表分钟数,由输入的信号来进行时间预置分钟的判断,分别列举115的BCD码,根据不同情况进行
7、选择输出分钟数0。1.IBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDINGSHIISP0RT(START:INSTD_L0GIC;FEN:INSTD_L0GIC_VECT0R(3DOWNTO0);O:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDDINGSHI;ARCHITECTUREMK1OFDINGSHIISSIGNALPl:STD_L0GIC_VECT0R(7DOWNTOO);BEGINProcess(START)BEGINIF(START,EVENTANDSTA
8、RT=1)THENCASEFENISWHEN0000=PK=nOOO(XX)OOn;WHEN0001=P1P1=OOO(XX)10;WHENOO1P1P1P1PlPlP1PK=nOOOOl00,;WHEN1010=PK=00010000;WHEN101,=PK=nOOOl000,;WHEN1100=PK=nOOO10010;WHEN,110,=PK=nOOOlOOHn;WHEN1110,=PlPK=mOOO1010,;WHENOTHERS=P1=00000000;ENDCASE;ENDIF;ENDPROCESS;O=P1;ENDMKl;3.2 数码管显示模块采用共阴极的数码管,当有高电平时相应
9、管脚亮,对应数字0-9,七段管脚会有相应的亮暗,将规则列出,可以将输入的数字NUM分成高四位和低四位,分别用两个数码管来显示。11BRARYIEEE;USEIEEE.STDOGIC164.All;USEIEEE.STDOGleLUNSlGNED.A11;ENTITYSHOWTIMEISPORT(NUM:INSTDOGlCLVECTe)R(7DOWNTO0);ClKJNSTDOGlC;Q1,Q2:OUTSTDOGIC_VECT0R(6DOWNTO0);ENDSHOWTIME;ARCHITECTUREONEOFSHOWTIMEISSIGNAITEMPI,TEMP2:STD_1OGIC_VECTOR
10、(6DOWNTOO);SIGNAlBCD1,BCD2:STD_IOGIC_VECTOR(3DOWNTOO);BEGINPROCESS(C1K)BEGINIF(C1KEVENTANDCIK=*)THENBCD1=NUM(7DOWNTO4);BCD2TEMPK=,11IlllOn;WHENnOOO,=TEMPK=0110OOOn;WHENnOOl0,=TEMPK=,110110,;WHENnOOl,=TEMPK=,111100,;WHENnOl00,=TEMPK=011001,;WHENn010,=TEMPK=,101101,;WHENnOll0=TEMPK=,101111,;WHENn011=T
11、EMPK=nI110000;WHENnl000,=TEMPlTEMPK=,11110U;WHENOTHERS=TEMP1TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2TEMP2=,0000000;ENDCASE;ENDPROCESS;QK=TEMPl;Q2=TEMP2;ENDONE;3.3 时序控制电路该模块中,输入端口有时钟信号CLK,清零信号RD,高电平有效,开始信号START,高电平触发,当使能有效且START为高电平时,每到来一个时钟上升沿,中间信号Q就减1,Q从59减至40,输出洗涤状态信号XlDl为100,代表正转20S,Q从3
12、9减至30,对应XIDI为001,代表暂停10S,Q从29减至10,对应XIDI为010,代表反转20S,Q从10减至0,对应XlDl为001,代表暂停10S,当Q=O时,又重新装载数值59,进行新一轮计数,如此循环。1.IBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSHIXUISPORT(CLK:INSTD_LOGIC;RD:INSTD_LOGIC;START:INSTD_LOGIC;xidlbufferstd_logic_vecto
13、r(2downtoo);ENDSHIXU;ARCHITECTUREMK3OFSHIXUISSIGNALQ:STD_LOGIC_VECTOR(5DOWNTO0);BEGINPROCESS(CLK,EN,Q)BEGINIF(RD=t1)OR(START=0)THENXIDK=mOO1;Q=11101,;ELSEIF(CLKEVENTANDCLK=)THENIFQ=000000THENQ=,11101,;SHUCHU=100;ELSIFQ=11101OuTHENXIDK=100;ELSIFQ=100IIluTHENXIDK=nOO,;ELSIFQ=,01IlOlnTHENXIDI=010;ELSIFQ=mOO100!THENXIDK=nOOln;ENDIF;Q=Q-1;ENDIF;EN