基于EPA标准的嵌入式Web服务器的设计
2014-03-10李萌,杨彬
李 萌,杨 彬
(中环天仪股份有限公司,天津 300384)
EPA实时以太网是一种全新的适用于工业现场设备的开放型实时以太网标准[1],是我国第一个拥有自主知识产权并被国际标准化组织接受和采用的工业自动化标准[2],具有协议处理时间短,报文传输实时性高,可靠性与抗干扰能力强等特点[3]。
在工业控制领域,传统的Web服务器结构复杂,实时性差。嵌入式Web服务器基于HTTP协议运作,具有标准的接口形式和通信协议,用户只需要浏览器即可对现场设备进行控制和检测,技术具有平台独立性和开放性,对软件系统的设计维护更加容易,硬件成本低,安装方便[4]。
本文以EPA通信模型为基础,采用32位微处理器AT91SAM9G20作为CPU,搭建嵌入式Linux服务器软件系统,实现具有现场总线通信能力的Web服务器,满足EPA现场设备的远程控制需求。
1 嵌入式Web服务器的工作原理
嵌入式Web服务器是EPA现场网络设备与客户端进行信息交互的枢纽,是现场设备层与过程监控层之间以及与远程网络互连的关键设备。其网络系统结构图如图1所示。
图1 网络系统结构Fig.1 System structure of network
整个嵌入式网络控制系统分为3层网络结构,分别是信息层、控制层和设备层。信息层即是上位监控客户机,主要通过Web浏览器的方式访问控制层,主要负责监控现场设备;控制层即嵌入式Web服务器,为控制系统的核心部件,负责将控制节点采集的现场设备的运行状态传送至监控界面进行显示,并且将监控界面的控制信息发送给控制节点,成为信息交互的枢纽;设备层即现场连接的EPA网络设备。
2 嵌入式Web服务器的硬件设计
嵌入式Web服务器的硬件结构如图2所示。硬件构成的核心是微处理器,外围连接电源时钟电路、调试接口电路、存储器扩展电路、网络芯片电路。
图2 嵌入式Web服务器的硬件结构Fig.2 Hardware structure of the embedded Web server
服务器承载了诸多通信任务,是嵌入式网络控制系统的核心所在,选择具有高性能、可移植嵌入式操作系统的ARM9微处理器。AT91SAM9G20基于ARM926EJ-S核心处理器,时钟频率为400MHz。本身带有MMU(内存管理单元),可移植Linux等大型操作系统。CPU内置多种外设控制器,具有丰富的总线接口和强大的扩展能力,时钟频率可达400MHz。
系统采用以太网总线供电,通过EUP3410降压模块将工业交换机提供的24 V电源转换为5 V电源,再通过LM1086-33和TPS60500降压模块分别将5 V电源转换为3.3 V和1 V电源,为服务器的多种外围芯片和微处理器内核供电。
实时时钟(RTC)当硬件在断电的情况下需要有后备电源给电路板的实时时钟供电,保证时钟系统的正常运行,采用32.768 kHz的无源晶振作为RTC时钟。
服务器需要一个18.432MHz的无源晶振作为系统外部时钟源,为芯片、片内总线及片内功能模块提供时钟。
SDRAM和NandFlash作为微处理器的存储扩展,通过总线复用,分别扩展容量为64MB的SDRAM存储器和容量为128 MB的NandFlash存储器。
USB接口和DEBUG接口用于系统程序的下载和调试。
以太网通信部分采用工业级单口物理层收发器 DM9161BIEP,通过MII(介质无关接口)与微处理器AT91SAM9G20内部的以太网MAC层控制器相连。
为了增强EPA现场设备网络的安全性,使Web服务器对Internet和EPA网络之间起到隔离作用,Web服务器采用双端口设计。另一个以太网端口通过总线扩展连接工业级以太网控制器DM9000CIEP。
3 嵌入式Web服务器的软件设计
3.1 软件体系结构
嵌入式Web服务器的软件体系结构如图3所示。
启动引导程序是Linux操作系统内核运行前的一小段程序,用于驱动设备、建立内存映射,并载入系统内核。移植时需要对与硬件结构相关的程序进行修改,并使其支持内核所使用的文件系统[5]。
图3 嵌入式Web服务器的软件体系结构Fig.3 Software structure system of the em bedded Web server
内核是Linux操作系统的主要软件组件,具有硬件驱动、内存管理、进程调度、文件系统、网络通信等功能。内核的功能取决于内核构建时所设置的配置,需要进行配置和裁剪[6]。
EPA设备接入以太网,必须嵌入EPA协议栈,使用户应用程序使用通用的网络编程技术与EPA设备实现通信。EPA报文采用UDP/IP封装,EPA协议栈包括EPA系统管理实体、EPA应用访问实体、EPA套接字映射实体,并包括时钟同步、通信调度,各模块相辅相成、相互联系。通信调度模块实现整个系统的通信调度算法,保证了以太网通信时数据的通信顺序和优先级,保证服务器通信的实时性和确定性。时钟同步模块为通信调度模块提供精确的网络同步时钟,保证了网络上每个设备按照组态时间进行数据的发送。
服务器移植嵌入式数据库SQLite,SQLite具有简单、小巧、稳定的特点,非常适用于中小型网站、嵌入式设备的应用。嵌入式网络控制系统中内置数据库主要用来存储网络节点的历史数据,并提供调用服务供监控层的操作用户读取,通过SQLite对采集的现场数据进行记录,为定期查看现场设备的运行状态提供有力的参考数据。
EPA服务器应用程序是Web服务器软件架构的核心,需要搭建适当的服务器模型,使其具有能够快速对多网络节点进行并发采集和控制的能力。
为了支持服务器的浏览器访问,软件体系结构移植嵌入式Web服务器BOA,修改BOA配置文件,设置网络访问网页[7-8]。
为了支持动态网页,BOA服务器的链接网页选择将Java Applet嵌入到HTML网页当中,实现实时数据的动态刷新。
3.2 EPA 服务器应用程序设计
EPA服务器应用程序采用并发服务器模型,建立线程池,实现多端口编程。Web服务器具有两个以太网接口,分别连接Internet和EPA网络设备,两种网络应用的协议完全不同。Internet网络应用HTTP协议,底层采用TCP协议,EPA网络遵循EPA协议。两种网络都要挂载多个连接对象,进行实时数据交互。
针对两种网络协议,建立两个网络监听线程:Web端口监听线程和EPA模块监听线程。Web端口监听线程建立TCP连接套接字,对TCP协议的固定端口进行监听,当有客户端进行连接时,建立客户端连接线程,一个线程对应一个客户端,没有客户端连接时Web端口监听线程阻塞。服务器维护一个客户端连接链表,记载在线的客户端连接信息;EPA协议底层采用的是UDP协议进行封装,EPA模块监听线程利用UDP接口函数绑定固定端口,等待EPA现场设备数据的输入。当有EPA设备连接时,产生EPA设备连接线程。同样,服务器维护一个现场设备连接链表,记载在线的现场设备连接信息。
客户端连接线程直接响应所连接客户端的控制信息,并将底层EPA设备的信息发送给客户端。
EPA设备连接线程采集现场设备的信息,并将客户端控制信息下达给现场设备。
Web端口监听线程和客户端连接线程流程如图4所示。
图4 Web端口监听线程和客户端连接线程流程Fig.4 Application program flow chart of the Web port listen thread and the client connection thread
当客户端连接线程接收到客户端控制信息时,对请求信息的控制协议进行解析,根据控制对象查找现场设备连接链表,建立消息队列,将消息传递给对应的EPA设备连接线程;EPA设备连接线程接收客户端线程发送的消息队列,进行协议解析,转换为EPA协议,发送给现场EPA设备。
EPA线程设备信息的采集过程与客户端控制信息的下达过程相反,进行EPA协议向TCP协议的转换,同样利用消息队列进行线程间信息的传递,并且将现场采集的设备信息保存至SQLite数据库。
3.3 用户界面程序设计
为了使用户界面便捷、直观、可视性更强,具有可操作性,Web浏览器上显示的图形界面就需要与嵌入式Web服务器进行实时通讯,获得现场仪表的数据信息,并进行动态刷新,本文采用Java Applet技术实现上述应用。如图5所示,为用户界面实现原理图。
图5 用户界面实现原理图Fig.5 Principle diagram of the user interface im plementation
EPA服务器应用程序与客户端进行TCP通信,并实时将采集数据保存于数据库。
嵌入式Web服务器移植BOA服务器。BOA服务器开源,应用广泛,系统内存消耗特别少,因此非常适合于嵌入式设备。移植后需要对BOA服务器进行相应配置,定义BOA服务器的文件根目录和浏览主页的索引文件名。设置嵌入式系统启动后,自动运行BOA服务器。
BOA服务器的文件根目录当中,存放HTML浏览器访问页面,在HTML文件中通过
客户端通过浏览器访问嵌入式Web服务器,当BOA服务器接收到客户端访问信息时,通过Internet将BOA服务器当中的HTML文件、Java Applet的类文件及其它相关文件传送给客户端,客户端运行HTML文件,调用Java Applet小程序,进行与EPA服务器应用程序的TCP通信和动态刷新,实现Web动态页面交互。
当浏览器载入包含Java Applet的Web页面时,浏览器将生成一个Java Applet类的对象,根据此对象中的基本方法控制Java Applet的运行。
Web动态页面既要与服务器进行实时通信,又要对屏幕进行动态刷新,为了实现多种功能于一身,Java Applet采用多线程编程。
程序开始建立TCP套接字,建立输入、输出流,实现对套接字数据的接收和发送,建立两个线程,线程1实现对现场仪表参数和仪表数据的读取,线程2实现对屏幕的定时刷新。
线程1每100ms运行一次,发送指定仪表的读取命令,接收服务器返回的采集数据,并将数据进行保存,以便用于界面的显示。
线程2每20ms运行一次,首先绘制树形结构,之后根据采集数据,定时重新绘制仪表参数组合框和仪表数据组合框。
Java Applet界面具有按键触发功能,点击树形结构节点,会对仪表的显示界面进行切换;点击参数设置按钮,将参数信息发送给服务器,并对参数显示组合框进行刷新;点击数据读取按钮,会手动读取现场仪表信息,并将采集的最新数据显示于组合框。
4 系统测试
系统测试使用Web服务器采集EPA现场控制系统的仪表数据,EPA控制系统具有EPA压力、流量、执行器、阀门定位器等仪表,现场仪表连接工业交换机,Web服务器一个网口连接交换机,一个连接Internet。客户端PC机只要通过浏览器访问Web服务器的IP地址,即可在浏览器中观测到服务器的监控界面。界面需要管理员身份登录,登录后即可实时查看现场设备运行状态。
如图6所示,为嵌入式Web服务器监控界面。左侧显示系统所连接的EPA仪表,点击仪表节点,可设置仪表所需的参数,查看仪表运行的当前信息,每20ms对数据进行一次动态刷新。
可见,嵌入式Web服务器的操作便捷,具有友好的界面,性能稳定,实时可靠,方便用户远程获取节点信息。
图6 嵌入式Web服务器监控界面Fig.6 Monitoring interface o f the embedded Web server
5 结语
本文介绍了一种基于EPA标准的嵌入式Web服务器的设计方案,实现了Internet与EPA工业以太网的互联,完成了对EPA工业以太网的监测、控制和管理,各项测试符合相应的性能指标,且工作稳定。嵌入式Web服务器的设计,实现了工业以太网的Web界面访问,客户端程序简洁,访问便捷,具有广阔的应用前景。
[1] 冯冬芹,金建祥,褚健.工业以太网关键技术初探[J].信息与控制,2003,32(3):221-224.
[2] 国家质量技术监督局.GB/T20171-2006用于工业测量与控制系统的EPA系统结构与通信规范[S].北京:中国标准出版社,2006.
[3] 向敏,徐洋,程安宇,等.嵌入式EPA安全网桥的设计[J].仪器仪表学报,2008,29(2):289-294.
[4] 刘志东,纪金水,杨锋英.嵌入式Web服务器技术探究[J].电脑知识与技术,2011,7(27):6612-6613,6637.
[5] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.
[6] 杨水清,张剑,施云飞.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2009.
[7] 保川,班建民,陆卫忠.基于嵌入式Web的远程监控系统设计[J].微计算机信息,2005,21(7):58-60.
[8] 韩树人,周贤娟.基于嵌入式Web服务器的远程实时数据采集[J].计算机技术与发展,2008,18(1):206-209. ■