USB协议详解第2讲(协议核心学习要点) |
您所在的位置:网站首页 › usb控制传输状态过程是什么 › USB协议详解第2讲(协议核心学习要点) |
上一篇文章讲解了十大概念,如下: 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 |