摘要:为了满足当前工业控制和家用电器远程测控的要求,介绍了一种基于JAVA的嵌入式网络测控系统的全新设计方案,从硬件和软件两个方面进行了论述。详细介绍了基于ARMlinux的嵌入式WEB服务器的设计方案,针对嵌入式服务器的实际和应用场合,提出了基于Java applet的“瘦服务器”解决方案。与其他的嵌入式网络测控系统相比,该系统继承了典型的B/S模型的优点,可以减轻嵌入式WEB服务器的负担,以创建更为直观、丰富的用户界面(GUI)。同时该系统更好地动态刷新。测试结果表明方案可行、实用。 关键词:嵌入式系统 Linux 测控系统 远程控制 Java
0 前言
基金资助:2006年四川省教育厅青年基金(项目名称:基于网络的机器设备故障智能诊断监测系统研究 编号:2006B043),2000年四川省科技厅重点攻关项目(项目名称:数控机床运动精度动态测试技术及装置研究
编号:0032785)
| 随着互联网应用的普及,在工业控制领域,网络测控技术取得了快速发展。而在目前应用的大多数远程测控系统中,系统的硬件采用8/16位的单片机;软件多采用汇编语言编程,仅包含一个简单的循环处理的控制流程;然后单片机与单片机或上位机之间通信通过RS232、RS485或CAN总线来组成局域网,再用PC几作为WEB服务器与INTERNET进行通讯。这样的网络测控设备成本高、体积大、速度慢、功耗大。现在,32位嵌入式CPU价格的下降,性能指标的提高,为嵌入式系统的广泛应用提供了可能性。基于上述情况,我们将嵌入式系统应用于网络测控系统,可大大提高测控系统的性能,降低成本和功耗,体积也大大减小。嵌入式系统一般应用嵌入式操作系统来开发,在嵌入式操作系统的选择上,由于Linux有完整开放的源代码,可针对具体应用修改和优化系统,内核稳定,适用于多种CPU和多种硬件平台,支持网络等特点,因而选择Linux作为嵌入式操作系统。本文设计一个全新的网络测控系统方案,它是基于S3C2410CPU和ARMlinux嵌入式操作系统,采用Java applet的“瘦服务器”解决方案,特别适合对测试数据要进行大量的分析、处理、绘图的网络测控系统,如数控系统运行精度测试。与传统的B/S模式的实时动态网络测控系统相比,它可以减小嵌入式WEB服务器的负担,因为在本系统中,数据分析、处理、绘图应用程序通过服务器下载到客户端运行,同时数据刷新不需要整个网页刷新,数据更新更实时。利用Java技术提供了一个类库,在可以浏览器上显示更为直观、丰富的用户界面(GUI)。与传统的C/S模式相比,客户端不需要安装专用的客户端软件,方便系统软件升级,升级时不需要每一台客户机重新安装,减少其维护和升级成本。
1.硬件系统设计
本系统硬件平台如图1,促CPU选用S3C2410,它是一款流行的嵌入式CPU,它包含一个16/32-bit的RISC(ARM920T)的CPU内核,主频200HZ,内部含有8通道10位AD转换器和大量的I/O口,LCD控制器等丰富接口,能运行UCOSII、ARMlinux和WINCE嵌入式操作系统,DM9000是10M/100M以太网接口控制芯片。本硬件系统结构简单,成本低,不需要PC机就可直接接入INTERNET。在客户机上用标准浏览器通过Internet就可以和嵌入式Web服务器通信,成功取代了一台专用PC服务器(插有专用的接口卡和以太网接口卡)或专用的通信芯片。以低成本方便地实现了很多嵌入式设备与Internel的直接互联互通的需求。

图1 硬件系统框图
2.软件设计
嵌入式操作系统是整个嵌入式系统的核心,本系统选择的ARMlinux系统,由于嵌入式系统的存储容量很小,因此,要把ARMLinux操作系统装入有限的存储容内,就要对它进行裁剪,很多资料都有论述,这里就不再累述,下面介绍整个数据流程,在数据流程图中有两个数据流回路,首先打开浏览器发送请求,经过80端口与服务器建立连接,接着解析并下载资源到客户计算机。客户端下载服务器中的applet程序并运行,同时与服务器建立SOCKET,向服务器1414端口发送请求,服务器侦听到1414端口请求并建立连接,接着进行服务器与客户端间的传输数据,其中1414端口是Java applet运行时与服务器建立的数据传输通道。基于操作系统上的网络测控软件设计,其体系结构如图2:

2.1 整个系统工作流程
本设计中使用的模型是Java applet的“瘦服务器”,就是b/s和c/s相结合,就是通过b/s模式的浏览后下载一个嵌入在浏览器中的应用程序建立一个类似c/s模型的结构,其流程如图3:

2.2 WEB服务器的实现算法
目前,嵌入式linux主要有三个Web 服务器:,HTTPD、THTTPD和BOA,为了节省存储空间,同时又要满足实时性要求,本系统独立设计嵌入式WEB服务器,其算法如图4:

2.3 网页编写
当用户需要采集数据时,只需在客户端点击网页,就可实时显示采集显示数据,该网页采用html语言,html语言中必须有Applet标签,其关键原代码如下,其中Draw1.class为java applet:
<Applet code="Draw1.class" width=600 height=400>
2.4 Java Applet程序设计
Java Applet 是用Java 语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE 或 Nescape)解释执行能够产生特殊效果的程序。现在大多数网络浏览器都支持Java的,Applet运行于浏览器上,可以生成生动美丽的页面,进行友好的人机交互,同时还能处理图像、声音、动画等多媒体数据。Applet在Java的成长过程中起到不可估量的作用,到今天Applet依然是Java程序设计最吸引的人之一。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。 当用户访问这样的网页时,Applet被下载到用户的计算机上执行。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地通过Applet来实现信息数据的传输和产生美妙的多媒体效果。本次设计的功能结构先是浏览器处理<applet>标签,再将applet程序装入并创建applet对象,接着就是执行applet程序,不过因为程序中使用了Runnable接口来实现数据更新线程的,所以applet程序是第一次执行时不会执行Runnable接口的start()方法,而是applet程序结构默认的start()方法,再执行绘图模块,最后回调Runnable接口的start()方法来建立数据更新线程,数据更新后再绘图并回调,这样就实现了不断更新数据和图形。其流程如图5。功能模块及实现函数:
public void init():实现对客户端程序中某些变量的初始化。
public void start():由于我们要不断的对图形的更新,所以我们需要重启applet程序并建立新线程。
public void run():通过线程建立socket连接来获取新数据。
public void update(Graphics g):将当前获取的最新的数据重新绘制成我们需要的图形。

3.测试及结果:
首先建立好基于S3C2410嵌入式开发环境,把编译好的booloader、嵌入式linux内核和ramdisk烧入FLASH中, WEB服务器和Java applet放在在同一个目录。运行时先起动我们设计服务器,动态加载相关驱动,在PC机的浏览器上输入嵌入式系统的IP地址,采集的数据就可以动态显示在网页上。
要使Java applet在下载到客户端运行并建立SOCKET传输数据,在windows系统IE浏览器配置较简单,而在linux系统下实现相对复杂,因为applet程序是不容许随便就访问本地系统资源的,对远程访问更是有严格的控制的,不过还好可以通过改变其权限规则来实现远程访问,但那都要设定具体的远程地址和端口的,最后通过修改权限规则后浏览成功。下面主要介绍在linux系统下Mozilla浏览器配置方法:
cd /usr/lib/mozilla/plugins
ln –s /usr/java/jdk1.6.0_01/jre/plugin/i386/ns7/libjavaplugin-oji.so
在/usr/java/jdk1.6.0_01/jre/lib/security/java.policy文件的后面加入
Permission java.net.SocketPermission “202.115.148.200:1414”,
“accept,connect,listen,resolve”;
通过信号发生器发出正弦波,改变输入,显示和刷新效果都很好,测试结果如图6:

4 结 论
本文作者创新点是首次成功在S3C2410CPU和ARMlinux嵌入式操作系统基础上实现了Java applet的“瘦服务器”解决方案,该方案充分利用嵌入式WEB服务器的特点,把传统的B/S与C/S模式完美结合,采集的数据能够在以图形形式在浏览器上实时刷新。该方案已成功运用在科技攻关重点项目数控系统远程精度测试,它同时具有一般通用平台性能,有一定的应用推广价值。
参考文献:
[1] 黄天戍,余智欣等.新型嵌入式Web服务器系统的设计与研究[J].计算机工程,2005.11:179
[2] 刘振纲,刘成安,卢剑翔. 移植标准L i n u x到s3C2410[J]. 微计算机信息, 2006.11-2:152-153.
[3] 苗君, Linux 下Java 与C 的数据交换[J]. 计算机与现代化,2006.7:39-40.
|