USB 的数据构成方式

  包(Packet)是USB系统中信息传输的基本单元,所有数据都是经过打包后在总线上传输的。USB包由五部分组成,即同步字段(SYNC)、包标识符字段(PID)、数据字段、循环冗余校验字段(CRC)和包结尾字段(EOP),包的基本格式如下图:

封包格式

  SOF封包属于令牌封包的一种,但具有独自的PID类型名:SOF。这个封包常用于等时传输,并不应用于低速设备。令牌(token)封包,由于USB的数据交换是由PC主机端所激活的,所以在每一个数据交换中必须以SYNCPIDADDRENDPCRC55个数据域组合而成的令牌封包为起始。数据封包含有4个域:SYNCPIDDATACRC16DATA数据域的位值是根据USB设备的传输速度及传输类型而定,且须以8字节为基本单位。也就是,若传输的数据不足8字节,或传输到最后所剩余的也不足8字节,仍须传输8字节的数据域。格式如下:

握手封包仅包含SYNC和一个PID数据域。

事务

  USB规范将事务( Transaction )定义为将一个服务传输到一个端点。这里的服务是指主机传输信息给设备或从设备接收信息。每一个传输含一个或多个事务,而每一个事务包含一个或多个信息包,如图所示。

USB 的数据构成方式_第1张图片

数据构成方式

  主机总是用一个令牌包开始一个事务。令牌包指定一个设备地址和端点号。在这之后是一个或多个数据包传输,有的事务也可不需要进行数据包传输,传输方向和数据包的数量也由令牌指定。最后是沿数据传输的反方向发送一个握手包。

  事务依据其目的及数据流的方向可分为输入事务、输出事务和设置。输入事务、输出事务用于主机与设备之间传输数据,设置事务用来将控制传输的要求传输给设备。

你可能感兴趣的:(数据)