Java在基于WEB的嵌入式系统中的应用.doc

上传人:飞****2 文档编号:52737545 上传时间:2022-10-23 格式:DOC 页数:6 大小:77.50KB
返回 下载 相关 举报
Java在基于WEB的嵌入式系统中的应用.doc_第1页
第1页 / 共6页
Java在基于WEB的嵌入式系统中的应用.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《Java在基于WEB的嵌入式系统中的应用.doc》由会员分享,可在线阅读,更多相关《Java在基于WEB的嵌入式系统中的应用.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java在基于WEB的嵌入式系统中的应用作者:柯宗武陈年生汪自云转贴自:微计算机信息点击数: 106更新时间:2008-12-10【字体: A】The Application of Embedded System Based on JavaAbstract: This paper discuss the application of Java language in embedded system that based on uClinux, and implement the data displayed with graphics. This project resolve the pro

2、blem that uClinux did not support Java, and implement the data dynamic displayed with Web. Keyword: Embedded System, uClinux, WEB, Java摘 要:该文提出了一种基于uClinux嵌入式操作系统的嵌入式系统中,使用Java实现嵌入式实时数据采集系统中数据在WEB中实时图形化显示的方案。该方案弥补uClinux不支持java的缺憾,实现了嵌入式数据采集系统数据的动态WEB显示。关键字:嵌入式系统、uClinux、WEB、Java1引言嵌入式系统是以应用为中心,以计算机

3、技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。嵌入式系统已广泛应用于移动通信、医疗电子设备、信息家电、无线网络、工业控制和国防军事等社会生活的各个领域。为适应嵌入式分布处理结构和应用上网需求,面向21世纪的嵌入式系统要求配备标准的一种或多种网络通信接口。针对外部联网要求,嵌入设备必需配有通信接口,相应需要TCP/IP协议簇软件支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及

4、实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备IEEE1394、USB、CAN、Bluetooth或IrDA通信接口,同时也需要提供相应的通信组网协议软件和物理层驱动软件。而WEB浏览器是一种很自然的用来控制嵌入式设备的途径,无论是通过Internet还是直接和嵌入式设备连接。嵌入式操作系统是嵌入式系统的灵魂,目前有很多流行的嵌入式操作系统如Nucleus、VxWorks、uClinux等操作系统。由于嵌入式uClinux操作系统的内核定制高度灵活性,开发者可以很容易地对其进行按需配置,来满足实际应用需要。又由于uClinux是源代码公开,因此uClinux操作系统被广泛应用于嵌入式系

5、统的开发。在嵌入式系统应用中,通常需要将信息以图形或图像的方式进行显示,以提高系统使用界面的友好度。而uClinux只支持基于C语言的CGI方式编写动态网页,很难实现复杂的动态图形显示。Java语言是第一个从根本上以网络化观念设计的语言。随着Internet的持续发展Java是一种适合创建新一代网络应用程序的语言。它为许多Internet应用程序的关键问题-其中平台独立性、安全性和国际字符集最为重要-提供了解决方案,这些问题在其它语言中是很难解决的。特别是Java支持多线程编程,使编写动态图形显示程序变得非常简单。本文论述了基于uClinux的嵌入式系统中应用Java技术将信息以图形或图像的方

6、式在WEB中进行动态显示的解决方案。2问题的提出及其解决方案嵌入式系统在工业控制系统的应用中,经常会遇到这样的需求,嵌入式系统负责数据的采集,而采集到的数据需要通过网络传输到远程计算机上并以WEB页方式显示,通常采集到的数据是随时间发生变化的动态数据,在显示这些数据时,如果能够用动态图形在WEB页中显示,则便于用户观测数据的变化。上述问题的一种可能的解决方案是将数据转换成图像文件,然后将图像文件传输到远程计算机中显示。然而传输中最花时间的是图像,所以如果能够将图形接口对象和浏览器放在有更多处理能力的地方,比如本地电脑,则与设备之间的通信又可以大大加速。显然,Java Applet是解决上述问题

7、的一个有效方案。当浏览器访问嵌入了Java Applet的网页时,Java Applet代码就会被下载到本地计算机中运行,绘制图像的工作由Java Applet在本地机中完成,嵌入式系统中需要有一个数据传输服务器程序,将采集到的数据传输给Java Applet客户程序,Java Applet客户程序可以反复地连接到服务器以保持图片数据的数据更新。这样,在网络中仅需要传送嵌入式系统所采集的数据,而且解决了嵌入式系统中资源(CPU、内存)不足的问题。同时由于Java Applet代码是下载到本地计算机中运行,所以嵌入式操作系统不需要Java虚拟机,从而解决了uclinux不支持java的问题。3系

8、统结构设计系统采用Browser/Server 模型来完成基于Web 的数据采集系统的数据实时显示,Browser 端和Server 端作为相互独立的两部分通过HTTP 协议进行通信,其过程分为四步:建立连接、发送请求、发送应答和关闭连接。Browser 端通过HTTP 协议向Server 端发送请求,Server 端经过处理以HTML 文本格式返回应答信息,Browser 端对接收到的信息根据HTML 定义的格式解释为网页形式在Browser 端显示。Server 端等待进程收到Browser 端的请求信息后,做出相应应答。Browser 端的请求有两种:静态网页请求和实时动态数据请求。Se

9、rver 端收到Browser 端的静态网页请求时,对其地址路径做出解析并发送应答,通过HTTP 协议传回Browser端。而当Browser 端发送的是少量实时动态数据请求时,Server 端要借助公共网关接口CGI 的功能实现对服务器功能的扩展,CGI 程序主要完成Web Server 与外部应用程序的交互,从而达到数据处理的目的,最后Server 端把经过处理的结果返回给Browser 端。对于嵌入式系统采集的大量实时数据则采用数据传输服务器程序将数据传送到Browser 端,并用Java Applet实现动态显示。系统结构模型如图1所示。4嵌入式系统端程序设计 嵌入式系统端采用BOA作

10、为WEB服务器。本文探讨的嵌入式数据采集系统是基于摩托罗拉MCF5249嵌入式微处理器,该处理器内部集成了一个片内12位-ADC。嵌入式系统端程序主要由两个进程,一个进程负责数据采集并将采集到的数据存放在共享内存中,另一个进程将采集到的数据从共享内存中读出并不断的传输到Java Applet客户程序。为了避免uClinux操作系统使用共享内存,需要在启动代码crt0_ram.s文件中设定系统的最大内存空间,使其小于实际内存,并将该内存空间作为共享内存。其代码如下:define MEM_SIZE 0xa00000上述两个进程对同一共享内存进行访问,需要采用互斥方式,可以采用文件锁方式实现。数据传

11、输服务器程序的核心代码如下:struct sockaddr_in servaddr;serverFd=socket(AF_INET,SOCK_STREAM,0);memset(&servaddr,0,sizeof(servaddr);servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(SERVER_PORT);bind(serverFd,(struct sockaddr *)&servaddr,sizeof(servaddr);listen(se

12、rverFd,5);while(1) connectionFd = accept(serverFd,(struct sockaddr *)NULL,NULL); if (connectionFd=0) unlock(lockname);/解文件锁 发送数据由于不同的嵌入式处理器的存储器采用不同的端式,如Intel X86变体和DEC Alpha使用小端表示,MIPS、PowerPC采用大端表示,而IBM、Motorola PowerPC和ARM处理器支持使用两种表示的能力1。所以发送数据时,可能需要使用字节排序函数进行转换,以免数据产生错误。5使用Java编写数据WEB显示程序为了实现数据的动

13、态显示需要使用Java语言的多线程技术,一个线程用于与嵌入式系统进行通信,以获取需要显示的数据,一个线程用于绘制动态图形。用UML序列图描述如下:GetData线程保持与嵌入式系统的TCP连接,通过网络从嵌入式系统获取数据。DrawGraph线程用于绘制动态图形。两个线程采用轮询的方式实现线程的同步,由GetData对象提供一个公共方法返回一个标志值,DrawGraph线程周期性地轮询该方法,以判断数据是否更新,从而决定是否返回数据。通常嵌入式系统采集的数据采用无符号byte和无符号short类型来存储,而Java语言不支持这些数据类型,但在DataInputStream类中提供readUns

14、ignedByte()和readUnsignedShort()两个方法来读取这些数据类型并自动转换成等价的int类型2。6结束语Java语言作为一种网络化的语言在网络编程中具有很大的优势,在嵌入式系统应用中充分使用Java语言的特点,可以使嵌入式系统设计得更加灵活,界面更加友好。参考文献:1M.Tim Jones.嵌入式系统TCP/IP应用层协议M. 北京:电子工业出版社,2003.2Elliotte Rusty Harold.Java网络编程M.北京:中国电力出版社,2001.作者简介:柯宗武(1968-),男,讲师,主要研究方向:计算机网络、嵌入式系统,Email:kzw 或kezongwu通讯地址:湖北黄石湖北师范学院计算机科学系 邮编

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁