Fork me on GitHub

USB协议详解第17讲(USB事务总结)

1.USB传输回顾

前面讲了四种传输的类型的事务组成,包括控制传输,同步传输,批量传输,中断传输。

2.USB事务总结

本节我们来对事务(transaction)相关内容做以总结,从前面学习中我们可以看到其实事务有三种类型,Setup事务、Data IN事务、Data OUT事务。

  • Setup事务:主要向设备发送控制命令;
  • Data In事务:主要从设备读取数据;
  • Data OUT事务:主要向设备发送数据。

回顾下前面我讲的传输、事务、包的关系,"某领导和一个早起的程序员进行了一次交流,说了5件事"。其实这里的"这次交流"就相当于USB的一次传输,"说了5件事"就相当于这次传输过程中的5个事务,当然每件事肯定有若干句对话,就相当于每个事务里面的各种包。

其实USB所有类型的事务(Setup事务、IN事务、OUT事务)都是由3个包组成(令牌包『Token packet』、数据包『Data packet』、握手包『Handshack packet』),但是,但是,但是除了同步传输所用到的事务,同步传输事务由2个包组成(令牌包、数据包),没有握手包,不会再有其他可能,USB事务组成如下图。

其中所有传输的所有事务的令牌包总是由主机发起,所以我们说USB一切事务都是USB主机操纵的,所有的事务都是主机发起的;数据包含本次传输的数据负载;握手包主要是数据接收方回应数据发送方数据是否正常接收到。

posted @ 2024-10-20 14:31  yooooooo  阅读(27)  评论(0编辑  收藏  举报