打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
基于JAVA的嵌入式网络测控系统的全新设计方案
类别:网文精粹  
 
Design of Embedded Network Measure- control System based on Java

Abstract: In order to meet the demand of remote measure and control in industry-control and demostic appliances,a new embedded remote measure- control system design scheme based on Java is introduced. Both hardware and software are discussed in this paper. The embedded web server based on ARMlinux design scheme of the system is introduced in detail. Aiming at the characteristic of embedded application ,this paper provides a kind of “thin server”solution based on Java applet.Compared with else embedded network measure- control System, the system not only inherits advantages of typical B/S model and lightens burden of embedded web server, but also builds more intuitionistic and abundant GUI.At the same time the system can be refreshed dynamically better,The testing result shows the scheme is reliable and practical.

Key words: Embedded system Linux Measure- control system Remote-control Java

摘要:为了满足当前工业控制和家用电器远程测控的要求,介绍了一种基于JAVA的嵌入式网络测控系统的全新设计方案,从硬件和软件两个方面进行了论述。详细介绍了基于ARMlinux的嵌入式WEB服务器的设计方案,针对嵌入式服务器的实际和应用场合,提出了基于Java applet的“瘦服务器”解决方案。与其他的嵌入式网络测控系统相比,该系统继承了典型的B/S模型的优点,可以减轻嵌入式WEB服务器的负担,以创建更为直观、丰富的用户界面(GUI)。同时该系统更好地动态刷新。测试结果表明方案可行、实用。

关键词:嵌入式系统 Linux 测控系统 远程控制 Java

0 前言

随着互联网应用的普及,在工业控制领域,网络测控技术取得了快速发展。而在目前应用的大多数远程测控系统中,系统的硬件采用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的直接互联互通的需求。

500)this.style.width=500;" border=0>

图1 硬件系统框图 Fig1 Hardware system configuration

2.软件设计

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

500)this.style.width=500;" border=0> 图2 体系结构 Fig2 System framework

2.1 整个系统工作流程

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

500)this.style.width=500;" border=0> 图3 工作流程 Fig3 Work flow

2.2 WEB服务器的实现算法

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

500)this.style.width=500;" border=0> 图4 WEB 服务器实现算法 Fig4 WEB server realization arithmetic

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):将当前获取的最新的数据重新绘制成我们需要的图形。

500)this.style.width=500;" border=0> 图5Java Applet流程图 Fig5Java Applet flow chart

3.测试及结果:

首先建立好基于S3C2410嵌入式开发环境,把编译好的booloader、嵌入式linux内核和ramdisk烧入FLASH中, WEB服务器和Java applet放在在同一个目录。运行时先起动我们设计服务器,动态加载相关驱动,在PC机的浏览器上输入嵌入式系统的IP地址,采集的数据就可以动态显示在网页上。

要使Java applet在下载到客户端运行并建立SOCKET-p.htm" target="_blank" title="SOCKET货源和PDF资料">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:

500)this.style.width=500;" border=0> 图6测试图 Fig6 Test chart

4 结 论

本文作者创新点是首次成功在S3C2410CPU和ARMlinux嵌入式操作系统基础上实现了Java applet的“瘦服务器”解决方案,该方案充分利用嵌入式WEB服务器的特点,把传统的B/S与C/S模式完美结合,采集的数据能够在以图形形式在浏览器上实时刷新。该方案已成功运用在科技攻关重点项目数控系统远程精度测试,它同时具有一般通用平台性能,有一定的应用推广价值。