微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > USB通信协议——循环冗佘检验位

USB通信协议——循环冗佘检验位

时间:10-12 来源:互联网 点击:
每一个封包、令牌、数据、起始封包等都包含了用来作为错误检验的位,以用来确认跟随着封包PID字段之后的信息。而信息变化的特性是根据封包类型来决定的。每一个封包含了5或16个CRC(Cycle Redundancy Checks)位,其由封包的可能大小或类型来决定,如表所列。

  表 封包类型与字段

  CRC的计算方式是将要传输的数据块当作一堆连续位所构成的整个数值,并将此数值除以一个特定的除数。这个除数是以二进制来加以表示的,通常又称为衍生多项式(generatton polynomoal)。针对USB CRC错误检验,采用了5与12位。通常数值越大,则传输的数据越不容易受到噪声的干扰,相对地,处理的时间也就越长。其中,针对令牌封包的5位CRC字段由以下多项式产生:

  G(x)=x5+x2+1

  这个位模型所表示的多项式是00101b(取5位)。而在接收端的5位的循环冗余检验将是01100b,这也表示所有的位都接收正确。

  针对令牌封包的16位CRC字段由以下多项式产生:

  G(x)=x16+x15+x2+1

  这个位模型所表示的多项式是1000000000000101b。而在接收端的16位的循环冗余检验将是1000000000001101b,这也表示所有的位都接收正确。

  但须注意到,若CRC包含了连续6个1,该CRC位串流将会涵盖位填塞部分。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top