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

来自:https://hellocode.blog.csdn.net/article/details/112207915

  这一篇我们将会讲解在学习USB协议中务必要掌握的知识点,罗列如下(后期文章逐一攻克):

1.USB描述符

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

在这里插入图片描述

2.USB传输

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

2.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的工作原理,后期会讲解。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值