USB协议基础篇

本文详细介绍了USB协议的基础知识,包括USB版本、接口类型、PIPE、endpoint、传输方式和重要概念如描述符、class协议。还阐述了USB的框架/拓扑结构,枚举过程以及数据传输的步骤,帮助读者理解USB设备的工作原理。
摘要由CSDN通过智能技术生成

初次接触USB的同学,可能会被里面各种名词给搞晕,下面就来梳理一下这些知识,希望能帮助大家理解USB。

一,从最常见的名词说起

1.1 什么是USB

这个我就不多解释了,直译就是通用串行总线。再不明白的就百度。

1.2 USB协议版本

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

协议版本向下兼容

1.3 USB接口分类

  • Type A,即使我们电脑上的那种接口。
  • Type B,不太常见,比较方正的T型接口,有的嵌入式开发板会用。
  • Type C,现在开始流行起来了,最大的好处就是可以盲插,而不用区分正反。
  • Micro/mini,手机上比较常见。

不管哪种接口,用的线都是4根,只是形状不同而已。

1.4 PIPE

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

1.5 endpoint

端点是有方向的,主机到从机成为out端点,从机到主机成为in端点。从这个说明看出端点是单方向的。(除了0端点)

1.6 管道通信方式

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

1.7 传输方式

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

1.7 逻辑设备

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

1.8 interface

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

1.9 class协议

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

1.10 host/device

二,USB框架/拓扑结构

在这里插入图片描述

USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接。

三. 重要概念

3.1 描述符(description)

谈到USB描述符,不得不说USB最强悍的地方就在这里。一个口可以插很多的设备,可以插U盘、上网卡、音频设备、还有的是复合设备,一个设备插上后可以虚拟出多个设备出来
主设备之所以能区分不同的从设备&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值