首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Java技术在嵌入式系统中的应用(1)

Java技术在嵌入式系统中的应用(1)

1 Java概述
Java是在1991年由Sun公司James Gosling Patrick Naughton、Chis Warth、Ed Frank以及Mike Sherindan等组成的"STAR7"小组所构想出来的。于1995年5月正式推出。Java计算平台包括JVM(Java虚拟机)和Java API(Java应用编程接口)。JVM是一种抽象化的计算机,运行在操作系统之上,可以在它上面执行Java的字节线,使Java应用程序在现有的各种平台上都可以顺利执行。Java API和Java的函数类库,分为基本核心类库和各种外加功能的扩展类库。
1998年12月8日,Sun公司的最新一个版本的JDK(Java Software Development Kit)正式发布,Sun的升级版本,而且还是完善的Java平台。
Java 2定义组成Java企业平台的核心技术包括15个核心API。这15个核心API构成了整个Java 2技术的灵魂,包括Applet、AWT、Beans、IO、Lang、Math、Net、Rmi、Security、SQL、Text、Util、 Accessibility、Swing和CORBA。与以往的JDK比较,Java 2平台具有很多优势,如更灵活的安全模式、更好的性能、与其他企业级系统的互用性、应用开发更容易、全球化的提高以及更好的跨平台性等。
Java 2可以根据对软、硬件需求的不同分为4个版本。J2EE(Java 2 Platform,Enterprise Edition)用于企业服务器端应用程序开发;J2SE(Java 2 Platform,Standard Edition)用于个人计算机上的应用程序开发;J2ME(Java 2 Platform,Micro Edition)用于信息家电等资源有限的设备上的应用程序开发;Java Card Platform用于智能卡上的应用程序开 发。
Java 程序语言在其产生之初,本身就是为嵌入式设备--机顶盒设备设计的。现在Java又凭借J2MEE和Java Card Platform回到嵌入式系统开发领域。

2 Java卡
(1)Java卡简介
Java卡是Java平台中最小的子集,也是一种特殊的智能卡。智能卡是一种嵌入计算机芯片的卡片,广泛应用于通信、交通、金融、证券和保险等领域。智能卡分为两大类:一类是存储器卡,另一类是微处理器卡。存储器卡仅仅被用于存储器数据。微处理器卡有数据处理的功能:它有自己的CPU、I/O端口、存储器和操作系统,可以被看作是一台微型电脑;可以安装并运行小的应用程序,通过串行通信接口与外部通信。ISO(国际标准组织)制定了智能卡的国际标准ISO 7816。
影响智能卡推广的主要因素是其不够开放,不同的卡片制造商生产的卡片的应用程序开发没有统一的标准。为了解决这个问题,工业界提出了能运行 Java程序的智能卡--Java卡,并且制定了Java卡的技术规范,包括Java Card VM(Java卡虚拟机)和API的详细信息。Java Card VM位于智能卡的操作系统之一,用通用的编程语言和系统接口屏蔽了不同智能卡硬件和操作系统的区别。Java卡的框架定义了供应用程序开发者使用的 API。Java卡的应用程序称为Applet,每个Applet由唯一的AID(应用程序标识符)来识别。
(2)Java卡对硬件的最低要求
512 B RAM:主要用于存储应用程序运行时的栈以及I/O缓冲区。
24 KB ROM:主要用于存储程序代码和系统的运行时系统。
8 KB EEPROM:主要用于存储Java卡的Applet和堆。
8位处理器:8位处理器是Java卡的最低要求。
(3)Java卡软件体系结构
Java卡软件体系结构如图1所示。
最底层的Card OS(操作系统)和Native Functions(基本函数)相不于个人计算机的操作系统,负责低层的处理工作。
Java Card VM位于Card OS和Native Functions之上,隐蔽了底层智能卡的不同技术,实现了卡接口的统一和编程语言的统一。
Java Card Framework(Java卡框架)为开发人员定义了一整套API,主要负责运行Java卡Applet以及为Applet运行提供所需要的环境。
Card OS、Java Card VM和Java Card Framework共同组成了JCRE(Java卡运行时环境)。Industry Specific Extensions是服务方所提供的类,使企业与公司能够提供属于自己的服务程序。例如,如果这张卡是GSM网络的SIM(用户识别模块)卡,那么这一层就是SIM卡所需的接口类。
(4)Java Card API
Java Card的2.1版包括四个包:Javacard.lang package、Javacard.frame work package、Javacard.security package和Javacardx.cryp to package。
Javacard.lang package提供Java程序语言中重要的类,例如所有Java类的根类Object类。
Javacard.frame work package是Java Card API的核心包,提供了实现Java Card Applet基本类和工具。其中ISO7816抽象接口提供了ISO7816所使用的常数值。PIN(个人识别号码)抽象接口使其子类能够验证PIN是否合法。Shareable抽象接口使得不同的Applet能够互相通信。AID类使得JCRE能够通过一个AID表来识别Applet。APDU类通过管理一个缓冲区来接收与传送终端的指令以及回传Applet运行结果与状态。Applet类是所有Java Card Applet的根类,管理Java Card Applet的生命周期。JCSystem类管理Applet与Java Card的系统资源,如AID与事务。OwnerPIN类管理卡片持有者的PIN,并提供相关验证与更新等方法。Util类提供了开发中的常用工具。

Javacard.security package负责提供安全机制,包括Key抽象接口、KeyBuilde类和MessageDisest类。
Javacardx.cryp to package包含了关于加密与安全的抽象接口和类。
(5)Java卡应用的开发
Java卡的生命周期从操作系统、JVM、API库和可选的Applet被写入Java卡的ROM开始。在正式使用之前,Java卡要经过初始化(在卡上写入制造商和发行商名称等通用信息)和个人化(在卡上写入密钥等个人信息)。然后用户就可以购买并使用Java卡了,当然还要与读卡器相配合。 Applet的生命周期从被安装并注册到Java卡系统开始,在被从系统注册表中删除时结束,在被选择时激活。
返回列表