您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 空调系统有限状态机的设计
弗兰柯基大学空调系统有限状态机的设计摘要:空调系统状态机自动控制是以可编程逻辑为核心,配以各种传感器,电机驱动,状态机,变频器等实现自动控制,能确保空调末端温度供给,降低系统运行费用和时间,从而节约资源,它必将日趋成熟,在人类的生活中大显身手。一直以来,环保问题时世界关注的焦点,各种替代能源动力车的出现,为空调业提出来新的课题与挑战。现代家用也得发展成为人们生活的追求,空调已成为人们的必备品。关键字:FPGA,空调系统状态机,自动控制。弗兰柯基大学一、设计分析:1.课程设计目的:本课程设计的目的是在掌握EDA实验开发的初步使用基础上,了解EDA技术,对空调系统进一步了解,掌握其状态机的工作原理,掌握用Verilog实现状态机的方法。通过本课程的设计,更好的巩固加深基础知识的理解,独立完成仿真过程,增强理论联系实际,提高电路分析能力,为日后的学习奠定基础。2.课程设计要求:试设计一个空调系统状态机,它两个输入端A和B分别与传感器相连(用两位拨码开关模拟),用于检测室内温度。如果室内温度正常,则A和B均为0。如果室内温度过高,则A为“1”,B为“0”。如果室内温度过低,则A为“0”,B为“1”。根据A和B的值来判断当前的状态,如太热,则在液晶上显示TOO-HOT,并将输出端COOL置为“1”,并显示,表明现在开始制冷;如太冷,则在液晶上显示TOO-COLD,并将输出端HEAT置为“1”,并显示,表明现在开始加热;如适中,则在液晶上显示JUST-RIGHT,COOL和HEAT都为“0”。要求一:由传感器检测室内温度,并将采集来的数据传输到控制系统的预处理单元,在预处理单元将采集来的温度信号与设定值相比较,来判断当前的状态(太热、太冷或适中),然后将处理结果传输到控制单元,最后由执行机构接受控制单元输出的控制信号,控制弗兰柯基大学室内空调。要求二:脉冲序列检测器广泛应用于现代数字通信系统中。随着通信技术的发展,对多路脉冲序列信号检测要求越来越高,本实验设计一个基于FPGA的多路脉冲序列检测器的设计方案,要求能对多路脉冲序列信号进行检测。设计完成后,经综合和仿真验证波形与代码作用是否一致。二、软件设计模块程序1.空调有限自动状态机的总体模块示意图,如图一所示:输入输出描述如下:输入:clk,接入系统时钟,作为系统时基,高电平有效。两位的环境采样信号,A为高温,B为低温。四位中间变量,justright=’00'为常温,toocold='01’为太低,toohot='10'为太热,stvar代表当前状态。A=0并且B=0,则justright=stvar,A=0并且B=1,则toocold=stvar,A=1并且B=0,则toohot=stvar.弗兰柯基大学输出:heaT为加热操作标志,cooL为制冷操作标志,justright状态无需任何操作,toocold状态时,stvar赋给cool制热,toohot状态时,stvar赋给heat制冷。2.序列检测器总体模块示意图如图二所示:输入:DIN是存放8位序列的数值,CLK为时钟脉冲,CLR为清零端,中间信号D为标准逻辑矢量,用来存放预制数的每一位,中间信号Q为整型,范围是0到8。输出:AB为输出端,用来显示检测序列数的正确性,输出A或B,A表明此数与预制的密码相同,B表明不同。3.程序简要说明空调空调系统的有限状态自动机VHDL程序分析:Typestate_typeis(just_right,too_cold,too_hot);Attributesequential_encoding:string;弗兰柯基大学Attributesequential_encodingofstate_type:typeis000110;signalstvar:state_type;attributestate_vector:string;attributestate_vectorofstyle_b:architectureisstvar;定义state_type的属性sequential_encoding,定义stvar的属性state_vector,给just_right,too_cold,too_hot分别赋值“000110”。(2)waituntilclk='1';if(temp_low=’1’)thenstvar-too_cold;elsif(temp_high=’1’)thenstvars=too_hot;elsestvar=just_right;endif;casestvariswhenjust_right=heat='0';cool='0';whentoocold=heat='l';cool='0';whentoo_hot=heat='0';cool='1';endcase;当clk为上升沿时,先判断temp_low,temp_high的值,再断给stvar赋什么值,当temp_low='1’时,stvar=too_cold,则输出heat='l';cool='0';当temp_high='l'时,stvar=too_hot,则输弗兰柯基大学出heat='0';coo1='1';当temp_low='0',temp_high='0'时,stvar=just_right,则输出heat='0';cool='0'、序列检测器VHDL程序分析d=“11100101”process(clk,clr)beginifclr='1'thenq=0;elsifclk'eventandclk='1'thenIfclr=’1'thenq=0;elsifclk'eventandclk='1'then首先设置了一个8位待检测的预置数,之后定义一个进程,该进程语句是对信号clk,clr敏感,这两个信号中只要有一个信号发生变化,都将启动该进程语句,在进程语句中,如果清除信号为高电平,那么q就置零,否则当来一个上升沿时钟脉冲,就进行序列检测。(2)caseqisWhen0=ifdin=d(7)thenq=1;elseq=0;endif;when1=ifdin=d(6)thenq=2;elseq=0:endif;When2=ifdin=d(5)thenq=3;elseq=O;endif;When3=ifdin=d(4)thenq-4;elseq0;endif;when4=ifdin=d(3)thenq=;elseq=0;endif;When5=ifdin=d(2)thenq=6;elseq=0;endif;弗兰柯基大学when6=ifdin=d(1)thenq=7;elseq=0;endif;when7=ifdin=d(0)thenq=8;elseq=0;endif;whenothers=q=0;endcase;这是一个case语句,根据q的值的不同来执行之后的语句,当q的值与所以条件句的选择值都不相同时,则执行others后面的顺序语句。注意:条件句中的“=”不是操作符,而是相当于“then”的作用。上述代码的作用是检测序列,如果每一位的连续检测中都与预置的密码数相同,那么q最后的值就为8,否则只要有一个序列不相同,q的值就为0,就重新检测。(3)process(q)beginIfq=8thenab=“1010”;elseab=“1011”;endif;endprocess;这个进程是用来检测结果的判断输出,如果序列检测正确就输出A,否则输出B。弗兰柯基大学三、硬件电路1.建立TOP顶层文件如下图所示;弗兰柯基大学2.对TOP顶层模块文件编译,编译成功后如图所示;3.修改DeviceandpinOptions中的UnusedPins,改为三态输入。如图:弗兰柯基大学4.进行引脚分配,如图所示:四、仿真结果波形仿真空调有限系统自动状态机波形仿真一如图所示:空调有限系统自动状态机波形仿真二如图所示:弗兰柯基大学空调有限系统自动状态机波形仿真三如图所示:波形一的时序、逻辑分析:由仿真波形一可以看出:当clk=1为上升沿时,A=1,B=1时,表示不可能发生此种情况,即不会发生又热又冷的情况,所以此时输出heat,cool的输出都为零,不制热或制冷。波形二的时序、逻辑分析:由仿真波形二可以看出:当clk=1为上升沿时,A=0,B=1时,stvar=too_cold,heat=’1’;cool=’0’,即此时太冷开始制热。波形三的时序、逻辑分析:由仿真波形三可以看出:当来一个上升沿时钟脉冲以后,din的值为1,第二个时钟上升沿来了,din的值为1,以此类推,可以检测到的数据为“11100101”与原来的8位待检测数据完全一样,所以输出端ab有输出A。其余数据不一样的输出为B。下载到试验箱上,进行调试;弗兰柯基大学液晶显示模块:下图为温度正常,COOL和HEAT都为“0”。如下图所示:次图为温度太低,HEAT开始加热。HEAT为“1”。如下图所示:此图为温度太高,COOL开始制冷,COOL为“1”。流水灯从右向左开始灭。弗兰柯基大学流水灯从左向右开始灭弗兰柯基大学五.总结分析整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。通过这次设计,我懂得了学习的重要性,了解到理论知识与实弗兰柯基大学践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。所以我认为这次的课程设计意义很深,和我的队友的共同学习﹑配合﹑努力的过程也很愉快,另外还要感谢老师的耐心辅导。
本文标题:空调系统有限状态机的设计
链接地址:https://www.777doc.com/doc-7077251 .html