基于嵌入式Web服务器的停车场管理系统

2016-07-07 06:05应时彦朱献康应劼立
浙江工业大学学报 2016年4期

应时彦,朱献康,朱 华,应劼立

(1.浙江工业大学 信息工程学院,浙江 杭州 310023;2.西安交通大学 生命科学与技术学院,陕西 西安 710049)

基于嵌入式Web服务器的停车场管理系统

应时彦1,朱献康1,朱华1,应劼立2

(1.浙江工业大学 信息工程学院,浙江 杭州 310023;2.西安交通大学 生命科学与技术学院,陕西 西安 710049)

摘要:针对近年来出现的停车难现象,设计了一款基于嵌入式Web服务器的停车场管理系统.该管理系统的核心是通过在STM32F207ZG中移植开源的FreeRTOS操作系统、LwIP协议栈和FatFS文件系统,搭建了一个实时多任务、带有Web接口以及支持SD卡数据存储的嵌入式Web服务器.结果表明:嵌入式Web服务器和浏览器通过HTTP协议可以精确稳定地传输数据.用户利用平板电脑、手机等移动式设备可以对停车场硬件设备进行设置和监控.与传统的停车场管理系统相比,基于嵌入式Web服务器的停车场管理系统具有稳定性强、开发成本低和移动式管理等特点,有良好的市场应用前景.

关键词:嵌入式Web服务器;停车场管理系统;STM32F207ZG;移动式管理

目前,市场上的停车场管理系统绝大多数是运行在PC上的C/S架构的管理系统[1].C/S架构的应用系统存在软件重用性差、系统维护工作量大的问题[2].目前应用系统正在向分布式的Web应用方向发展,设计了一款B/S架构的停车场管理系统.该系统具有操作简单、成本低升级维护方便的特点.不仅如此,另一个重要的优势还在于更低的功耗和更加稳定的性能,解决了以往运行在PC机上的停车场管理系统由于运行工作任务繁重而出现的经常死机问题.

本停车场管理系统设计定位成一进一出闸道停车场管理系统.通过局域网可以使用普通的平板电脑、手机等移动式设备实现停车场管理,移动式管理可以更大提升管理效率.

1系统总体设计方案

基于嵌入式Web服务器的停车场管理系统总体架构如图1所示.其中停车场系统主要外围硬件设备包括无线射频识别(Radio frequency identification,RFID)读卡器、1个与停车场出入口单闸门相连的继电器以及蜂鸣器等.用户利用手机、平板电脑和笔记本等移动式设备可以通过浏览器登陆客户端网页对STM32F207ZG微控制器以及微控制器外围的硬件设备进行监控.

图1 停车场管理系统架构图Fig.1 The architecture of park management system

2硬件结构设计

整个停车场管理系统的硬件结构如图2所示,硬件结构的核心是STM32F207ZG微控制器、以太网接口和读卡器电路.

图2 系统硬件结构图Fig.2 Hardware structure of system

2.1STM32F207ZG主控制器与以太网接口

32位微控制器采用意法半导体(ST)公司的STM32F207ZG.该控制器最高工作频率为120 MHz,拥有先进的Cortex-M3内核、哈佛结构存储器和三级流水线功能,可以在同时需要以太网、USB、CAN和音频级I2S接口的产品设计中发挥工业标准的优异性能[3].该控制器提供了丰富的外设接口,包括SPI,USART,GPIO,ETH(以太网10/100 M MAC模块)等.

STM32F207ZG微控制器中的以太网模块如图3所示.包括一个符合IEEE802.3协议的介质访问控制器(Media access control,MAC)、介质独立接口(Media independent interface,MII)和专用的直接内存访问(Directional memory access,DMA)控制器.使用MII接口与以太网物理接口收发器DP83848进行连接.RJ45与无线路由器通过双绞线进行连接.

图3 以太网硬件结构图Fig.3 Hardware structure of ethernet

通过这种电路设计不仅降低了设计成本,而且更高效的利用了STM32本身内部的以太网外设资源,使用DMA控制器可以实现以太网接口和系统存储器之间自动成批交换数据而减小CPU干预,从而大大提高了STM32的运行效率.

2.2读卡器电路

读卡器模块的硬件结构如图4所示,控制器是基于STM8内核的STM8S003F3单片机,通过SPI串行接口与MFRC522非接触式读写卡芯片实现通讯,可以读取类型为Mifare One S50的电子标签[4].控制器STM8S003F3与STM32F207ZG通过RS485串口进行通讯.

图4 读卡器硬件结构图Fig.4 Hardware structure of card reader

3软件设计

停车场管理系统的软件主要可分为3个主模块,STM8S003F3读卡程序、STM32F207ZG微控制器搭建的Web服务器程序和网页的脚本.

由于停车场系统实时性要求高,所以在微控制器中移植了FreeRTOS操作系统.FreeRTOS作为一个轻量级嵌入式操作系统,具有源码公开、可移植、可裁减和调度策略灵活的特点.因为大量的数据存储需要用到SD卡存储器,所以又在STM32微控制器中移植了FatFS文件系统.FatFS文件系统是一个通用的文件系统模块,它支持FAT12,FAT16,FAT32等格式,主要用于小型的嵌入式系统中实现FAT文件系统[5].由于需要建立服务器与网页进行数据交互,在STM32控制器中又移植了小型开源的TCP/IP协议栈LwIP,并在LwIP中建立了两个主要的应用程序服务器端包含(Server side includes,SSI)和通用网关接口(Common gateway interface,CGI).

浏览器运行了多个JavaScript、HTML脚本文件,使用异步JavaScript和XML(Asynchronous javascript and XML,Ajax)技术进行异步访问Web服务器,结合Web服务器端的SSI和CGI应用程序,实现了动态Web功能.

3.1读卡协议

整个停车场管理系统需要三个STM8S003F3读卡模块,分别对应进出门刷卡和办卡(注册、注销卡),所以使用了3个RS485接口与STM32F207ZG进行通讯,读卡发送的数据帧如表1所示.

表1 读卡器发送的数据帧

其中ID分别为进出门读卡器和办卡读卡器的3个ID号,用于区别读卡器功能型号.卡号则是类型为Mifare One S50的电子标签的ID号.CRC校验则是一种循环冗余校验算法,可以通过此校验来确定数据帧传输的可靠性.

3.2嵌入式Web服务器的底层硬件驱动协议

LwIP是TCP/IP协议栈的一个开放源代码实现,由瑞士计算机科学院的Adam Dunkels等开发,目的是减少内存的使用率和代码空间大小,因此LwIP适用于运行在资源受限的嵌入式系统环境中,对于不同配置的LwIP协议栈,LwIP可以在几百字或者几十KB的RAM空间中运行[6].停车场管理系统的嵌入式Web服务器应用层使用了HTTP(超文本传输)协议,而传输层则使用了TCP协议.

LwIP协议栈产用分层的软件结构,从上往下主要可分为应用层RAW API接口、传输层、网络层和链路层.其中RAW API接口、传输层和网络层等关键性代码都以库的形式封装,不能随便修改.链路层主要是基于IEEE802.3标准的,位于协议栈底层,需要根据实际的硬件情况编写硬件驱动程序.LwIP协议栈结构如图5所示.

LwIP链路层的函数调用了底层硬件驱动函数.其中和底层硬件驱动函数有关的函数分别是以太网链路初始化函数Low_level_init,以太网数据帧接收和发送函数Low_level_input和Low_level_output.除此之外还有几个以太网物理接口驱动函数.

以太网物理接口驱动包括ETH_GPIO_Config、ETH_NVIC_Cofig和ETH_MACDMA_Config函数.ETH_GPIO_Config实现了STM32F207ZG控制器与以太网物理接口收发器DP83848CV所连接的相应引脚的配置.ETH_NVIC_Cofig函数配置和使能了以太网模块的中断.ETH_MACDMA_Config函数则对介质独立接口、介质访问控制器和DMA控制器进行了配置.关于这些硬件配置对应的硬件结构如图3所示.

Low_level_init函数则是对链路层硬件驱动进行了初始化设置,包括ETH_DMARxDescChainInit, ETH_DMARxDescChainInit和ETH_Start函数.前两个函数主要是对DMA接收和发送控制器对应的系统存储区进行初始化.ETH_Start函数则使能了MAC控制器在MII总线上的发送和接收功能,并使能了DMA控制器的发送和接收功能.

图5 LwIP协议栈Fig.5 LwIP protocol stack

Low_level_input函数则需要从存储器中读取以太网数据帧,判断是否接收到了以太网数据帧并向上传递给函数ethernet_input进行处理.其中读取以太网数据帧时需要调用ETH_Get_Received_Frame函数,该函数将DMA接收控制器中接收到的以太网物理接口数据存放到系统存储区.

Low_level_output函数接收来自网络层的IP数据包,数据解析处理后存放在系统存储器中,并调用ETH_Prepare_Transmit_Descriptors函数通过DMA发送控制器发送系统存储器中待发送的以太网数据帧.

3.3动态Web技术

传统的Web应用使用的是同步交互方式.如果需要更新网页的内容,必须重新加载整个HTML页面.Ajax是一种用于创建快速动态网页的技术,通过在后台与服务器进行数据交换,可以使网页实现异步更新,即可以在不重新加载整个网页的情况下对网页的部分内容进行更新.其核心在于异步通信,不必刷新页面从而减少了数据传输量,提高了Web应用的响应速度,从而给用户带来了良好的体验.Ajax可以在页面内与嵌入式Web服务器通信,通过XMLHttpRequest对象,可以获取服务器上的数据,并可缓冲和处理数据,这使得许多工作可以在客户端完成,例如数据校验、表单验证等[7].

通用网关接口(CGI)在物理上是一段运行在嵌入式Web服务器上的程序.CGI技术用于在服务器端发布网页,与客户端浏览器的XmlHttpRequest组件进行数据交互,从而实现动态Web功能.

3.4系统流程描述

STM32F207ZG主控制器是整个停车场管理系统运行的核心CPU模块.它不仅承载了整个Web服务器,而且还运行了多个停车场系统的操作和监控任务,更是与外设存储器进行数据访问和存储的主要纽带.

停车场系统的主程序流程图如图6所示,系统首先需要进行外设存储器接口(包括FRAM、SRAM和SD)、定时器、看门狗、蜂鸣器、继电器、CRC、UART串口、实时时钟RTC以及SPI接口等初始化配置.其次要对LwIP底层硬件进行配置.除此以外,还需要对系统启动记录、车户资料、车户进出记录以及停车场场内等信息进行扫描和初始化处理.

在停车场系统中通过移植FreeRTOS操作系统主要建立了5个停车场管理系统任务,主要包括以太网任务、系统设置任务、办卡与进出控制任务、看门狗任务以及记录存储刷新任务.

以太网任务主要是基于LwIP协议,从而使STM32主控制器带有Web接口,通过CGI应用程序接口与浏览器端的网页进行数据交互,从而可以使停车场管理员通过网页对STM32主控器的其他任务进行实时控制和监测.

图6 停车场主程序流程图Fig.6 Program flow chart of park management system

记录存储刷新任务是最需要注意安全性的任务,考虑到数据存储的安全性,网页管理员账号信息、车户卡号信息、场内车辆信息以及近期的车户进出记录存储在FRAM和SRAM存储器中.由于车辆进出记录的数据容量过大,所有的车户进出记录则保存到SD卡中.

看门狗任务则防止服务器死机或者程序跑飞从而可以利用软件复位控制器.

STM8S003F3读卡器模块则根据STM32主控制器刷卡任务需要进行卡号读取并发送读卡数据帧.读卡程序如图7所示.

图7 读卡器程序流程图Fig.7 Program flow chart of card reader

4系统演示

整个停车场管理系统的Web页面分为两种操作权限,分别是管理员和操作员.管理员拥有整个停车场管理系统的所有操作权限,而操作员只拥有其中监控部分的权限.

整个Web页面分为四个网页功能,分别是账户设置、客户资料、进出管理和系统设置.账户设置是针对停车场管理系统的管理权限而设定的管理员和操作员账号设置.客户资料则是停车场客户的办卡和查询等操作.进出管理则用于紧急开关闸门、场内信息监督和进出记录查询等.系统设置则用于网络IP地址的修改、嵌入式设备系统时间的校准、出入门闸的测试以及数据备份操作等.

在平板电脑上打开浏览器,输入网址192.168.1.58可以进入该停车场管理系统的管理页面.图8(a)展示了管理系统的登陆页面.在登陆界面中输入用户名和密码,选择登录类型就可以进入系统首页,选择进入管理菜单,如图8(b)所示,可以看到有三个模块,分别是进出控制、场内信息和进出记录.图8(b)中显示的是停车场内的车辆信息情况,包括用户名、电话、卡号、车牌、车辆类型和入场时间等.这些信息可以方便管理员或操作员对停车场内的车辆信息进行监督.图8(c)显示的是系统设置页面,系统设置页面主要是方便管理嵌入式设备的某些设置,包括系统的IP设置,门闸开关时间设置以及其他设置等,图8(c)中展示的是其中的系统时间校准设置,将电脑本地时间通过同步时间按钮同步到嵌入式设备.

图8 Web页面Fig.8 Web page

由于使用嵌入式设备作为服务器,所以该瘦身型服务器的功能相对比较简单,HTTP传输速率也受到硬件模块的制约,在打开网页会有一定的延时(大约有1~2 s).同时受到系统框架的制约,每张网页的大小不能超过30 k,否则传输时延迟会更大.另外要尽量减小HTTP的请求,防止用户体验过差.

5结论

设计了一款基于嵌入式Web服务器的停车场管理系统,该系统与传统的停车场管理系统相比,采用带有Web服务器功能的嵌入式设备长期运行更稳定,开发成本更低,升级维护更方便.通过路由器构建局域网,使平板和手机等移动式设备可以使用网页的形式来管理停车场,可以摆脱传统的岗位式管理方式,从而实现更高效率、更加方便的移动式管理方式.

参考文献:

[1]钟新跃.基于C/S架构的停车场车位信息发布与管理系统[J].计算机测量与控制,2013,21(7): 1957-1962.

[2]孟利民,包轶名.基于局部特征的图像插值算法在B/S视频监控中的应用[J].浙江工业大学学报,2015,43(2): 217-221.

[3]STM Microelectronics Inc.Stm32f205xx/207xx data sheet(Rev.12)[EB/OL].[2014-10-27]. http://www.st.com.

[4]陈杰,应时彦,朱华.基于MFRC522的RFID读卡器设计[J].浙江工业大学学报,2014,42(6): 616-620.

[5]张涛,左谨平,马华玲. FatFs在32位微控制器STM32上的移植[J].电子技术,2010,47(3): 25-27.

[6]李志明,檀永,徐石明,等. STM32嵌入式系统开发实战指南[M].北京:机械工业出版社,2013.

[7]靖伟.Ajax技术的研究与应用[J].中国传媒大学学报(自然学科版),2015,22(6): 50-55.

(责任编辑:陈石平)

Park management system based on embedded Web server

YING Shiyan1, ZHU Xiankang1, ZHU Hua1, YING Jieli2

(1.College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023, China;2.College of Life Science and Biotechnology, Xi’an Jiaotong University, Xi’an 710049, China)

Abstract:In view of the parking problems in recent years, a park management system which is based on embedded Web server is designed. The core of the management system is the embedded Web server with real-time multi task, Web interface and SD card data storage. It is set up on the open source FreeRTOS operating system, LwIP protocol stack and FatFS file system in the STM32F207ZG. The experimental results show that the embedded Web server and client can accurately and stably transmit data through the HTTP protocol. The park facilities can be set and monitored through the mobile device such as tablet PC, mobile phone and so on. Compared with the traditional park management system, this park system based on embedded Web server has strong stability, low development cost and mobile management. It will have good applications in the market.

Keywords:embedded Web server; park management system; STM32F207ZG; mobile management

收稿日期:2016-01-15

作者简介:应时彦(1964—),男,浙江嵊州人,教授,研究方向为信息技术应用,E-mail:ysy@zjut.edu.cn.

中图分类号:TP32

文献标志码:A

文章编号:1006-4303(2016)04-0383-05