新闻中心

EEPW首页 > 模拟技术 > 设计应用 > 基于USB单片机的模拟电梯设计与实现

基于USB单片机的模拟电梯设计与实现

作者:时间:2016-10-16来源:网络收藏

摘要:为了更好地认识电梯、验证个人编制的电梯及控制程序,开发一套基于USB单片机()的平台,配合下位机软件及上位机软件,实现电梯的部分功能如:轿厢内呼梯、轿厢外呼梯、电梯故障报警、电梯状态信息显示、电梯等。

本文引用地址:http://www.eepw.com.cn/article/201610/308071.htm

电梯是近代物质文明发展的产物,是科技进步的结晶。作为一种垂直运输工具,电梯已经融入到了人们日常生活当中。截止到2010年底我国在运行电梯近170万台,从事与电梯有关工作人员近百万。电梯是一套复杂的机电一体化产品,其涉及到机械工程技术、电力电子技术、嵌入式技术、网络技术、软件技术以及土建工程等多个学科领域。如此复杂的系统对于一个初学者来说具有很大的困难,因此有必要开发出一套简易仿真系统来激发学生的兴趣,发挥其主观能动性,进一步深化其对于电梯的认识。本文通过搭建硬件平台,开发下位机软件及上位机应用程序来实现电梯的各种功能。

1 硬件电路设计

本系统采用CYPRESS公司的USB控制器作为主控制器,该芯片是一款低功耗、高集成度符合USB 2.0规范的集成51核的微处理器芯片。通过步进电机的正转、反转和停止来代表电梯的上升、下降和暂停;用液晶显示屏来显示系统状态信息,如当前电梯楼层、系统时间、诊断信息、调试信息等;利用蜂鸣器来开关门的提示声。系统结构图如图1所示。

基于USB单片机的模拟电梯设计与实现

1.1 的介绍

CYPRESS的EZ-USB FX2LP (CY7C680013A/14/15/16A)是一款低功耗,高集成度符合USB2.0规范的单片机。

FX2LP具有可以自定义功能的通用可编程接口(GPIF),其主要特点包括高集成度:集成USB 2.0收发器,增强型8051微处理器以及16KB的片上程序/数据存储器;接口丰富:具有I2C/USART/GPIF等,其功能结构图如图2所示。

基于USB单片机的模拟电梯设计与实现

1.2 供电及复位电路

为了满足系统低功耗的要求,该51单片机采用3.3 V的供电电压。由于系统无外接电源,故需对来自USB总线的5 V电压进行转换。系统采用ANALOG DEVICES公司的ADP3309线性电压转换芯片进行电压变换,其接口电路如图3所示。

基于USB单片机的模拟电梯设计与实现

本系统通过RC网络直接连接到CY7C680013A的RESET引脚上进行复位操作,如图4所示。须保证复位时间常数>5 ms。根据RC滤波电路时间常数计算公式t=R*C,可得t=R*C=10 E3*1.0E-6=10.0E-3=10 ms>5 ms,满足系统复位操作要求。

基于USB单片机的模拟电梯设计与实现

1.3 LCD接口电路

本系统LCD显示采用了3.3 V供电的液晶模块。串行接口使得对处理器的端口要求大大降低,牺牲的仅仅是少量的系统占用时间,但对要求不是很高的场合这种占用可以忽略不计。液晶的接口引脚包括了供电、I2C接口以及背光接口。如图5示为液晶接口电路。

基于USB单片机的模拟电梯设计与实现

图5中的符号CS、SCL、SDA、LED分别表示片选信号、时钟信号、数据和背光开关。从图中可以看出,液晶占用了很少的IO资源,缓解了单片机资源紧张的状况。所有的控制时序均由软件模拟产生。

1.4 步进电机电路

步进电机是一种能够将电脉冲信号转换成角位移或线位移的开环控制组件。在非超载的情况下,电机的转速和停止的位置只取决于脉冲信号的频率和脉冲个数,而不受负载变化的影响,非常适合于微机的控制。当步进电机接收到一个脉冲信号,它就旋转一个固定的角度,此角度被称为“步距角”,其旋转方向与绕组的通电方向有关。控制脉冲个数来决定电机的角位移量,以达到精确定位的目的;同时控制脉冲频率来决定电机的速度,以达到调速的目的。控制器与步进电机的接口使用了专用的电机驱动器,因此连接简单,编程调试方便。

2 下位机软件设计

系统下位机软件的开发环境为Keil C51,为简化程序开发,提高程序的易读性和可移植性,采用C语言为开发语言,并采用结构化编程进行模块化设计。本系统将整个软件划分为六个模块,其中包括:系统初始化模块、硬件驱动模块、USB数据传输模块、用户自定义命令解析模块、系统监控模块以及电梯模块。

系统初始化模块的作用是初始化系统的内部资源和外部资源,内部资源包括时钟频率的设定、I2C总线的设定、GPIF功能定义等,外部资源主要包括LCD模块的配置、步进电机驱动器的配置等。通过系统初始化模块的功能定义,保证系统运行在设定状态。

硬件驱动模块属于驱动程序的范畴,本固件依据芯片厂商提供范例编写,在大大简化了编程难度的同时提高了程序的可读性和移植性。

USB数据传输模块属于程序的通信范畴,除了对于USB模块的功能配置外,该模块还包含USB数据帧传输的定义、USB命令的解析及实现、USB传输异常的处理及数据重发机制的实现等。

用户自定义命令解析模块的主要功能是解析来自于上位机的命令,如“电梯上升到某层”、“电梯下降到某层”、“电梯停止运行”等。该模块轮询上位机用户命令,并且查询设备状态及用户命令优先级,在满足该命令执行的条件后执行该命令,并将运行状态及结果反馈给上位机,或者将错误信息反馈给上位机。

系统监控模块属于系统资源管理模块的范畴,包括看门狗的复位,定时器的复位,模拟电梯系统运行状态的更新等。

电梯是本系统的核心。由于核心目的是实现电梯的调度,该算法只考虑电梯主体功能,忽略超重检测、防夹检测、用户权限识别等功能,但是在固件中预留该功能的调用,以便日后完善。调度算法兼顾公平性和电梯的运行效率,要求电梯遵循时间优先、顺向优先和最远反向截梯控制原则。

3 上位机应用软件设计

上位机采用VS2010为开发工具,C++为开发语言,采用了面向对象的编程方式进行编程。为了进一步简化编程和提高编程效率,没有采用直接调用Windows API的模式进行代码调用而是采用了MFC(Microsoft Foundation Classes)库进行编程。MFC是一个微软公司提供的类库,以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。MFC的主要优点是可以用面向对象的方法来调用Windows API,以及应用程序开发的便捷。

上位机模块的主要功能是模拟真实电梯轿厢内、外的按键,用户点击相应楼层按钮后,下位机解析用户命令并通过电梯的正、反转转动及液晶显示屏等来显示用户命令执行情况,同时将状态及结果等反馈到上位机中。上位机的软件运行界面如图6所示。

基于USB单片机的模拟电梯设计与实现

4 结论

本文设计了一种实用的电梯模拟系统,该系统采用CY7C680013A作为主控制器,外扩液晶显示模块、步进电机和蜂鸣器,可以模拟电梯的各种状态,下位机软件实现了电梯硬件资源的控制及调度。上位机采用VC2010开发,显示电梯楼层按键、电梯运行状态、系统诊断信息等。本系统可以实现大部分电梯的功能,便于初学者掌握电梯的相关知识,通过学生的动手实践,提高其软件编制能力和能力,为其将来的发展打坚实基础。



评论


相关推荐

技术专区

关闭