APP下载

基于嵌入式W eb server的用户侧智能终端设计

2012-03-17危阜胜郑晓光党三磊杨劲锋陈玲君

电子设计工程 2012年17期
关键词:嵌入式信道用电

危阜胜,郑晓光,党三磊,杨劲锋,陈玲君

(1.广东电网公司 电力科学研究院,广东 广州 510080;2.杭州海兴电力科技有限公司 浙江 杭州 310015)

智能用电是智能电网的重要组成部分,是建设智能电网的着力点和落脚点。智能用电是实现电网与用户之间实时交互响应,增强电网综合服务能力,满足互动营销需求,提升服务水平的重要手段。智能用电关系到提高电网的能源使用效率、经济运行和有序用电水平,对电网建设、节能环保、电能质量管理具有深远的影响。

适应于智能电网的智能用电交互终端,是智能用电技术及服务体系中最关键环节之一,符合智能电网技术“互动”的关键特点,是国家大力推进智能电网发展背景下出现的智能用电领域热点问题,具有深远的理论和工程应用价值。

当前,不少公司针对智能家居提出了很多解决方案,目前国内市场上很多企业或企业联盟都提出了各种智能交互终端解决方案。这些方案有一个共同的特点,就是用户都只能通过PC代理的模式登陆社区系统主站才能实现信息远程双向交互。这种系统模式一方面给用户带来了隐私泄漏的困扰;另一方面,一旦社区系统出现故障,整个系统将丧失服务能力。

随着嵌入式系统技术的飞速发展,各种高性能嵌入式微处理器、高性能嵌入式系统的出现,使嵌入式Web server的实现成为现实。针对当前用户侧智能终端应用中的不足,笔者提出了一种基于嵌入式Web server技术的用户侧智能终端的方案,本方案的实现,使得用户可以通过Internet远程访问家里的用户侧智能终端,实现远程智能应用,在不提高总体建设成本的前提下完全抛弃了PC代理,采用用户直管模式,是一种全新的智能用电应用模式。

1 智能用电信息交互系统整体架构

系统整体架构如图1所示。

图1 系统整体结构图Fig.1 Overall system structure diagram

系统从物理上可以分为智能用电信息交互平台、通信信道、应用现场3部分。

智能用电信息交互平台根据规模由数据库服务器、磁盘阵列、web服务器、通讯服务器、接口服务器、应用工作站及GPS时钟等相关设备组成。

通信信道包括远程通信信道和本地通信信道。远程通信信道主要是指智能用电信息交互平台与计量自动化等系统之间的通信信道以及用户和智能用电信息交互平台与应用现场之间的通信信道。为获得高速、稳定、可靠的通讯网络,系统采用Internet作为远程通讯的主要方式。这种通讯方式的主要优点在于零成本、高带宽、扩展性强、灵活快速,可以很方便的进行管理等。采用以太网方式通信,主要由路由器及防火墙等设备组成。智能用电信息交互平台与计量自动化等系统采用防火墙物理隔离,保证系统的信息安全。本地通信信道主要是指用户侧本地网络,主要采用ZigBee、WIFI、低压电力线载波(通讯接口模块化设计,可互换)等通信方式

应用现场主要包括用户侧应用所涉及的用户侧智能终端(IHD)、智能电表、智能家电、智能安防、分布式电源以及温湿压记录仪等相关设备。

2 嵌入式W eb server用户侧智能终端硬件设计

本方案的硬件平台采用ARM11为系统硬件核心[1],硬件设计框图如图2所示。系统硬件主要包括微处理器、电源系统、通信系统、外部设备接口、存储系统、用户接口6个部分。

图2 硬件框架图Fig.2 Hardware framework diagram

用户侧智能终端的核心模块基于ARM11芯片,在其之上运行Android操作系统、嵌入式数据库(SQLite)、Web server(I-Jetty)及业务处理模块。外围设备及扩展模块要完成相关设备接口、地址译码并实现相应扩展。Data Flash负责配置处理器的结构、工作模式以及自动检测系统的各个硬件是否工作正常。SDRAM负责处理软件系统文件。系统经过初始化和自检后,引导程序指向SDRAM首地址,系统开始运行。

3 基于I-Jetty的软件平台设计与实现

本产品所采用的硬件平台和软件平台都是通用的平台,基于该平台构建嵌入式Web server,只需考虑通用性、响应速度以及对于硬件的可操作性[1]。

3.1 系统软件框架

用户侧智能终端系统软件[2]由底层驱动、系统,协议栈、应用层四部分组成。底层驱动包括:WIFI接口、ZigBee接口、红外通讯口、RJ45、TTL、Flash、TFT 液晶、 触摸屏、USB、SD 卡等外围设备驱动;系统:采用Android嵌入式系统;协议栈:TCP/IP协议栈、上行通讯协议、下行通讯协议、ZigBee协议栈;应用层:Web Server、业务处理模块、GUI。整体架构如图3所示。

图3 软件框架图Fig.3 Software framework diagram

3.2 Android平台建立

Android是一个完整的嵌入式系统平台,其包含底层内核(Linux)、中间件以及一些关键的应用。

Android创建了一套自己的系统来生成Makefile。Android build系统定义了一套自己的变量、宏等,开发人员可以使用这些变量编写Android build系统的Makefile——Android.mk。每个模块,如一个应用、一个共享库等,都有自己的 Android.mk。在编译的时候,Android.mk 中的宏就会被展开成相应的make规则,变量也会代入相应的规则。在整个Android源码编译完成后,生成的二进制文件以及image等都安装在out/目录下。

3.3 嵌入式系统TCP/IP

TCP/IP是一个内容十分复杂的协议簇,协议种类繁多,对嵌入式系统来说,要针对具体应用,对标准TCP/IP协议进行一定程度的精简,使适用于嵌入式系统的应用。TCP/IP协议簇分为四层,主要包括IP、TCP、UDP和ICMP等协议。

本方案所涉及的用户侧智能交互终端主要针对家庭用户开发,用户连接数极少,具有应用数据量很小的特征。作为瘦服务器,在设计过程中需要在满足应用的同时尽可能减少系统开销。因而,本方案中所采用的TCP采用“停止等待算法”代替常规应用的“滑动窗口算法”[3]。由于本产品应用数据量小,对网络拥塞不会产生大的影响,因而可以裁减掉TCP的流量控制功能。同时,采用停止等待算法不但降低了实现难度,提高了处理速度,同时可以取消TCP的发送缓冲区和接收缓冲区,减小了占用存储。这样既节省了系统开销,同时也不影响数据段安全正确地到达目的端。

3.4 HTTP协议及实现

嵌入式Web Server技术的核心是HTTP引擎[4]。HTTP协议是Web应用的标准协议,HTTP1.1标准可以为多个HTTP事务在浏览器和服务器之间只保持一个TCP连接,从而大大提高了网络和系统的性能。所以,采用HTTP1.1协议是瘦Web服务器的合适选择。嵌入式WebServer通过Servlet接口等方法,可以在HTML文件中运行,供RAM读/写数据。HTML页面内容一般是通过存储ROM中的压缩文件,由快速运行的代码动态产生,利用Java、JavaScript等技术在客户端生成应用代码,而在服务端只是发布网页,以减少在服务端的代码和容量,提高服务器的性能。

由于嵌入式系统一般资源有限,因而对于嵌入式Web[5-6],一般设计成单任务模式,不对每个进入服务端的连接开辟进程,更不为处理多路复用而开辟进程,仅仅对正在进行的HTTP连接复用,而且也只为独立用户Servlet开辟进程。嵌入式Web Server的基本处理流程如图4所示。Server对象添加一个默认的 Handler;

图4 嵌入式Web Server的基本处理流程图Fig.4 Embedded Web Server flow chart

3)用配置文件 jetty.xm l对这个 server进行设置;

4)用Java–jar start.jar命令启动 Jetty服务器,启动服务器后,即可远程访问并操作了。

3.6 基于JavaBean+Servlet模型的动态页面实现

JavaBean是一种基于JAVA语言的可重用组件,用户使用JavaBean可以将功能、处理、值、数据库访问和其他任何可以用JAVA代码创造的对象进行打包,并且其他的开发者可以通过内部的页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。

Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 Servlet担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载。

HTML和JavaBean+Servlet模型体系结构如图5所示。这种模型是一种基于模型视图控制器的设计模型,即MVC模型。该模型可以将Web程序分成3个部分:Model层、View层和Controller层。Model层实现业务逻辑,包括了Web使用程序功能的核心,负责存储与使用程序有关的数据;View层用于用户界面的现实,它可以访问Model层的数据,但不能修改这些数据;Controller层主要负责Model和View层之间的控制联系。

图5 HTML和JavaBean+Servlet模型体系结构Fig.5 HTML and JavaBean+Servletmodel architecture

3.5 I-Jetty服务器的移植与部署

I-Jetty是一个可运行在Android移动设备平台上的Jetty。Jetty是一个100%由Java实现的、开源的HTTP服务器和javax.servlet容器,它不仅仅作为一个独立服务软件(如Tomcat)被使用,而且其优良的组件(Componet)设计、高内聚低耦合、高扩展性等特性使得Jetty非常易于作为嵌入式工具使用。

I-Jetty本着简单不复杂的指导原则,一经推出就因为快速的部署和发布的优点受到广大开发者的追捧。I-Jetty被设计成了可插拔和可扩展的特性,设计简练而清晰,非常容易被嵌入到其它产品之中。在性能方面,I-Jetty主打小、快、轻,非常适合于嵌入式环境下的webserver开发。

I-Jetty的应用移植和部署十分的简单,其流程如下:

1)将开发好的应用程序编译,生成 WAR包,放到IJetty的 Webapps目录下面;

2)创建一个 Server对象,并设置端口,然后为这个

本模型在具体实现时,JavaBean作为Model层,Servlet作为Controller层,HTML作为View层,负责各层的应用实现。

1)JavaBean作为Model层,实现各个具体的应用逻辑和功能。

2)Servlet作为Controller层,负责处理HTTP请求处理,包括:

①对输入数据的检查和转换;

②通过JavaBean访问数据库;

③初始化HTML页面中要用到的JavaBean或对象;

④ 根据处理中不同的分支和结果,决定转向哪个HTML等。

3)HTML作为View层,负责获取Servlet生成的对象或JavaBean,从中取出数据,生成交互后返回的页面。

4 结束语

文中介绍了一种以ARM11微处理器为硬件基础的用户侧智能终端嵌入式Web Server设计和实现的过程,介绍了嵌入式系统Android和嵌入式Web平台I-Jetty在用户侧智能终端系统中的应用,并重点描述了HTTP协议实现和基于JavaBean+Servlet模型的动态页面实现。本系统具有运行效率高、界面友好、接口设计合理、功能扩展方便等特点。

[1]崔永红,马德宝.基于ARM的嵌入式Web Server研究与实现[J].微计算机信息,2008,24(23):176-178.

CUIYong-hong,MA De-bao.Research and realization of the embedded Web server based on ARM[J].Microcomputer Informatlon,2008,24(23):176-178.

[2]丁苍峰,薛宁静,吕茂林.嵌入式Web服务器的设计研究[J].计算机工程与设计,2009,30(18):4188-4194.

DING Cang-feng,XUE Ning-jing,LV Mao-lin.Design and research on embedded web server[J].Computer Engineering and Design,2009,30(18):4188-4194.

[3]胡春光,高燕,李颖.一种扩展滑动窗口算法[J].微电子学与计算机,2007(8):106-109.

HU Chun-guang,GAO Yan,LI Ying.An extended sliding window method[J].Microelectronics & Computer,2007(8):106-109.

[4]陈建华,杨玲.基于PXA270嵌入式Web服务器的设计与实现[J].现代电子技术,2008,31(20):104-109

CHEN Jian-hua,YANG Ling.Design and implementation of embeddedWeb serverbased on PXA270[J].Modern Electronics Technique,2008,31(20):104-109.

[5]刘颖颖.基于嵌入式Web服务器的电量采集系统的设计与实现[D].济南:山东大学,2008.

[6]许修磊.基于ARM嵌入式Web服务器系统的设计与研究[J].青海大学学报:自然科学版,2008(3):44-49.

XU Xiu-lei.Design and research on an embedded Web server system based on ARM[J].JournalofQinghaiUniversity:Nature Science,2008(3):44-49.

猜你喜欢

嵌入式信道用电
安全用电知识多
对输配电及用电工程的自动化运行的几点思考
为生活用电加“保险”
用电安全要注意
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于导频的OFDM信道估计技术
一种改进的基于DFT-MMSE的信道估计方法
基于MED信道选择和虚拟嵌入块的YASS改进算法
Altera加入嵌入式视觉联盟