电梯控制系统毕业设计.docx
《电梯控制系统毕业设计.docx》由会员分享,可在线阅读,更多相关《电梯控制系统毕业设计.docx(31页珍藏版)》请在冰豆网上搜索。
电梯控制系统毕业设计
第1章EDA技术
随着大规模集成电路技术和计算机技术的不断发展,在涉及通信、国防、航天、医学、工业自动化、计算机应用、仪器仪表等领域的电子系统设计工作中,EDA技术的含量正以惊人的速度上升,电子类高新技术项目的开发也更加依赖于EDA技术的应用。
即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。
不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。
1.1EDA技术的含义及特点
EDA(ElectronicDesignAutomation,电子系统设计自动化)技术是20世纪90年代初从CAD(计算机辅助设计),CAM(计算机辅助制造),CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。
现代EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,能自动地完成用软件方式描述的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPGA/CPLD器件,就可以得到最后的设计结果。
尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。
[3]
可见,利用EDA技术进行电子系统的设计具有以下几个特点:
一是用软件的方式设计硬件;二是用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;三是采用自顶向下(top--down)的设计方法;四是设计过程中可用有关软件进行各种仿真;五是系统可现场编程,在线升级;六是整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
因此,EDA代表了当今电子设计技术的最新发展方向。
1.2EDA技术的主要内容
EDA技术涉及面很广,内容丰富,从教学和实用的角度看,主要应掌握如下个4个方面的内容:
一是大规模可编程逻辑器件;二是硬件描述语言;三是软件开发工具;四是实验开发系统。
其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA技术进行电子系统设计的主要表达手段,软件开发工具是利用EDA技术进行电子系统设计的智能化的自动设计工具,实验开发系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。
1.3FPGA、VHDL语言
FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列(LOA,LogicCellArray)这样一个新概念,内部包括可配置逻辑模块(CLB,ConfigurableLogicBlock)、输入输出模块(IOB,InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产就能得到合用的芯片;
(2)FPGA可做其他全定制或半定制ASIC电路的试样片:
(3)FPGA内部有丰富的触发器和I/O引脚;
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一;
(5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度和可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX的xc系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
VHDL于1983年有美国国防部(DOD)发起创建,由IEEE进一步发展并在1987年作为“IEEE标准1076”发布。
从此,VHDL成为硬件描述语言的业界标准之一。
VHDL作为一个规范语言和建模语言,随着VHDL的标准化,出现了一些支持该语言的行为仿真器。
由于创建VHDL的最初目标是用于标准文档的建立和电路功能模拟,其基本想法是在高层次上描述系统和元件的行为。
但到了20世纪90年代初,人们发现,VHDL不仅可以作为系统模拟的建模工具,而且可以作为电路系统的设计工具,可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。
这种方法显然对于电路自动设计师一个极大的推进。
很快,电子设计领域出现了第一个软件设计工具,即VHDL逻辑综合器,它把标准VHDL的部分语句描述转化为具体电路实现的网表文件。
VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,在语言易读性和层次化结构化设计方面表现了强大的生命力和应用潜力。
因此,VHDL支持各种模式的设计方法:
自顶向下雨自底向上或混合方法,在面对当今许多电子产品生命周期缩短,需要多次重新设计以融入最新技术、改变工艺等方面,VHDL具有良好的适应性。
用VHDL进行电子系统设计的一个很大的优点神设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。
1.4QuartusII软件介绍
QuartusII应用开发工具提供完整的多平台设计环境,它可以轻易满足特定设计的需要,是可编程片上系统(SOPC)设计的综合性环境。
QuartusII可在个人计算机或Unix/Linus工作站上使用,大大简便了整个设计过程,做到真正的快速CPLD/FPGA应用开发。
与早期的MAX+plusII开发工具相比,QuartusII提供更为广泛的器件支持库、更高的编译效率、更好的图形界面和更为便捷的仿真平台。
QuartusII全面支持Altera公司出品的芯片产品,就4.0版本而言,它支持的芯片型号包括ACEX1K、APEX全系列、APEXII、基于ARM技术的Excalibur系列、Cyclone、FLEX全系列、HardCopyStratix、MAXII、MAX全系列、Mercury、Stratix、StratixII以及StratixGX等。
QuartusII为电路设计者提供了完整的多平台设计环境,它可以满足众多特定设计的需要。
QuartusII拥有CPLD/FPGA各个开发阶段对应的开发工具,设计者通过它的集成开发环境可一次性完成整体应用的开发。
图1.1所示是利用QuartusII完成应用开发的流程图。
图1.1QuartusII设计流程
第2章电梯控制系统
2.1设计背景与意义
目前国内七八十年代安装的许多电梯电气部分用继电器接触器控制系统,线路复杂,接线多,故障率高,维修保养难,许多已处于闲置状态,其拽引系统多采用交流双速电机系统换速,效率低,调速性能指标较差,严重影响电梯运行质量。
由于这些电梯交流调压调速系统,交流双速电机拖动系统性能及乘坐舒适感较差,交流调压调速系统属能耗型调速的机械部分无大问题,为节约资金,大部分老式电梯用户希望对电梯的电气控制系统进行改造,提高电梯的运行性能。
因此对电梯控制技术进行研究,寻找适合我国老式电梯的改造方法具有十分重要的意义。
电梯作为高层建筑物的重要交通工具与人们的工作和生活日益紧密联系。
FPGA/CPLD作为新一代工业控制器,以其高可靠性和技术先进性,在电梯控制中得到广泛应用,从而使电梯由传统的继电器控制方式发展为计算机控制的一个重要方向,成为当前电梯控制和技术改造的热点之一。
由于FPGA/CPLD具有性能稳定、抗干扰能力强、设计配置灵活等特点。
因此在工业控制方面得到了广泛应用。
自90年代后期FPGA/CPLD引入我国电梯行业以来,由FPGA/CPLD组成的电梯控制系统被许多电梯制造厂家普遍采用。
并形成了一系列的定型产品。
在传统继电器系统的改造工程中,FPGA/CPLD系统一直是主流控制系统。
电梯控制系统分为调速部分和逻辑控制部分。
调速部分的性能对电梯运行是乘客的舒适感有着重要影响,而逻辑控制部分则是电梯安全可靠运行的关键。
为了改善电梯的舒适感和运行的可靠性,现在都改为用FPGA/CPLD来控制电梯的运行,这样大大提高了电梯的性能。
2.2设计要求
采用FPGA设计一个10层的电梯控制系统,用VHDL语言进行程序设计,用QuartusII软件进行结果仿真。
该控制器可控制电梯完成10层楼的载客服务。
要求遵循方向优先原则,能响应提前关门或延迟关门,并具有超载报警和故障报警;同时指示电梯运行情况和电梯内外请求信息。
第3章电梯控制系统整体设计方案
3.1不同的方案设计
3.1.1基于单片机的电梯控制设计方案
电梯控制系统的工作原理是:
当某层有电梯信号输入时,电梯信号锁存系统将电梯信号锁存,待单片机查询到电梯信号后,根据电梯信号的位置(即楼层数)和电梯所处的位置,决定电梯运行方向,并启动电梯到电梯层停梯、开门,待乘客进入电梯关门后,再根据乘客要求把乘客送到目的层。
用单片机实现电梯控制系统的结构原理框图如图3.1所示。
[9]
图3.1单片机电梯控制系统的方框图
3.1.2基于PLC的电梯控制设计方案
电梯PLC的控制系统和其他类型的电梯控制系统一样主要由控制系统和拖动控制系统两部分组成。
其基本结构图如图3.2所示,主要硬件包括主机及扩展、机械系统、轿厢操纵盘、厅外呼梯盘、指层器、门机、调速装置与主拖动系统等。
图3.2PLC电梯控制系统的基本结构图
3.1.3基于FPGA的电梯控制设计方案
该设计采用方向优先控制方式方案,并能响应提前关门延时关门,并具有超载报警和故障报警;同时指示电梯运行情况和电梯内外请求信息。
它主要由4个模块组成:
外部数据高速采集模块、信号存储模块、基于FPGA的控制器模块、信号的输出、显示模块。
3.2方案比较与选择
采用单片机的电梯控制系统是以MCS-51系列单片机为控制核心与可编程接口芯片和采用串入并出移位寄存器的显示驱动电路及带有比较器的信号输入滤波电路构造的一个主控板并利用软件手段实现对电梯运行的逻辑控制。
结构简单,运行可靠,耗电量少且便于维修,具有造价低廉,维修方便之特点,但没FPGA控制方便灵活。
采用PLC的电梯控制系统是一种用于自动化控制的专用计算机,实质上属于计算机控制方式。
PLC控制一般具有可靠高、易操作、维修、编程简单、灵活性强等特点。
在设计中要使用到变频器,其功能强,使用灵活,由于PLC的针对性较强,每一台PLC都是根据一个设备而设计的,且使用到继电器,所以价格较昂贵,操作复杂。
采用FPGA的电梯控制系统通过对器件内部的设计来实现系统功能,是一种基于芯片的设计方法。
设计者可以根据需要定义器件内部逻辑和引出端,将电路板设计的大部分工作放在芯片的设计中进行,通过对芯片设计实现数字系统的逻辑功能。
灵活的内部功能块组合,引出端定义等,可大大减轻电路设计和电路板设计和电路板设计的工作量和难度,有效的增强设计的灵活性,提高工作效率。
同时采用可编程逻辑器件,设计人员在实验室可反复编程,修改错误,以期尽快开发产品,迅速占领市场。
基于芯片的设计方法可以减少芯片的数量,缩小系统体积,降低能源消耗,提高系统的性能和可靠性。
基于FPGA的电梯控制系统比基于单片机的控制更灵活、更方便于设计,基于PLC的控制系统的针对性要强,一台PLC只针对于一个设备而设计且要使用到继电器,所以价格昂贵,综合考虑使用FPGA设计电梯控制系统比较适合。
3.3整体方案设计
设计一个10层楼的电梯控制器,该控制器可控制电梯完成10层楼的载客服务而且遵循方向优先原则,方向优先控制是指电梯运行到某一楼层时先考虑这一楼层是否有请求:
有,则停止;无,则继续前进。
停下后再启动时的步骤:
1考虑前方——上方或下方是否有请求:
有,则继续前进;无,则停止;
2检测后方是否有请求,有请求则转向运行,无请求则维持停止状态。
这种运行方式下,电梯对用户的请求响应率为100%,且响应的时间较短,电梯在维修停止状态的时候可以进入省电模式,又能节省大量电能。
具体功能如下:
(1)完成10层楼的载客服务控制;
(2)电梯初始位置为第一层;
(3)电梯运行时显示电梯的运行方向和所在的楼层;
(4)当电梯到达选择的楼层时,电梯自动开门;
(5)当电梯到达本层时,清除请求;
(6)具有提前关电梯门和延时关电梯门的功能;
(7)电梯处于等待状态时,上升和下降请求都响应;
(8)电梯处于上升状态时,有上升请求的分控制器所在楼层数大于电梯所在的楼层数。
(9)电梯处于下降状态时,有下降请求的分控制器所在楼层数小于电梯所在的楼层数。
[2]
系统方框图如图3.3。
如果压力传感器连续采集到3次关门中断信号,则启动电梯故障信号,除非人为对故障进行清除,否则电梯将保持开门状态并不进行任何操作。
如果压力传感器采集到电梯超载,电梯将报警,并保持开门状态不进行任何操作,直到压力传感器采集到电梯不再超载。
电梯打开后,如果用户不进行任何操作,电梯3秒后将自动关门,如果用户按提前关门键,电梯将立即响应关门指令。
控制器模块对电梯内及电梯外用户的上升和下降请求进行处理,处理结果并置后存入信号存储模块。
电梯在运行过程中,每到达一层将通过控制器模块,对信号存储模块的存储指令进行比对,以判断是否需要停止,并通过光敏采集到的信号来判断电梯所到达的楼层,并通过显示模块进行显示。
[1]
图3.3电梯方向优先控制方式控制器系统方框图
第4章电梯控制系统的硬件设计
4.1外部数据高速采集模块设计
有效的对外部信号采集、处理要求电梯控制器:
对外部请求信号的实时、准确采集;准确、实时的捕捉楼层到达信号;有效防止楼层到达信号、外部请求信号的误判。
控制器采用FPGA作为系统控制的核心,系统时钟频率是32MHz,完全可以满足实时采集数据的要求。
由于电路中毛刺现象的存在,信号的纯净度降低,单个的毛刺往往被误作为系统状态转换的触发信号,严重影响电梯的正常工作。
可以采用多次检测的方法解决这个问题,对一个信号进行多次采样以保证信号的可信度。
外部请求信号的输入形式为按键输入,到达楼层信号来自光敏传感器,关门中断信号及超载信号则产生于压力传感器。
4.1.1键盘输入
外部请求信号输入采用键盘输入,用带有I/O口的线组成行列结构,按键设置在行列的交点上。
本题目采用5×6的行列结构可以构成30个键盘,实际使用30个。
按键设置在行列线交叉点,行、列线分别连接到按键开关的两端。
列线通过上拉电阻接+5V的电压,即列线的输出被钳位到高电平状态。
判断键盘中有无按键按下时通过行线送入扫描信号,然后从列线读取状态得到的。
其方法是依次给行线送低电平,检查列线的输入。
如果列线信号全为高电平,则代表低电平信号所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下,电路图如图4.1所示。
图4.1键盘输入电路
4.2信号存储模块
电梯控制器的请求输入信号有30个(电梯外有9个上升请求和9个下降请求的用户输入端口,电梯内有10个请求用户输入端口,一个提前关门quick,一个清楚报警信号clr),由于系统对内、外请求没有设置优先级,各楼层的内、外请求信号被采集后可先进行运算,再存到存储器内。
电梯运行过程中,由于用户的请求信号的输入是离散的,而且系统对请求的响应也是离散的,因此请求信号的存储要求新的请求信号不能覆盖原来的请求信号,只有响应动作完成后才能清除存储器内对应的请求信号位。
对应某一楼层的请求信号的存储、清除电路如图4.2所示。
图4.2请求信号操作电路
4.3基于FPGA的控制器模块
控制器模块是系统的核心,通过对存储的数据(含请求、到达楼层等信号)进行比较、判断以驱动系统状态的流转。
电梯工作过程中共有9种状态:
等待、上升、下降、开门、关门、停止、休眠、超载报警以及故障报警状态。
一般情况下,电梯工作起始点是第一层,起始状态是等待状态,启动条件是收到上升请求。
控制器模块采用FPGA芯片,编写控制程序后下载到芯片内,实现对电梯系统的控制。
其使用的芯片是Xilinx公司SpartanII系列的XC2S15-5CS144C芯片。
SpartanII器件的集成度可以达到15万门,系统速度可达到200MHz,能达到ASIC的性价比。
SpartanII2.5V现场可编程们SpartanII器件的工作电压为2.5V,采用0.22μm/0.18μmCMOS工艺,6层金属连线制造。
4.4信号的输出、显示模块
本系统的输出信号有三种:
一种是电机的升降控制信号(两位)和开门/关门控制信号;一种是面向用户的提示信号(含楼层显示、方向显示、已接受请求显示等);一种是对于超载、故障的报警信号。
电机的控制信号一般需要两位,本系统中电机有3种工作状态:
正转、反转和停转状态。
两位控制信号作为一个三路开关选通信号,此三路开关选用模拟电子开关。
系统的显示输出包括数码管请求信号显示、数码管楼层显示。
电路图如图4.3,4.4所示。
图4.3电梯内、外请求信号显示电路图
图4.4数码管楼层显示电路图
本系统具有请求信号显示功能,结合方向显示,可以减少用户对同一请求的输入次数,这样就延长了电梯按键的使用寿命。
假如电梯处于向上运动状态,初始位置是底层,初始请求是10楼,2楼时进入一人,如果他的目的地是10楼,他看到初始请求是10楼,就可以不再按键。
同时,电梯外部的人也可以根据请求信号显示(上升请求、下降请求、无请求),就可以避免没必要的重复请求信号输入。
电梯使用时,系统结合相应的电梯使用规范完全可以满足人们的需要,而且效率比较高。
图4.5报警输出电路图
报警输出电路图主要由频率放大器构成。
当电梯内超载时,压力传感器输出的电压超出范围时,双限比较器输出低电平,触发了报警电路,发出报警信号。
第5章电梯控制系统软件设计及仿真
5.1键盘输入软件设计
5.1.1键盘扫描模块
键盘扫描电路是用于产生keydrv4到keydrv0信号,其变化的顺序依次为11110→11101→11011→10111→01111→……周而复始地扫描。
其停留在每个状态的时间大约为10ms.更短的停留时间是没有必要的,因为人按键的时间大约为10ms,不可能有更快的按键动作发生;另外,更短的停留时间还容易采集到抖动信号,会干扰判断。
而太长的停留时间则容易丢失某些较快的按键动作。
键盘扫描电路的外部接口如图5.1所示。
其中clk_scan是周期为10ms的扫描时钟,keydrv为输出到键盘的扫描信号,宽度为5位。
键盘扫描电路程序:
libraryIEEE;
useIEEE.std_logic_1164.ALL;
entitykeysanis
port(clk_scan:
instd_logic;--扫描时钟,周期10ms
keydrv:
outstd_logic_vector(4downto0));--输出扫描信号
endkeysan;
architecturebehaviorofkeysanis
constants0:
std_logic_vector(4downto0):
="11110";--定义状态机编码
constants1:
std_logic_vector(4downto0):
="11101";
constants2:
std_logic_vector(4downto0):
="11011";
constants3:
std_logic_vector(4downto0):
="10111";
constants4:
std_logic_vector(4downto0):
="01111";
signalpresent_state:
std_logic_vector(4downto0);--状态机现态
signalnext_state:
std_logic_vector(4downto0);--状态机次态
begin
process(clk_scan)--状态更新进程
begin
if(clk_scan'eventandclk_scan='1')then
present_state<=next_state;
endif;
endprocess;
process(present_state)--状态译码
begin
casepresent_stateis
whens0=>next_state<=s1;
whens1=>next_state<=s2;
whens2=>next_state<=s3;
whens3=>next_state<=s4;
whens4=>next_state<=s0;
whenothers=>next_state<=s0;--多余态处理
endcase;
endprocess;
keydrv<=present_state;--输出译码
endbehavior;
以上程序采用一个状态机来实现扫描电路。
该状态机是一个one-hot状态机,并且输出值就是状态机的状态,没有通过一个逻辑电路来做输出译码。
这样做的好处是得到的输出信号比较“干净”,没有毛刺。
图5.1为外部接口图,图5.2为波形仿真图。
图5.1外部接口图
图5.2波形仿真图
5.1.2键盘译码电路
键盘译码电路是从keydrv4到keydrv0和keyin5到keyin0信号中译码出按键键值的电路。
按键标志产生电路是产生按键标志信号keypressed的电路,其外部接口如图5.3所示。
其中clk为全局时钟信号,它是由FPGA芯片的外部晶振给出的。
clk在系统中的频率是最高,其他时钟都由它分频产生。
keydrv为键盘扫描信号,keyin为键盘输入信号,keypressed表示有一个按键被按下,每发生一次按键动作,keypressed就输出一个宽度为全局时钟周期的正脉冲。
该信号用于与其他模块一起,负责通知其他模块键盘上有按键发生。
其他模块在keyypressed有效时,可以读取键值。
程序如下:
libraryIEEE;
useIEEE.std_logic_1164.all;
useIEEE.std_logic_arith.all;
entitykeydecoderis
port(keyin:
instd_logic_vector(5downto0);--键盘输入
keydrv:
instd_logic_vector(4downto0);--扫描信号
clk:
instd_logic;--全局时钟
clk_scan:
instd_logic;--扫描时钟
c_u1,c_u2,c_u3,c_u4,c_u5,c_u6,c_u7,c_u8,c_u9:
outstd_logic;--输出值
c_d2,c_d3,c_d4,c_d5,c_d6,c_d7,c_d8,c_d9,c_d10:
outstd_logic;
d1,d2,d3,d4,d5,d6,d7,d8,d9,d10:
outstd_logic;
quick,clr:
outstd_logic;
keypressed:
outstd_logic);--有键被按下标志
endkeydecoder;
architecturert1ofkeydecoderis
signal