在 Java 應(yīng)用程序中訪問USB設(shè)備
發(fā)表時(shí)間:2024-01-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]Java 平臺(tái)一直都以其平臺(tái)無關(guān)性自豪。雖然這種無關(guān)性有許多好處,但是它也使得編寫與硬件交互的 Java 應(yīng)用程序的過程變得相當(dāng)復(fù)雜。在本文中,研究科學(xué)家蔣清野討論了兩個(gè)項(xiàng)目,它們通過提供使Java 應(yīng)用程序可以使用 USB 設(shè)備的 API 而使這個(gè)過程變得更容易。雖然這兩個(gè)項(xiàng)目仍然處于萌芽狀態(tài),...
Java 平臺(tái)一直都以其平臺(tái)無關(guān)性自豪。雖然這種無關(guān)性有許多好處,但是它也使得編寫與硬件交互的 Java 應(yīng)用程序的過程變得相當(dāng)復(fù)雜。在本文中,研究科學(xué)家蔣清野討論了兩個(gè)項(xiàng)目,它們通過提供使Java 應(yīng)用程序可以使用 USB 設(shè)備的 API 而使這個(gè)過程變得更容易。雖然這兩個(gè)項(xiàng)目仍然處于萌芽狀態(tài),但是它們都顯示了良好的前景,并已經(jīng)成為一些實(shí)用應(yīng)用程序的基礎(chǔ)。
通用串行總線(Universal Serial Bus USB)規(guī)范的第一個(gè)版本發(fā)表于 1996年 1月。因?yàn)樗牡统杀尽⒏邤?shù)據(jù)傳輸率、使用容易和靈活性,USB 在計(jì)算機(jī)行業(yè)里獲得了廣泛接受。今天,許多周邊設(shè)備和裝置都是通過 USB 接口連接到計(jì)算機(jī)上的。目前,大多數(shù)一般用途的操作系統(tǒng)都提供了對(duì) USB 設(shè)備的支持,并且用 C 或者 C++ 可以相對(duì)容易地開發(fā)訪問這些外設(shè)的應(yīng)用程序。不過,Java 編程語言在設(shè)計(jì)上對(duì)硬件訪問提供的支持很少,所以編寫與 USB 設(shè)備交互的應(yīng)用程序是相當(dāng)困難的。
IBM 的 Dan Streetman 最早開始了在 Java 語言中提供對(duì) USB 設(shè)備的訪問的努力。2001年,他的項(xiàng)目通過 Java 規(guī)范請(qǐng)求(Java Specification Request,JSR)過程被接受為 Java 語言的候選擴(kuò)展標(biāo)準(zhǔn)。這個(gè)項(xiàng)目現(xiàn)在稱為 JSR-80 并且指定了官方包 javax.usb。同時(shí),在 2000年 6月,Mojo Jojo 和 David Brownell 在 SourceForge 開始了 jUSB 項(xiàng)目。這兩個(gè)項(xiàng)目都開發(fā)出了 Linux 開發(fā)人員可以使用的包,盡管它們都還很不完善。這兩個(gè)項(xiàng)目也都開始試圖向其他操作系統(tǒng)上的 Java 應(yīng)用程序提供對(duì) USB 設(shè)備的訪問,盡管它們都還沒有開發(fā)出可以使用的包(參閱 參考資料 中有關(guān)本文中討論的這兩個(gè)項(xiàng)目及其他項(xiàng)目的資料)。
在本文中,將對(duì) jUSB 和 JSR-80 項(xiàng)目作一個(gè)簡(jiǎn)要介紹,不過,我們首先要看一下 USB 協(xié)議的具體細(xì)節(jié),這樣您就可以理解這兩個(gè)項(xiàng)目是如何與 USB 設(shè)備交互的。我們還將提供代碼片段以展示如何用這兩個(gè)項(xiàng)目的 API 訪問 USB 設(shè)備。
USB 介紹
1994年,一個(gè)由四個(gè)行業(yè)伙伴(Compaq、Intel、Microsoft 和 NEC)組成的聯(lián)盟開始制定 USB 協(xié)議。該協(xié)議最初的目的是將 PC 與電話相連并提供容易擴(kuò)展和重新配置的 I/O 接口。1996年 1月,發(fā)表了 USB 規(guī)范的第一個(gè)版本,1998年 9月發(fā)表了后續(xù)版本(版本 1.1)。這個(gè)規(guī)范允許 127臺(tái)設(shè)備同時(shí)連接到一起,總的通信帶寬限制為 12 Mbps。后來,又有三個(gè)成員(Hewlett-Packard、Lucent 和 Philips)加入了這個(gè)聯(lián)盟。2000年 4月,發(fā)表了 USB 規(guī)范的 2.0版本,它支持高達(dá) 480 Mbps 的傳輸率。今天,USB 在高速(視頻、圖像、儲(chǔ)存)和全速(音頻、寬帶、麥克風(fēng))數(shù)據(jù)傳輸應(yīng)用中起了關(guān)鍵作用。它還使各種低速設(shè)備(鍵盤、鼠標(biāo)、游戲外設(shè)、虛擬現(xiàn)實(shí)外設(shè))連接到 PC 上。