基于LPC1788立体车库控制器设计
“2016第三届轨道交通供电系统技术大会”演讲报告图文版已在“电气技术”微信(微信号:dianqijishu)上陆续发布,请感兴趣的读者扫描下方二维码,进行关注阅读。
河南工业大学的研究人员刘铁勇、赫刘勤,在2016年第10期《电气技术》杂志上撰文指出,智能化立体车库是解决现代城市交通堵塞和停车难问题的重要途径之一。
文章以升降横移立体车库为主要研究对象,介绍了一种基于恩智浦Cortex-M3内核的LPC1788,利用emWin技术开发的7寸触摸屏的立体车库主控制器,通过CAN-bus总线与各车位控制单元通信,实现对升降横移类立体车库人机交互界面的控制,同时能够通过SD卡和USB接口下载、更新程序,实现数据交互。
近年来,我国汽车工业不断发展,汽车价格逐渐下降,而我国城镇人口数量的巨增和经济的发展,导致城市汽车保有量急剧增长。由于机动车90%以上的时间处于停泊状态,城市中心、住宅小区、停车场内停车难已成为现实问题。
立体车库因占地面积少,采取多层结构存放,能较好地解决停车难的局面。尽管上世纪90年代末立体车库在我国的应用尚处于起步阶段,但随着市场上对大规模存车库需求的出现,进入2000年后,机械立体车库开始快步进入房地产配套市场,在国内升降横移类立体停车设备占据了80%以上的市场份额。
本设计使用微控制器(MCU)通过CAN-bus总线实现对升降横移立体车库的实现,解决立体车库中检测、控制、引导、安全等关键问题,实现车位移动最优控制、停车场资源实时管理,提高车库
存取车效率,降低能耗。使人、车、路之间的相互作用关系以新的方式呈现,实现实时、准确、高效、安全、节能的目标。与现有的立体车库的产品中的PLC控制器比较,微控制器在显示、故障处理、接口、可靠性和先进性等方面占有很大优势,具体如表1所示:
表1 制器系统与PLC控制系统的比较
1 智能立体车库系统整体结构
图1.1为地下两层地上三层的升降横移类的立体车库,该类型的车库主要通过使用行程开关实现对车盘位置的确定,根据每个车盘可能存在的状态确定车位信息,其中每个车盘将自己的行程开关的状态通过CAN-bus总线将状态发送到主控器,主控制器通过逻辑算法的推算实现对车盘位置的确认,使用CAN-bus总线通信控制个车盘的升降横移电机实现对车盘的移动,将目标车盘移动到地面层,实现自动取车的目的。
图1.1地下车盘只具有升降功能,地面层的车盘只具有横移功能,地上中间层具有升降和横移功能,顶层只具有升降功能,根据每个车盘的功能。车盘具有行程开关,确定状态。其中横移分为左到位和右到位,升降分为上到位和下到位,同时每个车盘具有极限保护、电机继电器粘连保护、电机相序保护、热保护、超长光电的人机保护等,具有很高的安全性。
图1.1 升降横移类车库系统结构图
2 系统硬件设计
2.1 系统硬件总体设计
本设计采用LPC1788控制器,使用RS-232串口和CAN-bus作为数据采集的通道,进行数据的交换。如图2.1所示,使用控制器的LCD接口扩展7寸液晶屏作为人机交互的显示界面,通过控制器的EMC扩展SDRAM作为液晶屏的数据缓存区。
通过触摸屏实现人机交互的输入设备。在数据存储方面,本设计使用SPI-Flash实现数据的备份实现数据的掉电功能,同时系统支持SD卡和U盘的在线升级功能。
图2.2 硬件设计框图
2.2 各模块设计与分析
控制器系统电路设计包括时钟电路、复位电路、JTAG接口电路和ISP接口电路。系统采用有源晶振提供控制器LPC1788的工作时钟,振荡频率为12MHz,输入到MCU的XTAL1引脚,可通过内部PLL调整到较高的频率(CPU最高操作时钟为120MHz)。
复位电路使用CAT811STBI可以监控电源电压,在使用按键的阻容复位的端口接入ESD防止手动复位的静电。控制器在使用时,容易出现对内存的非法操作出现程序跑飞或锁死,需要使用ISP进行数据擦出,并加外部上拉电阻。
电源电路设计使用24V供电,且液晶、USB、串口需要5V供电,控制器及其他接口电路为3.3V供电,如图2.2.1所示。由于供电设备不固定,供电设备的稳定性、可靠性不清楚,所以该电路包含具有过流、过压、反相等保护,同时还具有滤除电源中高频干扰和引入电源的共模干扰的前级处理和后续的降压处理。
为了防止模拟地和数字地的相互干扰,使用磁珠进行隔离处理,并在控制器的VBAT的输入管脚使用ESD器件消除电池的影响,使系统能够更加稳定的运行。
图2.3.1 输入电源的处理
控制器LPC1788具有SDIO接口,可以方便快速的实现数据的写入及读写功能,如图2.2.2所示。SD卡数据接口中接入ESD器件PESD5V0L6UAS防止静电对芯片的伤害和干扰,同时SD卡座外壳要接大地保护,以便能够快速的泄放静电。
图2.2.2 SD卡接口电路
LPC1788支持USB主机接口和USB2.0协议,使用USBHost接口电路,可以方便快速开发U盘的数据拷贝及程序升级功能。由于USB功率较大,本设计使用具有较宽的供电电压和较快的转换速度的SP2526芯片作电源转换开关为USB供电。为了防止USB拔插时静电将I/O口烧毁,ESD选用5V的PESD5V2S2UT。
触摸屏电路设计的输入设备选择使用四线的触摸屏,主要实现对系统的输入控制,如图2.2.3所示。滤除部分抖动在线路中接入电容滤波,该滤波电容也触摸屏的内阻(几十千欧左右)形成了低通滤波器。触摸屏芯片TSC2046的AD转化频率决定了频带的宽度,同时需要再加入ESD器件来吸收静电。
图2.2.3 触摸屏电路
3 系统软件设计
3.1 系统软件分层设计
本章主要涉及整个软件框架以及细节的设计,本系统软件主要分为三个层次:MCU底层、中间层、上层应用程序层;图3.4为系统的层次结构,其中MCU底层主要包含底层接口程序,主要有LCD底层接口程序、SDRAM接口程序、串口底层程序,CAN-bus底层程序,USB-host底层程序等。
中间层主要包含FATfs、μC/OS-II、emWin软件包,中间层的主要是一些移植程序,通过中间层程序移植,使上层应用程序与MCU底层接口之间的耦合降低,方便系统移植。上层应用程序可以进行应用程序的编写,这部分的编写可以做到基本脱离底层。
应用程序主要分为前后台任务、桌面任务。后台任务主要指程序一直处于运行状态的任务,桌面任务指的是在系统选择使用触发前台的选择使用,前台任务是决定了当前显示界面运行的任务。
图3.4 系统分层结构
3.2 升降横移车库算法实现
图3.2.1为升降横移类车位信息,通过移动地面层和地上一层的空位车盘实现出车操作,为了统一设计将不通层的车进行了统一的编号,命名规则主要是使用四位,第一位为1代表地上、2地下一层、3代表地下二层;第二位为区分地上车位使用,1代表地上一层、2代表地上二层、3代表地上三层;第三位做备用为使用,目前无作用;第四位代表当前的列数,最多支持9列。
图3.2.1 升降横移类车库示意图
在车盘的动态显示过程中,使用emWin中的按钮API函数实现对车盘的显示,同时支持触屏取车操作,当在触摸屏中按下指定的车时,使用升降横移算法实现移动该车盘到地面层,在显示实现算法上使用按钮进行动态显示,主要将车位号转换为按钮的对应的ID,根据移动不同按钮实现动态显示,如图3.2.2所示。
图3.2.2 操作界面
通过触摸屏获取要取车的ID,确认该车所在的位置,判断空位,实现取车。其基本流程如图3.2.3所示;
图3.2.3 取车流程图
4 结束语
本研究采用LPC1788为控制器,升降横移立体车库为研究对象,设计了一种智能立体车库系统。研究结果表明,该系统完全能实现自助存取车功能,并且具有操作简单、安全性高、功能强、易扩展等优点,最主要的是节省了大量用于建设车库的土地。
与传统PLC控制器相比较,本设计从根本上解决了成本高,可移植性差,拓展性差等问题,美观、简洁的人机交互界面使操作更为简单方便。车位控制器以常见的电子元器件组成,便于制作以及后续针对特定需求的功能改进。