USB协议详解第1讲(核心概念通俗理解)

article/2025/9/21 6:08:05

目录

0.概括

1.USB传输(Transfer)

2.事务(Transaction)

3.包(Pack)的概念

4.USB 主机(Host)

5.设备(Device)

6.配置(Configuration)

7.接口(Interface)

8.端点(Endpoint)

9.管道(Pipe)

10.USB各种各样非常重要的描述符


0.概括

USB协议学习中最重要几个概念如下,没有提及的就是对USB协议学习中不重要的或者编程不需要用到的。大家也不用着急,概念必须要学会,否则都不知道下面这些东西是什么还学什么通用串行总线协议,大家也不用怕,其实也没有那么高深莫测。

1.USB传输(Transfer)

2.USB传输中事务(Transaction)

3.USB事务中的包、包、包(Pack,重要的事情说3遍)

4.USB 主机

5.设备(Device)

6.配置(Configuration)

7.接口(Interface)

8.端点(Endpoint)

9.管道(Pipe)

10.USB各种各样非常重要的描述符(Descriptor)

下面我会用通俗的语言先介绍以上10个东西大致是做什么的,后期系列文章会逐一攻破。

1.USB传输(Transfer)

2.事务(Transaction)

3.包(Pack)的概念

USB传输、事务、包是从不同层次上去说明一次数据交互的三个概念。

举个例子可能更好些,"某领导和一个早起的程序员进行了一次交流,说了5件事"

OK,其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。

其实通讯协议就是如此,都是从现实生活中抽象出来的,任何通讯协议都可以类比现实生活中人与人之间的交流方式。

4.USB 主机(Host)

    形象比作公司领导。领导完完全全控制小弟,任何事情必须领导先发话了小弟才能说话,领导不发话,小弟憋死也不能说出来。任何事物都是USB主机发起的。

5.设备(Device)

     形象比作小弟本人。设备里面存储有设备描述符表来描述设备的样子,每一个设备只能有一个设备描述符表。后期我会给大家看代码让大家看下是不是如此(STM32 USB和ZYNQ 7000 USB)。

6.配置(Configuration)

     对设备的配置,这种配置作为数据结构可以存在多个,主机可以控制设备选择哪个具体的配置,但是设备当前只能选择一个配置。​我们来想想,一个领导招聘了一个小弟,可以让这个小弟去写代码(配置1),或者让这个小弟去画电路图(配置2)等等,我们就举两个例子说明问题。由上面我们可以知道,USB设备可能有一个或者多个配置,我们常见到的USB设备一般都只有一个配置。

7.接口(Interface)

     好了,领导让这个小弟去写代码,可以只写C++软件,当然为了提高效率,有时候既要写C++软件,也要写C#软件,还得写Python软件。其实每个配置信息里面包含了接口的数量,一个接口就是一个功能,一个配置可以有多个接口(一个小弟可以会多种语言),也就是一个USB设备通过接口可以扩展多个功能。

8.端点(Endpoint)

    一个接口完成一种功能,每种接口(功能)配有1个或者多个端点。  端点是主机与设备之间通讯数据的接收或来源,要实现通讯功能,接口必须有端点的配备才可以,主机要给设备发送数据,端点就是数据的接收器,主机要给设备要数据,端点就是数据的发送器,然后通过多个端点配合接收和发送各种数据实现某个接口的某种功能。所以大家注意了,端点的依附于接口上的。其实一个端点就是一段存放接收和发送数据的缓冲区。这段缓冲区有一定的属性,在USB设备中,我们用端点描述符来描述这段缓冲区的属性。后期看代码。

9.管道(Pipe)

    主机和端点之间的数据传输就是通过管道,看不见摸不着,也没代码,给大家附个逻辑图看看。

10.USB各种各样非常重要的描述符

    USB描述符可以说是很多学生头疼和理解不全面的问题,没关系,逐一攻破,别怕。USB描述符主要是对USB设备、USB配置、USB接口、USB端点、USB字符串(就是字符串而已)用数据结构的描述,主机会在枚举此设备的时候根据设备实现的描述符去确定设备到底是一个什么样的设备、设备需要的总线资源、和设备的通讯方式等等。在这里强调一点,因为设备类型不同还会有不同的其他描述符,如下图,HID类型的设备还会有HID描述符、报告描述符、物理描述符,这三个描述符后面在讲解HID设备的时候详细讲解,可谓HID核心的核心

注:以上讲的前3个概念是与USB数据传输相关的后面的7个概念是和USB通用总线设计理念有关(也就是这7个概念让USB成为世界上最成功、最通用的串行总线)。


1.版权归本作者(一个早起的程序员)所有;

2.未经原作者允许不得转载本文内容,否则将视为侵权;

3.转载或者引用本文内容请注明来源及原作者;

4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。

下面是我的个人微信公众号,关注【一个早起的程序员】精彩系列文章每天不断。


http://chatgpt.dhexx.cn/article/XVpxmZLx.shtml

相关文章

USB协议基本知识

USB 基本知识 USB的重要关键概念: 1、 端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点&…

USB协议分析仪

1 ULPI PHY passive sniffing mode 概念: non driving, no pull-up, no pull-down Function Control.opMode 1; // non-Driving OTG Control.DpPulldown 0; // no pull-down OTG Control.DmPulldown 0; // no pull-down USB IO.ChargerPullupEnDP 0; // no pull-up USB IO.…

usb协议栈概述

usb协议栈概述 usb协议栈的信息源头是www.usb.org usb协议栈的所有者是usb联盟。它有七个美国公司为它的成员 这些公司包括苹果,惠普,英特尔,微软,瑞萨科技,ST微电子,德州仪器 usb的版本发展 从1.0&#…

USB协议-描述符篇(一)

USB协议-描述符篇(一) 1.USB描述符简介2.USB标准描述符2.1 设备描述符2.2 配置描述符2.3 接口描述符2.4 端点描述符2.5 字符串描述符 3.特殊类描述符4.USB类定义5.USBDescriptorType 1.USB描述符简介 USB描述符,即使用描述符报告它们的属性。…

USB协议 - UVC标准协议规范(二)

USB协议-UVC标准协议规范(二) 1.概述2.UVC功能特征2.1 Video Interface Class2.2 Video Interface subclass and Protocol2.3 UVC功能拓扑2.3.1 Unit单元2.3.1.1 SU(选择器单元)2.3.1.2 PU(处理单元)2.3.1.3 EU(编码单元)2.3.1.4 …

USB 协议整理 五:USB概述及协议基础(四)

十一、USB 的四种传输类型 1、批量传输 详细内容见 《USB2.0标准协议》 8.5.2 Bulk Transactions 章节。 批量事务类型的特点是能够通过错误检测和重试来保证在主机和设备之间无错误地传递数据。批量事务使用由令牌、数据和握手数据包组成的三阶段事务,如图 8-30…

USB总线-USB协议简介(一)

1.简介 USB是通用串行总线(Universal Serial Bus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机&a…

USB 协议整理 二:USB概述及协议基础(一)

一、USB 版本 二、USB是什么 USB是一种接口技术,真正的即插即用,英文全称是Universal Serial Bus,USB就是简写,中文叫通用串行总线。USB 的出现简化了个人计算机与外围设备的连接,增加了易用性。 USB 是主从模式。 …

强大的USB协议分析工具

2020年最后一天了,感谢大家一年来对我文章的支持,有你们的支持就是我强大的动力。 今天来给大家介绍一个USB 协议分析软件LeCroy USB Advisor,软件安装包下载连接如下: 链接:https://pan.baidu.com/s/12qBCOjuy4i8kr1M…

USB 充电协议

文章目录 锂电子电池电池的发展史锂电子电池充电过程充电物理公式充电器接口 USB协议慢充USB-IF BC1.2 快充QCOM QCOPPO VOOCUSB-IF PDMTK PE USB 充电市场 锂电子电池 电池的发展史 USB充电,都是充的 锂离子电池https://blog.csdn.net/u012719256/article/details/72627022 …

USB 协议分析(含基本协议和 USB 请求和设备枚举)

1. 物理特性 1.1 引脚 一条USB传输线分别由地线、电源线、D和D-四条线构成,D和D-是差分输入线,它使用的是3.3V的电压(与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500mA(可以在编程中设置)。 引脚标号信号名…

1.USB协议简介

最近学习usb相关的知识,一直感觉入不了门,看《linux那些事儿之我是usb》,对usb协议也不是很熟悉,没能坚持看下去,直到看了《圈圈教你玩usb》一书,把自己的兴趣立马提了起来,大牛圈圈用51单片机实…

USB协议基础篇

初次接触USB的同学,可能会被里面各种名词给搞晕,下面就来梳理一下这些知识,希望能帮助大家理解USB。 目录 一,从最常见的名词说起 1.1 什么是USB 1.2 USB协议版本 1.3 USB接口分类 1.4 PIPE 1.5 endpoint 1.6 管道通信方式…

USB协议简介

1.USB协议简介 https://blog.csdn.net/songze_lee/article/details/77658094 2017年08月28日 23:20:16 songze_lee 阅读数:22978 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/songze_lee/article/details/7…

USB协议详解

本博客整理自网络,仅供学习参考,如有侵权,联系删除。邮箱:rom100163.com 一个transfer(传输)由一个或多个transaction(事务)构成,一个transaction(事务)由一个或多个packet(包)构成,一个packet(包)由一个或…

简单说说USB协议(一)

目录 USB是什么 USB协议的传输结构 USB的电气特性 拓扑结构 编码方式 描述符 USB是什么 USB,通用串行总线,是一种计算机与外围设备进行数据交互的通信协议。 任何东西的出现都是有理可循的,在以前计算机刚兴起的时候,要连接…

USB协议介绍

目录 前言 1、概述 1.1 USB协议 1.2 USB充电协议 1.3 USB接口 1.3.1 type-a 1.3.2 Type-C 1.3.3 USB2.0/3.0/3.1/3.2速率 1.3.4 ULPI/UTMI 前言 开始整理USB相关基础概念,仅用于基础介绍、USB概念入门。更深入的内容请参考USB协议手册。部分图文来自参考文…

usb 传输协议

USB,是英文Universal Serial Bus(通用串行总线)、支持设备的即插即用和热插拔功能。在1994年底由英特尔、IBM、Microsoft等公司联合提出的,在此之前PC的接口杂乱,扩展能力差,热拔插不支持等。USB正是为了解…

USB协议(1)USB基础知识

USB(Universal Serial Bus)是通用串行总线的缩写,它是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通讯产品,并扩展至摄影器材、数…

linux免费的内网穿透

参考:https://www.cpolar.com/blog/how-to-install-cpolar-under-android-termux-hyper-terminal 下载包:https://www.cpolar.com/download 由于我的linux版本是装在安卓手机上的Alpine linux,所以下载的是如下图版本 下载后使用xftp工具上传到服务器&…