自动电梯模拟控制系统-毕业论文_第1页
自动电梯模拟控制系统-毕业论文_第2页
自动电梯模拟控制系统-毕业论文_第3页
自动电梯模拟控制系统-毕业论文_第4页
自动电梯模拟控制系统-毕业论文_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大 连 理 工 大 学 本 科 毕 业 设 计(论 文)自动电梯模拟控制系统The Simulative Control System of The Automatic Elevator学 院(系): 软件学院 专 业: 软件工程 学 生 姓 名: 学 号: 指 导 教 师: 评 阅 教 师: 完 成 日 期: 大连理工大学Dalian University of Technology大连理工大学本科毕业设计(论文)题目摘 要随着城市化进程的加快,一座座现代化的高楼拔地而起,而电梯也成为现代建筑必备的基础设施。电梯作为一种交通工具,不仅要关注它的安全性,而且希望与它的信息交互能更为人性化。而随

2、着嵌入式系统和设备被广泛的应用于各种智能控制领域,开发一套更为智能的电梯控制系统变得方便可行。 本文旨在使用英倍特EDUKIT-实验开发板和Linux操作系统完成自动电梯模拟控制系统的设计与实现。首先,根据系统开发需求,搭建了Linux开发环境。其次,本文通过对自动电梯进行需求分析,详细制定了电梯的运行规则,并根据运行规则设计实现了电梯的控制运行算法。最后,系统使用开发板上的液晶显示屏作为显示设备,完成了模拟系统的演示过程。本文详细设计了乘客与电梯的信息交互过程,基于Linux帧缓冲(Framebuffer)设备驱动程序开发了在LCD上显示电梯的状态、乘客的请求以及电梯动态运行效果等信息的应用

3、程序。系统还使用开发板上的5*4小键盘上的部分按键模拟电梯按钮,把键盘作为乘客信息输入端。本文使用功能性测试方法对程序进行了测试。最终,仿真程序能够根据不同乘客向自动电梯模拟系统输入的内、外部不同的请求信息,指挥电梯按照运行规则运行,并在LCD上显示相应信息。关键词:电梯;LCD;交互;Linux;信息- I -大连理工大学本科毕业设计(论文)题目The Simulative Control System of The Automatic Elevator AbstractAlong with the acceleration of urbanization, lots of modern t

4、all buildings rising straight from the ground, the elevator has become a necessary infrastructure of the modern architecture. The elevator, as one kind of transportation vehicle, is not only concerned on its security, but also is expected that the interaction with it can be user-friendly. And along

5、with the embedded system and equipment widely used in the intelligent control domain, building a set of more intelligent elevator control system becomes convenient and feasible. This article is for the purpose of using Embest EDUKIT- experiment board and the Linux operating system to complete the de

6、sign and realization of the simulation control system of the automatic elevator. First, according to the systems demand, build the Linux development environment. Second, through carrying on analysis to the requirement of the automatic elevator, this article formulated the elevators movement rule in

7、detail, and realized elevators control algorithm according to the movement rule. Finally, the system took the LCD on the experiment board as display device, completed the simulation systems demonstration. This article detailed designed the process of the informations interaction between passengers a

8、nd elevator, and developed a program which is based on Linux Framebuffer device driver program that can display the elevators status, passengers request as well as elevator dynamic movement effect on LCD. The system also used the 5*4 small keyboards partial pressed keys of the experiment board to si

9、mulate the elevators buttons, and the keyboard was took as the passenger information input end. According to the functionality test method, this article carried on the test to the procedure. Finally, this simulated program can act according to the input information which is from the passenger outsid

10、e and inside, directed the elevator to move according to the movement rule, and demonstrated the corresponding information on LCD.Key Words:elevator;LCD;interaction;Linux;information- V -目 录摘 要IAbstractII1 绪论11.1 课题的背景及研究意义11.2 嵌入式系统11.2.1 嵌入式系统简介11.2.2 嵌入式系统的发展21.2.3 嵌入式系统的应用领域21.2.4 嵌入式系统的组成和特点21.

11、3 本文主要工作32 系统软硬件平台及开发环境构建32.1 Linux操作系统简介32.2 系统硬件平台介绍52.2.1 ARM微处理器简介52.2.2 EDUKIT-实验平台介绍52.3 系统开发环境的构建72.3.1 利用Cygwin安装建立模拟开发环境72.3.2 交叉编译环境的建立73 电梯系统总体架构及各模块的实现93.1 电梯系统总体架构及功能模块划分93.1.1 电梯系统简介及框架93.1.2 系统功能模块划分及描述103.1.3 系统使用说明103.2电梯控制模块的设计与实现113.2.1 系统设计要求113.2.2 电梯运行规则123.2.3 电梯系统流程图123.2.4 电

12、梯控制状态划分及迁移规则143.2.5 电梯各控制状态的具体实现153.3 系统输入模块的设计与实现193.3.1 系统输入模块功能分析193.3.2 ZLG7290器件工作原理193.3.3 加载I2C模块203.3.4 输入模块应用程序实现203.4 系统显示模块的设计与实现213.4.1 显示系统界面设计213.4.2 LCD设备显示原理243.4.3 基础图形显示实现253.4.4 字符的显示实现263.4.5 图片的显示实现274 电梯系统的测试28结 论29参 考 文 献30致 谢31自动电梯模拟控制系统1 绪论1.1 课题的背景及研究意义1854年,在纽约水晶宫举行的世界博览会上

13、,美国人奥的斯第一次向世人展示了他的发明历史上第一部安全升降梯。1900年,美国奥的斯电梯公司为上海提供2台电梯。从此,世界电梯历史上展开了中国的一页。一个半世纪的风风雨雨,翻天覆地的是历史的变迁,永恒不变的是电梯提升现代人生活质量的承诺。现代人的生活已离不开电梯。随着高层楼宇在一些大中城市迅速增多,电梯越来越多地走进人们的生活,成为现代高层建筑所必须的基本设备,作为一种特殊的垂直交通工具,存在着这样的需求:目前大部分电梯内部和楼道外部,显示电梯运行状态(层站、运行方向等信息)多采用LED显示板,显示内容单调,所以设计和开发一套使用LCD作为显示设备的自动电梯模拟控制系统软件,能显示更加丰富多

14、彩信息,具有很大的实用价值。 近年来,嵌入式技术迅速发展,成为技术研究和产品开发的热点之一,嵌入式系统的应用逐步渗透到工业控制、智能仪器、通信设备等人们生活的各个领域。极大地提高了设备、仪器和生产过程的智能化、自动化水平,方便了人们的生产和生活。本系统采用以嵌入式微处理器S3C2410为核心的硬件平台,利用英蓓特EDUKIT-实验箱上外挂的液晶显示屏,通过综合设计开发,可以显示中文汉字、英文字母、动态图形,并可以实时更新,画面色彩丰富,动画流畅,界面设计人性化。按照用户需求进行个性化定制,在嵌入式ARM平台上实现自动电梯模拟控制系统的功能。本系统设计合理,运行高效可靠,通用性强,安装升级方便。

15、1.2 嵌入式系统1.2.1 嵌入式系统简介嵌入式系统可以看作是与通用计算机相对应的概念,通用计算机系统具有计算机的标准形态,装配各种应用软件,以雷同的面目出现并应用于社会的各个方面,而嵌入式系统硬件差异巨大,几乎没有可以通用的驱动和应用软件,以嵌入式的形式隐藏在各种装置、产品和系统中。嵌入式系统在应用数量上远远超过了通用计算机系统,许多大型电脑系统,事实上也是许许多多小的嵌入式系统组成的。从应用上考虑,嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置;微机学会定义嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级、板级、片级。嵌入式系统是设计完成特定功能的硬件和软件,并使其紧密偶

16、合在一起的专用计算机系统,该专用计算机系统对软件和硬件的可裁剪性、功能、可靠性、成本、体积、功耗等方面提出严格要求。1.2.2 嵌入式系统的发展嵌入式系统发展有30多年的历史,期间从8位、16位的微处理器,形成系列化、模块化的单板计算机,软件大多采用汇编语言或者宏语言来编写,到20世纪80年代,得益于微电子工艺水平的提高,能够将嵌入式应用所需要的微处理器、 I/O接口、A/D、D/A转换器、串行接口以及RAM、ROM等都集成到一个超大规模的集成电路(VLSL)中,制造出面向I/0设计的微控制器,俗称单片机。随后,出现了嵌入式操作系统如VxWorks、WinCE以及嵌入式Linux等。近年来,嵌

17、入式系统发展更是日新月异,硬件方面,面向实时信号处理算法的DSP向高速、高精度、低功耗方向发展,32位微控制器己成为市场主流,嵌入式CPU主频越来越高,并开始支持多媒体,软件方面,出现了很多优秀的嵌入式操作系统系列,跨平台的软件开发技术也开始从通用计算机延展到嵌入式设备上。1.2.3 嵌入式系统的应用领域近年来,嵌入式产品成为信息产业的主流,应用领域非常广泛。消费产品及信息家电方面包括手机、数码相机、数字电视机顶盒等;通信设备如程控交换机、路由器、集线器等;智能仪器方面包括数字示波器、医疗仪器等;在计算机外部设备、机器人、军事电子设备和现代武器以及太空科学方面都有广泛应用,可以说嵌入式系统和嵌

18、入式技术无处不在。近年来嵌入式系统还广泛应用于工业控制领域,对生产过程和工业设备的各种动作流程进行控制,在此类监控系统中,嵌入式系统通过传感器或者信号采集器从外部接收有关过程的信息,对这些信息进行加工处理,然后对执行机构发出控制指令。1.2.4 嵌入式系统的组成和特点整个嵌入式系统由硬件和软件两部分组成。其中硬件部分包括嵌入式处理器、存储器和各类输入输出模块。嵌入式处理器是嵌入式系统的核心。软件部分包括板级支持包、嵌入式操作系统和应用程序。嵌入式系统相对于通用计算机系统而言具有显著的特点:(1) 嵌入式系统通常是面向特定应用的。(2) 嵌入式系统的硬件和软件都必须是高效率地设计,量体裁衣,去除

19、冗余的。(3) 实时操作系统的支持。(4) 嵌入式系统与具体应用有机的结合,其产品具有较长的生命周期。(5) 嵌入式系统一般具有一套专门的开发工具支持。1.3 本文主要工作(1) 完成系统的需求分析,整体规划系统的设计与实现,并设计人机交互界面。(2) Linux操作系统内核的配置和移植。(3) 调用相关驱动的接口函数实现上层键盘和lcd的应用程序编写。(4) 自动电梯模拟控制系统的电梯控制算法的实现。2 系统软硬件平台及开发环境构建2.1 Linux操作系统简介Linux操作系统是UNIX操作系统的一种克隆系统。它是由芬兰赫尔辛基大学的学生Linus Torvalds在1991年开发出来的。

20、此后借助于因特网,经过全世界各地计算机爱好者的共同努力,Linux已发展成一个功能强大的操作系统,可以移植在各种不同的体系结构的处理器上,其中主要是32位或是64位处理器。Linux的开发及其源代码都是遵守GPL协议的。Linux相较于其它操作系统具有以下特点:(1) 源代码的开放性选用Linux作为嵌入式开发的操作系统,很重要的原因就是Linux的开发及其源代码都是遵守GPL协议的。Linux操作系统源代码可以从互联网上免费下载使用,而且Linux上运行的绝大多数应用程序也是免费得到的。除了公开的源代码,用户可以根据自己的需要对Linux源代码进行修改、剪裁、散布。Linux作为一种可裁剪的

21、软件平台系统,是发展未来嵌入式设备产品的绝佳资源1。(2) 设备的独立性设备独立性是指操作系统把所有外部设备一当做文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。Linux是具有设备独立性的操作系统,它的内核具有高度的适应能力。随着程序员不断加入到Linux编程,会有更多的硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux内核源码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。(3) 稳定性强Linux不仅继承了Unix的优点,而且在全球有无数的人参与Linux核心的改进、调试与测试,

22、因此造就了稳定性强的Linux。高可靠性是嵌入式Linux领先于其他嵌入式操作系统最明显的地方。Linux原先用于服务器领域,有较高的可靠性。嵌入式Linux中虽然对内核进行了一些裁减,但是仍然保持了原Linux高可靠性的特点,在应用Linux开发的产品中一般很少有系统崩溃的现象。(4) 可靠的系统安全在Linux操作系统中采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这些措施为网络多用户环境中的用户提供了必要的安全保障。(5) 具有成熟的开发工具开发嵌入式系统的关键是需要一套良好的开发和调试工具,Linux有一套完整的免费的开发和调试工具,嵌入式Li

23、nux利用GNU项目的C编译器来编译程序,使用gdb源程序级调试器来调试程序。它们提供了合适的手段,使客户能够方便地开发嵌入式Linux的各种应用程序。开发时可在PC上交叉编译应用程序,调试时可通过串口telnet登陆硬件平台,同时可利用NFS调试已存在PC机中的文件。(6) 可以根据需要灵活地配置内核因为可供嵌入式操作系统使用的存储容量都十分有限,嵌入式系统要尽量减少体积,不能像普通计算机那样采用海量存储器来进行数据存储。通常采用软件固化的方法,将程序和操作系统嵌入到整个产品里面。而Linux核心本身采用模块化的设计,让用户可以根据自己需要裁减内核。用户完全可以根据不同的任务来选择特定内核模

24、块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛盾。构建一个最小的嵌入式Linux系统仅需要三个基本元素:引导实用程序;Linux微内核,由内存管理、进程管理和定时服务构成;初始化过程。而要实现最低限度的工作能力,还需要添加:硬件驱动程序;一个或多个应用进程,以提供所需功能。与其他操作系统相比Linux具有更小、更稳定、价格竞争力等优势。正是嵌入式操作系统的特殊要求为Linux在嵌入式系统中的发展提供了广阔的空间,使得Linux成为嵌入式操作系统中的新贵。(7) 良好的可移植性可移植性是指操作系统从一个平台转移到另一个平台,并使它仍能按其自身方式运行的能力。Linux一开始是基于

25、Intel386机器设计的,但随着网络的散布,加上有许多工程师致力于各种平台的移植,使得Linux可以在几乎覆盖了所有嵌入式系统的CPU种类的平台上运行。ARM Linux是指成功移植在ARM体系结构上的Linux内核2。在ARM Linux工程的带领下,Linux内核对ARM体系结构有很好的支持。本系统采用的是Linux 2.6内核。2.2 系统硬件平台介绍2.2.1 ARM微处理器简介ARM公司是全球领先的32位RISC微处理器知识产权(IP)供应商。当前,ARM也被当作一种技术的名字(Advanced RISC Machines)和一类微处理器的统称,是目前应用最为广泛的32位RISC微

26、处理器。ARM微处理器及技术己经深入到无线通信、网络应用、消费类电子产品、成像和安全产品以及工业控制等各个领域。ARM微处理器的特点是指令长度固定,寻址方式灵活简单,执行效率高,寄存器数量多,大多数数据操作都可以在寄存器中完成,指令执行速度更快,采用16位Thumb和32位ARM双指令集,能够兼容8位和16位芯片,并且体积小、低功耗、低成本和高性能。ARM公司的各合作厂商生产基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每个系列的ARM微处理器都具有各自特点和应用领域。目前包括以下几个系列:ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列

27、,Intel的StrongARM系列和Intel的Xscale系列。2.2.2 EDUKIT-实验平台介绍本系统软件运行的硬件平台是EMBEST公司生产的英倍特EDUKIT-实验平台。该实验平台是一款功能强大的32位ARM开发板,扩展了许多外围硬件资源。根据本系统需要,主要用到硬件资源包括:(1) CPU采用三星公司的S3C2410X微处理器,S3C2410X处理器的工作频率可达到203MHZ,但不是只能工作在这个频率下,通过修改内部寄存器的值可以使其工作在不同频率下,通常所说的超频也是通过更改CPU的时钟控制寄存器值实现的。(2) 2个标准3线RS232串行口,波特率可达115200bps,

28、串口0作为ARM目标板的串口控制终端,用于传输编译好的代码,并且输出电梯系统的相关提示信息。(3) Flash在嵌入式系统中常用作存储需要永久保存的代码和数据,鉴于NorFlash和 NandFlash各自的优势和不足,很多设备的最佳设计需要同时采用这两种Flash芯片,本系统中的ARM平台就是如此。因为 NorFlash可靠性高,读取操作快和随机访问能力,使得它非常适合用在代码存储方面,它的特点是芯片内执行应用程序可以直接在Flash闪存内运行,不必把代码读到系统RAM中。NandFlash的特点是高密度(同等容量下尺寸小),低价格,较快的写入和擦除速度,较长的复写寿命,NandFlash较

29、 NorFlash容易出现坏块和位反转,在使用NandFlash的时候,需要使用错误探测错误更正(EDC/ECC)等严格的算法以确保可靠性。本系统采用NorFlash存储vivi,嵌入式Linux镜像,根文件系统和应用程序。(4) 内存为64MByteSDRAM,采用两片K4S561632组成,工作在32位模式下,SDRARM是一种挥发存储记忆体,不能永久保存数据,在嵌入式系统中用作代码运行载体,系统和用户数据、堆栈等均位于SDRAM存储器中。(5) 键盘:本系统采用实验开发板上自带的一个5*4的小键盘,参看图2.1。该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。图2.1 键位图

30、(6) 液晶显示屏(LCD:Liquid Crystal Display)主要用于显示文本及图形信息。液晶显示屏(LCD)具有轻薄、体积小、低耗电量、无辐射危险、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面。实验板外挂有一块5.7英寸的液晶屏,具体参数参照表2.1: 表2.1 液晶屏主要技术参数技术参数参数值技术参数参数值技术参数参数值型号LRH9J515XA外型尺寸93.8mm*75.1mm*5mm重量45g像素320*240画面尺寸9.6cm(3.8inch)色彩16级灰度电压21.5V点宽0.24mm/dot附加带驱动逻辑液晶显示屏的显示,要求

31、设计专门的驱动与显示控制电路。驱动电路包括提供液晶显示屏的驱动电源和液晶分子偏置电压,以及液晶显示屏的驱动逻辑;显示控制部分可以由专门的硬件电路组成,也可以采用集成电路模块;还可以使用处理器外围LCD控制模块。液晶显示屏按显示原理分为STN 和TFT 两种。S3C2410X 处理器集成了LCD 控制器,主要功能是S3C2410X LCD 控制器用于传输显示数据和产生控制信号。它支持屏幕水平和垂直滚动显示。数据的传送采用DMA(直接内存访问)方式,以达到最小的延迟。它可以支持多种液晶屏,本系统采用STN LCD,屏幕实际大小为320*240。实验板的驱动与显示系统包括S3C2410X片内外设LC

32、D 控制器、液晶显示屏的驱动逻辑以及外围驱动电路。2.3 系统开发环境的构建嵌入式系统开发一般采用开发主机和目标板模式,需要在开发主机上建立开发环境。目标板用于运行操作系统和系统应用软件,而目标板所有到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主机来完成。所以需要建立Linux开发环境3。2.3.1 利用Cygwin安装建立模拟开发环境Cygwin是一个在Windows平台上运行的UNIX模拟环境。它几乎包含了所有Linux系统下可用的软件包,包括各种开发工具。2.3.2 交叉编译环境的建立交叉编译就是在一个平台上生成可以在另一个平台上执行的代码。采用交叉编译的主要原因在于,多数嵌

33、入式目标机不能提供足够的资源供编译过程使用,因而只好将编译工作转移到高性能的宿主机中进行。在宿主机上对即将运行在目标机上的应用程序进行编译,生成可在目标机上运行的代码格式。交叉编译环境是由一个编译器、连接器和解释器组成的综合开发环境。交叉编译工具安装。在Cygwin 开发环境下,我们把交叉编译工具链安装到:$CROSSDIR 目录下。按以下操作完成安装:(1) 把工具代码包cross-armtools-linux-edukit2410.tar.bz2 拷贝到/tmp/目录下。(2) 运行Cygwin,执行以下命令完成Cygwin 环境下的Linux 交叉编译工具安装:$cd /tmp/$tar

34、 P xvjf cross-armtools-linux-edukit2410.tar.bz2$source armtools-linux/cross-install.sh环境变量及编译开关设置搭建一个Linux 开发、编译和应用程序测试的环境,需要设置的开关较多,为了方便操作,采用提供了的一个命令配置文件set_env_linux.sh,运行命令即可。$souce /tmp/edukit-2410/set_env_linux.sh源代码文件安装和编译。首先,vivi源代码安装与编译:(1) 拷贝Linux Source 文件夹下的vivi-20030929.tar.bz2 文件和Source

35、patch整个文件夹到$SOURCEDIR/目录下。(2) 运行cygwin,执行以下命令完成cygwin 环境下的vivi 源代码的安装:$cd $WORKDIR$tar xvjf /tmp/edukit-2410/vivi-20030929.tar.bz(3) 进入vivi源代码安装目录,为实验系统打入vivi源代码补丁:$cd vivi$patch p1make clean$make menuconfig$make其次,Linux源代码安装和编译:(1) 拷贝Linux Source 文件夹下的linux-2.4.18-rmk7-pxa1-mz5.tar.bz2 文件(和Sourcepa

36、tch 整个文件夹)到$SOURCEDIR/目录下。(2) 运行cygwin,执行以下命令完成cygwin 环境下的Linux 源代码的安装:$cd $WORKDIR$tar xvjf /tmp/edukit-2410/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2(3) 进入kernel源代码安装目录,为实验系统打入Linux 源代码的补丁文件:$cd kernel$ patch p1 make mrproper$make xconfig$make dep$make clean$make zImage第三,root文件系统安装:(1) 拷贝Linux Source 文件

37、夹下的root.cramfs.tar.bz2 和mkcramfs 文件到$SOURCEDIR/目录下。(2) 运行cygwin,执行以下命令完成cramfs 文件系统源代码的安装:$cd $WORKDIR$tar xvjf /tmp/edukit-2410/root.cramfs.tar.bz2(3) 编译文件系统。最后,烧写文件到Nor flash中(SW104断开):(1) 烧写vivi映像:选择1-5扇区。(2) 烧写Linux内核映像:选择6-17扇区。(3) 烧写root文件系统:选择18-35扇区。 3 电梯系统总体架构及各模块的实现3.1 电梯系统总体架构及功能模块划分3.1.1

38、 电梯系统简介及框架(1) 自动电梯模拟控制系统介绍:本系统主要设计目标就是在实验开发板上模拟单部电梯运送乘客的整个运行过程,并将整个运行过程在液晶显示屏上演示。所以本课题所设计的系统主要完成三项任务:一、仿真程序演示界面的设计与实现,系统使用液晶显示屏完成这个任务;二、电梯控制运行算法的设计与实现;三、用户信息输入的采集。系统使用8个按键模拟八个楼层按钮,2个按键模拟上、下请求按钮,另使用4个按键作为辅助按钮。(2) 电梯的总体框架:根据本系统的主要功能,把电梯划分为三大部分,具体参照图3.1:图3.1 系统总体框架图3.1.2 系统功能模块划分及描述参照上面的总体框架,本文所研究的电梯模拟

39、控制系统可以把组成系统的三大部分划分为以下五个功能模块:(1) 系统初始化模块:本模块是系统的基础模块,负责对电梯、界面进行初始化。并显示一些说明性的文字和标题图片。(2) 电梯控制模块:本模块是整个系统的最关键模块,它负责派遣电梯执行停止、运行、开门、关门的任务,指挥电梯按照运行规则运行从而满足乘客需求。(3) 系统输入控制模块:本模块把5*4小键盘作为乘客信息输入端,乘客通过键盘上模拟的电梯按钮向系统输入请求信息。键盘扫描程序通过扫描按键采集输入信息。输入控制程序对信息进行筛选、封装。(4) 系统显示控制模块:本模块通过LCD显示电梯目前的运行信息,如电梯状态、目前的位置、内部楼层和外部楼

40、道的请求信息等;并且显示出电梯运行的动态效果。(5) 系统时间控制模块:本模块负责对电梯的运行,停止,开门,关门的时间进行控制。3.1.3 系统使用说明本文所研究的系统是一个电梯控制的模拟系统,由于硬件条件的限制,所以模拟系统使用时难免没有目前市场上被广泛使用着的真实电梯简单方便。为了方便用户使用本系统,本文制定了一些针对本系统的使用规定,下面进行详细的说明。(1) 电梯内部本系统有八个按键模拟电梯里的八个楼层按钮,每一个按钮对应一个楼层,内部乘客使用这些按钮呼叫所请求的楼层。(2) 电梯外部(楼道)除了地下一层和顶层,每一层都有一个上行按钮和一个下行按钮,乘客可以呼叫上楼或下楼。顶楼只有一个

41、下楼按钮,而地下一层(-1楼)只有一个上楼按钮。本系统有两个按键用于模拟上行和向下这两个按钮。(3) 特殊使用规则本系统规定:首先,系统有按键A和按键B用于判定乘客的请求是在电梯外部发出的还是电梯从内部发出的。系统用户必需先按下这两个按键之一,否则输入的请求视为无效。其次,发出外部请求的乘客必需输入楼层按钮,表明他发出外部请求时所位于的楼层。系统有八个按键分别表示楼层按钮。最后,内部和外部请求都输入完成后必须输入结束键,没按下结束键,程序不会执行下去。具体按键定义请求参照表3.1。根据特殊使用规则并参照表3.1,我们制定了以下的使用步骤,用户必需严格按照使用步骤使用本模拟系统:(1) 输入A或

42、是B。(2) 输入0-7。注意:如果输入A,0-7表示内部乘客请求到达的楼层;如果输入的是B,表示外部乘客发出请求时位于的楼层。(3) 如果输入的是B,输入+或是-。注意:输入0时不能输入-;输入7时不能输入+。(4) 输入E。表3.1 按键定义表名称按键按钮用途楼层按钮0-7表示相应的楼层,0表示地下一层,1-7表示一到七楼内部请求按钮A表示乘客在电梯内部发出请求外部请求按钮B表示乘客在电梯外部外部发出请求上行按钮+表示乘客在电梯外部发出上升请求下行按钮-表示乘客在电梯外部发出下降请求结束按钮E表示内部和外部请求信息输入结束退出按钮*表示退出模拟程序举例说明:输入A,3,B,2,+,E表示内

43、部(A)有乘客想要去三楼(3);同时二楼(2)有乘客想要上楼(+),所有请求输入完成(E)。3.2电梯控制模块的设计与实现3.2.1 系统设计要求本文采用了传统的软件工程方法对自动电梯模拟系统进行了需求分析。通过分析我们了解到电梯模拟控制系统需要在一个共有8层的楼宇中运行,它必需具备以下功能:(1) 每层楼电梯入口处设有上行、下行请求按钮,电梯内设有乘客请求停站的楼层呼叫按钮。(2) 有电梯所处位置指示装置,电梯上行、下行状态指示装置,所有系统请求信息指示装置。(3) 每隔一定时间,电梯上升或是下降一层楼,同时显示电梯上升和下降的信息。(4) 电梯到达有停站请求的楼层后,该楼层有指示装置表明到

44、达了停站请求楼层,电梯切换为开门状态。开门一定时间后,电梯自动进入关门状态,然后电梯继续运行。(5) 系统能够记忆电梯内、外部的所有请求信号,并按照电梯运行规则依次的响应这些请求,每个请求信号保留至执行后撤除。 3.2.2 电梯运行规则本文针对系统设计要求,制定出了以下六条运行规则:(1) 电梯接通电源时,电梯必需停留在最底层。(2) 电梯可以到达并且必需能够到达所在楼宇的每一层,但是电梯只能在该楼宇的最低层至最高层之间运行。(3) 严格规定:电梯内部请求信号优先级高于电梯外部请求信号。(4) 电梯处于上升模式时,只响应比电梯所在位置高的楼层的上楼请求信号,而保留下楼的信号,由下而上逐个执行;

45、直到最后一个请求执行完毕,再执行下楼的信号请求(同时由上往下执行);如更高楼层次有下楼请求,则直接升到有下楼请求的楼层接收乘客,然后转换电梯到下降模式。(5) 电梯处于下降模式时与上升模式时相反,只响应比电梯所在位置低的楼层的下楼请求信号,而保留上楼的信号,由上而下逐个执行;直至最后一个请示执行完毕,再响应向上楼的信号(同时由下往上执行);如更低楼层有上楼请求,则直接降到有上楼请求的楼层接收乘客,然后转换电梯到上升模式。(6) 电梯执行完所有的请求后,应停留在最后所在的楼层不动,等待新的请求。3.2.3 电梯系统流程图现在,我们经常使用到电梯。在日常的使用中我们发现:电梯的整个运行过程是一个不

46、断循环往复的过程,不断重复着停止、开门、关门、运行的状态。图3.2是电梯运行过程的流程图。图3.2 电梯系统流程图3.2.4 电梯控制状态划分及迁移规则根据电梯运行的流程,本文对电梯的运行过程进行简化和规范。我们把电梯划分为停止、运行、开门、关门四种控制状态,详情请参考图3.3。本文的停止状态是指电梯在没有任何请求的情况下的静止状态,而不是指电梯在运行过程中开门前的停顿状况。本文忽略停顿状况把电梯从运行状态直接迁移为开门状态。 图3.3 电梯控制状态迁移图从上图我们可以看到,电梯根据控制状态的迁移规则进行状态迁移。(1) 系统初始时,电梯处于停止状态。(2) 电梯处于停止状态时,根据发出请求的

47、楼层不同可以分别迁移到运行或者开门两个不同状态。(3) 电梯在运行状态时,如果没有到达请求楼层是发生自迁移,即保持运行状态不变;当到达请求楼层时,迁移到开门状态。(4) 电梯处于开门状态一段时间后必然会迁移到关门状态。(5) 电梯处于关门状态是根据是否有请求可以迁移到运行状态或者迁移到停止状态。3.2.5 电梯各控制状态的具体实现电梯各个状态具体实现时,主要依靠电梯派遣函数,通过判定电梯信息结构体中的电梯状态,调用相应控制状态的子程序来控制电梯的运行。(1) 电梯停止状态子程序流程图图3.4 电梯停止状态子程序流程图 (2) 电梯运行状态子程序流程图图3.5 电梯运行状态子程序流程图(3) 电

48、梯开门状态子程序流程图图3.6电梯开门状态子程序流程图(4) 电梯关门状态子程序流程图图3.7电梯关门状态子程序流程图3.3 系统输入模块的设计与实现3.3.1 系统输入模块功能分析本功能模块的主要功能有三个:一、设置键盘键值;二、扫描键盘,采集按键信息;三、获取乘客请求结构体信息,并对这些信息进行封装、判断、转换一系列的处理。3.3.2 ZLG7290器件工作原理在设计当中,为了使键盘部分能够及时有效的响应,实验开发板上接有键盘专用芯片ZLG7290来做键盘部分的扩展。该芯片是周立功公司针对仪器仪表行业的需要自行研制的一款芯片。该芯片能自动完成8位LED 数码管的动态扫描和最多64(8*8)

49、个按键检测扫描,大大减轻单片机的用于显示和键盘的工作时间和程序负担,可集中资源用于信号的检测和控制,本实验的键盘只需要完成20个按键的按键检测扫描即可。由于采用I2C总线方式使得芯片与S3C2410X之间的通讯I2C总线接口便可完成,节省了单片机有限的I/O口资源。该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。键盘的管理与控制。ZLG7290可采样64个按键或传感器,可检测每个按键的连击次数,并具有如下功能:键盘去抖动处理;双键互锁处理,即当有两个以上按键被同时按下时,ZLG7290只采样优先级高的按键:连击按键处理,即当某个按键按下输出一次键值后。如果该按键还未释放,该键值连续

50、有效,就像连续压按该键一样,这种功能称为连击。连击次数计数器RepeatCnt可区别出单击(某些功能不允许连击如开关)或连击,判断连击次数,可以检测被按下时间。以防止某些功能的误操作。内部寄存器的定义。ZLG7290内部可通过I2C总线访问的寄存器地址范围为00H-17H,任意寄存器都可按字节直接读写,也可以通过命令接口间接读写或按位读写。 ZLG7290的控制和状态查询均通过读或写寄存器实现,用户只需像读写24C02内的单元一样操作即可实现对ZLG7290的控制。ZLG7290里主要使用到的寄存器如下:(1) 系统寄存器(SystemReg):地址00H,复位值11110000B,系统寄存器

51、可以保存ZLG7290系统状态并可对系统运行状态进行配置。(2) 键值寄存器(Key):地址01H,复位值00H,Key表示被按下键的键值,当Key=0时表示没有键被按下。(3) 连击次数计数器(RepeatCnt):地址02H。复位值00H,RepeatCnt=0时表示单击键,RepeatCnt大于0时表示键的连击次数,用于区别出单击键或连击键,判断连击次数可以检测被按下时间。 键盘的工作过程:键盘的动作由芯片ZLG7290检测,当键盘按下时,芯片检测到后在INT引脚产生中断触发电平通知处理器,处理器通过I2C总线读取芯片ZLG7290键值寄存器中保留的键值4。3.3.3 加载I2C模块总线

52、为同步串行数据传输总线,由两根线组成,一根串行数据线和一根串行时钟线。其标准模式总线传输位速率为0100kb/s,增强模式将总线传输位速率增加到4倍,可达400kb/s,并且向下兼容。I2C总线驱动能力为400pF,整个I2C系统的总线电容不可超过此值。I2C总线可构成多主和主从系统。在多主系统结构中,系统通过硬件或软件仲裁获得总线控制使用权。应用系统中I2C总线多采用主从结构,即总线上只有一个主控节点,总线上的其它设备都作为从设备。I2C总线上的设备寻址由器件地址接线决定,与总线相连的每个器件都对应一个特定的地址,采用软件寻址方式,并且通过访问地址最低位来控制读写方向5。I2C通信。ZLG7

53、290的I2C接口传输速率可达32 kbit/s,容易与处理器接口,并提供键盘中断信号,提高了主处理器的时间效率。有效的按键动作、普通键的单击、连击和功能键状态的变化都会令系统寄存器SystemReg的KeyAvi位置1。INT引脚信号信号为低电平有效,用户的键盘处理程序可由INT引脚低电平中断触发,以提高程序效率,也可以 不采样INT引脚信号,节省系统的I/O数而采取轮询系统寄存器KeyAvi位的方式,在读键值寄存器时会使KeyAvi位清0,并会使INT引脚信号无 效,为确保某个有效的按键动作及所有参数寄存器的同步性。可利用I2C通信的地址自动递增功能。连续读取RepeatCnt Funct

54、ionKey和Key寄存器。由于已编译的内核中没有包含I2C驱动,所以运行测试程序前需要安装驱动程序,对于本实验开发系统,我们加载一个动态模块文件i2c.o。 3.3.4 输入模块应用程序实现由于使用了ZLG7290芯片,我们在系统输入模块的设计与实现的主要工作都放在应用程序的实现上。应用程序主要实现对乘客请求信息结构体获取,并对信息进行处理。因此此部分可以分为两个函数:一个用于获取信息,另一个用于信息处理。因为从键盘获得输入信息繁多而复杂。信息处理分两大部分进行。首先,对信息进行筛选和封装。由于信息键盘信息扫描检测函数是在不断的在等待按键被按下,而用户使用键盘输入信息是间歇性的,所以我们需要

55、对从键盘按键检测程序获取的值进行筛选,保留用户有效按键值。并且由于我们系统使用规则的限制,每次用户发出的请求,并不能由单个按键完成,需要组合使用按键,所以我们需要设计函数把筛选下来的多个有效键值一一封装在乘客请求信息结构体里并对其进行存储。其次,在完整获得了正确的用户请求信息后,我们还有对信息进行转化。因为我们从键盘获得的乘客用户信息结构体里的信息,是站在乘客使用角度封装的,但电梯的控制必需从电梯的角度处理请求,所以我们设计处理函数把乘客信息结构体里的相应信息转化为电梯信息结构体里需要的信息。3.4 系统显示模块的设计与实现电梯轿厢作为一个相对封闭的乘行空间,乘梯环境显得非常单调,如何为乘客营造一个温馨舒适的乘梯环境一直是电梯企业努力的方向,除了新的轿厢设计装演外,各种电梯轿厢中的显示系统也不断推陈出新。区别于目前市场上主流的把LED作为显示工具,本系统使用一块256色的5.7英寸LCD作为显示工具。并且系统基于Linux的帧缓冲对LCD进行图形界面的设计。3.4.1 显示系统界面设计设计图形界面时本文把显示分为四个界面:系统启动界面、系统使用说明界面、系统主界面和系统退出界面。其中除了系统主界面不涉及到图片显示外,其它三个界面都是以图片显示为主。下面对四个界面做详细阐述:(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论