电梯控制器设计资料.docx
- 文档编号:7498713
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:21
- 大小:1.05MB
电梯控制器设计资料.docx
《电梯控制器设计资料.docx》由会员分享,可在线阅读,更多相关《电梯控制器设计资料.docx(21页珍藏版)》请在冰豆网上搜索。
电梯控制器设计资料
《EDA技术》课程设计报告
设计题目:
专业班级:
学生姓名:
学号:
指导教师:
课程设计成绩:
完成日期:
2015年12月20日
引言.....................................................1
1.提出问题...............................................2
2.设计任务及设计要求......................................2
2.1设计任务............................................2
2.2设计要求............................................3
3设计总体思路............................................4
3.1电梯运作流程........................................4
3.2电梯运行控制流程图.................................5
3.3电梯控制器.........................................6
3.4数码管显示控件.....................................7
4各单元电路设计.........................................7
4.1DELED模块..........................................7
4.2电梯控制模块.......................................8
5总体电路设计............................................9
5.1DELED模块功能.....................................9
5.2总体电路..........................................10
5.3试验箱仿真........................................11
6设计调试体会与总结....................................13
参考文献...............................................14
附录...................................................15
引言
随着社会的发展,电梯的使用越来越普遍,已经从原来只在商业大厦、宾馆使用过度到在办公楼、居民楼等场所使用,并且对电梯功能的要求也不断提高,相应地其控制方式也在不停地发生变化。
对于电梯的控制,传统的方法是使用继电器——接触器控制系统进行控制,随着技术的不断发展,微型计算机在电梯控制上的应用日益广泛,现在已进入全微化控制的时代。
VHDL主要用于描述数字系统的结构、行为、功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。
它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。
VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。
VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。
电梯的微机化控制主要有以下几种形式:
1PLC控制2单片机控制3单板机控制4单微机控制5多微机控制6人工智能控制。
随着EDA技术的快速发展,VHDL已广泛应用于电子设计与控制的各个方面本文采用VHDL语言来设计实用六层电梯控制器,其代码具有良好的可读性和易理解性,源程序经A1tera公司的QuartusII软件仿真,目标器件选用CPLD器件。
通过对六层电梯控制器的设计,可以发现本设计有一定的扩展性,而且可以作为更多层电梯控制器实现的基础。
1提出问题
电梯作为垂直方向的交通工具,在高层建筑和公共场所已成为不可或缺的设备。
中国是全球最大的电梯市场,也具有最强的电梯生产能力,但由于缺乏自主知识产权和核心技术,自主品牌占市场的份额很少。
随着社会需求的变化,电梯朝着节能、环保及智能化方向发展。
EDA技术打破了软件和硬件间的壁垒,是计算机的软件技术与硬件实现、设计效率与产品能合二为一,它代表了电子技术和应用技术的发展方向。
VHDL主要用于描述数字系统的接口,结构和功能,它的语法简单易懂,移植性好。
本设计采用VHDL,源程序Altera公司的QuartusII软件仿真。
运用有限状态机的设计方法,设计了两个进程相互配合,状态机进程作为主要进程,信号灯控制进程作为辅助进程。
在主进程中定义了9个状态,分别是“up”、“down”、“stopbutton”、“position”、“doorlight”、“udsig”、“stoplight”、“fuplight”、“fdnlight”在电梯时钟的触发下,通过当前状态和信号灯信号判定下一状态。
信号灯控制进程中,信号灯存储按键请求情况,它的熄灭是由状态机进程中传出的信号来控制。
2设计任务及设计要求
2.1设计任务
六层电梯控制器将实现的功能:
1.每层电梯入口处设有上下请求开关,电梯内设有顾客到达层次的停站请
求开关。
2.设有电梯入口处位置指示装置及电梯运行模式(上升或下降)指示装置。
3.电梯每秒升(降)一层楼。
4.电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门4秒后,电梯门关闭(开门指示灯灭),电梯继续进行,直至执行完最后一个请求信号后停留在当前层。
5.能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。
6.电梯运行规则:
当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。
当电梯处于下降模式时则与上升模式相反。
7.电梯初始状态为一层开门状态。
2.2设计要求
控制器的功能模块如图2.1所示,包括主控制器、楼层选择器、状态显示器、译码器和楼层显示器。
乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行,状态显示器显示电梯的运行状态,电梯所在楼层数通过译码器译码从而在楼层显示器中显示。
由于其他模块相对简单很多,所以主控制器是核心部分。
图2.1控制器模块示意图
3设计总体思路
3.1电梯运作流程
图3.1上升流程图
图3.2下降流程图
3.2电梯运行控制流程图
图3.3电梯运行流程图
3.3电梯控制器
电梯控制器运用状态机的设计方法,思路比较清晰。
可以将电梯等待的每秒钟以及开门、关门都看成一个独立的状态。
由于电梯又是每秒上升或下降一层,所以就可以通过一个统一的1秒为周期的时钟来触发状态机。
根据电梯的实际工作情况,可以把状态机设置7个状态,分别是“电梯停留在第1层”“开门”“关门”“开门等待4秒”“上升”“下降”和“停止状态”、、。
各个状态之间的转换条件可由上面的设计要求所决定。
各状态机之间转换图如图3.4。
图3.4各状态机转换关系
电梯控制器为其中的核心部件,控制其电梯的运行情况,而其控制则由按钮来决定,通过按钮指示灯判断电梯的工作状态及显示其运行情况。
实验板上输入过大的脉冲序列,通过分频器将高频转换为低频,即buttonclk且通过此时钟信号控制电梯信号灯。
当按钮为高电平时,电梯开始工作,并通过按钮信号灯决定电梯的运行。
电梯所处位置显示通过译码器,再通过数据选择器显示到数码管上udsig和doorlight显示电梯门和电梯的状态。
stoplight[6..1],fuplight[6..1]fdnlight[6..1]显示按钮指示。
Reset按钮使电梯恢复到初始位置。
楼层position变化相应的数码管也跟着变。
首先考虑输入端口,一个异步复位端口reset,用于在系统不正常时回到初始状态;在电梯外部,必须有升降请求端口,一层是最低层,不需要有下降请求六层是最高层,不需要有上升请求,二三四五层则上升、下降请求端口都有;在电梯的内部,应该设有各层停留的请求端口:
一个电梯时钟输入端口,该输入时钟以1秒为周期,用于驱动电梯的升降及开门关门等动作;另有一个按键时钟输入端口,时钟频率比电梯时钟高。
其次是输出端口,有升降请求信号以后,就得有一个输出端口来指示请求是否被响应,有请求信号以后,该输出端口输出逻辑‘l’。
被响应以后则恢复逻辑‘0’;同样,在电梯内部也应该有这样的输出端口来显示各层停留是否被响应;在电梯外部,需要一个端口来指示电梯现在所处的位置;电梯开门关门的状态也能用一个输出端口来指示;为了观察电梯的运行是否正确,可以设置一个输出端口来指示电梯的升降状态。
3.4数码管显示控件
楼层position输出为一个3位2进制数,但是本实验需要用数码管显示,那么就需要一个deled模块,该模块的作用是将输入转换为8位2进制,从而控制LED灯的显示。
4各单元电路设计
4.1Deled模块
图4.1Deled模块
输入输出关系:
表一Deled模块输入输出关系
4.2电梯控制模块
图4.2电梯控制模块
电梯主控制模块端口说明:
表二电梯主控制模块端口说明
5总体电路设计
5.1Deled模块功能
图5.1Deled模块图
图5.2Deled模块波形
Deled模块的主要功能为用数码管显示楼层通过输入信号prosition[2..0]输出不同的ABCDEFGH从而起到显示所在楼层的作用。
波形如图5.2所示。
5.2总体电路
图5.4电路仿真波形
5.3试验箱仿真
图5.5锁定管脚
实验现象如图5.6
电梯初始在1楼,左边5个按钮表示内部电梯层数1~5楼,右边5个按钮表示外部电梯1~5层。
数码管下方两个灯分别表示停止和开门显示。
现在举例有人在4楼想坐电梯去2楼。
如图,在4层按下按钮,电梯运行到4楼,停止灯亮后开门等亮。
并稳定显示停在4楼,接着在电梯内部按下2楼,电梯运行至2楼,停止灯亮后开门等亮。
并稳定显示停止在2楼。
图5.6实验箱现象
6设计调试体会与总结
电梯控制器系统设计已经全部完成,基本实现了预期效果,实现了电梯按预
定运行规则上升、下降、载客等功能,在本设计中,因为考虑了扩展性,所以在
信号定义的时候就使用了二进制的向量,而不是整数。
在设计方法上也做了特殊
的设计,所以使得扩展性较好。
如果要实现n层电梯的控制,首先在端口的地方
就要加入所有的按键,而指示灯只要把向量中的6改成n就可以了。
在本设计过程中还需要改进的地方有,电梯运行规则的优化(如设计闲时忙时控制规则)、电梯运行速度的控制、设计更多的报警功能等。
电梯控制系统的设计中体现了VHDL覆盖面是如此的广,描述能力强,是一个多层次的硬件描述语言及运行速度快,使用方便,便于修改,设计简单等特点。
本设计在实用方面和参考方面具有一定的价值。
但是由于设计时,没有考虑到试验箱器材的限制,导致按键与LED灯数量不够。
所以刚开始仿真时将stop6button空闲出来没有进行任何操作,造成该输入端电平不稳所以在进行仿真的出现楼层不准的现象,在后期实验我们放弃了电梯外部有2个按键的思想,而改为只用一个按键,将其余按键再电路图中做接地处理,实验现象得到改进。
参考文献
[1]黄正巾,徐坚等.CPLD系统设计与应用[M].北京:
电子工业出版社,
2002,110-123.
[2]蒋璇,臧春花.数字系统设计与PLD应用技术[M].北京:
电子工业出版社,
2001,23-34.
[3]孟宪元.可编程ASIC集成数字系统[M].北京:
电子工业出版
社,2003,231-243.
[4]潘松,王国栋.VHDL实用教程(修订版)[M].成都:
成都电子科技大学出
版社,2002,45-87.
[5]宋万杰,罗丰,吴顺君.CPLD技术及其应用[M].西安:
西安电子科技大学
出版社,2005,25-56.
附录
Deled模块
libraryieee;
useieee.std_logic_1164.all;
entitydeledis
port(s:
instd_logic_vector(2downto0);
a,b,c,d,e,f,g,h:
outstd_logic);
ENDDELED;
architecturebehavofdeledis
signaldata:
std_logic_vector(2downto0);
signaldout:
std_logic_vector(7downto0);
begin
data<=s;
process(data)
begin
casedatais
when"000"=>dout<="00111111";
when"001"=>dout<="00000110";
when"010"=>dout<="01011011";
when"011"=>dout<="01001111";
when"100"=>dout<="01100110";
when"101"=>dout<="01101101";
when"110"=>dout<="01111101";
when"111"=>dout<="00000111";
whenothers=>dout<="00000000";
endcase;
endprocess;
h<=dout(7);g<=dout(6);f<=dout(5);e<=dout(4);
d<=dout(3);c<=dout
(2);b<=dout
(1);a<=dout(0);
endbehav;
电梯模块
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
useieee.std_logic_arith.all;
entityeightliftis
port(buttonclk:
instd_logic;--按钮时钟信号
liftclk:
instd_logic;--电梯时钟信号
reset:
instd_logic;--复位键
f1upbutton:
instd_logic;--一楼上升按钮
f2upbutton:
instd_logic;--二楼上升按钮
f3upbutton:
instd_logic;--三楼上升按钮
f4upbutton:
instd_logic;--四楼上升按钮
f5upbutton:
instd_logic;
f6upbutton:
instd_logic;
f7upbutton:
instd_logic;
f2dnbutton:
instd_logic;
f3dnbutton:
instd_logic;
f4dnbutton:
instd_logic;
f5dnbutton:
instd_logic;
f6dnbutton:
instd_logic;
f7dnbutton:
instd_logic;
f8dnbutton:
instd_logic;
fuplight:
bufferstd_logic_vector(8downto1);--上升指示灯
fdnlight:
bufferstd_logic_vector(8downto1);--下降指示灯
stop1button,stop2button,stop3button,stop4button,stop5button,stop6button,stop7button,stop8button:
instd_logic;
stoplight:
bufferstd_logic_vector(8downto1);--内部停止指示灯
position:
bufferintegerrange1to8;--楼层位置显示
doorlight:
outstd_logic;--电梯门指示灯'1'开'0'关
udsig:
bufferstd_logic);--'0'处于上升模式,'1'处于下降模式
endeightlift;
architectureartofeightliftis
typelift_stateis(stopon1,dooropen,doorclose,doorwait4,up,down,stop);--电梯的7个状态
signalmylift:
lift_state;--内部电梯状态信号
signalclearup:
std_logic;--上升清除信号
signalcleardn:
std_logic;--下降清除信号
begin
controllift:
process(reset,liftclk)
variablepos:
integerrange1to8;--楼层位置变量
begin
ifreset='1'then
mylift<=stopon1;--起始状态
clearup<='0';--上楼信号清除
cleardn<='0';--下楼信号清除
pos:
=1;--处于一楼
position<=1;--处于一楼
else
ifliftclk'eventandliftclk='1'then--四秒后门关
casemyliftis
whenstopon1=>doorlight<='1';--电梯门开
position<=1;--电梯处于一楼
pos:
=1;
mylift<=doorwait4;
whendoorwait4=>mylift<=doorclose;
whendoorclose=>
doorlight<='0';--电梯门关
ifudsig='0'then--电梯处于上升模式
ifposition=8then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='1';mylift<=doorclose;
elseudsig<='1';mylift<=down;
endif;
elsifposition=7then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='0';mylift<=doorclose;
elsifstoplight(8)='1'orfdnlight(8)='1'then
udsig<='0';mylift<=up;
elseudsig<='1';mylift<=down;
endif;
elsifposition=6then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='0';mylift<=doorclose;
elsifstoplight(7)='1'orstoplight(8)='1'orfdnlight(8)='1'orfdnlight(7)='1'
then
udsig<='0';mylift<=up;
elseudsig<='1';mylift<=down;
endif;
elsifposition=5then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='0';mylift<=doorclose;
elsifstoplight(6)='1'orstoplight(7)='1'orstoplight(8)='1'orfdnlight(8)='1'
orfdnlight(7)='1'orfdnlight(6)='1'then
udsig<='0';mylift<=up;
elseudsig<='1';mylift<=down;
endif;
elsifposition=4then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='0';mylift<=doorclose;
elsifstoplight(5)='1'orstoplight(6)='1'orstoplight(7)='1'orstoplight(8)='1'orfdnlight(8)='1'
orfdnlight(7)='1'orfdnlight(6)='1'orfdnlight(5)='1'then
udsig<='0';mylift<=up;
elseudsig<='1';mylift<=down;
endif;
elsifposition=3then
ifstoplight="00000000"andfuplight="00000000"andfdnlight="00000000"then
udsig<='0';mylift<=doorclose;
elsifstoplight(4)='1'orstoplight(5)='1'orstoplight(6)='1'orstoplight(7)='1'orstoplight(8)='1'orfdnlight(8)='1'
orfdnlight(7)='1'orfdnlight(6)='1'orfdnlight(5)='1'orfdnlight(4)='1'then
udsig<='0';mylift<=up;
elseudsig<='1';mylift<=down;
endif;
elsifposition=2then
ifstoplight="00000000"andfu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电梯 控制器 设计 资料