[USB波形分析] 全速USB波形数据分析(二)
在上一篇文章全速USB波形数据分析(一)介绍了全速USB的数据包(Packet)的组成,数据的类型等基本知识。这篇文章介绍USB的几种传输方式
事务(Transaction)
USB协议定义了三种不同的事务(Transation),即SETUP事务, IN事务和OUT事务
SETUP 事务
一次成功的SETUP事务包含3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)

用示波器实际获取的D+/D-信号如下,

IN 事务
一次成功的SETUP事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输

用示波器实际获取的D+,D-信号如下,

OUT 事务
一次成功的OUT事务包含2个或者3个连续的数据包,分别是令牌包(TOKEN PACKET),数据信息包(DATA PACKET),握手包(HANDSHAKE PACKET)。对于同步传输(Isochronous)模式,省略了握手包以保证数据实时传输

OUT事务在示波器中的波形如下,

USB数据传输(Transfer)
USB数据传输过程包含1个到多个事务传输,一个事务传输包含了2个到3个的数据包传输,它们的层次结构如下图所示,

USB协议定义了四种数据传输类型,分别是控制传输(Control Transfer), 中断传输(Interrupt Transfer),同步传输(Isochronous),批量传输(Bulk Transfer)
控制传输(Control Transfer)
用于对设备配置和发送命令,使用了完善的错误检查机制。控制传输强制使用端口0(Endpoint 0)。控制传输包含2个到3个阶段,SETUP阶段,DATA阶段(可选),STATUS阶段。
没有数据的控制传输(Control No Data Transfer)

写数据控制传输(Control Write Transfer)

读控制传输(Control Read Transfer)

批量传输(Bulk Transfer)
不定周期的大数据量的传输方式,对于全速USB,数据包的数据大小可以是8,16,32,64字节;对于高速USB数据包的数据大小为512字节

中断传输(Interrupt Transfer)
中断传输类似于批量传输,对于全速USB,数据包的数据大小可以由1字节到64字节;对于高速USB,数据包的数据大小可以由1字节到1024字节。中断端点有一个相关联的轮询间隔,确保主机将定期轮询它们(接收IN令牌)。

同步传输(Isochronous Transfer)
同步传输用于流数据,如音频和视频。对于全速USB,数据包数据可以多达1023个字节;对于高速USB则可多达1024个字节。同步传输没有握手数据包

-----------------------------------------------------------------------------------END
[参考资料]
- https://elearning.renesas.com/file.php/1/CoursePDFs/DevCon_On-the-Road/DevCon_On-the-Road/Operating_Systems/Embedding_USB_-_The_Implementation_Challenges_and_Limitations.pdf
- USB 101: An Introduction to Universal Serial Bus 2.0, Cypress Semiconductor Corporation
- EZ-USB Technical Reference Manual, Cypress Semiconductor Corporation
[USB波形分析] 全速USB波形数据分析(二)的更多相关文章
- [USB波形分析] 全速USB波形数据分析(一)
在之前的文章一次CAN波形分析之旅里,根据示波器采集的波形数据,详细地分析了CAN通信.今天来分析USB数据,还是同样的流程,但是这次使用matplotlib来协助分析. USB基本波形 USB通过一 ...
- [USB波形分析] 全速USB波形数据分析(三)
前面的两篇文章介绍和分析了USB的一些基本知识,结合前面的介绍,今天用实例介绍USB的枚举过程. 1 | 概况 硬件基于EK-TMC123GXL开发板,软件是TI提供的USB批量传输的简单例子,在PC ...
- 快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)
一.上模块 二.功能分析 l 芯片:CH340N l 输入接口:USB.TYPE-C l 输出接口:TTL(5V\3.3V\GND\TX\RX) l 指示灯:电源.TX.RX ...
- 【转】Android实战技巧之四十九:Usb通信之USB Host
零 USB背景知识 USB是一种数据通信方式,也是一种数据总线,而且是最复杂的总线之一. 硬件上,它是用插头连接.一边是公头(plug),一边是母头(receptacle).例如,PC上的插座就是母头 ...
- 2.7 usb摄像头之usb摄像头描述符打印
学习目标:参考lsusb源码,打印USB摄像头的设备描述符.配置描述符.接口联合描述符.端点描述符: 一.lsusb命令和源码 使用命令lsusb可以看看设备的id,并执行 # lsusb -v -d ...
- USB HOST与 USB OTG的区别及工作原理
在SmartQ 7上面,同时存在USB HOST与 USB OTG两个接口,我想问一下,这两个接口有什么区别么?我怎么认为HOST属于是多余呢? 麻烦高手解答,感激不尽!!! 转自USB HOST与 ...
- usb host和usb device
S3C2440的数据手册将USB功能分为两章--usb host和usb device.具体什么意思呢? usb host: 微处理器作为usb主设备,可以挂接U盘之类的从属设备. usb devic ...
- USB C和USB 3.1傻傻分不清?这篇文章可以帮你
USB Type-C接口以及USB 3.1标准的到来,理应为消费者提供更多便利.然而就目前来看,似乎这些新标准非但没有为消费者提供了更好的使用体验,反而带来了诸多隐患.Google的工程师Benson ...
- 读取USB HDD(USB移动硬盘信息)序列号的代码
读取USB HDD(USB移动硬盘)序列号的代码,型号及分位. 使用Visual Studio 2010编译成功. 代码使用了CrystalDiskInfo中的代码smartata.c中相关代码: 例 ...
随机推荐
- CF710C Magic Odd Square 题解
Content 构造出一个 \(n\times n\) 的矩阵,使得这个矩阵由 \(1\sim n^2\) 这些数字组成,并且这个矩阵的每行,每列,以及对角线的和都为奇数. 数据范围:\(1\leqs ...
- Python 代码设计模式
责任链模式 (场景:OA系统,项目审批...) 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 适用性 ...
- 以太网/ IPV4/IPV6包头,TCP包头格式回顾
问题:以太网数据包,承载的数据内容大小46~1500字节,是如何来的? 以太网数据包结构 以太网协议规定最小链路层数据包(帧)为64字节,其中以太网首部+尾部共计18字节(源/目的MAC12字节:上 ...
- vscode 快速入门
vscode 快速入门 本篇主要讲解 vscode 使用中的一些经验: 配置 vue 开发环境 - Vetur+ESLint+Prettier 代码片段的使用 常用插件 如何完全卸载 vscode 通 ...
- 使用PostMan测试WebService接口教程
一.操作步骤 1.设置URL 2.设置请求模式:Post 3.设置Header:添加 Content-Type ,值为 text/xml;charset=utf-8 4.设置Body:勾选raw 5. ...
- 【LeetCode】1438. 绝对差不超过限制的最长连续子数组 Longest Continuous Subarray With Absolute Diff Less Than or Equal t
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 滑动窗口 日期 题目地址:https://leetco ...
- 【九度OJ】题目1176:树查找 解题报告
[九度OJ]题目1176:树查找 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1176 题目描述: 有一棵树,输出某一深度的所有节点 ...
- hdu 4704 Sum(组合,费马小定理,快速幂)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的, ...
- BAIRE ONE FUNCTIONS (Baire第一类函数)
目录 定义 导函数 一致收敛性质 的连续点 JOHNNY HU, BAIRE ONE FUNCTIONS. 一些基本的定义(诸如逐点收敛, 一致收敛\(F_{\sigma}\)集合等)就不叙述了. 定 ...
- Jmeter环境变量配置你不得不知道的事情
在安装Jmeter的过程中大家肯定需要配置环境,但是为什么要配置JDK的环境变量呢?大家有没有好奇过,有没有仔细去像一下呢,其实在安装Jmeter前,大家应该都知道Jmeter是我们JAVA开发的,J ...