停车指引系统嵌入式无线网关设计
2015-01-17李月恒孙德辉
李月恒,杨 帆,孙德辉
(北方工业大学 现场总线及自动化北京市重点实验室,北京 100144)
近些年来,随着汽车成本的不断下降以及人均GDP的持续增长,我国的汽车拥有量急剧增加,在很多城市里出现了停车难的现象,为了满足停车的需求,出现了各种类型的停车场,但是大部门还是基于PC的传统停车场管理系统,传统的停车场管理系统把重点放在了计费收费管理上,然而在车位查找、实时性、效率管理方面不尽如人意,很难满足人们的需求。在本设计中,不仅把基于无线传感网络的物联网技术应用到了智能停车场中,而且结合了移动互联网技术。
本设计采用三星公司ARM11内核的S3C6410为MCU,设计了无线网关,网关的路由器接收各个车位监控节点上安装的Zigbee模块发送来的车位信息,经过数据的重组和打包将所有节点的数据发送到中控计算机上与安卓客户端上。此外所有车位监控节点上安装的Zigbee模块内置Mesh网协议栈,该网络可以自动监测和增加新的节点。
1 系统工作原理
本设计主要有四部分构成,基于Zigbee技术的监控节点,用于监控空余车位情况;基于ARM技术的无线网关,用来处理并上传节点信息;PC上位机,用于管理人员查看、管理车位信息,计费;智能终端上位机,用于客户查看空位信息、提前预约车位、引导客户到空余车位等。针对上述特定,节点部分采用内置协议栈的XBee-PRO模块,网关部分采用S3C6410为MCU,采用Linux2.6系统。系统结构框图如图1所示。
图1 系统结构框图Fig.1 Block diagram of the system
Zigbee路由节点由两部分组成,Zigbee路由器模块以及超声波检测模块,它们通过RS232接口连接,超声波检测模块用来检测车位信息,Zigbee路由器模块用来上传数据。无线网关包括ARM处理器模块、Wi-Fi模块、Zigbee协调器模块。Zigbee协调器模块上电后会组建ZigbeeMesh网,Zigbee路由器模块可以自动检测到协调器并建立连接关系,Mesh网络具有自动组织和不需要人工干预的特点。无线网关通过协调器向路由节点发送查询命令,超声波检测模块测得车位的状态后,会通过路由器模块自动选择最佳的传播路径,将数据通过一跳或多跳传输到协调器,即使路由节点和协调器距离比较远,数据也可以通过中间路由器模块的转发到达协调器,因此系统对建网的布局要求不高。无线网关相当于数据路由器,将节点传来的数据解析后分别发送至计算机以及智能终端,并保存至SQLite数据库。车主以及停车场管理人员可以使用智能终端检查停车场车位信息,根据导航进行停车。
2 系统硬件设计
2.1 嵌入式无线网关部分
嵌入式无线网关部分硬件电路如图2所示。S3C6410核心板采用高密度6层板设计,它集成了256M DDR RAM,2GB的NOR Flash,256M Nand Flash存储器,采用5V供电,在板实现CPU必需的各种核心电压转换[1-2]。在CPU上运行的是Linux2.6操作系统[3]。系统提供2路RS232,上位机可通过其中一路烧写程序,配置工作参数,另一路用于和Zigbee协调器通信。USB接口可以连接3G无线上网卡使系统可以升级为向公网服务器提交数据。扩展的SD_Card接口有两个作用,一是给主CPU烧写Linux系统。二是为了存储较长时间的数据记录文件[4]。以太网接口可以用来与中控计算机通信,将各个路由节点的信息上传到PC上供进一步的分析与显示。挂接的Wi-Fi协调器用来与无线路由器相连,在布线复杂的情况下可以代替以太网线。此外还设计了系统状态、网络状态、电源和3个LED用来实时监视硬件的工作状态,一个复位按键用来复位系统。硬件框图如图2所示。
图2 嵌入式无线网关硬件框图Fig.2 Hardware block of embedded wireless gateway
2.2 Zigbee通信部分
本系统选用美国Digi公司的内置协议栈的XBee-PRO模块,XBee-PRO模块的有效通信范围在室外可以达到1 500 m的传输距离。XBee-PRO协调器模块硬件由无线收发单芯片模块、LM1117-3.3电压转换芯片、WRB2405隔离型DC/DC模块、232串口、电源以及指示灯等组成,硬件电路如图3所示。协调器和路由器在硬件上没有差别,只不过运行的程序不同。
3 系统软件设计
3.1 嵌入式无线网关部分
嵌入式网关部分主要包括数据查询程序,WIFI与IP配置程序,BOA服务程序,数据包接收与解析程序,数据上传程序,数据存储程序。因为在ARM处理器运行着linux操作系统,所以每一个把每个任务都建立一个单独的线程,这样可以更加有效的处理各个任务。尤其是在节点比较多的时候,多线程还可以保证查询的实时性。系统主要程序结构如图3所示。
图3 系统主要程序结构Fig.3 Main structure of the system program
数据查询程序会通过Zigbee协调器周期性轮流查询各个节点的数据,节点收到查询指令后会把节点数据通过Mesh网传给嵌入式网关,网关会记录逆节点数据到嵌入式数据库SQLITE中。除了周期性查询,当用户发起查询指令后,网关会实时查询数据。嵌入式网关与Zigbee通过串口进行数据传输,还可以通过串口发送配置命令。数据库的数据存储到外置SD卡上,用来保证有足够的空间。嵌入式网关的数据会通过Socket实时的上传到客户端。
3.2 Zigbee协议数据帧
网关挂载的XBee-PRO协调器模块在上电后会自动组网[5]。XBee-PRO模块具有空、睡眠、命令、发送和接收5种操作模式。每一种模式都有透明(AT)和应用程序接口(API)两种操作模式。工作在AT模式时,XBee-PRO模块具有替代串口线的作用,并以字节为单位操作各种数据。而当系统工作在API模式时,XBee-PRO模块收发的所有数据均被包含在特定格式数据帧中。API方式包含的功能更全面并兼容AT指令,可以对XBee-PRO进行更加深层次的操作。所以对XBee的操作采用API方式。
工作在API方式时,XBee-PRO模块收发的数据将被包含在特定格式的数据帧中。
本系统定义的路由器模块发送车位状态的API数据帧结构如图4所示。
帧头为0x7E固定值,数据帧中包含目标的MAC地址及网络地址,其中MAC地址固定而且每个模块都不相同,车位编号为3个字节。
3.3 BOA服务器程序设计
图4 车位状态API数据帧Fig.4 API data frame of parking status
为了方便的配置网关的IP,在嵌入式网关移植了一个Boa服务器[6],Boa相关的程序包括前端和后端两个部分,前端主要包括html和JavaScript编写的用户界面和对应事件函数,后端用来处理html网页传送过来的数据,在处理完成后返回给网页调用的函数需要的数据,前端再利用收到的数据更新页面。通过图5所示界面来配置IP和连接WIFI,设置完之后相关数据均会更新到启动文件,以保证系统重启后数据不丢失。
图5 网络配置页面Fig.5 Configuration page of network
3.4 智能手机客户端软件设计
在Eclipse环境下,使用Java语言设计了安卓客户端[7],通过WIFI网络或者蜂窝网络,可完成与嵌入式无线网关的通信,网关把轮询到的节点数据处理后实时传送的客户端。客户端还可以发起指令,通过网关查询各车位状态信息。用户不需要到达停车场即可通过客户端软件直观的查看区域车位占用情况,被占用的呈红色,未占用的呈灰色。除此之外,还可以对空车位进行预约,以保证车辆到达时车位还在,网关会通过每个手机的IMEI号来区分不同的用户。客户端还自动进行停车计费,方便车主查看。客户端软件界面如图6所示。
4 结束语
嵌入式[8-9]无线网关采用ARM11微处理器和Zigbee通信模块,使得数据传输更精准,距离更远,解决了当前系统布线复杂的问题。实际测试表明,嵌入式无线网关可与挂接XBee-PRO路由器模块的检测节点顺利组成Mesh网络,客户端软件可以简洁直观的显示停车场的车位占用状态,具有一定的应用价值。
图6 客户端软件界面Fig.6 Interface of client software
[1]刘凯.ARM嵌入式接口技术应用[M].北京:清华大学出版社,2009.
[2]马忠梅.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2002.
[3]李亚峰,欧文盛.ARM嵌入式Linux系统开发[M].北京:清华大学出版社,2008.
[4]RichardStevens W,StephenA.Rago.UNIX环境高级编程[M].2版.尤晋元,等,译.北京:人民邮电出版社,2006.
[5]Hossain E,Kin K.Leung.无线Mesh网络架构与协议[M].易燕等,译.北京:机械工业出版社,2009.
[6]李磊,杨柏林,胡维华.嵌入式Web服务器软件的设计与实现[J].计算机工程与设计,2003,24(10):100-101.LI Lei,YANG Bo-lin,HU Wei-hua.Design and implementation of embedded Web server software[J].Computer Engineering and Design,2003,24(10):100-101.
[7]李刚著.疯狂Android讲义[M].北京:电子工业,2011.
[8]孙陇平.嵌入式软件覆盖率测试的研究与应用[J].现代电子技术,2014(18):67-69.SUN Long-ping.Research and application of embedded software coverage rate testing[J].Modern Electronics Technique,2014(18):67-69.
[9]张凯,李临生.基于嵌入式ARM下的视频监控系统的实现[J].电子科技,2013(5):34-36.ZHANG Kai,LI Lin-sheng.Realization of a video monitoring system based on embedded ARM[J].Electronic Science and Technology,2013(5):34-36.