在java应用程序中访问usb设备

在java应用程序中访问usb设备

ID:9009467

大小:95.50 KB

页数:14页

时间:2018-04-14

在java应用程序中访问usb设备_第1页
在java应用程序中访问usb设备_第2页
在java应用程序中访问usb设备_第3页
在java应用程序中访问usb设备_第4页
在java应用程序中访问usb设备_第5页
资源描述:

《在java应用程序中访问usb设备》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在Java应用程序中访问USB设备在本文通过提供使Java应用程序可以使用USB设备的API而使这个过程变得更容易.  Java平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的Java应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java应用程序可以使用USB设备的API而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基础。  通用串行总线(UniversalSerialBusUSB)规范的第一个版本发表于1996年1月。因为它的低成本、高数据

2、传输率、使用容易和灵活性,USB在计算机行业里获得了广泛接受。今天,许多周边设备和装置都是通过USB接口连接到计算机上的。目前,大多数一般用途的操作系统都提供了对USB设备的支持,并且用C或者C++可以相对容易地开发访问这些外设的应用程序。不过,Java编程语言在设计上对硬件访问提供的支持很少,所以编写与USB设备交互的应用程序是相当困难的。  IBM的DanStreetman最早开始了在Java语言中提供对USB设备的访问的努力。2001年,他的项目通过Java规范请求(JavaSpecificationRequest,JSR)过程被接受为Java语言的候选扩展标准。这个项目现

3、在称为JSR-80并且指定了官方包javax.usb。同时,在2000年6月,MojoJojo和DavidBrownell在SourceForge开始了jUSB项目。这两个项目都开发出了Linux开发人员可以使用的包,尽管它们都还很不完善。这两个项目也都开始试图向其他操作系统上的Java应用程序提供对USB设备的访问,尽管它们都还没有开发出可以使用的包(参阅参考资料中有关本文中讨论的这两个项目及其他项目的资料)。  在本文中,将对jUSB和JSR-80项目作一个简要介绍,不过,我们首先要看一下USB协议的具体细节,这样您就可以理解这两个项目是如何与USB设备交互的。我们还将提供代

4、码片段以展示如何用这两个项目的API访问USB设备。USB介绍  1994年,一个由四个行业伙伴(Compaq、Intel、Microsoft和NEC)组成的联盟开始制定USB协议。该协议最初的目的是将PC与电话相连并提供容易扩展和重新配置的I/O接口。1996年1月,发表了USB规范的第一个版本,1998年9月发表了后续版本(版本1.1)。这个规范允许127台设备同时连接到一起,总的通信带宽限制为12Mbps。后来,又有三个成员(Hewlett-Packard、Lucent和Philips)加入了这个联盟。2000年4月,发表了USB规范的2.0版本,它支持高达480Mbps的

5、传输率。今天,USB在高速(视频、图像、储存)和全速(音频、宽带、麦克风)数据传输应用中起了关键作用。它还使各种低速设备(键盘、鼠标、游戏外设、虚拟现实外设)连接到PC上。  USB协议有严格的层次结构。在所有USB系统中,只有一个主设备,到主计算机的的USB接口称为主控器(hostcontroller)。主控器有两个标准??开放主控器接口(Compaq的OpenHostControllerInterface,OHCI)和通用主控器接口(Intel的UniversalHostControllerInterface,UHCI)。这两个标准提供了同样的能力,并可用于所有的USB设备,

6、UHCI的硬件实现更简单一些,但是需要更复杂的设备驱动程序(因而CPU的负荷更大一些)。  USB物理互连是分层的星形拓朴,最多有七层。一个hub是每个星形的中心,USB主机被认为是roothub。每一段连线都是hub与USB设备的点对点连接,后者可以是为系统提供更多附加点的另一个hub,也可以是一个提供功能的某种设备。主机使用主/从协议与USB设备通信。这种方式解决了包冲突的问题,但是同时也阻止了附加的设备彼此建立直接通信。  所有传输的数据都是由主控器发起的。数据从主机流向设备称为下行(downstream)或者输出(out)传输,数据从设备流向主机称为上行(upstream

7、)或者输入(in)传输。数据传输发生在主机和USB设备上特定的端点(endpoint)之间,主机与端点之间的数据链接称为管道(pipe)。一个给定的USB设备可以有许多个端点,主机与设备之间数据管道的数量与该设备上端点的数量相同。一个管道可以是单向或者是双向的,一个管道中的数据流与所有其他管道中的数据流无关。  USB网络中的通信可以使用下面四种数据传输类型中的任意一种:  控制传输:这些是一些短的数据包,用于设备控制和配置,特别是在设备附加到主机上时。  批量传输:这些是数量相

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。