【无标题】usb学习基础知识回顾(一)

一、包

1. 分类

根据PID可分为令牌包、数据包、握手包、特殊包

如下图所示:

2.具体结构

(1)SOF包:PID+帧号,在每帧开始时发送,如图所示

(2)令牌包

(3)数据包

二、事务

       事务可分为:建立事务、输入事务、输出事务

       (1)建立事务

             

 主机发送SETUP令牌包,接着发送数据包,等待设备回复。

       (2)输入事务

主机发送IN令牌包,表示准备好接收数据,从机发送数据,主机接收到了发送应答。

       (3)输出事务

主机发送OUT令牌包,表示准备好发送数据,从机接收数据,主机等待从机的应答。

三、传输

传输可分为控制传输、批量传输、同步传输、中断传输。

(1)控制传输

 如上图,首先是建立阶段,然后是数据传输,最后是状态阶段,控制传输是双向的传输,必须有IN和OUT两个方向上的 特定端点号的控制端点来完成两个方向上的控制传输。附一个实例:

(2)批量传输

批量读或者批量写,大容量传输是单向的,可以用单向的大容量传输端点来 实现某个方向的大容量传输。

平时无数据传输时,总线处于空闲状态。当需要传输一次事务时﹐主机发送一个令牌包,它可以是OUT令牌包、IN令牌包或者是PING令牌包,如图1.10.1中第一行所示。其中 PING令牌包是USB2.0高速模式输出特有的,全速模式和低速模式没有这个令牌包。

如果设备解码令牌包时出错,则直接进人空闲状态。

令牌阶段之后是数据阶段或者握手阶段。对于批量输入事务,则由设备返回数据,或者返回应答包NAK握手包或STALL握手包。这由设备的状态来决定。对于批量输出事务,则主机在令牌包后面再发送一个数据包。

PING令牌用来探测设备是否有空间接收数据,它没有数据阶段,只有握手阶段,设备根据实际的情况返回握手包。ACK握手包表示有空间接收数据,NAK握手包表示无空间接收,STALL握手包表示端点挂起。

最后是握手阶段。对于批量输人事务,如果主机接收设备返回的数据正确,则由主机返回ACK握手包;否则数据错误,主机什么也不返回。主机必须要能够接收数据,不能用NAK握手包回应设备。对于批量输出事务﹐如果设备能够接收数据,则返回ACK握手包;如果设备没有空间接收数据包,则返回NAK握手包;如果设备端点挂起,则返回STALL握手包;如果设备检测到传输错误,则什么都不回应,直接进入到空闲状态。整体如下图。

(3)中断传输

和批量传输有点像,中断传输总是单向的,可以用单向的中断端点来实现某个方向上的 中断传输。中断传输用于那些频率不高,但对周期有一定要求的数据传输。具 有保证的带宽,并能在下个周期对先前错误的传输进行重传。

(4)同步传输

同步传输用于传输那些需要保证带宽,并且不能忍受延迟的信息。整个带宽都将用于保证同步传输的数据完整,并且不支持出错重传,没有应答。

方向: 同步传输总是单向的,可以使用单向的同步端点来实现 某个方向上的同步传输。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值