《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 移動信息設(shè)備框架在虛擬實(shí)驗(yàn)室上的實(shí)現(xiàn)

移動信息設(shè)備框架在虛擬實(shí)驗(yàn)室上的實(shí)現(xiàn)

2008-12-29
作者:陳凱迪,李浩君,邱飛岳

1. J2ME概述
??? 隨著JAVA技術(shù)的不斷發(fā)展,JAVA自身也根據(jù)市場進(jìn)行了版本的細(xì)分。Java2分為針對企業(yè)級應(yīng)用的J2EE(Java 2 Enterprise Edition)、針對普通PC應(yīng)用的J2SE(Java 2 Standard Edition)和針對嵌入式設(shè)備及消費(fèi)類電子產(chǎn)品的J2ME(Java 2 Micro Edition)三個(gè)版本。
??? Sun公司將 J2ME 定義為“一種以廣泛的消費(fèi)性產(chǎn)品為目標(biāo)的的高度優(yōu)化的Java運(yùn)行時(shí)環(huán)境,包括尋呼機(jī)、移動電話、可視電話、數(shù)字機(jī)頂盒和汽車導(dǎo)航系統(tǒng)。” 自從 1999 年 6 月在 JavaOne Developer Conference 上聲明之后,J2ME為小型設(shè)備帶來了Java語言的跨平臺功能,允許移動無線設(shè)備共享應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序。有了J2ME,Sun已經(jīng)使Java平臺能夠適應(yīng)集成了或基于小型計(jì)算設(shè)備的用戶產(chǎn)品。

2.?J2ME總體架構(gòu)
??? J2ME 使用“配置” (configuration)和“框架” (profile)定制Java運(yùn)行時(shí)環(huán)境(JRE)。作為一個(gè)完整的JRE,J2ME由配置和框架組成,配置決定了使用的JVM,而框架通過添加特定于域的類來定義應(yīng)用程序。配置將基本運(yùn)行時(shí)環(huán)境定義為一組核心類和一個(gè)運(yùn)行在特定類型設(shè)備上的特定JVM。框架定義了應(yīng)用程序,它還特別向J2ME配置中添加特定于域的類,定義設(shè)備的某種作用。下面的圖表描述了不同的虛擬機(jī)、配置和框架之間的關(guān)系。它同時(shí)把 J2SE API 和它的Java虛擬機(jī)進(jìn)行了比較。雖然J2SE虛擬機(jī)通常被稱為一種JVM,但是J2ME虛擬機(jī)、KVM和CVM都是JVM的子集。KVM和CVM均可被看作是一種Java虛擬機(jī) -- 它們是J2SE JVM的壓縮版,并且只應(yīng)用于J2ME技術(shù)。

2.1 配置概述
??? 配置將基本運(yùn)行時(shí)環(huán)境定義為一組核心類和一個(gè)運(yùn)行在特定類型設(shè)備上的特定JVM。雖然還可能在將來定義其他的配置,但當(dāng)前J2ME只存在兩種配置:
??? (1)連接的有限設(shè)備配置 (CLDC): 主要與KVM一起用于內(nèi)存有限的16位或32位設(shè)備。這是用于開發(fā)小型J2ME應(yīng)用程序的配置(虛擬機(jī))。(從開發(fā)的角度來看)它的大小限制讓它比CDC更有趣、更具挑戰(zhàn)性。CLDC同時(shí)還是用于開發(fā)繪圖工具應(yīng)用程序的配置。
??? 使用CLDC開發(fā)的J2ME應(yīng)用程序的目標(biāo)設(shè)備通常具有以下特征:
·可供Java平臺使用的160到512KB的總內(nèi)存
·功率有限,常常是電池供電
·通常是無線連網(wǎng),連接不穩(wěn)定并且?guī)捰邢?BR>·用戶接口混亂,程度參差不齊;有時(shí)根本就沒有接口
CLDC支持的設(shè)備包括無線電話、尋呼機(jī)、主流個(gè)人數(shù)字助手 (PDA),以及小型零售支付終端。
??? (2)連接的設(shè)備配置(CDC):它與C虛擬機(jī)(CVM)一起使用,用于要求內(nèi)存超過2兆的32 位體系結(jié)構(gòu)。
??? 使用CDC開發(fā)的J2ME應(yīng)用程序的目標(biāo)設(shè)備通常具有以下特征:
·使用32位處理器
·2兆字節(jié)或更多可供Java平臺使用的總內(nèi)存
CDC 支持的設(shè)備包括常駐網(wǎng)關(guān)、智能電話和通訊器、互聯(lián)網(wǎng)電視機(jī)頂盒、PDA、小型零售終端以及汽車導(dǎo)航系統(tǒng)。

2.2 框架概述
??? 框架定義了應(yīng)用程序所支持的設(shè)備類型。它還特別向J2ME配置添加了特定于域的類來定義設(shè)備的某種作用。框架建立在配置的頂部。目前已經(jīng)為J2ME定義了兩種框架:KJava和移動信息設(shè)備框架 (MIDP),它們也被建立在CDLC之上。這兩種框架適用于小型設(shè)備。

2.3 KVM介紹
??? CLDC和MIDP通常運(yùn)行在SUN的K虛擬機(jī)(KVM)之上,KVM是一個(gè)專門為小型的、資源受限的設(shè)備所設(shè)計(jì)的緊湊的、便捷的Java虛擬機(jī)。KVM的高端設(shè)計(jì)目標(biāo)是創(chuàng)建一個(gè)新的擁有以下特點(diǎn)的Java虛擬機(jī):
·小型的,虛擬機(jī)核心的靜態(tài)內(nèi)存占有量從60KB開始,依賴于編譯選項(xiàng)和目標(biāo)平臺。
·清晰的,具有良好的注釋和高度的可移植性。
·模塊化,可定制。
·在不犧牲其他設(shè)計(jì)目標(biāo)的前提下盡量完善和高速。
??? KVM中的“K”代表“千(Kilo)”,這樣命名是因?yàn)樗膬?nèi)存容量是用幾十KB來衡量的(而桌面系統(tǒng)是用兆(M)甚至千兆(G)來衡量的)。KVM適合于帶有不超過幾百KB內(nèi)存的16/32位微處理器。它的典型應(yīng)用是數(shù)字蜂窩電話、傳呼機(jī)、PDA、便攜式音頻/視頻設(shè)備和小型的零售支付終端。
??? KVM實(shí)現(xiàn)所需要的最小總內(nèi)存空間大約是128KB,包括虛擬機(jī)、最小的庫和運(yùn)行Java程序所需要的堆空間。一個(gè)更加典型的實(shí)現(xiàn)需要總共256KB的內(nèi)存空間,其中32KB作為應(yīng)用運(yùn)行時(shí)的堆空間,60KB到80KB用于虛擬機(jī)本身,剩余的為類庫保留。易失內(nèi)存(如DRAM)和非易失內(nèi)存(如ROM或閃存)之間的比率相依賴于實(shí)現(xiàn)、設(shè)備、采用的配置等而變化。KVM在目標(biāo)設(shè)備中真正的任務(wù)會有很大的不同。在一些實(shí)現(xiàn)中,KVM常常是位于本地軟件棧之上使設(shè)備具有在其上下載和運(yùn)行動態(tài)、交互、安全的Java程序的能力。在另一些實(shí)現(xiàn)中,KVM被用于底層的同時(shí)也用于Java編程語言實(shí)現(xiàn)底層系統(tǒng)軟件和設(shè)備應(yīng)用。

2.4 MIDlets介紹
??? MID框架的核心是MIDlet應(yīng)用程序。這個(gè)應(yīng)用程序繼承了MIDlet類,以允許應(yīng)用程序管理軟件對MIDlet進(jìn)行控制、用關(guān)鍵詞檢索屬性以及對狀態(tài)變化進(jìn)行通知和請求。 所有MIDlet 都繼承MIDlet類 — 運(yùn)行時(shí)環(huán)境(應(yīng)用程序管理器)和MIDlet應(yīng)用程序代碼之間的接口。MIDlet類提供了用于調(diào)用、暫停、重新啟動和終止MIDlet應(yīng)用程序的API。應(yīng)用程序管理軟件可以在運(yùn)行時(shí)環(huán)境內(nèi)管理多個(gè)MIDlet 的活動。此外,MIDlet可以自己發(fā)起一些狀態(tài)變化,并把這些變化通知給應(yīng)用程序管理軟件。
??? MIDP? API(Application Program Interface) 類分為兩種:
??? (1)用于用戶界面的 MIDP API:設(shè)計(jì)這些API是為了能以一系列屏幕顯示為基礎(chǔ)與用戶進(jìn)行交互操作,每一屏幕顯示把適量的數(shù)據(jù)顯示給用戶。這些API允許應(yīng)用程序決定下一屏顯示什么、執(zhí)行什么計(jì)算和使用網(wǎng)絡(luò)服務(wù)的何種請求。
??? (2)用于處理數(shù)據(jù)庫的MIDP API:這些API負(fù)責(zé)組織和操作設(shè)備數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫由調(diào)用多個(gè)MIDlet的記錄信息組成。底層的CLDC API用于處理字符串、對象和整數(shù)。此外這些API還提供了Java 2 API的一個(gè)子集,用于處理I/O和網(wǎng)絡(luò)通信。

3.“虛擬實(shí)驗(yàn)室" title="虛擬實(shí)驗(yàn)室">虛擬實(shí)驗(yàn)室”概述
??? 在研究如何用手機(jī)對電機(jī)進(jìn)行控制的過程中,發(fā)展出了“虛擬實(shí)驗(yàn)室”技術(shù)。這實(shí)際上就是通過手機(jī)控制步進(jìn)" title="步進(jìn)">步進(jìn)電動機(jī)和直流伺服" title="直流伺服">直流伺服電動機(jī)的旋轉(zhuǎn)角度和旋轉(zhuǎn)方向。就伺服電動機(jī)而言,我們能通過手機(jī)查看它的開關(guān)(ON/OFF)狀態(tài)和當(dāng)前速度(轉(zhuǎn)/分),還能測量機(jī)械的時(shí)間遲延。
??? 首要的事情就是在手機(jī)和計(jì)算機(jī)之間建立連接。如圖1所示,手機(jī)首先通過MIDlet與服務(wù)器建立HTTP連接,然后服務(wù)器與預(yù)定計(jì)算機(jī)的一個(gè)端口建立套接連接。數(shù)據(jù)流就可以通過這個(gè)端口輸入輸出。然后服務(wù)器的程序通過Java本地接口(JNI)呼叫預(yù)定計(jì)算機(jī)里的本地碼,接著本地碼結(jié)合從接口傳來的機(jī)器的參數(shù)進(jìn)行運(yùn)算,并把運(yùn)算結(jié)果返回給服務(wù)器,最后服務(wù)器發(fā)送數(shù)據(jù)給手機(jī)并通過MIDlet顯示出來。

3.1 步進(jìn)電動機(jī)控制
??? 這里使用4極直流步進(jìn)電動機(jī)。用戶通過手機(jī)輸入旋轉(zhuǎn)角度與方向,然后轉(zhuǎn)動這么多角度所需要的步數(shù)被計(jì)算出來,并且通過打印端口把信號發(fā)送出去。因?yàn)閺牟⑿锌趥鱽淼男盘柼⑷酰员仨氝M(jìn)行放大才能使電動機(jī)運(yùn)轉(zhuǎn)起來。如圖2所示,這里用了ULN2003 IC來進(jìn)行信號的放大。

??? 下面的圖3所示的就是用來控制步進(jìn)電動機(jī)的手機(jī)輸出界面。

?

3.2 直流伺服電動機(jī)控制
??? 這里使用了12V的直流伺服電動機(jī)。它的開或關(guān)是通過繼電器進(jìn)行選擇的。繼電器的定額是6V,5A,100ohm。從并行口傳來的信號通過一個(gè)功率晶體管SL100去控制繼電器。(如圖4所示)

??? 伺服電動機(jī)配置了一個(gè)光感應(yīng)裝置(見圖5)。當(dāng)感應(yīng)器收到從縫隙里進(jìn)入的光后就會輸出5V電壓,功率管會對這個(gè)電壓產(chǎn)生沖激響應(yīng),同時(shí)程序會自動使某個(gè)對應(yīng)于轉(zhuǎn)速的參數(shù)增加1。于是就能測出電動機(jī)的轉(zhuǎn)速。如圖6所示,手機(jī)可以對伺服電動機(jī)的開關(guān)狀態(tài)、當(dāng)前轉(zhuǎn)速及時(shí)間遲延進(jìn)行監(jiān)控。

4.總結(jié)
??? 由于J2ME的應(yīng)用,通過移動設(shè)備對步進(jìn)電動機(jī)和伺服電動機(jī)進(jìn)行控制已經(jīng)獲得了成功。此外,通過相似的技術(shù)并結(jié)合Internet對機(jī)器手臂或遠(yuǎn)程設(shè)像機(jī)等進(jìn)行遠(yuǎn)程控制也是很有發(fā)展?jié)摿Φ摹?BR>參考資料
[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應(yīng)用程序開發(fā)" title="程序開發(fā)">程序開發(fā)—手機(jī)、PDA程序開發(fā)捷徑.北京:中國鐵道出版社,2002

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 91视频app污| 中国china体内裑精亚洲日本| 欧美色aⅴ欧美综合色| 全部免费a级毛片| 中文字幕日韩哦哦哦| 最近免费中文字幕大全高清10| 亚洲欧美国产一区二区三区| 狠狠色噜噜狠狠狠狠69| 国产成人刺激视频在线观看| **字幕特级毛片| 国产高清免费的视频| caoporn国产精品免费| 尤物视频在线播放| 中文字幕乱码系列免费| 日本免费网站观看| 亚洲欧美中文日韩综合| 男人j插入女人p| 免费黄色软件在线观看| 美女扒开胸罩让男生吃乳 | 婷婷人人爽人人爽人人片| 中文字幕乱妇无码AV在线| 日本中文字幕在线观看视频| 久久精品一区二区三区四区| 最近中文字幕免费高清mv| 亚洲人成人77777网站| 欧美成人精品a∨在线观看| 亚洲熟妇AV一区二区三区漫画| 激情综合亚洲欧美日韩| 伊人久久大香线蕉avapp下载| 第一章岳婿之战厨房沈浩| 加勒比色综合久久久久久久久| 精品韩国亚洲av无码不卡区| 国产swag剧情在线观看| 色播在线观看免费| 国产乱码一区二区三区爽爽爽 | 性盈盈影院免费视频观看在线一区| 久久久久久久伊人电影| 日本久久久久久中文字幕| 久久亚洲国产精品五月天| 日本肉漫在线观看| 久久亚洲中文字幕精品有坂深雪|