基于FPGA的电梯控制器.docx
- 文档编号:9874092
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:24
- 大小:204.25KB
基于FPGA的电梯控制器.docx
《基于FPGA的电梯控制器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的电梯控制器.docx(24页珍藏版)》请在冰豆网上搜索。
基于FPGA的电梯控制器
唐山学院
EDA技术课程设计
题目基于FPGA的电梯控制器设计
系(部)信息工程系
班级
姓名
学号
指导教师
2013年1月7日至1月11日共1周
2013年1月10日
《EDA技术》课程设计任务书
一、设计题目、内容及要求
设计题目:
《基于FPGA的电梯控制器设计》
设计内容:
设计一个三层电梯控制器,具体要求:
(1)每层电梯设有上下请求开关,电梯轿厢内设有乘客到达层次的停站请求开关。
(2)设有电梯所处位置指示装置及电梯运行情况指示。
(3)当电梯处于上升时,只响应比电梯所在位置高的上楼请求信号,直到最后一个上楼请求执行完毕,再进入下降模式。
(4)当电梯处于下降时,只响应比电梯所在位置低的下楼请求信号,直到最后一个下楼请求执行完毕,再进入上升模式。
(5)电梯的初始状态为第一楼层。
(6)设计超载报警功能。
设计要求:
(1)根据任务要求确定电路各功能模块;
(2)写出设计代码;
(3)给出时序仿真结果和硬件调试结果;
(4)最后要有设计总结。
二、设计原始资料
QuartusⅡ软件,EDA实验箱。
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
软件仿真和硬件仿真结果;课程设计说明书。
四、进程安排
周1-周4:
查阅资料,上机编写并调试代码;
周5:
课程设计答辩并提交设计说明书。
五、主要参考资料
[1].VokneiA.Pedroni.《VHDL数字电路设计教程》[M].电子工业出版社,2008.5
[2].潘松,黄继业.《EDA技术实用教程》(第二版)[M].科学出版社,2005.2
[3].焦素敏.《EDA应用技术》[M].清华大学出版社,2002.4
指导教师(签名):
教研室主任(签名):
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年月日
1前言
当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。
目前电梯控制系统主要有三种控制方式:
继电路控制系统(“早期安装的电梯多位继电器控制系统”)、FPGA/CPLD的控制系统、微机控制系统。
继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰,微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。
而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。
随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。
采用EDA设计,拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。
本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。
2EDA技术介绍
2.1EDA技术简介
EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
2.2EDA技术的发展
从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。
现在对EDA的概念或范畴用得很宽。
包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。
目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。
例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。
EDA设计可分为系统级、电路级和物理实现级。
在EDA软件开发方面,目前主要集中在美国。
但各国也正在努力开发相应的工具。
日本、韩国都有ASIC设计工具,但不对外开放。
中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。
相信在不久的将来会有更多更好的设计工具在各地开花并结果。
据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年夏合增长率分别达到了50%和30%。
3电梯控制器设计
3.1电梯控制器设计总体框图
状态显示器
主控制器
楼层显示器
译码器
分控制器
楼层选择器
图3–1总体框图
电梯控制器的功能模块如图所示,包括主控制器、分控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
分控制器把有效的请求传给主控制器进行处理,同时显示电梯的运行状态和电梯所在楼层数。
由于分控制器相对简单很多,所以主控制器是核心部分。
3.2电梯控制器设计思路
本系统的主要输入有电梯外上下控制按钮Button(其中Button(0)表示一楼电梯外上升请求,Button
(1)表示二楼电梯外上升请求,Button
(2)表示二楼电梯外下降请求,Button(3)表示三楼电梯外下降请求);电梯内到达楼层控制按钮floor(其中floor(0)表示请求到达一层,floor
(1)表示请求到达二层,floor
(2)表示请求到达三层)。
系统的输出包括电梯位置标识position,表示电梯当前所在楼层;电梯开门关门显示按钮door(当door=1时表示开门,door=0表示关门);电梯当前运行状态按钮up_down(当up_down=1时表示电梯处于上升状态,当up_down=0时表示电梯处于下降状态)。
系统主要通过当前所在楼层以及运行状态、后续请求判断运行方式。
电梯处在第一层时,当它收到二层电梯外上下楼请求、三层电梯外下楼请求、一层电梯内到达二层和三层请求时,电梯会按照指令上升到相应楼层并开门、关门;若收到一层电梯外上楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。
当电梯处在第二层时,若系统收到二层电梯外上下楼请求只做开门响应;若收到三层电梯外下楼或二层电梯内到达三层请求,则做上楼响应、开门;若收到一层电梯外上楼或二层电梯内到达一层请求,则做下楼楼响应并开门;其他请求不响应。
当电梯处在第三层时,若它收到二层电梯外上下楼请求、一层电梯外上楼请求、电梯内到达二层和一层请求时,电梯会按照指令下降到相应楼层并开门、关门;若收到三层电梯外下楼请求只做开门响应,随后根据使用者进入电梯后请求进行响应;其他请求不响应。
若电梯正处在上升状态中收到外部请求,则只响应比当前所在楼层高的楼层的请求,到达需要到达最高楼层时再响应低层请求。
若电梯正处在下降状态中收到外部请求,则只响应比当前所在楼层低的楼层的请求,到达需要到达最低楼层时再响应高层请求。
3.3电梯处于各楼层的具体分析
处于一楼时,不管是电梯内或电梯外,电梯都只可能接收到上升的请求信号。
此时,电梯就进入预上升状态,准备作上升运行,如果电梯没有接收到请求信号,电梯则在一楼待机。
有信号将上升
处于一楼
等待信号
图3-2电梯处于一楼
处于二楼时,电梯则可能出现三种情况:
1.电梯并没有接受到电梯内或电梯外的任何请求信号时,电梯则停留在当前楼层。
2.电梯接收到上升请求信号,进入预上升状态。
3.电梯接收到下降请求信号,进入预下降状态。
有信号等待上升
等待信号
处于二楼
有信号等待下降
图3-3电梯处于二楼
处于三楼时,不管电梯内或电梯外电梯都只可能接收到下降的请求信号。
此时,电梯就进入预下降状态,准备作下降运行。
如果电梯没有接收到请求信号,电梯则停留在三楼。
有信号等待下降
处于三楼
等待信号
图3-4电梯处于三楼
电梯的运行规则确立后,需对整个控制程序的设计做一个流程规范。
对程序进行模块化构思。
根据VHDL语言的规则,程序必须由最基本的实体和结构体构成。
实体对控制器的端口进行定义,结构体对各端口的行为进行描述。
因此程序运行需经过以下流程:
VHDL库调用:
确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内信号进行处理。
总流程图如下
图3-5总流程图
3.4电梯外部端口具体说明
3.4.1定义各个端口
1.时钟信号(clk);
2.一楼电梯外人的上升请求信号(Button[0]),二楼电梯外人的上升请求信号(Button[1]);二楼电梯外人的下降请求信号(Button[2]),三楼电梯外人的下降请求信号(Button[3]);
3.电梯内人请求到达一楼的信号(fllor[0]),电梯内人请求到大二楼的信号(floor[1]),电梯内人请求到大三楼的信号(floor[2]);
4.电梯控制复位信号(reset);
5.电梯所在楼层显示(position[3..0]);
6.电梯开门状态(door);
7.电梯上下指示(up-down);
3.4.2引脚锁定
表3-1:
输入引脚锁定
输入信号
锁定的引脚
clk
PIN(76)
Button[3]
PIN(68)
Button[2]
PIN(69)
Button[1]
PIN(70)
Button[0]
PIN(73)
floor[2]
PIN(80)
floor[1]
PIN(81)
floor[0]
PIN(82)
reset
PIN(83)
warm
PIN(57)
输入共10个信号,clk为输入脉冲,提供时钟,信号Button[3]为三楼外下降请求信号,Button[2]为二楼外下降请求信号,Button[1]为二楼外上升请求信号,Button[0]为一楼外上升请求信号;floor[2]为电梯内三层请求信号,floor[1]为电梯内二层请求信号,floor[0]为电梯内一层请求信号;reset为复位信号;warm为警告信号。
表3-2:
输出引脚锁定
输出信号
锁定的引脚
door
PIN(78)
Position[3]
PIN(46)
Position[2]
PIN(45)
Position[1]
PIN(44)
Position[0]
PIN(39)
q
PIN(94)
up_down
PIN(95)
输出信号共7个door为门信号,当door=’1’时表示为门开,当door=’0’时表示门关;position[3]、position[2]、position[1]、position[0],为控制数码管显示的输出引脚;q为警告指示信号,当触发警告warm时q=’1’’则超载,当q=’0’时则没事;up_down为上下楼层显示信号,当up_down=’1’时表示电梯正在向上运行,当up_down=’0’时表示电梯正在向下运行。
4仿真结果与说明
图4-1从一楼到三楼
使用者在一楼给予电梯上升请求信号,即button[0]置1,随后门打开,即door置1,使用者在电梯内给予三楼请求信号,随后门关闭,即door置0,并电梯上升,即up_down置1,最后到达三楼后门打开,door置1。
图4-2三楼下一楼同时二楼有上升请求
使用者在三楼给予电梯一下降请求,即button[3]置1,随后门打开,即door置1,使用者在电梯内给予一层请求信号,随后门关闭,即door置0,当到达一楼时门打开,即door置1,随后门关闭,door置0,到达二楼后,门打开,door置1.
图4-3一楼到三楼在二楼时接另一人
电梯上升过程中可以接收较高楼层的要求。
开始时有人按下一层外上升(Button(0)=1)按钮,电梯开门使用者进入并按下到达三层(floor
(2)=1)请求,此时电梯关门并上升。
在电梯上升但未到达二层时,二层外有人按下上楼(Button
(1)=1)请求,因此当电梯到达二层(position=2)后停止并开门,待二层使用者进入后再完成第一个使用者的请求到达三层。
图4-4有警告信号存在时
当有超载信号时警报指示等亮起,即q置1,电梯将一直在一楼。
当警告信号结束时电梯才正常运行。
5总结
这次EDA课程设计虽然时间较短但是收获普丰,使得我对VHDL语言的理解与应用能力得到了较大的提升,让我认识到只要深入学习,提升的空间永远是存在的。
在本次课程设计中凸显了我的不足之处,比如软件运用不太熟练,对VHDL语言语法有诸多不清楚的认识,使在课程设计中遇到诸多困难。
但是好在通过查阅资料和老师同学的帮助得以解决,使课程设计顺利完成。
用VHDL硬件描述语言的形式进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误。
降低了开发成本,这中设计方法必将在未来的数字系统设计中发挥越来越重的作用。
动手实践是理论知识得以灵活运用的必要前提,也是今后走上工作岗位之后能够很好的完成设计工作的技术保证。
只有遇到实际问题并根据自己对课堂上获得的专业知识的理解来解决才能真正的提高自己的能力。
这也提醒我在平时的学习生活中不能一味埋头于课本知识,当今社会竞争越来越激烈,社会对人才的要求越来越全面,只有理论知识是远远不够的,必须靠实践作支撑。
时间是检验真理的唯一标准这句话在这里同样适用。
想要更加了解EDA技术这一领域必然还要经过更多的实践与努力,了解更多的这方面的知识,与时代共同进步,达到学以致用的效果。
再次感谢在本次课程设计中帮助我完成设计的老师与同学们,没有你们的帮助我不能顺利的完成此次课程设计,在这里提前祝老师与同学新年快乐。
参考文献
[1].VokneiA.Pedroni.《VHDL数字电路设计教程》[M].电子工业出版社,2008.5
[2].潘松,黄继业.《EDA技术实用教程》(第二版)[M].科学出版社,2005.2
[3].焦素敏.《EDA应用技术》[M].清华大学出版社,2002.4
[4]梁延东主编。
电梯控制技术[M]。
中国建筑工业出版社,1997
[5]李鼎培,当前电梯研制开发技术动态[J],中国电梯,1995
附录程序代码
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.all;
USEIEEE.STD_LOGIC_UNSIGNED.all;
ENTITYliIS
PORT(CLK:
INSTD_LOGIC;
reset,warm:
INSTD_LOGIC;
Button:
INSTD_LOGIC_VECTOR(3DOWNTO0);--button(0)为一层外上升请求,button
(1)为二层外上升请求button
(2)为二楼外下降请求,Button(3)为三层外下降请求;
floor:
INSTD_LOGIC_VECTOR(2DOWNTO0);--floor(0)为电梯内一层请求按钮,floor
(1)为电梯内二层请求按钮,
--floor
(2)为电梯内三层请求按钮;
position:
OUTSTD_LOGIC_VECTOR(3DOWNTO0);
--position表示电梯当前位置信息;
door:
OUTSTD_LOGIC;--'1'为开门,'0'为关门;
up_down,q:
OUTSTD_LOGIC--'1'为上楼,'0'为下楼;
);
ENDli;
ARCHITECTUREhappenOFliIS
TYPEStateIS(S0,S1U,S1D,S2);
--S1U为二楼上状态,S1D为二楼下状态;
SIGNALcurrent_state:
State;--中间变量:
当前状态
SIGNALnext_state:
State;--中间变量:
下一状态
SIGNALup:
STD_LOGIC;--中间变量:
上升下降状态
SIGNALdor:
STD_LOGIC;--中间变量:
开门关门状态
BEGIN
P1:
PROCESS(CLK)--状态转换进程;
BEGIN
IFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿
ifwarm='0'then
current_state<=next_state;
ENDIF;
endif;
ENDPROCESS;
P2:
PROCESS(reset,clk,current_state,up,button,floor)VARIABLEbutton_var:
STD_LOGIC_VECTOR(3DOWNTO0);
VARIABLEfloor_var:
STD_LOGIC_VECTOR(2DOWNTO0);
VARIABLEcat:
STD_LOGIC;
VARIABLEca_time:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
IFreset='1'THEN--复位处理,初始状态为一层
next_state<=S0;
position<="0001";
cat:
='0';
ca_time:
="0000";
up<='Z';
dor<='0';
button_var(3DOWNTO0):
="0000";
floor_var(2DOWNTO0):
="000";
ELSIFclk'eventandclk='1'THEN
--若无复位信号,则将外部按钮信号存储到7个变量之中;
IFbutton(0)='1'THENbutton_var(0):
='1';ELSENULL;ENDIF;
IFbutton
(1)='1'THENbutton_var
(1):
='1';ELSENULL;ENDIF;
IFbutton
(2)='1'THENbutton_var
(2):
='1';ELSENULL;ENDIF;
IFbutton(3)='1'THENbutton_var(3):
='1';ELSENULL;ENDIF;
IFfloor(0)='1'THENfloor_var(0):
='1';ELSENULL;ENDIF;
IFfloor
(1)='1'THENfloor_var
(1):
='1';ELSENULL;ENDIF;
IFfloor
(2)='1'THENfloor_var
(2):
='1';ELSENULL;ENDIF;
IFcat='0'THENca_time:
=ca_time+1;ENDIF;--开门,关门计时;CASEcurrent_stateIS
WHENS0=>--一楼状态处理;
position<="0001";
cat:
='0';
IF(button_var(0)orfloor_var(0))='1'THEN
CASEca_timeIS
WHEN"0011"=>dor<='1';
WHEN"1101"=>dor<='0';
button_var(0):
='0';
floor_var(0):
='0';
IF(floor_var
(1)orfloor_var
(2))='1'THEN
next_state<=S1U;
ca_time:
="0000";
up<='1';
ELSE
next_state<=S0;
ca_time:
="0000";
ENDIF;
WHENothers=>NULL;
ENDCASE;
ELSIF(button_var
(1)ORbutton_var
(2)orbutton_var(3)orfloor_var
(2)orfloor_var
(1))='1'THEN
next_state<=S1U;
ca_time:
="0000";
up<='1';
ELSE
next_state<=S0;
ca_time:
="0000";
ENDIF;
WHENS1U=>--二楼上状态处理;
position<="0010";
cat:
='0';
IFfloor_var
(1)='1'THEN--二楼内上升请求;
CASEca_timeIS
WHEN"0011"=>dor<='1';
WHEN"1101"=>dor<='0';
floor_var
(1):
='0';
IF(button_var
(1)orbutton_var(3)orfloor_var
(2))='1'THEN
next_state<=S2;ca_time:
="0000";button_var
(1):
='0';
ELSIF(button_var(0)orbutton_var
(2)orfloor_var(0))='1'THEN
next_state<=s0;
ca_time:
="0000";button_var
(2):
='0';
ELSE
next_state<=S1U;
ca_time:
="0000";
ENDIF;
WHENothers=>NULL;
ENDCASE;
ELSE
IFbutton_var
(1)='1'THEN--二楼外上升请求;
CASEca_timeIS
WHEN"0011"=>dor<='1';
WHEN"1101"=>dor<='0';
button_var
(1):
='0';
IF(floor_var
(2)orbutton_var(3))='1'
THEN
next_state<=S2;ca_time
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 电梯 控制器
![提示](https://static.bdocx.com/images/bang_tan.gif)