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位串流将会涵盖位填塞部分。
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)