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

看了这么多概念,想必大家会问“我要学会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的工作原理,后期会讲解。

USB协议详解第2讲(协议核心学习要点)的更多相关文章

  1. SSL/TLS协议详解(下)——TLS握手协议

    本文转载自SSL/TLS协议详解(下)--TLS握手协议 导语 在博客系列的第2部分中,对证书颁发机构进行了深入的讨论.在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容 ...

  2. Telnet协议详解(远程登陆协议)

    1. 概述 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议.Telnet协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,允许界面终端设备和面向终 ...

  3. linux高性能服务器编程 (三) --TCP协议详解

    第三章 IP协议详解 TCP协议是TCP/IP协议族中的另外一个重要的协议,与IP协议相比,TCP协议更高进应用层.一些重要的socket选项都和TCP协议相关.这一章主要从如下方面学习: 1)TCP ...

  4. TCP协议详解

    TCP协议详解 一.TCP协议 1.TCP 通过以下方式提供可靠性: ·  ◆ 应用程序分割为TCP认为最合适发送的数据块.由TCP传递给IP的信息单位叫做报文段. ·  ◆ 当TCP发出一个报文段后 ...

  5. 转 OAuth 2.0授权协议详解

    http://www.jb51.net/article/54948.htm 作者:阮一峰 字体:[增加 减小] 类型:转载 时间:2014-09-10我要评论 这篇文章主要介绍了OAuth 2.0授权 ...

  6. bt协议详解 DHT篇(上)

    bt协议详解 DHT篇(上) 最近开发了一个免费教程的网站,突然产生了仔细了解bt协议的想法,这篇文章是bt协议详解系列的第三篇,后续还会写一些关于搜索和索引的东西,都是在开发这个网站的过程中学习到的 ...

  7. 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  8. HTTP协议详解以及URL具体访问过程

    1.简介 1.1.HTTP协议是什么? 即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.从 ...

  9. (转)HTTP 协议详解(基础)

    HTTP 协议详解 作者: 小坦克  来源: 博客园  发布时间: 2012-02-14 13:32  阅读: 95523 次  推荐: 99   原文链接   [收藏]   相关文章:HTTP 协议 ...

  10. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

随机推荐

  1. holiday week3

    本周开始进行小学期实验报告B 上周LOL打的rank分又掉了回去 星际争霸打到了铂金段位 JAVA预备在小学期完成之后开始正式学习 现已了解雏形 本周发布了一个视频https://www.bilibi ...

  2. 2023/4/15 SCRUM个人博客

    1.我昨天的任务 获得了人脸识别作弊检测和绘制界面的分工,准备先从作弊检测入手 2.遇到了什么困难 对作弊检测的组件不熟悉,进展缓慢,需要进行对点的学习 3.我今天的任务 初步学习cython

  3. Jmeter函数助手7-timeShift

    timeShift函数用于获取移动时间变化后的指定格式时间. Format string for DateTimeFormatter (optional) (default unix timestam ...

  4. Python列表、元组、字典和集合的用法

    1.列表 标志符号是[],元素可以修改.删除和新增 1.1 提取元素(索引从0开始计算) testList=['A','B','C',1,'D'] print(testList[1]) #打印索引区间 ...

  5. ByteHouse高性能向量检索实践——“以图搜图”

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   随着 LLM 技术的发展,向量检索与向量数据库也受到业界持续关注,它们能够为LLM提供外置记忆单元,通过提供与 ...

  6. python数据分析与可视化基础

    一.数据分析介绍:1.数据分析含义:数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用.数据分析是为了提取有用信息和形成 ...

  7. 学术写作: These authors contributed equally to this work. —— 共同一作

    早些年很少看到论文里面有: These authors contributed equally to this work. 不过现在这种方法在论文中出现的还是比较多的,说白了,这种共同一作的声明其实是 ...

  8. conda中安装GCC/G++

    参考: https://www.5axxw.com/questions/content/h0e4te ========================================== 一般在lin ...

  9. 【转载】 NeuroEvolution with MarI/O —— 使用人工智能来通关超级玛丽

    原文地址: http://glenn-roberts.com/posts/tech/2015/07/08/neuroevolution-with-mario.html  参考: https://v.q ...

  10. 链接池偶尔报错:HikariPool-1 - Connection is not available, request timed out after 39985ms.

    1.背景 线上服务器偶尔报错如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.e ...