赵兴利,苑光明,张小俊,朱志辉
(1.河北工业大学机械工程学院,天津300130;2.河北工业大学校园建设与管理处,天津300130)
面向空间智能化的嵌入式网关服务器系统设计
赵兴利1,苑光明1,张小俊1,朱志辉2
(1.河北工业大学机械工程学院,天津300130;2.河北工业大学校园建设与管理处,天津300130)
为了满足车间、仓储等不同空间需要不同传感网络的个性化需求,以物联网为基础设计了一套通用性强、可裁剪、可移植的空间智能化网关服务器系统.系统实现了CAN总线、RS485总线、WIFI、蓝牙、ZIGBEE等多种传感网络与传统通信网络之间协议转换.系统采用LAMP架构设计了嵌入式服务器,实现了在局域网内通过智能设备访问本地服务器,查看传感节点状态和控制执行节点的功能;在广域网内通过3G远程通信技术实现异地监测传感节点的最新状态.
嵌入式;网关;服务器;异构网络;LAMP架构
空间智能化系统是将传感节点和执行节点通过总线技术或无线传感技术连接到嵌入式网关服务器,嵌入式网关服务器对接入系统的设备节点集中的或远程的监测、控制或事务处理,来保证空间的协调与安全.嵌入式网关服务器作为空间智能化系统信息交互、处理和存储的中心,在系统中占据核心地位.嵌入式网关服务器一方面具有网关的作用实现异构网络间通信,另一方面为用户提供访问服务[1].与通用的以太网网关不同,嵌入式物联网网关需要支持传统通信网络与传感网络之间的数据交互.目前,物联网网关的厂商都根据自身条件设计和生产支持某一种或几种传感网络的产品,缺乏通用性,行业内没有明确的标准进行规范.文献[2]基于ZIGBEE和3G技术设计了仓储管理预警网关系统,实现了货物出入库记录及仓储环境测量和远传,但是传感网络类型单一,通用性差;文献[3]基于嵌入式Linux设计的多协议网关支持WIFI、蓝牙两种无线传感网络,但是蓝牙模块传输距离短,WIFI模块功耗很大,在电磁干扰强的场所信号无线传输易受干扰;文献[4]对ZIGBEE传感网络的软硬件、网关协议转换、上位机监控界面进行设计,实现了矿井瓦斯监测预警,但是没有实现多传感网络协议转换;文献[5]基于ZIGBEE、以太网、WIFI技术,利用STM32和CC2530设计了嵌入式网关,实现了数据采集和节点控制,但是该测控子系统智能性有待改进.
针对矿井、仓储等工业环境存在地理环境多种多样、监测指标种类繁多等问题,仅支持一种或少数几种传感网络的嵌入式网关已无法满足多种工业空间的监控预警要求.系统设计了支持RS485总线、CAN总线、ZIGBEE、蓝牙、WIFI五种应用最广泛的传感网络和3G远程通信技术的嵌入式网关服务器系统.系统支持定制,传感网络可裁剪、可扩展、通用性更强.
嵌入式网关服务器主处理器采用ARM Cortex A7内核的处理器.该处理器具有高达1.4 G主频、1 G内存、4 G flash、最大扩展32 GSD card可以平稳的运行嵌入式网关服务器系统[6].
CAN总线通过SPI0与主控制器通信,采用MCP2515接口芯片与主控制器相连,完全支持CAN V2.0技术规范,通讯速率高达1 Mb/s.RS485总线通过UART0接口与主控制器通信.RS485为半双工模式.RS485采用SN75LBC184接口芯片与主控制器相连,该芯片能承受高达8kV的静电放电冲击,可防止在使用或焊接时受到静电的冲击损坏.蓝牙通过UART1与主控制器通信,接口芯片选择TI的CC2540.该芯片为加强版51内核内置256 K存储器,超宽工作电压(2~3.6 V),超低功耗.ZIGBEE通过UART2与主控制器通信,接口芯片采用TI的CC2530.WIFI通过SDIO接口与主控制器通信,接口芯片采用RT5931模块.3 G模块选用中兴物联MF210模块,该模块与主处理器通过USB2.0接口通信.MF210与主处理器通信时,虚拟成3个ttyUSB口,供系统调试、远程传输、SIM通信.
嵌入式服务器是嵌入式网关服务器系统中负责为用户提供访问服务的软件组合.嵌入式服务器采用性能优良的LAMP经典架构开发,即Linux+Apache+MYSQL+PHP组合.如图1所示为嵌入式网关服务器软件架构图.嵌入式服务器前端界面采用html5+css3的响应式网页开发技术,使界面可以根据用户设备屏幕的大小自动调整界面尺寸.服务器后台程序采用PHP开发,用于响应前端界面请求和连接网关应用程序.嵌入式服务器前端界面与后台程序之间采用AJAX服务通信.AJAX服务是异步数据传输机制.本文在AJAX服务的Servlet Library中设置有效的设备地址、模式类型、传感节点状态信息、执行节点状态信息四个模块,通过HTTP请求实时推送最新信息至前端界面.用户操作某一模块时,前端界面可以对这些模块进行局部刷新,从而避免了页面整体加载造成的卡顿和消耗过多流量,提高了页面的刷新速度和减少用户访问的数据流量.
图1 嵌入式网关服务器软件架构Fig.1 Software chart of gateway server
2.1 嵌入式网关应用程序设计
网关应用程序作为传感网络与传统通信网络信息交互的纽带,具有对数据解析、处理、传输等作用.本文采用多线程机制控制数据的上传、下行和智能控制.多线程机制采用多任务并发运行的方式,可以有效提升系统CPU的利用率.表1所示为网关应用程序多线程机制.
表1 网关应用程序多线程机制Tab.1 Multithreading of gateway application
2.1.1 Socket_client线程设计
采用Socket_client线程主要用于远程监测传感信息.广域网环境下数据传输,对传输安全性较高,因此采用TCP/IP传输方式.TCP/IP通过“三次握手”机制可以大大提高数据传输的安全性和完整性[7-8].Socket连接成功后,server程序产生一个新的子进程来维持与该客户端的信息交互.嵌入式网关上运行的Client程序向云服务器上的Server循环发送心跳包,来验证连接是否有效.当接收到传感节点发来的状态信息后,Client将传感信息打包发送给云服务器,方便用户远程查看系统的最新状态.如图2所示为Socket客户端流程图.
图2 Socket客户端软件流程图Fig2Software chart of socket client
2.1.2 Receive_data_from_node线程设计
Receive_data_from_node线程的作用是同时监听5路传感网络,并将采集的信息解析存入MYSQL数据库,供用户在远程或局域网内查看.其中,监听传感网络上传信息方式为I/O复用技术中的EPOLL机制,如图3所示,构建了EPOLL监听五路传感网络的系统模型.使用EPOLL提供的API函数为五路传感网络建立句柄,并将建立的句柄拷贝进内核空间,然后使用EPOLL_CTL()为各个传感网络的句柄建立回调函数,当传感设备就绪后,会唤醒等待队列的等待进程,等待进程会调用该回调函数将已就绪的设备句柄加入就绪链表,EPOLL只对已经就绪的设备句柄进行轮询读操作,然后将读取的传感信息发送至用户空间,提高CPU利用率.
图3 网关中间层EPOLL模型Fig.3 EPOLL module of gateway server
2.2 Linux内核与驱动移植
Linux是一个可定制的开源的操作系统,通过配置内核的支持选项可以根据自己的需要,选择内核支持的驱动.内核的移植首先在宿主机上搭建Linux开发环境,安装ARM-Linux交叉编译链.通过make menuconfig配置内核,然后将交叉编译后得到的内核镜像移植到目标机(嵌入式网关服务器).本文将各通信接口的将驱动程序编译后移植到Linux系统中.
CAN总线驱动程序移植:首先是安装和交叉编译CAN总线调试工具iproute2;将编译得到IP命令复制到目标板的/usr/sbin下面将原有的IP命令替换掉.通过新得到的IP命令配置CAN总线驱动:设置波特率ip link set can0 type can bitrate 125000;设置重启时间ip link set can0 type can restart-ms 100.ZIGBEE、蓝牙、RS485总线都是通过UART口与内核通信,UART作为Linux的1个字符设备,在/dev目录下有与其对应的文件,统称为/dev/ttyS*.WIFI驱动移植步骤:将Makefile文件中的cpu架构修改为IXP架构;修改/MODULE/include/os/rt_drv.h文件的BULKAGGRE_SIZE值来设置DMA的大小;交叉编译,得到驱动程序:Insmod rt5931ap.ko;Insmod rtnet5931ap.ko;Insmod 5931ap.ko.按顺序加载.
3G模块驱动移植是:向Linux内核添加3G模块接口驱动,使内核支持“USB driver for GSM and CDMA modems”;交叉编译并重新烧写内核;交叉编译工作源代码最终得到可执行文件pppd和chat;将可执行文件挂载到系统,配置DNS脚本文件即可.
2.3 网间通信设计
嵌入式网关的作用是实现传统通信网络与多种传感网络之间有效通信,需要设计通用性强的通信协议用于网间通信.各传感网络与网关应用程序之间通信是:各个传感节点将传感信息以通用通信协议的格式编码放入数据包,发送至传感网络控制器.如图4所示为数据包组成.
图4 通用通信协议数据包组成Fig.4 Communication protocol packet composition
传感网络控制器将传感信息从数据包解析出来,通过UART或USB口发送至网关应用程序.网关应用程序给每种传感网络定义了句柄,网关应用程序通过EPOLL机制同时监听5路传感网络的句柄.当EPOLL监听到有消息到来时,网关应用程序将消息按照通用通信格式解析,然后将解析出来的传感信息存储到已定义好的通用协议结构体中.
服务器与网关应用程序通信:网关应用程序将传感信息通过SQL命令存入MYSQL数据库,PHP后台程序通过MYSQL库函数将数据取出,通过AJAX将传感信息更新于服务器前端界面.
当用户要控制传感网络中执行节点时:在局域网内网关应用程序与服务器后台程序之间建立一条消息队列,实现了用户的控制命令可以下发至网关应用程序.在广域网内,嵌入式网关应用程序与服务器之间遵循TCP/IP协议通过socket套接字进行通信.网关应用程序中的Socket_client线程负责与远程服务器的Socket服务端通信,然后将接收到的消息解析处理后,发送至Send_command_to_node线程.
1)网关协议转换的正确性测试:数据的传输情况打印在日志Pcduino_uart.log中,如图5所示.本文以ZIGBEE传感网络连接的DHT11传感器入网上传温湿度信息为例,测试协议转换的正确性.节点入网命令字cmd_type为1;本节点为ZIGBEE网络连接的温湿度传感器,节点类型包括接口类型和设备类型,接口类型为字节的高3位010,设备类型为字节的低5位为00110,十进制为70;设备ID是一类设备内部的设备的地址,从1开始编址的;时间戳用于标记数据到达网关的时间,方便后期进行大数据分析和处理;数据:温湿度数据共4个字节,前2个字节是温度17.32℃,后2个字节是湿度65.47%.
图5 DHT11入网数据包协议转换测试Fig.5 Network packet protocol conversion test of DHT11
2)网关服务器的反应时间测试:单独测试网关反应时间是网关串口函数定时读取固定字符串,并将字符串解析处理后存入远程数据库或本地数据库,然后更新于web界面上所用的时间.连接智能设备的网关服务器反应时间是传感节点定时发送固定字符串至嵌入式网关,解析后存入数据库并更新于web界面所测定的时间.如图6所示为测试结果:
图6 网关服务器反应时间测试Fig.6 The response time test of gateway server
如图6所示,左图为网关服务器未连接智能设备时的时间响应曲线,更新于远程web界面的平均响应时间:T1=1.456 s;更新于本地web界面的平均响应时间:T2=0.267 s.右图为网关服务器外接温湿度传感器时的时间响应曲线,更新数据于远程web界面的平均响应时间:T3=1.873 s;更新数据于本地web界面的平均响应时间:T4=0.684 s.由测试可以得出:网关服务器外接智能设备后反应速度非常灵敏,平均响应时间T≤2 s,可以满足车间、仓储上对网关服务器的实时性要求.该网关服务器支持多种通信协议同时进行数据交互,开机和反应速度均比较快,在测试过程及平时使用中性能良好、运行稳定.
3)Web界面中各个监控节点的有效性测试:登录web服务器操作各个节点是否有效,节点状态显示是否正确.该页面设置了安防监测,火灾监测.安防监测中设置了门磁节点,在安防状态下当门关闭时web界面显示正常,当门打开时web界面上的门磁节点应立即显示危险;火灾监测中设置了烟雾、火焰、甲烷节点,没有发生危险时各个节点状态显示正常,当发生火灾或燃气泄漏时web界面上相应的节点状态应立即显示危险.
图7 云服务器用户操作界面Fig.7 Web server user interface
针对物联网行业缺乏统一的标准规范,而且农业大棚、工业车间、仓储环境多样和监测种类繁多,本文设计了通用性强的通信协议结合多线程技术与EPOLL机制实现了多种异构网络间稳定通信;基于B/S架构,采用AJAX+HTML5+CSS3设计了具有屏幕自适应和局部刷新功能的web监控界面及后台程序;采用TCP/IP网络通信和MYSQL开发库实现了系统的远程监控,方便用户随时随地监测和控制系统状态.
[1]张璐,吕昂.一种双网络智能家居嵌入式网关/服务器[J].物联网技术,2015(7):72-75.
[2]刘培学,高颖,金佩芬.基于ZigBee及3G网络的远程仓储管理系统设计[J].测控技术,2015,34(4):16-19.
[3]吴磊,王猛.基于嵌入式Linux的多协议网关设计与实现[J].电脑知识与技术,2016,12(30):30-34.
[4]晏勇,周相兵.基于物联网矿井瓦斯动态监测与预警系统设计[J].实验室研究与索,2016,35(1):93-96,105.
[5]李众,王鹏澄,陆海空,等.基于ZigBee、以太网、WiFi技术的网关设计[J].测控技术,2015,34(3):97-100,104.
[6]消息展讯通信有限公司.展讯发布采用28 nm工艺的高集成度四核智能手机平台[J].电脑与电信,2014(6):16-17.
[7]颜诗洋.微型嵌入式TCP/IP协议栈开发[J].电子设计工程,2014,22(22):108-110.
[8]吴建军.关于TCP/IP网络的安全问题研究[J].科技资讯,2015,13(32):27-27.
[责任编辑田丰 夏红梅]
System design of intelligent embedded gateway server
ZHAO Xingli1,YUAN Guangming1,ZHANG Xiaojun1,ZHU Zhihui2
(1.School of Mechanical Engineering,Hebei University of Technology,Tianjin 300130,China;2.Campus Construction and Management Office,Hebei University of Technology,Tianjin 300130,China)
To meet the complex and diverse environment in producing department and storage,designed the intelligent gateway server which can be versatile and cut.The system integrated multiple heterogeneous networks such as CAN, RS485,WIFI,BlueTooth,ZIGBEE.The system uses the LAMP architecture to design the embedded server,and realizes the access to the local server through the intelligent device in the local area network,to view the status of the sensing nodes and control the execution nodes.In the wide-area network via Ethernet or 3G remote communication to monitor the latest state of sensing nodes.
embedded;gateway;server;heterogeneous network;LAMP framework
TP277
A
1007-2373(2017)02-0058-05
10.14081/j.cnki.hgdxb.2017.02.011
2017-02-15
天津市科技支撑计划(14ZCDZGX00811);天津市产学研合作项目(14ZCZDSF00025);天津市863成果转化项目(13RCHZGX01116,14RCHZGX00862)
赵兴利(1990-),男,硕士研究生.通讯作者:苑光明(1967-),男,教授,博士,1642436550@qq.com.