Java技術在嵌入式系統中的應用_第1頁
Java技術在嵌入式系統中的應用_第2頁
Java技術在嵌入式系統中的應用_第3頁
Java技術在嵌入式系統中的應用_第4頁
Java技術在嵌入式系統中的應用_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Java技術在嵌入式系統中的應用

摘要:J2ME是Java2平臺的一個版本,使用在各種各樣的消費電子產品和嵌入式設備上。JavaCard技術規范得Java應用能運行在智能卡和更小的嵌入式設備上。本文介紹J2ME和JavaCard的硬件平臺和軟件體系結構,以及如何進行J2ME和JavaCard應用程序開發。Java在移動通信領域的應用已經引起廣泛的關注,本文對此進行了詳細的描述。

關鍵詞:Java嵌入式系統Java卡J2ME移動通信

1Java概述

Java是在1991年由Sun公司JamesGoslingPatrickNaughton、ChisWarth、EdFrank以及MikeSherindan等組成的"STAR7"小組所構想出來的。于1995年5月正式推出。Java計算平臺包括JVM(Java虛擬機)和JavaAPI。JVM是一種抽象化的計算機,運行在操作系統之上,可以在它上面執行Java的字節線,使Java應用程序在現有的各種平臺上都可以順利執行。JavaAPI和Java的函數類庫,分為基本核心類庫和各種外加功能的擴展類庫。

1998年12月8日,Sun公司的最新一個版本的JDK正式發布,Sun的升級版本,而且還是完善的Java平臺。

Java2定義組成Java企業平臺的核心技術包括15個核心API。這15個核心API構成了整個Java2技術的靈魂,包括Applet、AWT、Beans、IO、Lang、Math、Net、Rmi、Security、SQL、Text、Util、Accessibility、Swing和CORBA。與以往的JDK比較,Java2平臺具有很多優勢,如更靈活的安全模式、更好的性能、與其他企業級系統的互用性、應用開發更容易、全球化的提高以及更好的跨平臺性等。

Java2可以根據對軟、硬件需求的不同分為4個版本。J2EE(Java2Platform,EnterpriseEdition)用于企業服務器端應用程序開發;J2SE(Java2Platform,StandardEdition)用于個人計算機上的應用程序開發;J2ME(Java2Platform,MicroEdition)用于信息家電等資源有限的設備上的應用程序開發;JavaCardPlatform用于智能卡上的應用程序開發。

Java程序語言在其產生之初,本身就是為嵌入式設備--機頂盒設備設計的。現在Java又憑借J2MEE和JavaCardPlatform回到嵌入式系統開發領域。

2Java卡

Java卡簡介

Java卡是Java平臺中最小的子集,也是一種特殊的智能卡。智能卡是一種嵌入計算機芯片的卡片,廣泛應用于通信、交通、金融、證券和保險等領域。智能卡分為兩大類:一類是存儲器卡,另一類是微處理器卡。存儲器卡僅僅被用于存儲器數據。微處理器卡有數據處理的功能:它有自己的CPU、I/O端口、存儲器和操作系統,可以被看作是一臺微型電腦;可以安裝并運行小的應用程序,通過串行通信接口與外部通信。ISO制定了智能卡的國際標準ISO7816。

影響智能卡推廣的主要因素是其不夠開放,不同的卡片制造商生產的卡片的應用程序開發沒有統一的標準。為了解決這個問題,工業界提出了能運行Java程序的智能卡--Java卡,并且制定了Java卡的技術規范,包括JavaCardVM(Java卡虛擬機)和API的詳細信息。JavaCardVM位于智能卡的操作系統之一,用通用的編程語言和系統接口屏蔽了不同智能卡硬件和操作系統的區別。Java卡的框架定義了供應用程序開發者使用的API。Java卡的應用程序稱為Applet,每個Applet由唯一的AID來識別。

Java卡對硬件的最低要求

512BRAM:主要用于存儲應用程序運行時的棧以及I/O緩沖區。

24KBROM:主要用于存儲程序代碼和系統的運行時系統。

8KBEEPROM:主要用于存儲Java卡的Applet和堆。

8位處理器:8位處理器是Java卡的最低要求。

Java卡軟件體系結構

Java卡軟件體系結構如圖1所示。

最底層的CardOS和NativeFunctions相不于個人計算機的操作系統,負責低層的處理工作。

JavaCardVM位于CardOS和NativeFunctions之上,隱蔽了底層智能卡的不同技術,實現了卡接口的統一和編程語言的統一。

JavaCardFramework為開發人員定義了一整套API,主要負責運行Java卡Applet以及為Applet運行提供所需要的環境。

CardOS、JavaCardVM和JavaCardFramework共同組成了JCRE(Java卡運行時環境)。IndustrySpecificExtensions是服務方所提供的類,使企業與公司能夠提供屬于自己的服務程序。例如,如果這張卡是GSM網絡的SIM卡,那么這一層就是SIM卡所需的接口類。

JavaCardAPI

JavaCard的版包括四個包:package、workpackage、package和topackage。

package提供Java程序語言中重要的類,例如所有Java類的根類Object類。

workpackage是JavaCardAPI的核心包,提供了實現JavaCardApplet基本類和工具。其中ISO7816抽象接口提供了ISO7816所使用的常數值。PIN(個人識別號碼)抽象接口使其子類能夠驗證PIN是否合法。Shareable抽象接口使得不同的A

pplet能夠互相通信。AID類使得JCRE能夠通過一個AID表來識別Applet。APDU類通過管理一個緩沖區來接收與傳送終端的指令以及回傳Applet運行結果與狀態。Applet類是所有JavaCardApplet的根類,管理JavaCardApplet的生命周期。JCSystem類管理Applet與JavaCard的系統資源,如AID與事務。OwnerPIN類管理卡片持有者的PIN,并提供相關驗證與更新等方法。Util類提供了開發中的常用工具。

package負責提供安全機制,包括Key抽象接口、KeyBuilde類和MessageDisest類。

topackage包含了關于加密與安全的抽象接口和類。

Java卡應用的開發

Java卡的生命周期從操作系統、JVM、API庫和可選的Applet被寫入Java卡的ROM開始。在正式使用之前,Java卡要經過初始化和個人化。然后用戶就可以購買并使用Java卡了,當然還要與讀卡器相配合。Applet的生命周期從被安裝并注冊到Java卡系統開始,在被從系統注冊表中刪除時結束,在被選擇時激活。

Java卡的應用程序可以用一般的Java編譯器來編譯。但是由于智能卡只有有限的存儲器資源和計算功能,Java卡上的應用開發與普通的Java程序開發有很大的不同,很多Java語言的特性在Java卡應用的開發中都不能使用。Java卡的應用開發過程

①安裝JDK和JavaCardDevelopmentKit;

②設置有關環境變量;

③編輯Java源代碼,可以使用任何Java代碼編輯工具;

④編譯Java源代碼,用Java編譯器編譯Java源代碼,生成class文件;

⑤生成Cap文件,在Java卡上不能直接運行class文件,必須用Java卡轉換器、把class文件轉換為Cap文件;

⑥安裝Applet,用PC機和與之相連的讀卡器把Cap文件安裝到Java卡上。

圖2為Java卡應用開發過程示意圖。

Java卡在移動通信領域的應用

SIM作為一張內含大規模集成電路的智能卡,目前主要用于GSM手機。最初SIM卡主要用來存儲一些個人身份認證和識別信息,例如IMSI、鑒權密鑰等。SIM卡不能向手機發出命令。1998年ETSI制定了STK卡J2ME簡介

J2ME是Sun公司為資源有限的設備上使用Java編程語言而設計的,使用在各種各樣的消費電子產品上,例如智能卡、手機、PDA、電視機頂盒等。J2ME平臺是建立在Java編程語言上的,可為資源有限的設備提供最大的功能。

J2ME目前有兩種配置層。一種是"面向連接的設備配置"CDC(ConnectedDeviceConfiguration),它采用典型的Java虛擬機技術。這種全功能的虛擬機包含了基于臺式機系統上的虛擬機的所有功能,適用于擁有至少幾兆字節內存的設備。它的目標是高檔的消費類電子產品和嵌入式設備,例如智能通信器、高級"智能"尋呼機、智能個人數字助理以及交互式數字電視機頂盒。對于無線設備和其它內存不足的設備,J2ME采用"面向連接的受限的設備配置"CLDC技術。

J2ME對硬件的最低要求

CDC與CLDC對硬件平臺有不同的要求

CDC-32位的微處理器,大于2MB的存儲器。

CLDC-16位或32位處理器,大于128KB的存儲器。

J2ME軟件體系結構

圖3所示為J2ME軟件體系結構。

JavaVirtualMachineLayer是Java虛擬機的一個實現,它是為特定設備的主機操作系統定制的,而且支持一個特定的J2ME配備。CDC配置的JVM是CVM(C虛擬機),CLDC配置的JVM是KVM(K虛擬機)。

ConfigurationLayer定義了Java虛擬機功能和特定類別設備上可用的Java類庫的最小集。從某種程序上說,一個配置定義了Java平臺功能

部件和庫的共同性,開發者可以假設這些功能部件和庫在屬于某一特定類別的所有設備上都是可用的。

ProfileLayer定義了特定系列設備上可用的應用程序編程接口的最小集。框架在一個特定的配置上面實現,在配置層上增加適用特定規格的配置文件,如MIDP就是用于移動終端的配置文件。應用程序是針對特定的框架編寫的,因此可以移植到支持該框架的任何設備上,一個設備可以支持多個框架。

J2MEAPI

CDC提供支持全兼容Java2虛擬機所必需的最小API集。這一API集包括所有為CDC定義的API和針對文件I/O、網絡連接、高級完全性、對象序列等API。其中支持系統輸入與輸出,JavalangJava提供編程語言基本類,包括了一些特別參考類,提供對反映的支持,支持數學運算,提供用于網絡連接的類和工具,提供完全支持,提供證書支持,提供文本處理類,包括集合、日期和時間支持等各種實用工具類,提供Jar文件支持,提供Zip文件支持,支持類屬連接。

由于MIDP/CLDCAPI將在一個性能有限的設備上運行,因此Java的一些功能被取消或修改。、、包是J2SE包中標準類的一個子集。包提供了對網絡連接的支持,包中的主要對象是Connector類。可將該類強制轉換為不同的連接類型,例如HttpConnection。提供了用于定義midlet用戶接口的類。包用來在設備上實現一個臨時存儲數據庫,當然該數據庫的存儲和獲取信息的性能受到設備的限制。中包含有MIDlet的類。MIDlet類執行midlet的生命周期,并且提供getAppProperty(key)方法來由應用屬性中獲取信息。應用屬性設置在jad(Java應用程序描述器)文件中。

Java卡在移動通信領域的應用

CLDC和MIDP為創建移動電話應用程序提供了完整的環境。MID框架的核心是一個MIDlet應用程序,所有應用程序MIDlet都繼承MIMlet類,以允許應用程序管理軟件對MIDlet進行控制、從應用程序描述符檢索屬性以及對狀態變化進行通知和請示。MIDlet類提供了用于調用、暫停、重新啟動和終止MIDlet應用程序的API。應用程序管理軟件可以在運行時環境內管理多個MIDlet的活動。此外,MIDlet可以自己發起一些狀態變化,并把這些變化通知給應用程序管理軟件。

移動電話J2MEMIDP應用程序包括用戶界面開發、數據庫程序開發和網絡程序開發。

包中包括了用于用戶界面開發的各種類。用戶界面的根類是Display,所有的用戶界面類都是在Display里顯示出來的Displayable對象,Display對象是其它對象演示的舞臺,應用程序道德需要獲得Display對象的引用,然后就可以把場景對象放入演示舞臺中。MIDP提供了Screen和Canvas兩種演示場景。Screen的子類包括Alert、Form、List和TextBox。中定義了Command類來接收用戶的輸入信息,又在Display類中定義了Screen對象與Command對象組合的方法,使得應用程序能夠響應用戶的輸入。

在Screen場景中可以使用的對象包括Alert(信息窗口)、Form、List和TextBox。其中Form可以放置Item類,包括TextFiled、StringItem、ImageItem、DataField、ChoiceGroup和Gauge(標尺)。TextBox使應用程序能夠在屏幕上顯示文本框;Alert類似于消息框,可以為用戶提供一些信息;List類以列表的形式提供選項使用戶選擇;Form是一個容器對象,可以放置包括文本字段、字符串項目、圖像項目、日期字段、選項集合和標尺等在內的Item對象。

Canvas是Displayable中用來給開發者創建整個用戶接口的,用于創建復雜的用戶界面,例如視頻游戲中使用的界面。用戶在Canvas對象上的繪畫與Applet中的AWTCanvas類似。

定義了在設備上實現一個臨時存儲數據庫程序開發的類。其中采用由字節數組RMS機制,使用稱為RecordStore的小型數據庫。每個記錄存儲區對象是類的一個實例。記錄存儲區是由字節數組組成的記錄構成的。RecordStore提供了用于用戶操作記錄和管理存儲區的方法,對記錄的操作包括增加、刪除、更新和查詢。

為應用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論