李维花,李 哲,李宥谋
(西安邮电学院 计算机学院,陕西 西安 710121)
随着互联网的快速发展和普及,采用Web技术实现的远程网络管理系统已经成为网管系统不可缺少的一部分。嵌入式系统设计也逐渐发展成为计算机和网络控制应用的一个新领域,具有功能强大、实时性强、可靠性高和结构灵巧等优点。基于嵌入式Web的远程网管系统,通过Web方式实现服务器端与客户端的跨平台信息交互。目前微波传输系统的网络管理采用基于Web的远程网管系统代理的研究和应用很少。本文是以ARM7处理器系统为硬件开发平台,在μC/OS-Ⅱ嵌入式操作系统基础上,采用嵌入式Web技术实现微波传输系统的监控和管理,使系统具有灵活性、可扩展性和通用性[1]。
微波通信是一种利用微波传输信息的通信手段,数字微波采用数字信号处理技术,利用微波信道传输数字信号[2]。而微波设备网管系统就是采用微波通信的方式传输数据,图1给出了该系统的结构图。
该系统分为管理站和被管对象,其中被管对象为微波链路的设备,每一个微波链路包括2个端站,每个端站含室内单元IDU和室外单元ODU,这两个单元通过同轴电缆连接,站内设备通过网线(双绞线)连接,站间设备通过微波链路连接。室内单元安装在机柜里或门架上,室外单元和天线被安装在室外的铁塔或高建筑物上。在室内单元IDU的面板上,留有RJ-45接口,方便计算机接入对微波设备进行管理和控制。该系统另外一部分为管理站,即图1中的PC,管理站内嵌浏览软件,能够实现Web方式(即采用网页浏览的方式通过IP地址远程访问这条链路上所接入的设备)对设备进行管理和维护,即查看设备参数、设置设备参数和接收告警信息等。PC机与IDU通过SNMP协议通信,不同站点之间的IDU通过ODU之间连接的微波链路传输信息。IDU内部由两个子系统构成,使用的CPU分别为LPC2214、SmartARM2200,前者主要运行监控程序,后者运行代理程序,即嵌入式Web服务器,负责网络管理。二者通过自定义的串口通信协议完成信息的交换[3]。
在微波网络中,通过在管理站和被管对象之间采用TCP/IP协议传输网管信息,实现不同设备之间的路由选择,采用简单网络管理协议(SNMP),实现微波设备各参数的监测与控制,实现管理站对被管对象的远程访问和控制。
对Web进行管理的硬件设计主要采用周立功ARM7的SmartARM2200,开发板带有多种的存储资源(PSRAM、NAND Flash、NOR Flash和 EPROM),具有一个 10 MB的 RTL8019AS作为以太网接口,2个串口,并支持μC/OS-Ⅱ和μCLinux操作系统。CPU采用32位ARM7芯片LPC2210FBD,其接口丰富。
移植μC/OS-Ⅱ实时嵌入式操作系统,移植lwip轻量级TCP/IP协议栈,使其在SmartARM2200开发板上运行,采用C语言编写Web服务器软件。软件调试使用ADS1.2集成仿真环境,使用相应的工程模板。在调试过程中选用DebugInExRam模式进行调试,软硬件调试完成,可选用RelInChip模式烧写,后一种烧写方式会加密芯片,使之无法二次烧写。如果加密之后需要重新烧写芯片,就必须使用ISP进行解密之后方可烧写。软件总体分为应用程序、μC/OS-Ⅱ和网络协议驱动3部分。
μC/OS-Ⅱ是一个实时多任务操作系统,它的绝大部分源码是用ANSI C编写,只有一小部分与处理器密切相关的代码使用汇编语言编写,μC/OS-Ⅱ包括3部分,即核心代码、配置代码和移植代码,具有可移植性。μC/OS-Ⅱ是基于优先级的可剥夺型内核,系统中的所有任务都有一个唯一的优先级别和自己单独的任务栈。绝大多数μC/OS-Ⅱ的函数调用和服务的执行时间具有可确定性,并且μC/OS-Ⅱ还具有可裁剪、稳定性和可靠性等特点[4]。
HTTP协议(Hypertext TransferProtocol,超文本传输协议)是用于传送WWW方式的数据,也是用于从Web服务器传输超文本到本地浏览器的传送协议。HTTP协议采用了请求/响应模式。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器用一个状态行作为响应,相应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。通常HTTP消息包括客户端向服务器的请求消息和服务器向客户端的响应消息。这两种类型的消息由1个起始行、1个或者多个头域、1个指示头域结束的空行和可选的消息体组成。它可以使浏览器更加高效,使网络传输量减少,不仅保证了计算机正确快速地传输超文本文档,还确定传输文档的内容首先显示(如文本先于图形)等。这就是为什么在浏览器中看到的网页地址都是以"http://"开头的原因[5]。
HTTP协议的请求/响应模式是:客户端发送一个请求给服务器,服务器接到请求后,给予相应的响应信息。HTTP服务器运行时,一直在TCP80端口(系统默认)监听,等待连接的出现。一般一个信息的交换要经过以下几个步骤:首先通过申请套接字来建立连接,其次客户端向服务器端发送请求,然后服务器端处理完客户端的请求后,给客户端发送响应信息,最后通过关闭套接字来结束对话。HTTP协议具体的请求响应过程:
1)用户在浏览器的地址栏中输入要访问的页面地址并回车触发这个申请。Web浏览器将用户输入的URL分解,从中提取有用的信息。例如:当用户输入http://202.117.132.174/时,将其分解后,Web浏览器得到如下信息:使用超文本传输协议(HTTP)从一台 IP地址为202.117.132.174的 Internet主机(或服务器)上的某个目录下获取一个名为login.html的文件。
2)当用户输入域名时,例如:www.baidu.com Web浏览器根据网络配置查询Internet上的域名服务器(DomainName Server)来获取相应的IP地址。域名服务器上有一个数据库,存储了许多Internet服务器的域名及其相应的IP地址。在这里www.baidu.com对应的IP地址是202.108.22.5。
3)Web浏览器取得IP地址后,使用所获取的IP地址与相应的诸如lighthttpd的网络服务器进行通信来确认Web服务器是否处于可用状态。所用的通信协议为超文本传输协议。
4)当服务器处理完浏览器请求后,即向浏览器发出相应的文件请求(某个目录下的login.html文件)。服务器收到请求后即检查该目录下的指定文件,根据.html或.htm的后缀意识到这是HTML文件。若该HTML文件存在则发送该文件,否则发送文件未找到的回应信息。
5)当所要求的文件(login.html)到达浏览器后,浏览器开始解码。若浏览器发现其中有嵌入对象信息时,如嵌入的图像,则向服务器发送图像文件请求信息(image.gif),服务器收到图像文件请求信息后,开始查找相应的文件,找到后即发送该文件。对于超文本文件中的每一个嵌入对象,这个过程将被重复一次。当所有的对象都传送完毕后,此时浏览器中就会有一个完整的超文本页面展现在用户面前。
从以上过程可以看出,一个超文本页面的获取并非通过浏览器与服务器之间的一次突发的通信完成的,而是通过浏览器与服务器之间的多次交互来完成的。尽管上述过程看起来比较复杂,但它并不占用大量的计算机资源,不会影响使用计算机同时处理其他。
微波设备网管系统的Web是基于B/S模式的,系统的管理目标包括链路的传输容量、IDU的序列号、ODU的序列号、ODU的工作频段、ODU的发射功率等。微波设备服务器采用嵌入式技术,通过Web方式设计实现远程服务器端与客户端的信息交互。客户端使用浏览器对微波设备进行管理,通信采用的是TCP/IP协议。系统的体系结构,如图2所示。
本刊讯(记者 张丽凤)为全面贯彻习近平总书记脱贫攻坚重要指示精神,深入落实省委省政府打赢脱贫攻坚战三年行动计划,更好地完成省农业农村厅产业扶贫任务,12月8~9日,由河北省现代农业产业技术体系蛋肉鸡创新团队首席办主办,蛋鸡高效养殖岗、肉鸡高效养殖岗、产业经济岗承办的河北省蛋肉鸡产业技术体系扶贫工作座谈会在石家庄召开。
为了便于管理远程的微波设备,通过Internet建立Web服务器,然后对一级一级的微波设备站建立相应的代理服务,再在这些微波设备上建立相应的Web服务。具体的通信过程为:接入Internet的Web服务器响应客户端发送的信息,通过64 KB的通信信道传送,微波设备站通过代理查看是不是总站向自己发送的信息,如果不是就向下一级传送,是则开始查看是给哪个部件发送的信息。
基于B/S模式的远程监控系统中,用户需要通过浏览器管理远程设备。对于微波设备远程监控中的Socket通信有2种信息:一种是查看微波设备的实时运行状态信息,要求快速和高效,因此采用无连接的UDP Socket通信;另一种是微波设备参数信息,要求高可靠性和安全性,因此采用面向连接的TCP Socket通信。客户端可根据微波设备的IP地址建立TCP连接,由控制设备监听这个连接请求,若连接成功,则接收客户端发送的设备参数设定值。编写TCP通信任务时分为服务器和客户机2种方式。前者需要监听连接,只有在与客户机建立连接后才能进行数据处理。后者是主动连接服务器,也是在连接成功后才能进行数据处理。图3为TCP通信时服务器端和客户机端通信的函数应用过程[6]。
服务器端主函数的工作过程:初始化μC/OS-Ⅱ,创建TCP/IP初始化任务,硬件资源的初始化 (设置网络端口号,RTL8019AS网络芯片的初始化, 初始化 ARP、TCP、UDP),启动μC/OS-Ⅱ系统,创建服务器任务,进入服务器。
图3 TCP通信时SOCKET API函数的应用Fig.3 Application of SOCKET API function when TCP communicated
HTTP协议头包括一个起始行、零个或多个消息头域、一个标示头域结束的实体行和一个可能存在的消息体。本程序主要解析协议头的起始行,这种处理思路也符合嵌入式系统硬件对软件实现的复杂度要求。请求方式决定了对请求URL所指定的资源进行操作的方式,GET方法读取URL指定的资源,一般用来向服务器传输少量且透明的数据,数据总量被限制在255个字符以内,而POST方法可传输大量数据,与HTML的表单特性相配合以实现远程动态交互控制。当建立连接开始时,客户端发送GET请求方法给服务器端,以访问服务器端的网页。POST作为请求方法时,首先和Web服务器建立连接,成功后浏览器将HTML表单中的值发送给Web服务器,服务器端的程序通过判断用户的信息来确定是否让其进入系统主页面。在每次连接成功后,服务器端程序会返回以状态码200开头的响应消息,消息的起始行为:HTTP/1.1 200 OK。当用户请求一个服务器端不存在的文件时,服务器返回以状态码404开头的响应消息。
HTTP的请求报文(实测):
1)一般的POST请求报文
为了增强系统的安全性,增加数据安全性,在网页中加入基本认证机制。当客户端请求受基本认证机制保护的网页时,服务器端即要求用户认证,只有认证成功,浏览器才能获得正确的网页数据。HTTP1.1支持基本认证机制,允许服务器在返回Web之前要求用户输入正确的用户名和密码。因此,为了在不增加嵌入式Web服务器硬件配置、消耗过多资源的前提下提高系统的安全性,在微波网管Web服务器程序中加入了基本认证机制。
当客户端请求受基本认证机制保护的Web页时,服务器要求用户认证,或证明自己获得了接收资源的授权。服务器完成这项工作的方法是,返回一个带40状态码的HTTP头和一个指定所需认证类型的Web认证字段。收到请求基本认证的消息头后,客户端的浏览器会显示一个窗口,要求输入正确的用户名和密码。用户输完所要求的信息并单击OK按钮后,浏览器发送包含用户名和密码的认证请求,该请求采用POST的请求方法。如果用户名和密码正确,则进入系统主页面;否则,服务器返回以状态码404为起始行的响应消息。
首先完成将嵌入式实时操作系统μC/OS-Ⅱ移植到SmartARM2200开发板上,其次将精简了的TCP/IP协议栈移植到该操作系统中,并在其上加上嵌入式Web服务器,这部分主要工作是对TCP/IP协议栈进行精简设计,对SmartARM2200开发板上的RTL8019AS网卡芯片的驱动代码进行了重新设计,使之适用于上层软件。最后在ADS集成开发环境下进行编译和调试,使用网线和并口线将SmartARM2200开发板与PC相连接,使用H-JTAG进行烧写。运行程序,由于Web服务器不能主动发送告警信息,所以只能通过客户端请求查看,因此在IE浏览器的地址栏中输入http://202.117.132.174/,进行Web服务器的测试,进入登录界面,输入用户名和密码经过用户认证后,弹出设备状态指示的页面,直观显示告警信息,如图4所示。通过网页直接对设备进行基本信息的查询、设置,以及实时反应设备的状态信息。
以微波设备网管系统为背景,设计实现了一个嵌入式Web服务器管理模型,该模型基于TCP/IP通信协议以及HTTP协议,实用性强,便于移植推广。利用嵌入式的Web技术使该网管系统控制管理远程设备更加方便,提高了系统的通用性和可维护性,并为设备的远程配置管理和系统维护带来便利。采用通用浏览器界面对远程设备进行管理,浏览器运行的平台和服务器运行的平台相互独立,从而实现了跨平台的远程管理。
∶
[1]仲崇权,鲁辛凯,李卓函,等.基于嵌入式Web远程监控的研究与应用[J].仪器仪表学报,2006,27(6):575-577.ZHONG Chong-quan,LU Xin-kai,LI Zhuo-han,et al.Research and application of remote monitoring based on embedded web[J].Chinese Journal of Scientific Inst rument,2006,27(6):575-577.
[2]唐贤远.数字微波通信系统[M].北京:北京电子工业出版社,2004.
[3]马素刚.微波中继站中嵌入式网管Agent实现[J].西安邮电学院学报,2009,14(1):120-124.MA Su-gang.Implementation of embedded network management agent in the microwave relay station[J].Journal of XI'AN University of Post and Tel Ecommunications,2009,14 (1):120-124.
[4]Labrosse J J.嵌入式实时操作系统μC/OS-Ⅱ[M].2版.邵贝贝,等译.北京:北京航空航天大学出版社,2006.
[5]肖军,申良,肖海峰.嵌入式HTTP服务器的设计与实现[J].科技资讯,2008(32):32.XIAO Jun,SHEN Liang,XIAO Hai-feng.Embedded HTTP server design and implementation[J].Science&Technology Information,2008(32):32.
[6]周立功.ARM嵌入式系统实验教程(二)[M].北京:北京航空航天大学出版社,2005.