唐山学院EDA技术课程设计题目基于FPGA的电梯控制器设计系(部) 信息工程系班级姓名学号指导教师2013 年1 月7 日至1 月11 日共 1 周2013年1 月10 日《EDA技术》课程设计任务书课程设计成绩评定表目录1 前言 (1)2 EDA技术介绍 (2)2.1 EDA技术简介 (2)2.2 EDA技术的发展 (2)3 电梯控制器设计 (3)3.1 电梯控制器设计总体框图 (3)3.2 电梯控制器设计思路 (3)3.3 电梯处于各楼层的具体分析 (4)3.4 电梯外部端口具体说明 (6)3.4.1 定义各个端口 (6)3.4.2 引脚锁定 (6)4 仿真结果与说明 (8)5 总结 (10)参考文献 (11)附录程序代码 (12)1 前言当今社会,随着城市建设的不断发展,高层建筑的不断增多,电梯作为高层建筑中垂直运行的交通工具已与人们的日常生活密不可分。
目前电梯控制系统主要有三种控制方式:继电路控制系统(“早期安装的电梯多位继电器控制系统”)、FPGA/CPLD的控制系统、微机控制系统。
继电器控制系统由于故障率高、可靠性差、控制方式不灵活以及消耗功率大等缺点,目前已逐渐被淘汰,微机控制系统虽在智能控制方面有较强的功能,但也存在抗扰性差,系统设计复杂,一般维修人员难以掌握其维修技术等缺陷。
而FPGA/CPLD控制系统由于运行可靠性高,使用维修方便,抗干扰性强,设计和调试周期较短等优点,倍受人们重视等优点,已经成为目前在电梯控制系统中使用最多的控制方式,目前也广泛用于传统继电器控制系统的技术改造。
随着EDA技术的快速发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。
采用EDA设计,拥有电子系统小型化、低功耗、高可靠性、开发过程投资小、周期短等优点,而且还可以通过软件编程对硬件结构和工作方式进行重构,使得硬件设计如软件设计那般方便快捷。
本次设计就是应用EDA电子电路技术来设计电梯控制器,从而使用一片芯片就可以实现对电梯的控制的。
2 EDA技术介绍2.1 EDA技术简介EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。
利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。
2.2 EDA技术的发展从目前的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.电梯接收到下降请求信号,进入预下降状态。
处于三楼时,不管电梯内或电梯外电梯都只可能接收到下降的请求信号。
此时,电梯就进入预下降状态,准备作下降运行。
如果电梯没有接收到请求信号,电梯则停留在三楼。
电梯的运行规则确立后,需对整个控制程序的设计做一个流程规范。
对程序进行模块化构思。
根据VHDL 语言的规则,程序必须由最基本的实体和结构体构成。
实体对控制器的端口进行定义,结构体对各端口的行为进行描述。
因此程序运行需经过以下流程:VHDL 库调用:确立控制器的端口及相关的寄存器;根据电梯运行规则,设计相关运行描述;对电梯内信号进行处理。
总流程图如下图3 - 3 电梯处于二楼图 3 - 4 电梯处于三楼图 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 :输入引脚锁定输入共10个信号,clk为输入脉冲,提供时钟,信号Button[3]为三楼外下降请求信号,Button[2]为二楼外下降请求信号,Button[1]为二楼外上升请求信号,Button[0]为一楼外上升请求信号;floor[2]为电梯内三层请求信号,floor[1]为电梯内二层请求信号,floor[0]为电梯内一层请求信号;reset为复位信号;warm为警告信号。
表 3 - 2 :输出引脚锁定输出信号共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.电梯上升过程中可以接收较高楼层的要求。
开始时有人按下一层外上升(Button(0)=1)按钮,电梯开门使用者进入并按下到达三层(floor(2)=1)请求,此时电梯关门并上升。
在电梯上升但未到达二层时,二层外有人按下上楼(Button(1)=1)请求,因此当电梯到达二层(position=2)后停止并开门,待二层使用者进入后再完成第一个使用者的请求到达三层。
当有超载信号时警报指示等亮起,即q 置1,电梯将一直在一楼。