首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

在 Java 應用程式中存取 USB 裝置:jUSB 與 JSR-80 兩大方案深度解析

     編輯:Java 程式設計入門

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

USB 協定核心架構

USB 協定有嚴格的階層結構。在所有 USB 系統中,只有一個主裝置,連接到主計算機的 USB 介面稱為主控制器。主控制器有兩個標準:開放主控制器介面 (OHCI) 和通用主控制器介面 (UHCI)。USB 物理互連是分層的星形拓撲,最多有七層。一個 Hub 是每個星形的中心,USB 主機被認為是 Root Hub。

主機使用主/從協定與 USB 裝置通信。所有傳輸的資料都是由主控制器發起的。資料從主機流向裝置稱為下游或輸出傳輸,資料從裝置流向主機稱為上游或輸入傳輸。資料傳輸發生在主機和 USB 裝置上特定的端點之間,主機與端點之間的資料鏈接稱為管道。

四種資料傳輸類型

  • 控制傳輸:用於裝置控制和配置,特別是在裝置連接到主機時。
  • 批量傳輸:數量較大的資料包,掃描器或 SCSI 適配器等裝置使用。
  • 中斷傳輸:定期輪詢的資料包,主控制器以特定間隔自動發出中斷。
  • 等時傳輸:即時資料流,對頻寬要求高於可靠性要求,音訊和視訊裝置通常使用。

兩大 Java USB 解決方案

1. JSR-80 (javax.usb)

IBM 的 Dan Streetman 最早開始了在 Java 語言中提供對 USB 裝置存取的努力。2001 年,他的專案透過 Java 規範請求 (JSR) 過程被接受為 Java 語言的候選擴展標準。這個專案現在稱為 JSR-80 並且指定了官方套件 javax.usb。

2. jUSB 專案

2000 年 6 月,Mojo Jojo 和 David Brownell 在 SourceForge 開始了 jUSB 專案。這兩個專案都開發出了 Linux 開發人員可以使用的套件,雖然它們都還很不完善。這兩個專案也都開始試圖向其他作業系統上的 Java 應用程式提供對 USB 裝置的存取。

本文將對 jUSB 和 JSR-80 專案作一個簡要介紹,並提供程式碼片段以展示如何用這兩個專案的 API 存取 USB 裝置。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved