技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > Java技術(shù)在嵌入式系統(tǒng)中的應(yīng)用

Java技術(shù)在嵌入式系統(tǒng)中的應(yīng)用

時間:2008-01-23 09:46:00來源:mahaiyan

導(dǎo)語:?J2ME是Java 2平臺的一個版本,使用在各種各樣的消費電子產(chǎn)品和嵌入式設(shè)備上
摘要:J2ME是Java 2平臺的一個版本,使用在各種各樣的消費電子產(chǎn)品和嵌入式設(shè)備上。Java Card技術(shù)規(guī)范得Java應(yīng)用能運行在智能卡和更小的嵌入式設(shè)備上。本文介紹J2ME和Java Card的硬件平臺和軟件體系結(jié)構(gòu),以及如何進行J2ME和Java Card應(yīng)用程序開發(fā)。Java在移動通信領(lǐng)域的應(yīng)用已經(jīng)引起廣泛的關(guān)注,本文對此進行了詳細(xì)的描述。 關(guān)鍵詞:Java 嵌入式系統(tǒng) Java卡 J2ME 移動通信 1 Java概述 Java是在1991年由Sun公司James Gosling Patrick Naughton、Chis Warth、Ed Frank以及Mike Sherindan等組成的"STAR7"小組所構(gòu)想出來的。于1995年5月正式推出。Java計算平臺包括JVM(Java虛擬機)和Java API(Java應(yīng)用編程接口)。JVM是一種抽象化的計算機,運行在操作系統(tǒng)之上,可以在它上面執(zhí)行Java的字節(jié)線,使Java應(yīng)用程序在現(xiàn)有的各種平臺上都可以順利執(zhí)行。Java API和Java的函數(shù)類庫,分為基本核心類庫和各種外加功能的擴展類庫。 1998年12月8日,Sun公司的最新一個版本的JDK(Java Software Development Kit)正式發(fā)布,Sun的升級版本,而且還是完善的Java平臺。 Java 2定義組成Java企業(yè)平臺的核心技術(shù)包括15個核心API。這15個核心API構(gòu)成了整個Java 2技術(shù)的靈魂,包括Applet、AWT、Beans、IO、Lang、Math、Net、Rmi、Security、SQL、Text、Util、Accessibility、Swing和CORBA。與以往的JDK比較,Java 2平臺具有很多優(yōu)勢,如更靈活的安全模式、更好的性能、與其他企業(yè)級系統(tǒng)的互用性、應(yīng)用開發(fā)更容易、全球化的提高以及更好的跨平臺性等。 Java 2可以根據(jù)對軟、硬件需求的不同分為4個版本。J2EE(Java 2 Platform,Enterprise Edition)用于企業(yè)服務(wù)器端應(yīng)用程序開發(fā);J2SE(Java 2 Platform,Standard Edition)用于個人計算機上的應(yīng)用程序開發(fā);J2ME(Java 2 Platform,Micro Edition)用于信息家電等資源有限的設(shè)備上的應(yīng)用程序開發(fā);Java Card Platform用于智能卡上的應(yīng)用程序開 發(fā)。 Java 程序語言在其產(chǎn)生之初,本身就是為嵌入式設(shè)備——機頂盒設(shè)備設(shè)計的?,F(xiàn)在Java又憑借J2MEE和Java Card Platform回到嵌入式系統(tǒng)開發(fā)領(lǐng)域。 2 Java卡 (1)Java卡簡介 Java卡是Java平臺中最小的子集,也是一種特殊的智能卡。智能卡是一種嵌入計算機芯片的卡片,廣泛應(yīng)用于通信、交通、金融、證券和保險等領(lǐng)域。智能卡分為兩大類:一類是存儲器卡,另一類是微處理器卡。存儲器卡僅僅被用于存儲器數(shù)據(jù)。微處理器卡有數(shù)據(jù)處理的功能:它有自己的CPU、I/O端口、存儲器和操作系統(tǒng),可以被看作是一臺微型電腦;可以安裝并運行小的應(yīng)用程序,通過串行通信接口與外部通信。ISO(國際標(biāo)準(zhǔn)組織)制定了智能卡的國際標(biāo)準(zhǔn)ISO 7816。 影響智能卡推廣的主要因素是其不夠開放,不同的卡片制造商生產(chǎn)的卡片的應(yīng)用程序開發(fā)沒有統(tǒng)一的標(biāo)準(zhǔn)。為了解決這個問題,工業(yè)界提出了能運行Java程序的智能卡——Java卡,并且制定了Java卡的技術(shù)規(guī)范,包括Java Card VM(Java卡虛擬機)和API的詳細(xì)信息。Java Card VM位于智能卡的操作系統(tǒng)之一,用通用的編程語言和系統(tǒng)接口屏蔽了不同智能卡硬件和操作系統(tǒng)的區(qū)別。Java卡的框架定義了供應(yīng)用程序開發(fā)者使用的API。Java卡的應(yīng)用程序稱為Applet,每個Applet由唯一的AID(應(yīng)用程序標(biāo)識符)來識別。 (2)Java卡對硬件的最低要求 512 B RAM:主要用于存儲應(yīng)用程序運行時的棧以及I/O緩沖區(qū)。 24 KB ROM:主要用于存儲程序代碼和系統(tǒng)的運行時系統(tǒng)。 8 KB EEPROM:主要用于存儲Java卡的Applet和堆。 8位處理器:8位處理器是Java卡的最低要求。 (3)Java卡軟件體系結(jié)構(gòu) 最底層的Card OS(操作系統(tǒng))和Native Functions(基本函數(shù))相不于個人計算機的操作系統(tǒng),負(fù)責(zé)低層的處理工作。 Java Card VM位于Card OS和Native Functions之上,隱蔽了底層智能卡的不同技術(shù),實現(xiàn)了卡接口的統(tǒng)一和編程語言的統(tǒng)一。 Java Card Framework(Java卡框架)為開發(fā)人員定義了一整套API,主要負(fù)責(zé)運行Java卡Applet以及為Applet運行提供所需要的環(huán)境。 Card OS、Java Card VM和Java Card Framework共同組成了JCRE(Java卡運行時環(huán)境)。Industry Specific Extensions是服務(wù)方所提供的類,使企業(yè)與公司能夠提供屬于自己的服務(wù)程序。例如,如果這張卡是GSM網(wǎng)絡(luò)的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的核心包,提供了實現(xiàn)Java Card Applet基本類和工具。其中ISO7816抽象接口提供了ISO7816所使用的常數(shù)值。PIN(個人識別號碼)抽象接口使其子類能夠驗證PIN是否合法。Shareable抽象接口使得不同的Applet能夠互相通信。AID類使得JCRE能夠通過一個AID表來識別Applet。APDU類通過管理一個緩沖區(qū)來接收與傳送終端的指令以及回傳Applet運行結(jié)果與狀態(tài)。Applet類是所有Java Card Applet的根類,管理Java Card Applet的生命周期。JCSystem類管理Applet與Java Card的系統(tǒng)資源,如AID與事務(wù)。OwnerPIN類管理卡片持有者的PIN,并提供相關(guān)驗證與更新等方法。Util類提供了開發(fā)中的常用工具。 Javacard.security package負(fù)責(zé)提供安全機制,包括Key抽象接口、KeyBuilde類和MessageDisest類。 Javacardx.cryp to package包含了關(guān)于加密與安全的抽象接口和類。 (5)Java卡應(yīng)用的開發(fā) Java卡的生命周期從操作系統(tǒng)、JVM、API庫和可選的Applet被寫入Java卡的ROM開始。在正式使用之前,Java卡要經(jīng)過初始化(在卡上寫入制造商和發(fā)行商名稱等通用信息)和個人化(在卡上寫入密鑰等個人信息)。然后用戶就可以購買并使用Java卡了,當(dāng)然還要與讀卡器相配合。Applet的生命周期從被安裝并注冊到Java卡系統(tǒng)開始,在被從系統(tǒng)注冊表中刪除時結(jié)束,在被選擇時激活。 Java卡的應(yīng)用程序可以用一般的Java編譯器來編譯。但是由于智能卡只有有限的存儲器資源和計算功能,Java卡上的應(yīng)用開發(fā)與普通的Java程序開發(fā)有很大的不同,很多Java語言的特性在Java卡應(yīng)用的開發(fā)中都不能使用。Java卡的應(yīng)用開發(fā)(在Windows系統(tǒng)下)過程如下: ①安裝JDK和Java Card 2.1.1 Development Kit; ②設(shè)置有關(guān)環(huán)境變量; ③編輯Java源代碼,可以使用任何Java代碼編輯工具; ④編譯Java源代碼,用Java編譯器編譯Java源代碼,生成class文件; ⑤生成Cap文件,在Java卡上不能直接運行class文件,必須用Java卡轉(zhuǎn)換器(converter)、把class文件轉(zhuǎn)換為Cap文件; ⑥安裝Applet,用PC機和與之相連的讀卡器把Cap文件安裝到Java卡上。 (6)Java卡在移動通信領(lǐng)域的應(yīng)用 SIM(用戶識別模塊)作為一張內(nèi)含大規(guī)模集成電路的智能卡,目前主要用于GSM手機。最初SIM卡主要用來存儲一些個人身份認(rèn)證和識別信息,例如IMSI、鑒權(quán)密鑰等。SIM卡不能向手機發(fā)出命令。1998年ETSI(歐洲電信標(biāo)準(zhǔn)化委員會)制定了STK卡(SIM應(yīng)用工具箱技術(shù))的技術(shù)規(guī)范,大大增強了SIM卡的能力。STK卡上可以安裝運行應(yīng)用程序,可以向手機發(fā)出命令,例如在手機上建立新的菜單。SIM卡還可以收發(fā)短消息甚至發(fā)起呼叫。這樣就可以在SIM卡上運行客戶端的軟件,通過短消息與服務(wù)器交互,同時通過菜單為用戶提供友好的界面。 盡管STK對SIM卡的使用方法進行了標(biāo)準(zhǔn)化,但是各個制造商仍舊使用自己的開發(fā)工具為自選的芯片掩膜,因此引入開放的SIM卡開放平臺成為必要。ETSI已在其協(xié)議中增加了有關(guān)Java Card的內(nèi)容。GSM SIM卡采用Java Card API在保證安全的同時提供開放的SIM開發(fā),使得STK應(yīng)用在不同制造商的SIM卡上運行。在開發(fā)過程中,軟件開發(fā)商可采用開放的開發(fā)工具,開發(fā)出與Java兼容的SIM卡應(yīng)用程序。 ETSI的協(xié)議GSM 03.19是STK Java卡的技術(shù)標(biāo)準(zhǔn),規(guī)定了STK Java卡的體系結(jié)構(gòu)。最底層是JCRE和GSM文件系統(tǒng)。之上是GSM框架,提供了一些供Applet接入GSM文件系統(tǒng)的API。在GSM框架之上是SIM Toolkit框架,負(fù)責(zé)Applet的觸發(fā)、注冊、安裝和卸載,主動式命令的處理,Applet的安全性管理。 3 J2ME (1)J2ME簡介 J2ME是Sun公司為資源有限的設(shè)備上使用Java編程語言而設(shè)計的,使用在各種各樣的消費電子產(chǎn)品上,例如智能卡、手機、PDA、電視機頂盒等。J2ME平臺是建立在Java編程語言上的,可為資源有限的設(shè)備提供最大的功能。 J2ME目前有兩種配置層。一種是"面向連接的設(shè)備配置"CDC(Connected Device Configuration),它采用典型的Java虛擬機技術(shù)。這種全功能的虛擬機包含了基于臺式機系統(tǒng)上的虛擬機的所有功能,適用于擁有至少幾兆字節(jié)內(nèi)存的設(shè)備。它的目標(biāo)是高檔的消費類電子產(chǎn)品和嵌入式設(shè)備,例如智能通信器、高級"智能"尋呼機、智能個人數(shù)字助理(PDA)以及交互式數(shù)字電視機頂盒。對于無線設(shè)備和其它內(nèi)存不足的設(shè)備,J2ME采用"面向連接的受限的設(shè)備配置"CLDC(Connected Limited Device Configuration)技術(shù)。 (2)J2ME對硬件的最低要求 CDC與CLDC對硬件平臺有不同的要求: CDC-32位的微處理器,大于2MB的存儲器。 CLDC-16位或32位處理器,大于128KB的存儲器。 (3)J2ME軟件體系結(jié)構(gòu) Java Virtual Machine Layer(Java虛擬機層)是Java虛擬機的一個實現(xiàn),它是為特定設(shè)備的主機操作系統(tǒng)定制的,而且支持一個特定的J2ME配備。CDC配置的JVM是CVM(C虛擬機),CLDC配置的JVM是KVM(K虛擬機)。 Configuration Layer(配置層)定義了Java 虛擬機功能和特定類別設(shè)備上可用的Java類庫的最小集。從某種程序上說,一個配置定義了Java平臺功能部件和庫的共同性,開發(fā)者可以假設(shè)這些功能部件和庫在屬于某一特定類別的所有設(shè)備上都是可用的。 Profile Layer(框架層)定義了特定系列設(shè)備上可用的應(yīng)用程序編程接口的最小集??蚣茉谝粋€特定的配置上面實現(xiàn),在配置層上增加適用特定規(guī)格的配置文件,如MIDP就是用于移動終端的配置文件。應(yīng)用程序是針對特定的框架編寫的,因此可以移植到支持該框架的任何設(shè)備上,一個設(shè)備可以支持多個框架。 (4)J2ME API CDC提供支持全兼容Java 2虛擬機所必需的最小API集。這一API集包括所有為CDC定義的API和針對文件I/O、網(wǎng)絡(luò)連接、高級完全性、對象序列等API。其中Java.io支持系統(tǒng)輸入與輸出,Java lang Java提供編程語言基本類,Java.lang.ref包括了一些特別參考類,Java.lang.reflect提供對反映的支持,Java.math支持?jǐn)?shù)學(xué)運算,Java.net提供用于網(wǎng)絡(luò)連接的類和工具,Java.security提供完全支持,Java.security.cert提供證書支持,Java.text提供文本處理類,Java.util包括集合、日期和時間支持等各種實用工具類,Java.util.jar提供Jar文件支持,Java.util.zip提供Zip文件支持,支持Javax.microedition類屬連接。 由于MIDP/CLDC API將在一個性能有限的設(shè)備上運行,因此Java的一些功能被取消或修改。Java.lang、Java.io、Java.util包是J2SE包中標(biāo)準(zhǔn)類的一個子集。Javax.microedition.io包提供了對網(wǎng)絡(luò)連接的支持,Javax.microedition.io包中的主要對象是Connector類??蓪⒃擃悘娭妻D(zhuǎn)換為不同的連接類型,例如HttpConnection。Javax.microedition.lcdui提供了用于定義midlet用戶接口的類。Javax.microedition.rms包用來在設(shè)備上實現(xiàn)一個臨時存儲數(shù)據(jù)庫,當(dāng)然該數(shù)據(jù)庫的存儲和獲取信息的性能受到設(shè)備的限制。Javax.microedition.midlet中包含有MIDlet的類。MIDlet類執(zhí)行midlet的生命周期,并且提供getAppProperty(key)方法來由應(yīng)用屬性中獲取信息。應(yīng)用屬性設(shè)置在jad(Java應(yīng)用程序描述器)文件中。 (5)Java卡在移動通信領(lǐng)域的應(yīng)用 CLDC和MIDP為創(chuàng)建移動電話應(yīng)用程序提供了完整的環(huán)境。MID框架的核心是一個MIDlet應(yīng)用程序,所有應(yīng)用程序MIDlet都繼承MIMlet類,以允許應(yīng)用程序管理軟件對MIDlet進行控制、從應(yīng)用程序描述符檢索屬性以及對狀態(tài)變化進行通知和請示。MIDlet類提供了用于調(diào)用、暫停、重新啟動和終止MIDlet應(yīng)用程序的API。應(yīng)用程序管理軟件可以在運行時環(huán)境內(nèi)管理多個MIDlet的活動。此外,MIDlet可以自己發(fā)起一些狀態(tài)變化,并把這些變化通知給應(yīng)用程序管理軟件。 移動電話J2ME MIDP應(yīng)用程序包括用戶界面開發(fā)、數(shù)據(jù)庫程序開發(fā)和網(wǎng)絡(luò)程序開發(fā)。 Javax.microedition.lcdui包中包括了用于用戶界面開發(fā)的各種類。用戶界面的根類是Display,所有的用戶界面類都是在Display里顯示出來的Displayable對象,Display對象是其它對象演示的舞臺,應(yīng)用程序道德需要獲得Display對象的引用,然后就可以把場景對象放入演示舞臺中。MIDP提供了Screen和Canvas兩種演示場景。Screen的子類包括Alert、Form、List和TextBox。Javax.microedition.lcdui中定義了Command類來接收用戶的輸入信息,又在Display類中定義了Screen對象與Command對象組合的方法,使得應(yīng)用程序能夠響應(yīng)用戶的輸入。 在Screen場景中可以使用的對象包括Alert(信息窗口)、Form(窗體)、List(選項列表)和TextBox(文本框)。其中Form可以放置Item類,包括TextFiled(文本字段)、StringItem(字符串項目)、ImageItem(圖像項目)、DataField(日期字段)、ChoiceGroup(選項集合)和Gauge(標(biāo)尺)。TextBox使應(yīng)用程序能夠在屏幕上顯示文本框;Alert類似于消息框,可以為用戶提供一些信息;List類以列表的形式提供選項使用戶選擇;Form是一個容器對象,可以放置包括文本字段、字符串項目、圖像項目、日期字段、選項集合和標(biāo)尺等在內(nèi)的Item對象。 Canvas是Displayable中用來給開發(fā)者創(chuàng)建整個用戶接口的,用于創(chuàng)建復(fù)雜的用戶界面,例如視頻游戲中使用的界面。用戶在Canvas對象上的繪畫與Applet中的AWT Canvas類似。 Javax.microedition.rms定義了在設(shè)備上實現(xiàn)一個臨時存儲數(shù)據(jù)庫程序開發(fā)的類。其中采用由字節(jié)數(shù)組RMS(記錄管理系統(tǒng))機制,使用稱為RecordStore(記錄存儲區(qū))的小型數(shù)據(jù)庫。每個記錄存儲區(qū)對象是Javax.microedition.rms類的一個實例。記錄存儲區(qū)是由字節(jié)數(shù)組組成的記錄構(gòu)成的。RecordStore提供了用于用戶操作記錄和管理存儲區(qū)的方法,對記錄的操作包括增加、刪除、更新和查詢。 Javax.microedition.io為應(yīng)用程序開發(fā)者提供GCF(通用聯(lián)機框架),用于網(wǎng)絡(luò)編程。網(wǎng)絡(luò)編程的根類是Connecter,通過Connecter提供了HTTP、SOCKET、Datagram(數(shù)據(jù)報)和Serial Port(串行口)等網(wǎng)絡(luò)通信方式,其中HTTP為設(shè)備的必選項。 (6)J2ME MIDP應(yīng)用程序的開發(fā)過程 Sun公司最近推出的工具包J2ME WTK(Java 2 Micro Edition Wireless Toolkit)簡化了MIDlet的開發(fā),為MIDlet開發(fā)提供了一個全面的工具包。應(yīng)用程序的開發(fā)過程如下: ①安裝J2SE或者Java Runtime Enviroment。 ②安裝J2ME WTK。 ③配置仿真器。 ④編輯Java源文件,可以使用任何Java代碼編輯工具。 ⑤編譯Java源代碼,用Java編譯器編譯Java源代碼,生成Class文件。除了編譯以外,編譯器還會檢查源文件中有沒有使用CLDC和MIDP以外的類和屬性及方法。 ⑥驗證字節(jié)碼。 ⑦封裝成MIDlet Suite,把經(jīng)過驗證的Class文件及應(yīng)用程序中將用到的資源文件封裝成JAR文件,這一步會生成JAD文件和mainfest文件。 ⑧測試,然后下載到目標(biāo)機上運行。 結(jié) 語 Java本來就是為嵌入式設(shè)備而設(shè)計的,但昌隨著因特網(wǎng)的興起,Java在臺式機和服務(wù)器端的應(yīng)用開發(fā)中取得了巨大的成功。Java在應(yīng)用中充分展示其通用性與完全性等優(yōu)勢,而這在嵌入式設(shè)備的應(yīng)用開發(fā)中是至關(guān)重要的,這使得Java重返嵌入式應(yīng)用開發(fā)領(lǐng)域成為必然。STK Java卡和J2ME的成功應(yīng)用昭示著Java在嵌入式系統(tǒng)應(yīng)用開發(fā)中的美好前景。

標(biāo)簽:

點贊

分享到:

上一篇:超聲波液位儀水位監(jiān)控系統(tǒng)應(yīng)用

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號