当前位置 博文首页 > dadalaohua的博客:【USB笔记】USB 2.0 数据PID排序data PID seq

    dadalaohua的博客:【USB笔记】USB 2.0 数据PID排序data PID seq

    作者:[db:作者] 时间:2021-07-27 11:51

    USB笔记 USB 2.0 数据PID排序data PID sequencing

    说明

    介绍的是USB 2.0协议中的数据PID排序(data PID sequencing)。

    介绍

    数据PID排序(data PID sequencing)用于为数据接收器提供每个微帧(microframe)的事务数,并且检测每个微帧(microframe)的一个或多个丢失/损坏的包。

    高带宽等时端点High bandwidth isochronous endpoints(IN和OUT)必须支持数据PID排序(data PID sequencing)。在用于高速高带宽等时端点(high-speed high bandwidth isochronous endpoints)的数据PID排序(data PID sequencing)中,使用了全部四个数据PID(data PIDs):DATA0、DATA1、DATA2和MDATA。

    高速高带宽等时IN端点

    高速高带宽等时IN端点(high-speed high bandwidth isochronous IN endpoint)的数据PID排序(data PID sequencing)对微帧(microframe)中每个事务(transaction)的数据包采用DATA2、DATA1、DATA0 PID的重复序列。如果微帧中只有一个事务(transaction),则只使用DATA0数据包PID。如果每个微帧有两个事务(transaction),则第一个事务数据包使用DATA1,第二个事务数据包使用DATA0。如果每个微帧有三个事务(transaction),第一个事务数据包使用DATA2,第二个事务数据包使用DATA1,第三个事务数据包使用DATA0。在任何情况下,数据PID排序都会在下一个微帧中重新开始。下图是高带宽等时IN端点(high-bandwidth isochronous IN endpoints)在一个微帧内,不同情况下使用的数据包PID的顺序。

    Data Phase PID Sequence for Isochronous IN High Bandwidth Endpoints

    主机知道IN端点每个微帧允许的最大事务数。主机要求端点在第一个事务的响应中告知本次的微帧所请求的事务数是多少,所以通过第一个事务的响应所用的数据PID,来获取该微帧需要多少个事务。当端点需要使用三个事务传输数据时,端点必须使用DATA2响应第一个事务的IN令牌。 当它需要两个事务时,它必须对第一个事务使用DATA1响应,而当它仅需要一个事务时,必须使用DATA0响应。 在第一个事务处理之后,端点将按照上述数据PID排序(data PID sequencing)进行操作。

    如果主机没有收到任何事务正确无误的响应,主机就不得再向该微帧的端点发出任何事务。当主机收到来自端点的DATA0数据包时,不得再向端点发出该微帧的任何事务。

    高速高带宽等时OUT端点

    高速高带宽等时OUT端点(high-speed high bandwidth isochronous OUT endpoint)的数据PID排序(data PID sequencing)与IN端点的排序不同。当每个微帧(microframe)只有一个事务(transaction)时,主机必须发出一个DATA0数据包。当每个微帧有两个事务时,主机必须为第一个事务发出一个MDATA,为第二个事务发出一个DATA1。当每个微帧有三个事务时,主机必须发出两个MDATA事务和一个DATA2用于第三次事务。这些序列允许端点检测在一个微帧中是否有丢失/损坏的事务。下图显示了高带宽等时OUT端点的微帧内,不同情况下使用的数据包PID的顺序。

    Data Phase PID Sequence for Isochronous OUT High Bandwidth Endpoints

    如果端点检测到错误的OUT事务,那么在微帧期间传输的所有数据都必须被当作遇到了错误。需要注意的是,对于每个微帧有三个MDATA事务丢失的情况,USB没有提供任何方法让端点确定两个MDATA事务中哪个丢失。可能有一些特定于应用程序的方法可以更精确地确定丢失了哪些数据,但USB没有提供在总线级别上这样做的方法。


    参考资料

    Universal Serial Bus Specification Revision 2.0

    USB Complete, 5th Edition


    本文链接:https://blog.csdn.net/u012028275/article/details/113806338

    cs