在 Java 應用程式中訪問USB裝置

azz發表於2007-08-24
在 Java 應用程式中訪問USB裝置[@more@]

  Java 平臺一直都以其平臺無關性自豪。雖然這種無關性有許多好處,但是它也使得編寫與硬體互動的 Java 應用程式的過程變得相當複雜。在本文中,研究科學家蔣清野討論了兩個專案,它們透過提供使Java 應用程式可以使用 USB 裝置的 API 而使這個過程變得更容易。雖然這兩個專案仍然處於萌芽狀態,但是它們都顯示了良好的前景,並已經成為一些實用應用程式的基礎。

  通用序列匯流排(Universal Serial Bus USB)規範的第一個版本發表於 1996年 1月。因為它的低成本、高資料傳輸率、使用容易和靈活性,USB 在計算機行業裡獲得了廣泛接受。今天,許多周邊裝置和裝置都是透過 USB 介面連線到計算機上的。目前,大多數一般用途的作業系統都提供了對 USB 裝置的支援,並且用 C 或者 C++ 可以相對容易地開發訪問這些外設的應用程式。不過,Java 程式語言在設計上對硬體訪問提供的支援很少,所以編寫與 USB 裝置互動的應用程式是相當困難的。

  IBM 的 Dan Streetman 最早開始了在 Java 語言中提供對 USB 裝置的訪問的努力。2001年,他的專案透過 Java 規範請求(Java Specification Request,JSR)過程被接受為 Java 語言的候選擴充套件標準。這個專案現在稱為 JSR-80 並且指定了官方包 javax.usb。同時,在 2000年 6月,Mojo Jojo 和 David Brownell 在 SourceForge 開始了 jUSB 專案。這兩個專案都開發出了 Linux 開發人員可以使用的包,儘管它們都還很不完善。這兩個專案也都開始試圖向其他作業系統上的 Java 應用程式提供對 USB 裝置的訪問,儘管它們都還沒有開發出可以使用的包(參閱 參考資料 中有關本文中討論的這兩個專案及其他專案的資料)。

  在本文中,將對 jUSB 和 JSR-80 專案作一個簡要介紹,不過,我們首先要看一下 USB 協議的具體細節,這樣您就可以理解這兩個專案是如何與 USB 裝置互動的。我們還將提供程式碼片段以展示如何用這兩個專案的 API 訪問 USB 裝置。

  USB 介紹

  1994年,一個由四個行業夥伴(Compaq、Intel、Microsoft 和 NEC)組成的聯盟開始制定 USB 協議。該協議最初的目的是將 PC 與電話相連並提供容易擴充套件和重新配置的 I/O 介面。1996年 1月,發表了 USB 規範的第一個版本,1998年 9月發表了後續版本(版本 1.1)。這個規範允許 127臺裝置同時連線到一起,總的通訊頻寬限制為 12 Mbps。後來,又有三個成員(Hewlett-Packard、Lucent 和 Philips)加入了這個聯盟。2000年 4月,發表了 USB 規範的 2.0版本,它支援高達 480 Mbps 的傳輸率。今天,USB 在高速(影片、影像、儲存)和全速(音訊、寬頻、麥克風)資料傳輸應用中起了關鍵作用。它還使各種低速裝置(鍵盤、滑鼠、遊戲外設、虛擬現實外設)連線到 PC 上。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10901326/viewspace-965659/,如需轉載,請註明出處,否則將追究法律責任。

相關文章