usb的传输类型
usb的四种传输类型:
- 批量传输
- 同步传输(或等时传输)
- 中断传输
- 控制传输
其中的批量,同步,中断,三种传输中,每完整传输一次数据都称做一个事务(主要的数据传输是靠这三种传输)
事务的具体表现(批量,同步,中断)
上图说说的输入事务是以主机来说的, 主机需要先发送一条命令来接收信号 (主从模式(从机是不能主动发起通信的) 所有的通信都是由主机发起的, 从机只能被动应答)
主机发送:
第一个段: 同步域 需要先发送一个同步信号
第二段: PID(IN) 令牌表示我需要输入
第三段: 7为地址 从机所在地址:
第四段: 4位端点号有四种传输方式, 代表一种传输方式
第五段: 5位CRC校验 校验
结束标志: EoP
设备返回:
第一个段: 同步域 需要先发送一个同步信号
第二段: PID(data0) 数据令牌
第三段: 向主机输入的数据
第四段16位CRC校验
第五段: EOP 结束标志
主机应答: 有时候主机一次接收不完, 主机返回ack让从机继续发送
第二段: PID(ACK) 正常应答 Nck 为异常应答
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-U9UEMpi0-1686397833932)(usb的传输类型.assets/image-20230610192456350.png)]
上图是主机输出事务
主机第一次发送是不需要从机应答的
第二次需要, 如果从机一直没有应答, 会有超时
控制传输(主要用于主从命令配置)
包括三个过程: 建立过程和状态过程分别是一个事务, 数据过程则可能包含多个事务.
建立过程: 使用一个建立事务, SETUP+ DATA0 + ACK , 建立过程实际就是输出数据,
数据过程: 可以没有数据过程也可以有多笔数据事务, 由建立过程中的设置命令决定的
中断传输(这里指的是一种异步通信方式而已, 它不是物理中断.):
这里所说的中断, 不同于硬件中断,它不是由设备主动地发出一个中断请求, 而是由主机保证在不大于某个时间间隔内按排一次传输.
一般用于对时间要求比较严格的设备中, 入大多数HID设备, 也可以作为批量传输的状态检测,
中断传输与批量传输的结构一样
同步传输(开销很小的传输类型, 容许少量错误)
用于数据量大, 且时实时性要求比较高, 能容忍少量的数据错误的场合, 如音视频设备等, 并有可能因此占用批量传输的带宽, 而优先满足同步传输的需要
由于不保证数据100% 正确, 所以数据错误时, 并不进行重传, 也没有应答包, 如果crc等错误的话, 由软件来决定怎样处理.
批量传输:
数据量较大, 但实时性要求不高的场合,
, 并不进行重传, 也没有应答包, 如果crc等错误的话, 由软件来决定怎样处理.
批量传输:
数据量较大, 但实时性要求不高的场合,
小结
有什么不太了解的, 可以说出来, 探讨探讨, 互相学习一下嘛