首页 > 其他分享 >USB基础知识总结

USB基础知识总结

时间:2024-08-07 09:38:20浏览次数:9  
标签:总结 USB Hub 主机 接口 基础知识 端点 设备

USB基础知识总结

USB基本概念介绍

USB (Universal Serial Bus,通用串行总线)是1995年英特尔和微软等公司联合倡导发起的一种新的** PC 串行通信协议。它基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展 PC 连接外设范围的目的。其最大特点是支持热插拔即插即用最多可串接下127 个外设,它可以向低压设备提供5 伏电源,同时可以减少 PC 机 I/O 接口数量。USB出现之前,计算机领域中的接口太多太繁杂,USB出现之后减少了接口的种类,总的来说就是设计出了一个万能的接口**,各种外设都能用同一种接口,所以才冠以“通用(是Universal)”为名。

USB常用术语

在进行USB系统开发之前,有必要了解USB开发中可能遇到的一些常用术语,USB系统开发分为USB主机开发USB设备开发。在一个USB系统中,某一个时刻只有一个USB主机,其余均为USB设备,但是为了让一个USB系统既有USB主机功能,又有USB从及功能,便出现了USB OTG。因此USB开发主要包括USB主机、USB设备、USB OTG系统开发。下面就一些常用书进行介绍:

USB Host(USB主机):在任何一个USB系统中只有一个USB主机,主机就是USB总线中作主设备角色的设备, 负责管理USB总线中的数据传输及端口管理。USB和主机系统的接口称为主机控制器。比如一个U盘(USB大容量储存设备)和PC通讯, PC在这里就是USB Host。

USB Device(USB设备)USB主机的下行设备,在USB总线中作从设备角色的设备,为系统提供具体功能USB主机最多可以支持127个USB设备

USB OTG:OTG就是On The Go,正在进行中的意思。

USB设备:USB设备按功能分为两部分:集线器(Hub)功能部件

逻辑设备:逻辑设备就是一系列端点的组合,逻辑设备与主机之间的通信发生在一个主机的缓冲区和设备的一个端点之间。

USB Hub(USB集线器):USB Hub可以将一个USB口转换为多个,扩展USB主机所能连接设备的数量,USB Host带有Root Hub,第一个USB设备是一个根集线器(Root_hub)它控制连接到其上的整个USB总线,该控制器是连接PCI总线和USB总线的桥,也是该总线上的第一个USB设备,USB Hub对于上游而言是一个USB Device, 对于下游而言扮演USB Host, 所以USB设备本身不知道自己连接在Hub还是Root Hub上。

PIPEusb通信的最基本形式是通过USB设备里的endpoint,而主机和endpoit之间的数据传输就是通过pipe

端点:主机与设备之间通信的目的或来源。端点是有方向的,主机到从机成为out端点,从机到主机成为in端点控制端点可以双向传输数据,而其他端点只能在单方向上传输数据。主机和设备的通信最终作用于设备的各个端点上,是主机和设备间通信流的一个 逻辑终端,每个USB设备有一个唯一的地址,由主机分配,而设备中的每个端点在设备内部有唯一的端点号。这个端点号是在设计设备时给定的。每个设备必须有端点0,用于设备枚举和对设备进行一些基本的控制功能,除了端点0,其余的端点在设备配置之前不能与主机通信,只有向主机报告这些端点的特性并被确认后才能被激活,端点位于USB系统内部,是一个可寻址的FIFO空间,类似于高速公路收费口的入口或出口,一个端点地对应一个方向。

管道通信方式:pipe中的数据通信方式有两种,一种是stream,一种是message。message要求进出方向必须要求同一个管道,默认就使用ep0作为message管道。

传输方式:USB endpiont有四种类型,分别对应了不同的数据传输方式,分别为control transfers控制传输interrupt transfers中断传输Bluk Data transfers批量传输Isochronous Data Tranfers等时传输,控制传输通常用于配置设备,获取设备信息,发送命令到设备。

接口一个逻辑设备可能包含若干个接口,每个接口包含1个或多个端点每个接口表示一种功能。一个接口对应一个驱动程序。例如usb扬声器就包含一个键盘接口和一个音频流接口。

Class协议:USB协议中除了定义一些通用软硬件电气特性,还包含各种各样的class协议,用来为不同的功能定义各自的标准接口和具体总线上的数据交互内容和格式。例如u盘的Mass storage class、通用数据交换CDC class。

USB协议版本

  • USB 1.0(low speed),传输速率最大为1.5Mbps
  • USB 1.1(full speed),传输速率最大为12Mbps
  • USB 2.0(high speed),传输速率最大480Mbps
  • USB 3.0(super speed),传输速率最大5Gbps

USB的电气特性

USB 连接器包含四条线2 条用于电源供电( VBUS 和 GND)2 条用于 USB 数据传输D+ (USB数据正信号线,USB Data Positive,即USB-DP线,简写为D+)和 D-(USB数据负信号线,USB Data Minus, 即USB-DM线,简写为D-)。VBUS 提供 5V 电源,电流可达 500mA。D+ 和 D- 为双向信号线,信号传输速率为 12Mbps (每位 83ns)。D+ 和 D- 信号电平为 3.3V 。

USB OTG 接口中有 5 条线:** 2 条用来传送数据(D+ 、D-); 1 条是电源线(VBUS); 1 条则是接地线(GND)1 条是 ID 线**。
USB信号使用分别标记为D+和D- 的双绞线传输,它们各自使用半双工的差分信号并协同工作,以抵消长导线的电磁干扰。

USB硬件接口

USB的特点

  • 可以热插拔,即插即用
  • 携带方便。USB 设备大多以“小、轻、薄”见长,对用户来说,随身携带大量数据时,很方便。当然 USB 硬盘是首要之选了。
  • 标准统一。大家常见的是 IDE 接口的硬盘,串口的鼠标键盘,并口的打印机扫描仪,可是有了 USB 之后,这些应用外设统统可以用同样的标准与个人电脑连接,这时就有了 USB 硬盘、USB 鼠标、USB 打印机等等。
  • 可以连接多个设备。USB 在个人电脑上往往具有多个接口,可以同时连接几个设备,如果接上一个有四个端口的 USB HUB 时,就可以再连上;四个 USB 设备,以此类推,尽可以连下去,将你家的设备都同时连在一台个人电脑上而不会有任何问题(注:最高可连接至 127 个设备)。

USB的拓扑结构

USB 的总线结构是采用阶梯式星形(tiered star)的拓扑(topology)结构,如下图所示。每一个星形的中心是集线器,而每一个设备可以通过集线器上的接口来加以连接。从图中可以看到 USB 的设备包含了两种类型USB 集线器与** USB 设备。位于最顶端的就是Host(主机端)。从 Host 的联机往下连接至 Hub(集线器),再由集线器按阶梯式以一层或一阶的方式往下扩展出去,连接在下一层的设备或另一个集线器上。事实上,集线器也可视为一种设备。而其中最大层数为 6 层((包括最后一级设备后共7层))。每一个星形的外接点的数目可加以变化,一般集线器具有 2、4 或 7 个接口
USB 的拓扑体系由 3 种元素组成 :
主机(Root Hub** 与** USB 主机控制器是绑定在一起的)、Hub 和设备。在 PC 平台上的 USB 中,PC 就是主机和根 Hub**,用户可以将设备和下级 Hub 与之连接。而这些附加的 Hub 又可以连接更下一级的 Hub 和设备,从而构成了星形结构。

图中的** Hub 是一类特殊的 USB 设备,它是一组 USB 的连接点主机中有一个被嵌入的 Hub 叫根 Hub(root Hub)主机通过根 Hub 提供若干个连接点**。为了防止环状连接,采用星形连接来体现层次性。
USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接。

USB总线的总体结构

整个** USB 总线可以分为 3 个部分进行描述:USB 连接USB 设备USB 主机**。

USB 主机
在 USB 总线中只有一个主机。USB 总线与计算机主机系统的接口部分就是主机控制器,它可被看做一个硬件、固件和软件的结合体。主机系统中集成了一个根 hub 来提供一个或多个连接点

USB 设备
首先 USB 设备可被分为两大类:hub 类(提供附加 USB 接入点的设备)和功能设备类(为系统实现某些功能的设备,如 ISDN 适配器、数字游戏杆等)。
按照功能,USB 设备又可分为很多类,如:音频、人机交互、显示、通信、电源、打印机、海量存储、物理反馈等设备。每个 USB 设备都必须提供自鉴定信息和通用的设置 
USB 设备都有一个标准的USB接口,它的作用为:解释 USB 协议对标准 USB 操作的响应,如挂起和设置等;提供设备的一些描述信息
在实际的设计应用中,USB 设备的接口有自已的特点。USB 接口的正确设计与设备的性能紧密相关,在 USB接口设计之前必须要对设备的功能、指标进行详细的分析。
连接在 USB 接口上的设备通过基于令牌和主机控制的协议来共同享用整个 USB 带宽。在其它设备正常工作的前提下,USB 允许某设备连接、设置、运行和断开连接。

USB 连接
USB 连接是指 USB 主机和 USB 设备的通信方式与方法,包括:总线拓扑(USB主机和设备之间的连接方式);层内关系(USB总线每一层中的任务);数据流模式(数据在USB总线上的流动方式);USB 调度( USB 提供一个共享的服从调度的互连)
USB 设备是通过 USB 总线连接到 USB 主机上的。USB总线上的物理连接是一个分层的星形拓扑处于每个星形拓扑中央的是 hub(USB 集线器)。在主机和一个hub或者一个应用之间以及在 hub 和其它 hub 或应用之间都是一个点对点的连接。

USB传输方式

USB endpiont有四种类型,分别对应了不同的数据传输方式,分别为control transfers控制传输、interrupt transfers中断传输、Bluk Data transfers批量传输、Isochronous Data Tranfers等时传输。

控制传输:控制传输是双向传输数据量通常比较小,通常用于配置设备,获取设备信息,发送命令到设备。
批量传输主要应用在数据大量传输,同时又没有带宽和间隔时间要求的情况下,进行可靠传输。比如:U盘拷贝数据。
中断传输:中断传输主要用于定时查询设备是否有中断数据要传输设备的端点模式器的结构决定了它的查询频率,从1到255ms之间。这种传输方式典型的应用在少量的、分散的、不可预测数据的传输,比如,键盘和鼠标就属于这一类型。中断传输是单向的并且对于host来说只有输入的方式。
等时传输:等时传输提供了确定的带宽和间隔时间,它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。比如:USB摄像头。

USB的数据传输方式

USB总线是串行总线(跟串口一样),数据是一位一位地在数据线上进行传输的。LSB在前,最低位先发出,接下来是次低位,最后才是最高位(MSB)。

USB设备开发流程

  1. 首先确定USB系统的开发类型,是USB主机、USB从机还是USB OTG。
  2. 如果确定是USB设备,必须确定设备类型:HID、UDIO、CDC、HUB、IMAGE等。
  3. 查找相关设备手册,确定其描述符。
  4. 完成描述符后,编写USB枚举程序,观察是否枚举成功,如果枚举成功了,此设备开发已经完成大部分。
  5. 编写应用程序,在枚举成功后,主要是进行数据处理,编写应用程序。

如何区分USB2.0与USB3.0

电脑上的USB接口是3.0还是2.0可以通过三个方法区分:颜色区分法触片法区分法标识区分法
1、USB3.0与USB2.0外观区别,观察USB(本身)的插口和电脑上USB插口,中间的塑料片颜色:USB3.0——蓝色;USB2.0——黑色或者白色。

2、不能通过颜色区分,也可以看接口针脚数。USB3.0相较于USB2.0多了几个针脚,在Type-A接口上,接口的里面多了5个针脚,Type-B接口则在接口上方多了一块。

USB3.0采用的是两排共9个针脚的设计。

3、标识区分法,根据在插口旁边的符号来区分,如下图。USB3.0的“SS”代表着“SuperSpeed”。

标签:总结,USB,Hub,主机,接口,基础知识,端点,设备
From: https://www.cnblogs.com/bujidao1128/p/18295872

相关文章

  • 基于深度学习网络的USB摄像头实时视频采集与火焰检测matlab仿真
    1.算法运行效果图预览(完整程序运行后无水印) 将usb摄像头对准一个播放火焰的显示器,然后进行识别,识别结果如下:    本课题中,使用的USB摄像头为:   2.算法运行软件版本MATLAB2022a 3.部分核心程序(完整版代码包含详细中文注释和操作步骤视频) 程序中包......
  • ARC181总结
    ARC181总结ARC还是太难了A标签:有脑子......
  • 代码随想录算法训练营第七天|454.四数相加II,383. 赎金信,15. 三数之和,18. 四数之和,总结
    力扣题部分:454.四数相加II题目链接:.-力扣(LeetCode) ​​​​​思路(map哈希表):    将数组分为两组分别用双重for循环遍历。第一组将来自不同数组的两个数之和(记为sum1)作为map的key,两个数之和出现的次数作为map的value,第二组通过在map查询来自不同数组的两......
  • 基于tcp,html,数据库的在线信息查询系统项目总结
    1.项目背景在线信息查询系统是一种可用于检索和展示各种信息的计算机程序或平台。主要特点包括:用户接口:通常提供友好的界面,用户可以方便地输入查询条件。数据存储:系统往往连接到数据库,存储大量信息,以供查询和分析。搜索功能:支持关键词搜索、筛选和分类功能,帮助用户快速找到......
  • 八月总结复习
    20240806kmpmanacherac自动机20240806线性求逆元假设我们求取\(n\)关于质数\(p\)的逆元,即求取\(n^{-1}\)我们设\(a=\lfloorp/n\rfloor,b=p\modn\)。则有$a*n+b\equiv0(mod\p)$移项可得:\[a*b\equiv-b(mod\p)\]\[-a/b\equivn^{-1}(mod\p)\]即:\[n^{-1}\e......
  • 【NumPy 入门:常用函数与方法总结】
    文章目录前言1、np.array()函数2、np.arange函数(用于生成数值序列的函数)3、np.linspace函数(用于生成数值序列的函数)4、ndarray.dtype和ndarray.dtype.name属性5、矩阵乘积6、ravel方法、T和flat属性7、np.vstack和np.hstack函数8、column_stack函数9、np.r_和......
  • 【iOS】KVO详细总结
    KVO0.怎么复习?知道KVO怎么用,KVO三部曲缺一不可KVO分为对单一属性的监听,和对集合里面内容的监听。然后单一属性的监听分为自动触发和手动触发,集合对象的监听也分为自动触发和手动触发KVO的使用注意,防crash。正确顺序:1⃣️context强引用2⃣️removeObserver移除观察者3⃣️释放obs......
  • 数论基础知识(下)
    目录欧拉函数n的分解质因数求欧拉函数试除法求欧拉函数值积性函数筛法朴素筛埃氏筛欧拉筛(线性筛)线性筛欧拉函数快速幂同余欧拉定理费马小定理乘法逆元欧拉函数互质:∀a,b∈N,若gcd(a,b)=1,则a,b互质。定义: :1∼n......
  • Java Optional容器总结(快速上手图解)
    Java系列文章目录JavaLambda表达式总结文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1引入Optional容器4.1.1引入容器的原因4.2Optional介绍4.3Optional的使用4.3.1关于空值报错的解决方法4.4Optional实践4.4.1为什么使用Option......
  • FreeRTOS基础知识详细版
    RTOS概念‌‌‌‌‌‌RTOS全称是RealTimeOperatingSystem,中文名就是实时操作系统,提供了任务调度、内存管理、中断处理等功能。‌1.任务调度:裸机编程需要手动调度任务,而RTOS提供自动的任务调度器。2.硬件管理:裸机编程需要开发者手动管理硬件资源,RTOS提供了......