USB协议详解第2讲(协议核心学习要点)

您所在的位置:网站首页 usb控制传输状态过程是什么 USB协议详解第2讲(协议核心学习要点)

USB协议详解第2讲(协议核心学习要点)

2024-07-13 07:30| 来源: 网络整理| 查看: 265

上一篇文章讲解了十大概念,如下:

1.USB传输(Transfer)

2.事务(Transaction)

3.包(Pack)的概念

4.USB 主机(Host)

5.设备(Device)

6.配置(Configuration)

7.接口(Interface)

8.端点(Endpoint)

9.管道(Pipe)

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

看了这么多概念,想必大家会问“我要学会USB协议,并且会编程,我具体要学习那些有关的内容?”,这一篇我们将会讲解在学习USB协议中务必要掌握的知识点,罗列如下(后期文章逐一攻克):

(1)USB描述符

(2)USB传输

(3)USB事务

(4)USB包(☆☆☆☆☆)

(5)USB枚举

(1)USB描述符

大家一定要知道,所有USB描述符都是存储在USB设备中的。USB描述符有设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符,HID类设备会多出HID描述符、报告描述符、物理描述符三种描述符,描述符架构如下图。我们需要深入学习每一种描述符的数据结构及作用,并且要知道它在代码里面是如何实现的,后期我们在学习对应描述符的时候会带着大家分析STM32、ZYNQ 7000两个硬件平台的USB对应设备代码实现,这样结合实战,大家对理论学习更为深入。

(2)USB传输

USB传输分为控制传输、同步传输、批量传输、中断传输四种,其中批量传输、同步传输每次传输需要一个或多个事务,中断传输一次需要一个事务,控制传输包括三个过程(建立过程、数据过程、状态过程),建立过程和状态过程分别需要一个事务,数据过程则可能包含0个多个事务。看实例协议分析,要知道transfer是传输,transaction为事务。

1.批量传输(由一个事务组成)

2.同步传输(由一个事务组成)

3.中断传输(由一个事务组成)

4.控制传输(建立过程和状态过程由1个事务组成,数据过程由0个或者多个事务组成)

我们可以看下面这张图,控制传输有三种类型,控制写传输、控制读传输、无数据的控制传输三种。控制写传输和控制读传输数据阶段是根据传输情况可有可无,无数据控制传输无数据阶段。

控制写传输:

控制读传输:

无数据控制传输:

(3)USB事务

事务通常由两三个包组成:令牌包,数据包和握手包。为什么说是通常呢?因为有一个特例同步传输的事务中没有握手包,只有令牌包和数据包。事务就是完成一件事的意思,完成一个事务需要发送或者接受几包数据。

(4)USB包(☆☆☆☆☆)

USB包(packet)是学习USB协议中最最最重要的东西,包(packet)是USB传输的最小单位,所有的东西都是组织成包(packet)发送出去的,再次强调,USB包是学习USB协议中最最最重要的东西。下面这张图为包的组成结构,由SOP、SYNC、Packet Content、EOP四部分组成,其中Packet Content最为核心,Packet Content由PID、地址、帧号、数据、CRC组成。后面会一一讲解。

(5)USB枚举

通过学习枚举,我们可以了解描述符、传输、事务、包在USB协议中充当的作用以及USB的工作原理,后期会讲解。

 

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

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

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

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

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3