在端口 0 的控制管道加上 2 个附加管道(或是 2 个控制管道,或是 1 个控制管道
和 1 个中断端口,或是 2 个中断端口)。全速功能部件可以支持最多可达 16 个的
任何类型的端口。
图 8-3 端口字段
8.3.3帧号字段
帧号字段是一个 11 位的字段,主机每过一帧就将其内容加一。帧号字段达到其最大
值 7 FFH 时归零,且它仅每个帧最初时刻在 SOF 标记中被发送。
8.3.4数据字段
数据字段可以在 0 到 1,023 字节之间变动,但必须是整数个字节。图 8-4 为多字
节显示格式。每个字节的范围内的数据位移出时都是最低位( LSb )在前。
图 8-4 数据字段格式
如同在第 5 章所描述的那样,数据包大小随着传送类型而变化。
8.3.5循环冗余校验
循环冗余校验( CRC )被用来在标记和数据包中保护所有的非 PID 字段。在上下文
中,这些字段被认为是保护字段。PID 不在含有 CRC 的包 CRC 校验范围内。在位填
充之前,在发送器中所有的 CRC 都由它们的各自字段产生。同样地,在填充位被去
除之后, CRC 在接收器中被译码。标记和数据包的 CRC 可 100% 判断单位错和双位
错。失败的 CRC 指出了保护字段中至少有一个字段被损坏,并导致接收器忽略那些
字段,且在大部分情况下忽略整个包。为了 CRC 的发生和校检,发生器和检验器里
的移位寄存器置成为全 1型。对于每个被发送或者被收到的数据位,当前余项的最高
一位和数据位进行异或( XOR ),然后,余项是左移 1 位,并且,最低一位置零。
如果异或的结果是 1 ,余项和生成多项式作异或。当检查的字段最后的一位被发送
的时候,发生器里的 CRC 被颠倒,再以最高位( MSb )在前发给检验器。当检验器
收到 CRC 的最后一位, 且不发生错误的时候,余项将等于多项式的剩余。如果剩余
与包接收器中最后计算出的检验和余项不匹配,则存在 CRC 误差。对于 CRC ,必须
满足位填充的要求,且如果前 6 位都是 1 的话,这包括在 CRC 的最后插入零,。
8.3.5.1标记 CRC
标记使用了 5 位的 CRC 字段,它覆盖了输入,建立和输出标记的 ADDR 和 ENDP 字
段,或 SOF 标记的时间戳字段。生成多项式如下:
4
评论0
最新资源