Linux内核编程(二十一)USB应用及驱动开发

一、基础知识

1. USB接口是什么?

USB接口(Universal Serial Bus)是一种通用串行总线,广泛使用的接口标准,主要用于连接计算机与外围设备(如键盘、鼠标、打印机、存储设备等)之间的数据传输和电力供应。它旨在简化计算机与外部设备之间的连接方式,同时提供更高的传输速度和更好的兼容性。

在1990年代初,计算机外围设备通常使用专用接口,如鼠标和键盘常见的PS/2接口 ,打印机使用的LPT接口(并口)等。这些接口虽然在当时各自具有一定的专用性和高效性,但也存在很多问题,随着技术的发展,通用性更强的接口逐渐成为主流,USB(Universal Serial Bus)便是这一发展潮流的代表。

1996年,由Intel微软康柏DECIBMNEC北方电信公司 等七家业界巨头组成的非盈利组织USB标准化组织 (USB Implementers Forum,简称USB-IF)开始推动USB(Universal Serial Bus)接口的标准化工作。USB的诞生标志着计算机外围设备连接方式的革命性转变。

|-------------|-----------------------------------------------------|
| USB 1.0/1.1 | 最早的版本,传输速度为12 Mbps。 |
| USB 2.0 | 提供更高的传输速度(最高480 Mbps),广泛应用于各种设备。 |
| USB 3.0/3.1 | 提供更高的数据传输速率,最高可达5 Gbps及以上,支持更大的电流供电。 |
| USB 4.0 | 最新的USB版本,支持更高的传输速率,最高可达40 Gbps,并且兼容Thunderbolt 3协议。 |

2. USB命名规则

在2013年,USB 3.0USB 3.1推出后,USB实现了更高的传输速度和更多功能,但随着技术的进步和市场的需求,USB-IF(USB Implementers Forum)为了更清晰地区分不同的版本和性能,进行了命名上的调整。

第一次命名改变:

USB 3.0 改名为 USB 3.1 Gen 1

USB 3.1 改名为 USB 3.1 Gen 2

第二次命名改变:

USB 3.1 Gen1 = USB 3.2 Gen1

USB 3.1 Gen2 = USB 3.2 Gen2

USB 3.2 = USB 3.2 Gen2x2

其本质上就是, USB 3.0 就是 USB 3.2 Gen1 ,USB 3.1是USB 3.2 Gen2,USB 3.2是USB 3.2 Gen2x2。

3. USB HOST和USB OTG

USB Host(主设备): 是指具备控制和管理USB总线的设备。它负责控制所有USB连接的设备,发起数据传输,并管理设备间的通信。USB Host的核心功能是控制和调度USB数据的流向。典型的USB Host设备包括:计算机(台式机、笔记本电脑等)、打印机(具有USB接口的)等。在USB通信中,Host设备通过发送命令来请求从设备发送或接收数据。Host设备管理USB总线上的电源供给和数据传输。

USB Slave(从设备) :是指依赖于主设备控制的设备。USB从设备由主设备管理,它没有独立的数据传输能力,所有的数据传输都必须经过主设备发起或协调。USB从设备通常是外设设备,例如:键盘、鼠标、U盘等。

USB OTG(On-The-Go):是一项功能,使得USB设备在需要时可以切换角色,既可以作为主设备,也可以作为从设备,从而直接与其他USB设备进行通信。USB OTG标准通常适用于移动设备,如智能手机、平板电脑等。它允许用户无需通过传统的主设备(如计算机)即可实现设备间的直接连接和数据交换。例如,一台支持OTG的手机可以在连接U盘时充当主设备,而在连接键盘时又可以充当从设备。

相关推荐
GalaxyPokemon5 分钟前
MySQL基础 [六] - 内置函数+复合查询+表的内连和外连
linux·运维·数据库·mysql·ubuntu
Linux运维老纪34 分钟前
Linux 命令清单(Linux Command List)
linux·运维·服务器·数据库·mysql·云计算·运维开发
艾醒(AiXing-w)38 分钟前
Linux系统管理(十九)——欧拉系统硬盘挂载、网络配置以及Docker环境安装
linux·网络·docker
参.商.1 小时前
【RH124】第六章 管理本地用户和组
linux·运维
钡铼技术物联网关1 小时前
ARM分拣机vs传统PLC:实测数据揭示的4倍效率差
大数据·linux·arm开发·人工智能·边缘计算
m0_731187882 小时前
centos练习docker<基础>
linux·docker·centos
今夜有雨.3 小时前
C-S模式之实现一对一聊天
linux·服务器·网络·c++·后端·tcp/ip·架构
Johny_Zhao3 小时前
CentOS 7 部署 GLPI 系统及集成方案
linux·python·云计算·系统运维·itsm·网络安全等级保护二级测评·glpl
只微3 小时前
Vim常用快捷键
linux·编辑器·vim
时间裂缝里的猫-O-4 小时前
@linux系统SSL证书转换(Openssl转换PFX)
linux·运维·ssl