基于VHDL语言的实用电梯控制器的设计

扫码手机浏览

关键词:摘要:介绍了基于VHDL语言设计的电梯控制器,并进行了电路综合和仿真。该控制器遵循方向优先的原则,提供16个楼层多用户的载客服务并指示电梯的运行情况。现代硬件设计运用EDA(Electronic DesignAutomation)技术采用并行工程和“自顶向下”的设计方法,从系统设计入手,在顶层进行层次划分和结构设计,在功能模块一级进行仿真、纠错,并用...
  • 关键词:
  • 摘要:介绍了基于VHDL语言设计的电梯控制器,并进行了电路综合和仿真。该控制器遵循方向优先的原则,提供16个楼层多用户的载客服务并指示电梯的运行情况。

现代硬件设计运用EDA(Electronic DesignAutomation)技术采用并行工程和“自顶向下”的设计方法 ,从系统设计入手,在顶层进行层次划分和结构设计,在功能模块一级进行仿真、纠错 ,并用VHDL,VerilogHDL等硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证 ,最后用逻辑综合优化工具生成门级逻辑电路的网表,其对应的物理实现可以是印刷电路板或专用集成电路 。VHDL(Very High Speed Integrated CircuitHardware Description Language)即超高速集成电路硬件描述语言,主要用于描述数字系统的行为、结构 、功能和接口。本文采用VHDL语言来设计实用电梯控制器 ,其代码具有良好的可读性和易理解性,源程序经Xilinx公司的Foundation软件仿真,目标器件选用FPGA器件。1 电梯控制器的功能本电梯控制器分为主控制器和分控制器 。主控制器是电梯内部的控制器 ,每个楼层有一个分控制器。主控制器的功能:
(1)完成16个楼层多用户的载客服务控制。
(2)电梯运行时显示电梯的运行方向和所在的楼层 。
(3)当电梯到达选择的楼层时 ,电梯自动开门。
(4)具有提前关电梯门和延时关电梯门的功能。
(5)响应分控制器的有效请求,如果到达有请求的楼层,电梯自动开门 。 分控制器的功能:
(1)显示电梯的运行状态和所在的楼层。
(2)显示乘客的上升和下降请求。
分控制器的有效请求原则:
(1)电梯处于等待状态时 ,上升和下降请求都响应 。
(2)电梯处于上升状态时,有上升请求的分控制器所在楼层数大于电梯所在的楼层数 。
(3)电梯处于下降状态时,有下降请求的分控制器所在楼层数小于电梯所在的楼层数。
2 控制器的设计控制器的功能模块如图1所示 ,包括主控制器、分控制器、楼层选择器 、状态显示器、译码器和楼层显示器。乘客在电梯中选择所要到达的楼层,通过主控制器的处理,电梯开始运行 ,状态显示器显示电梯的运行状态,电梯所在的楼层数通过译码器译码从而在楼层显示器中显示 。分控制器把有效的请求传给主控的楼层数。由于分控制器相对简单很多,所以主控制器是核心部分。
主控制器系统由VHDL语言实现 ,其输入输出端口定义如下:

结构体分为3个进程,分别完成寄存器的置位复位、电梯运行状态判断 、时序电路及电梯运行楼层变化和响应提前延时请求 。程序中定义了以下几个信号:urr(16 b上升寄存器),drr(16 b的下降寄存器) ,ur(上升寄存器各位相或) ,dr(下降寄存器各位相或),let(判断状态的使能信号),输出端口qout ,lamp的内部信号lift,ladd,时序内部信号time。楼层请求寄存器的复位和置位 如果乘客进入电梯后所选的楼层大于所在的楼层 ,而且电梯处于上升或者是ladd为“01 ”的等待状态,则给上升请求寄存器urr相应的位置位。当电梯运行到所在的楼层,在time等于“110”时给该位复位 。如果有多个请求则urr相应的位都置位。下降请求寄存器drr原理相似。寄存器urr和drr的各位相或后得到的ur和dr信号作为状态变化的条件信号 。电梯运行状态的判断 分为3个状态:waitt ,upper,down。状态图如图2所示。当电梯开关switch为“0”时,为等待状态 ,状态指示信号ladd为“00 ”,switch为“1”时,time为“101”而且使能信号let有效时 ,进行状态确定 。没有上升下降请求时也为等待状态 ,状态信号ladd为 “01 ”;上升状态时状态信号ladd为“11”;下降状态时状态信号为“10” 。时序电路及电梯运行时楼层变化和提前延时关门功能:根据ladd状态对所到达的楼层数信号lift做相应的增减。电梯在time信号跳变到“110 ”时关门,此时设置使能信号let为“1”,当time信号跳变到“010”时 ,如果电梯状态信号ladd为“11 ”而且使能信号let有效时,电梯层数指示器就增加,如果电梯达到了所选择的楼层 ,则使能信号复位,电梯门打开。下降原理类似 。当电梯处于上升状态时,如果有上升请求的分控制器所在的楼层数大于电梯所在的楼层数 ,当电梯运行到相应的楼层数时,电梯开门,让有请求的乘客进入电梯。分控制器下降请求的原理类似。如果提前开门有效 ,则等待时间缩短,如果延时信号有效,则等待时间加长 。
3 仿真结果该控制器由VHDL语言实现 ,在Foundation中进行仿真 ,仿真结果如图3所示。电梯在1楼(dir=“0000 ”)时处于等待状态,有2个乘客进入电梯,一个到2楼(dir=“0001”) ,一个到4楼(dir=“0011”),则urr的第2位和第4位置位,urr为“000A ” ,lamp变成“11”,电梯转为上升状态。当电梯到达2楼时,urr的第2位复位变成“0008” ,电梯门自动打开,后有提前关门的请求,电梯关门开始运行 。电梯到达4楼后urr第4位复位为“0000 ” ,电梯开门让乘客出去。从图3可见实现了电梯控制器的设计。4 结 语用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本 ,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用 。参考文献 [1]徐志军 ,徐光辉.CPLD/FPGA的开发和应用[M].北京:电子工业出版社,2002.
[2]曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社 ,2001.

本文转载自互联网,如有侵权,联系删除