《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 移动信息设备框架在虚拟实验室上的实现

移动信息设备框架在虚拟实验室上的实现

2008-12-29
作者:陈凯迪,李浩君,邱飞岳

1. J2ME概述
    随着JAVA技术的不断发展,JAVA自身也根据市场进行了版本的细分。Java2分为针对企业级应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电子产品的J2ME(Java 2 Micro Edition)三个版本。
    Sun公司将 J2ME 定义为“一种以广泛的消费性产品为目标的的高度优化的Java运行时环境,包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导航系统。” 自从 1999 年 6 月在 JavaOne Developer Conference 上声明之后,J2ME为小型设备带来了Java语言的跨平台功能,允许移动无线设备共享应用程序" title="应用程序">应用程序。有了J2ME,Sun已经使Java平台能够适应集成了或基于小型计算设备的用户产品。

2. J2ME总体架构
    J2ME 使用“配置” (configuration)和“框架” (profile)定制Java运行时环境(JRE)。作为一个完整的JRE,J2ME由配置和框架组成,配置决定了使用的JVM,而框架通过添加特定于域的类来定义应用程序。配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。框架定义了应用程序,它还特别向J2ME配置中添加特定于域的类,定义设备的某种作用。下面的图表描述了不同的虚拟机、配置和框架之间的关系。它同时把 J2SE API 和它的Java虚拟机进行了比较。虽然J2SE虚拟机通常被称为一种JVM,但是J2ME虚拟机、KVM和CVM都是JVM的子集。KVM和CVM均可被看作是一种Java虚拟机 -- 它们是J2SE JVM的压缩版,并且只应用于J2ME技术。

2.1 配置概述
    配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定JVM。虽然还可能在将来定义其他的配置,但当前J2ME只存在两种配置:
    (1)连接的有限设备配置 (CLDC): 主要与KVM一起用于内存有限的16位或32位设备。这是用于开发小型J2ME应用程序的配置(虚拟机)。(从开发的角度来看)它的大小限制让它比CDC更有趣、更具挑战性。CLDC同时还是用于开发绘图工具应用程序的配置。
    使用CLDC开发的J2ME应用程序的目标设备通常具有以下特征:
·可供Java平台使用的160到512KB的总内存
·功率有限,常常是电池供电
·通常是无线连网,连接不稳定并且带宽有限
·用户接口混乱,程度参差不齐;有时根本就没有接口
CLDC支持的设备包括无线电话、寻呼机、主流个人数字助手 (PDA),以及小型零售支付终端。
    (2)连接的设备配置(CDC):它与C虚拟机(CVM)一起使用,用于要求内存超过2兆的32 位体系结构。
    使用CDC开发的J2ME应用程序的目标设备通常具有以下特征:
·使用32位处理器
·2兆字节或更多可供Java平台使用的总内存
CDC 支持的设备包括常驻网关、智能电话和通讯器、互联网电视机顶盒、PDA、小型零售终端以及汽车导航系统。

2.2 框架概述
    框架定义了应用程序所支持的设备类型。它还特别向J2ME配置添加了特定于域的类来定义设备的某种作用。框架建立在配置的顶部。目前已经为J2ME定义了两种框架:KJava和移动信息设备框架 (MIDP),它们也被建立在CDLC之上。这两种框架适用于小型设备。

2.3 KVM介绍
    CLDC和MIDP通常运行在SUN的K虚拟机(KVM)之上,KVM是一个专门为小型的、资源受限的设备所设计的紧凑的、便捷的Java虚拟机。KVM的高端设计目标是创建一个新的拥有以下特点的Java虚拟机:
·小型的,虚拟机核心的静态内存占有量从60KB开始,依赖于编译选项和目标平台。
·清晰的,具有良好的注释和高度的可移植性。
·模块化,可定制。
·在不牺牲其他设计目标的前提下尽量完善和高速。
    KVM中的“K”代表“千(Kilo)”,这样命名是因为它的内存容量是用几十KB来衡量的(而桌面系统是用兆(M)甚至千兆(G)来衡量的)。KVM适合于带有不超过几百KB内存的16/32位微处理器。它的典型应用是数字蜂窝电话、传呼机、PDA、便携式音频/视频设备和小型的零售支付终端。
    KVM实现所需要的最小总内存空间大约是128KB,包括虚拟机、最小的库和运行Java程序所需要的堆空间。一个更加典型的实现需要总共256KB的内存空间,其中32KB作为应用运行时的堆空间,60KB到80KB用于虚拟机本身,剩余的为类库保留。易失内存(如DRAM)和非易失内存(如ROM或闪存)之间的比率相依赖于实现、设备、采用的配置等而变化。KVM在目标设备中真正的任务会有很大的不同。在一些实现中,KVM常常是位于本地软件栈之上使设备具有在其上下载和运行动态、交互、安全的Java程序的能力。在另一些实现中,KVM被用于底层的同时也用于Java编程语言实现底层系统软件和设备应用。

2.4 MIDlets介绍
    MID框架的核心是MIDlet应用程序。这个应用程序继承了MIDlet类,以允许应用程序管理软件对MIDlet进行控制、用关键词检索属性以及对状态变化进行通知和请求。 所有MIDlet 都继承MIDlet类 — 运行时环境(应用程序管理器)和MIDlet应用程序代码之间的接口。MIDlet类提供了用于调用、暂停、重新启动和终止MIDlet应用程序的API。应用程序管理软件可以在运行时环境内管理多个MIDlet 的活动。此外,MIDlet可以自己发起一些状态变化,并把这些变化通知给应用程序管理软件。
    MIDP  API(Application Program Interface) 类分为两种:
    (1)用于用户界面的 MIDP API:设计这些API是为了能以一系列屏幕显示为基础与用户进行交互操作,每一屏幕显示把适量的数据显示给用户。这些API允许应用程序决定下一屏显示什么、执行什么计算和使用网络服务的何种请求。
    (2)用于处理数据库的MIDP API:这些API负责组织和操作设备数据库,这个数据库由调用多个MIDlet的记录信息组成。底层的CLDC API用于处理字符串、对象和整数。此外这些API还提供了Java 2 API的一个子集,用于处理I/O和网络通信。

3.“虚拟实验室" title="虚拟实验室">虚拟实验室”概述
    在研究如何用手机对电机进行控制的过程中,发展出了“虚拟实验室”技术。这实际上就是通过手机控制步进" title="步进">步进电动机和直流伺服" title="直流伺服">直流伺服电动机的旋转角度和旋转方向。就伺服电动机而言,我们能通过手机查看它的开关(ON/OFF)状态和当前速度(转/分),还能测量机械的时间迟延。
    首要的事情就是在手机和计算机之间建立连接。如图1所示,手机首先通过MIDlet与服务器建立HTTP连接,然后服务器与预定计算机的一个端口建立套接连接。数据流就可以通过这个端口输入输出。然后服务器的程序通过Java本地接口(JNI)呼叫预定计算机里的本地码,接着本地码结合从接口传来的机器的参数进行运算,并把运算结果返回给服务器,最后服务器发送数据给手机并通过MIDlet显示出来。

3.1 步进电动机控制
    这里使用4极直流步进电动机。用户通过手机输入旋转角度与方向,然后转动这么多角度所需要的步数被计算出来,并且通过打印端口把信号发送出去。因为从并行口传来的信号太微弱,所以必须进行放大才能使电动机运转起来。如图2所示,这里用了ULN2003 IC来进行信号的放大。

    下面的图3所示的就是用来控制步进电动机的手机输出界面。

 

3.2 直流伺服电动机控制
    这里使用了12V的直流伺服电动机。它的开或关是通过继电器进行选择的。继电器的定额是6V,5A,100ohm。从并行口传来的信号通过一个功率晶体管SL100去控制继电器。(如图4所示)

    伺服电动机配置了一个光感应装置(见图5)。当感应器收到从缝隙里进入的光后就会输出5V电压,功率管会对这个电压产生冲激响应,同时程序会自动使某个对应于转速的参数增加1。于是就能测出电动机的转速。如图6所示,手机可以对伺服电动机的开关状态、当前转速及时间迟延进行监控。

4.总结
    由于J2ME的应用,通过移动设备对步进电动机和伺服电动机进行控制已经获得了成功。此外,通过相似的技术并结合Internet对机器手臂或远程设像机等进行远程控制也是很有发展潜力的。
参考资料
[1]C.Enrique Ortiz and Eric Giguere,2001-Mobile Information Device Profile for Java2 Edition(J2ME):Professional Developer’s Guide-John Wiley & Sons;1stEdition
[2]John W.Muchow,2001-Core J2ME Technology-Prentice Hall PTR; 1stEdition
[3]卢军.J2ME应用程序开发" title="程序开发">程序开发—手机、PDA程序开发捷径.北京:中国铁道出版社,2002

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。