社区
智能硬件
帖子详情
java软件如何识别usb-hub端口及端口上的设备?
csdnyjw
2018-06-29 11:28:51
如图,电脑旁接有usb-hub设备,我想让软件去识别这个设备插在了电脑哪个端口,以及该hub上的设备信息。比如,hub上第一个端口插了u盘,那么软件是不是可以读出这个u盘的位置?并且可以读出u盘的设备信息,如序列号之类的?
我不知道软件是否可以直接实现,如果不可以,需要什么样的硬件设计,51单片机还是嵌入式系统?
...全文
218
回复
打赏
收藏
java软件如何识别usb-hub端口及端口上的设备?
如图,电脑旁接有usb-hub设备,我想让软件去识别这个设备插在了电脑哪个端口,以及该hub上的设备信息。比如,hub上第一个端口插了u盘,那么软件是不是可以读出这个u盘的位置?并且可以读出u盘的设备信息,如序列号之类的? 我不知道软件是否可以直接实现,如果不可以,需要什么样的硬件设计,51单片机还是嵌入式系统?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jsr80
java
访问
usb
dW 登录 | 注册 IBM developerWorks® 技术主题
软件
下载 社区 技术讲座 搜索 developerWorks 打印本页面用电子邮件发送本页面新浪微博人人网腾讯微博搜狐微博网易微博DiggFacebookTwitterDeliciousLinked In developerWorks 中国技术主题
Java
technology文档库 在
Java
应用程序中访问
USB
设备
介绍
USB
、j
USB
和 JSR-80
Java
平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的
Java
应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使
Java
应用程序可以使用
USB
设备
的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基础。 1 评论: 蒋清野 (qjiang@ieee.org), 研究科学家, HappyFox Engineering Solutions 2003 年 10 月 25 日 + 内容 在 IBM Bluemix 云平台上开发并部署您的下一个应用。 现在就开始免费试用 通用串行总线(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 并且指定了官方包
java
x.
usb
。同时,在 2000年 6月,Mojo Jojo 和 David Brownell 在 SourceForge 开始了 j
USB
项目。这两个项目都开发出了 Linux 开发人员可以使用的包,尽管它们都还很不完善。这两个项目也都开始试图向其他操作系统上的
Java
应用程序提供对
USB
设备
的访问,尽管它们都还没有开发出可以使用的包(参阅 参考资料 中有关本文中讨论的这两个项目及其他项目的资料)。 在本文中,将对 j
USB
和 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 上。
USB
协议有严格的层次结构。在所有
USB
系统中,只有一个主
设备
,到主计算机的的
USB
接口称为 主控器(host controller)。主控器有两个标准――开放主控器接口(Compaq 的 Open Host Controller Interface,OHCI)和通用主控器接口(Intel 的 Universal Host Controller Interface,UHCI)。这两个标准提供了同样的能力,并可用于所有的
USB
设备
,UHCI 的硬件实现更简单一些,但是需要更复杂的
设备
驱动程序(因而 CPU 的负荷更大一些)。
USB
物理互连是分层的星形拓朴,最多有七层。一个
hub
是每个星形的中心,
USB
主机被认为是 root
hub
。每一段连线都是
hub
与
USB
设备
的点对点连接,后者可以是为系统提供更多附加点的另一个
hub
,也可以是一个提供功能的某种
设备
。主机使用主/从协议与
USB
设备
通信。这种方式解决了包冲突的问题,但是同时也阻止了附加的
设备
彼此建立直接通信。 所有传输的数据都是由主控器发起的。数据从主机流向
设备
称为 下行(downstream)或者 输出(out)传输,数据从
设备
流向主机称为 上 行(upstream)或者 输入(in)传输。数据传输发生在主机和
USB
设备
上特定的 端点(endpoint) 之间,主机与端点之间的数据链接称为 管道(pipe)。 一个给定的
USB
设备
可以有许多个端点,主机与
设备
之间数据管道的数量与该
设备
上端点的数量相同。一个管道可以是单向或者是双向的,一个管道中的数据流与所有其他管道中的数据流无关。
USB
网络中的通信可以使用下面四种数据传输类型中的任意一种: 控制传输:这些是一些短的数据包,用于
设备
控制和配置,特别是在
设备
附加到主机上时。 批量传输:这些是数量相对大的数据包。像扫描仪或者 SCSI 适配器这样的
设备
使用这种传输类型。 中断传输:这些是定期轮询的数据包。主控器会以特定的间隔自动发出一个中断。 等时传输:这些是实时的数据流,它们对带宽的要求高于可靠性要求。音频和视频
设备
一般使用这种传输类型。 像串行
端口
一样,计算机上每一个
USB
端口
都由
USB
控制器指定了一个惟一的标识数字(
端口
ID)。当
USB
设备
附加到
USB
端口
上时,就将这个 惟一
端口
ID 分配给这台
设备
,并且
USB
控制器会读取
设备
描述符。
设备
描述符包括适用于该
设备
的全局信息、以及
设备
的 配置信息。配置定义了一台
USB
设备
的功能和 I/O 行为。一台
USB
设备
可以有一个或者多个配置,这由它们相应的配置描述符所描述。每一个配置都有一个或者多个 接口,它可以视为一个物理通信渠道 ;每一个接口有零个或者多个端点,它可以是数据提供者或者数据消费者,或者同时具有这两种身份。接口由接口描述符描述,端点由端点描述符描述。并且一台
USB
设备
可能还有字符串描述符以提供像厂商名、
设备
名或者序列号这样的附加信息。 正如您所看到的,像
USB
这样的协议为使用
Java
这种强调平台和硬件无关性的语言的开发人员提出了挑战。现在让我们看两个试图解决这个问题的项目。 回页首 j
USB
API j
USB
项目是由 Mojo Jojo 和 David Brownell 于 2000年 6月创立的。其目标是提供一组免费的、在 Linux 平台上访问
USB
设备
的
Java
API。这个 API 是按照 Lesser GPL (LGPL)条款发表的,这意味着您可以在专有和免费
软件
项目中使用它。这个 API 提供了对多个物理
USB
设备
的多线程访问,并支持本机和远程
设备
。具有多个接口的
设备
可以同时被多个应用程序(或者
设备
驱动程序)所访问,其中每一个应用程序(或者
设备
驱动程序)都占据一个不同的接口。该 API 支持控制传输、批量传输和中断传输,不支持等时传输,因为等时传输用于媒体数据(如音频和视频),JMF API 已经在其他标准
设备
驱动程序上对此提供了很好的支持(参阅 参考资料)。当前,该 API 可以在具有 Linux 2.4 核心或者以前的 2.2.18 核心的 GNU/Linux 版本上工作。因此可支持大多数最新的版本,例如,该 API 可以在没有任何补丁或者升级的 Red Hat 7.2 和 9.0 上工作。 j
USB
API 包括以下包:
usb
.core : 这个包是 j
USB
API 的核心部分。它使得
Java
应用程序可以从
USB
主机访问
USB
设备
。
usb
.linux : 这个包包含
usb
.core.Host 对象的 Linux 实现、bootstrapping 支持和其他可以提升 Linux
USB
支持的类。这个实现通过虚拟
USB
文件系统(
usb
devfs )访问
USB
设备
。
usb
.windows : 这个包包含
usb
.core.Host 对象的 Windows 实现、bootstrapping 支持和其他可以提升 Windows
USB
支持的类。这个实现仍然处于非常初级的阶段。
usb
.remote : 这个包是
usb
.core API 的远程版本。它包括一个 RMI proxy 和一个 daemon 应用程序,它让
Java
应用程序可以访问远程计算机上的
USB
设备
。
usb
.util : 这个包提供了一些有用的实用程序,可以将 firmware下载到
USB
设备
上、将
USB
系统的内容转储到 XML 中、以及将只有 bulk I/O 的
USB
设备
工具转换成一个套接字(socket)。
usb
.devices : 这个可选包收集了用 j
USB
API 访问不同
USB
设备
的
Java
代码,包括柯达数码相机和 Rio 500 MP3 播放器。这些 API 经过特别编写以简化访问特定
USB
设备
的过程,并且不能用于访问其他
设备
。这些 API 是在
usb
.core API 之上构建的,它们可以工作在所有支持 j
USB
的操作系统上。
usb
.view : 这个可选包提供了基于 Swing 的
USB
树简单浏览器。它是一个展示 j
USB
API 应用的很好的示例程序。 尽管
usb
.core.Host 对象的实现对于不同的操作系统是不同的,但是
Java
程序员只需要理解
usb
.core 包就可以用 j
USB
API 开始应用程序的开发。表 1 列出了
usb
.core 的接口和类,
Java
程序员应该熟悉它们: 表 1. j
USB
中的接口和类 接口 说明 Bus 将一组
USB
设备
连接到 Host 上 Host 表示具有一个或者多个 Bus 的
USB
控制器 类 说明 Configuration 提供对
设备
所支持的
USB
配置的访问,以及对与该配置关联的接口的访问 Descriptor 具有
USB
类型的描述符的实体的基类 Device 提供对
USB
设备
的访问 DeviceDescriptor 提供对
USB
设备
描述符的访问 EndPoint 提供对
USB
端点描述符的访问、在给定
设备
配置中构造
设备
数据输入或者输出 HostFactory 包含 bootstrapping 方法
Hub
提供对
USB
hub
描述符以及一些
hub
操作的访问 Interface 描述一组端点,并与一个特定
设备
配置相关联 PortIdentifier 为
USB
设备
提供稳定的字符串标识符,以便在操作和故障诊断时使用 用 j
USB
API 访问一台
USB
设备
的正常过程如下: 通过从 HostFactory 得到
USB
Host 进行 Bootstrap。 从 Host 访问
USB
Bus ,然后从这个 Bus 访问
USB
root
hub
(即
USB
Device )。 得到
hub
上可用的
USB
端口
数量,遍历所有
端口
以找到正确的 Device 。 访问附加到特定
端口
上的
USB
Device 。可以用一台 Device 的 PortIdentifier 直接从 Host 访问它,也可以通过从 root
hub
开始遍历
USB
Bus 找到它。 用 ControlMessage 与该 Device 直接交互,或者从该 Device 的当前 Configuration 中要求一个 Interface, 并与该 Interface 上可用的 Endpoint 进行 I/O 。 清单 1 展示了如何用 j
USB
API 获得
USB
系统中的内容。这个程序编写为只是查看 root
hub
上可用的
USB
设备
,但是很容易将它改为遍历整个
USB
树。这里的逻辑对应于上述步骤 1 到步骤 4。 清单 1. 用 j
USB
API 获得
USB
系统的内容 import
usb
.core.*; public class List
USB
{ public static void main(String[] args) { try { // Bootstrap by getting the
USB
Host from the HostFactory. Host host = HostFactory.getHost(); // Obtain a list of the
USB
buses available on the Host. Bus[] bus = host.getBusses(); int total_bus = bus.length; // Traverse through all the
USB
buses. for (int i=0; i
hub on the
USB
bus and obtain the // number of
USB
ports available on the root
hub
. Device root = bus[i].getRoot
Hub
(); int total_port = root.getNumPorts(); // Traverse through all the
USB
ports available on the // root
hub
. It should be mentioned that the numbering // starts from 1, not 0. for (int j=1; j<=total_port; j++) { // Obtain the Device connected to the port. Device device = root.getChild(j); if (device != null) { //
USB
device available, do something here. } } } } catch (Exception e) { System.out.println(e.getMessage()); } } 清单 2 展示了在应用程序成功地找到了 Device 的条件下,如何与 Interface 和 EndPoint 进行批量 I/O。 这个代码段也可以修改为执行控制或者中断 I/O。它对应于上述步骤 5。 清单 2. 用 j
USB
API 执行批量 I/O if (device != null) { // Obtain the current Configuration of the device and the number of // Interfaces available under the current Configuration. Configuration config = device.getConfiguration(); int total_interface = config.getNumInterfaces(); // Traverse through the Interfaces for (int k=0; k
USB 项目在 2000年 6月到 2001年 2月期间非常活跃。该 API 的最新的版本 0.4.4发表于 2001年 2月 14日。从那以后只提出了很少的改进,原因可能是 IBM 小组成功地成为了
Java
语言的候选扩展标准。不过,基于 j
USB
已经开发出一些第三方应用程序,包括 JPhoto 项目(这是一个用 j
USB
连接到数码照相机的应用程序)和 jSyncManager 项目(这是一个用 j
USB
与使用 Palm 操作系统的 PDA 同步的应用程序)。 回页首 JSR-80 API (
java
x.
usb
) 正如前面提到的,JSR-80 项目是由 IBM 的 Dan Streetman 于 1999年创立的。2001年,这个项目通过
Java
规范请求(JSR)过程被接受为
Java
语言的候选扩展标准。这个项目现在称为 JSR-80 并且被正式分派了
Java
包
java
x.
usb
。这个项目使用 Common Public License 的许可证形式,并通过
Java
Community Process 进行开发。这个项目的目标是为
Java
平台开发一个
USB
接口,可以从任何
Java
应用程序中完全访问
USB
系统。JSR-80 API 支持
USB
规范所定义的全部四种传输类型。目前,该 API 的 Linux 实现可以在支持 2.4 核心的大多数最新 GNU/Linux 版本上工作,如 Red Hat 7.2 和 9.0。 JSR-80 项目包括三个包:
java
x-
usb
(
java
x.
usb
API)、
java
x-
usb
-ri (操作系统无关的基准实现的公共部分)以及
java
x-
usb
-ri-linux (Linux 平台的基准实现,它将公共基准实现链接到 Linux
USB
堆栈)。所有这三个部分都是构成 Linux 平台上
java
.
usb
API 完整功能所必需的。在该项目的电子邮件列表中可以看到有人正在致力于将这个 API 移植到其他操作系统上(主要是 Microsoft Windows),但是还没有可以工作的版本发表。 尽管 JSR-80 API 的操作系统无关的实现在不同的操作系统上是不同的,但是
Java
程序员只需要理解
java
x.
usb
包就可以开始开发应用程序了。表 2 列出了
java
x.
usb
中的接口和类,
Java
程序员应该熟悉它们: 表 2. JSR-80 API 中的接口和类 接口 说明
Usb
Configuration 表示
USB
设备
的配置
Usb
ConfigurationDescriptor
USB
配置描述符的接口
Usb
Device
USB
设备
的接口
Usb
DeviceDescriptor
USB
设备
描述符的接口
Usb
Endpoint
USB
端点的接口
Usb
EndpointDescriptor
USB
端点描述符的接口
Usb
Hub
USB
hub
的接口
Usb
Interface
USB
接口的接口
Usb
InterfaceDescriptor
USB
接口描述符的接口
Usb
Pipe
USB
管道的接口
Usb
Port
USB
端口
的接口
Usb
Services
java
x.
usb
实现的接口 类 说明
Usb
HostManager
java
x.
usb
的入口点 用 JSR-80 API 访问
USB
设备
的正常过程如下: 通过从
Usb
HostManager 得到相应的
Usb
Services 进行 Bootstrap。 通过
Usb
Services 访问 root
hub
。在应用程序中 root
hub
就是一个
Usb
Hub
。 获得连接到 root
hub
的
Usb
Device s 清单。遍历所有低级
hub
以找到正确的
Usb
Device 。 用控制消息(
Usb
ControlIrp )与
Usb
Device 直接交互,或者从
Usb
Device 的相应
Usb
Configuration 中要求一个
Usb
Interface 并与该
Usb
Interface 上可用的
Usb
Endpoint 进行 I/O。 如果一个
Usb
Endpoint 用于进行 I/O,那么打开与它关联的
Usb
Pipe 。通过这个
Usb
Pipe 可以同步或者异步提交上行数据(从
USB
设备
到主计算机)和下行数据(从主计算机到
USB
设备
)。 当应用程序不再需要访问该
Usb
Device 时,关闭这个
Usb
Pipe 并释放相应的
Usb
Interface 。 在清单 3 中,我们用 JSR-80 API 获得
USB
系统的内容。这个程序递归地遍历
USB
系统上的所有
USB
hub
并找出连接到主机计算机上的所有
USB
设备
。这段代码对应于上述步骤 1 到步骤 3。 清单 3. 用 JSR-80 API 获得
USB
系统的内容 import
java
x.
usb
.*; import
java
.util.List; public class Traverse
USB
{ public static void main(String argv[]) { try { // Access the system
USB
services, and access to the root //
hub
. Then traverse through the root
hub
.
Usb
Services services =
Usb
HostManager.get
Usb
Services();
Usb
Hub
root
Hub
= services.getRoot
Usb
Hub
(); traverse(root
Hub
); } catch (Exception e) {} } public static void traverse(
Usb
Device device) { if (device.is
Usb
Hub
()) { // This is a
USB
Hub
, traverse through the
hub
. List attachedDevices = ((
Usb
Hub
) device).getAttached
Usb
Devices(); for (int i=0; i
UsbDevice) attachedDevices.get(i)); } } else { // This is a
USB
function, not a
hub
. // Do something. } } } 清单 4 展示了在应用程序成功地找到 Device 后,如何与 Interface 和 EndPoint 进行 I/O。这段代码还可以修改为进行所有四种数据传输类型的 I/O。它对应于上述步骤 4 到步骤 6。 清单 4. 用 JSR-80 API 进行 I/O public static void testIO(
Usb
Device device) { try { // Access to the active configuration of the
USB
device, obtain // all the interfaces available in that configuration.
Usb
Configuration config = device.getActive
Usb
Configuration(); List totalInterfaces = config.get
Usb
Interfaces(); // Traverse through all the interfaces, and access the endpoints // available to that interface for I/O. for (int i=0; i
UsbInterface interf = (
Usb
Interface) totalInterfaces.get(i); interf.claim(); List totalEndpoints = interf.get
Usb
Endpoints(); for (int j=0; j
UsbEndpoint ep = (
Usb
Endpoint) totalEndpoints.get(i); int direction = ep.getDirection(); int type = ep.getType();
Usb
Pipe pipe = ep.get
Usb
Pipe(); pipe.open(); // Perform I/O through the
USB
pipe here. pipe.close(); } interf.release(); } } catch (Exception e) {} } JSR-80 项目从一开始就非常活跃。2003年 2月发表了
java
x.
usb
API、RI 和 RI 的 0.10.0 版本。看起来这一版本会提交给 JSR-80 委员会做最终批准。预计正式成为
Java
语言的扩展标准后,其他操作系统上的实现会很快出现。Linux 开发者团体看来对 JSR-80 项目的兴趣比 j
USB
项目更大,使用 Linux 平台的
java
x.
usb
API 的项目数量在不断地增加。 回页首 结束语 j
USB
API 和 JSR-80 API 都为应用程序提供了从运行 Linux 操作系统的计算机中访问
USB
设备
的能力。JSR-80 API 提供了比 j
USB
API 更多的功能,很有可能成为
Java
语言的扩展标准。目前,只有 Linux 开发人员可以利用 j
USB
和 JSR-80 API 的功能。不过,有人正在积极地将这两种 API 移植到其他操作系统上。
Java
开发人员应该在不久就可以在其他操作系统上访问
USB
设备
。从现在起就熟悉这些 API,当这些项目可以在多个平台上发挥作用时,您就可以在自己的应用程序中加入
USB
功能了。 参考资料 您可以参阅本文在 developerWorks 全球站点上的 英文原文. 有关
USB
规范的更多信息,请访问
USB
.org。 访问 SourceForge 上的 j
USB
项目主页。 有关 JSR-80 项目的更多信息,请访问其 主页或者其 在
Java
Community Process 中的页面。 查找更多有关 jPhoto 项目的内容。 了解 jSyncManager项目。 有关 JMF 项目的更多内容,参阅 Eric Olson 的全面性的“
Java
Media Framework 基础”教程( developerWorks,2002年 5月)。 可以在 developerWorks
Java
技术专区 中找到关于
Java
编程各个方面的数百篇文章。 加入 developerWorks 中文社区,查看开发人员推动的博客、论坛、组和维基,并与其他 developerWorks 用户交流。 条评论 请 登录 或 注册 后发表评论。 添加评论: 注意:评论中不支持 HTML 语法 有新评论时提醒我剩余 1000 字符 共有评论 (1) 非常不错! 由
java
ku 于 2012年05月28日发布 报告滥用 IBM PureSystems IBM PureSystems™ 系列解决方案是一个专家集成系统 developerWorks 学习路线图 通过学习路线图系统掌握
软件
开发技能
软件
下载资源中心
软件
下载、试用版及云计算 回页首 帮助 联系编辑 提交内容 订阅源 在线浏览每周时事通讯 新浪微博 报告滥用 使用条款 第三方提示 隐私条约 浏览辅助 IBM 教育学院教育培养计划 IBM 创业企业全球扶持计划 ISV 资源 (英语) dW 中国每周时事通讯 选择语言: English 中文 日本語
java
中模拟
USB
接口程序设计_是否可以以编程方式为Windows中的
设备
识别
物理
USB
端口
?...
我知道自从这个答案的任何活动以来已经有一段时间了,但是我正在开发一个需要类似功能的项目,我可以告诉你它确实是可能的 . 据我所知,它确实需要DDK和PInvoke,这个信息没有C#或WMI接口 . 它需要打开低级
USB
根集线器
设备
并直接向它们发送驱动程序IOCTL命令 .好消息是,Microsoft提供了一个示例C应用程序,它完全枚举所有
USB
设备
并准确显示它们所连接的
端口
. 该应用程序是
USB
...
java
中
usb
manager_如何在
Java
应用程序中访问
USB
设备
(4)
JSR-80 API (
java
x.
usb
)正如前面提到的,JSR-80 项目是由 IBM 的 Dan Streetman 于1999年创立的。2001年,这个项目通过
Java
规范请求(JSR)过程被接受为
Java
语言的候选扩展标准。这个项目现在称为 JSR-80 并且被正式分派了
Java
包
java
x.
usb
。这个项目使用 Common Public License的许可证形式,并通过 ...
在
Java
应用程序中访问
USB
设备
在
Java
应用程序中访问
USB
设备
Java
平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的
Java
应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使
Java
应用程序可以使用
USB
设备
的 API 而使这个过程变得更容易。虽然这两个项目仍然处于萌芽状态,但是它们都显示了良好的前景,并已经成为一些实用应用程序的基
java
+
usb
+教程,带你遨游
USB
世界
1、什么是
USB
USB
的全称是Universal Serial Bus,通用串行总线。它的出现主要是为了简化个人计算机与外围
设备
的连接,增加易用性。
USB
支持热插拔,并且是即插即用的,另外,它还具有很强的可扩展性,传输速度也很快,这些特性使支持
USB
接口的电子
设备
更易用、更大众化。本文将从
USB
协议、枚举流程、host和device驱动等各方面,全面介绍Linux
USB
模块的工作原理和代码流程,...
智能硬件
1,616
社区成员
753
社区内容
发帖
与我相关
我的任务
智能硬件
智能硬件,智能手表,可穿戴设备,智能电视,谷歌眼镜,Google Glass 相关讨论。
复制链接
扫一扫
分享
社区描述
智能硬件,智能手表,可穿戴设备,智能电视,谷歌眼镜,Google Glass 相关讨论。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章