USB2.0传输原理USB最重要的是要理解USB主机发送命令给设备,设备要对主机的命令进行响应,USB停训的基本单位为“包”包有如下分类:令牌包、数据包、握手包、特殊包(其实是由PID决定的)令牌包:可分为输入包、输出包、设置包和帧起始包(注意这里的输入包适用于设置输入命令的,输出包是用来设置输出命令的,而不是放数据的)其中输入包、输出包和设置包的格式都是一样的:SYNC+PID+ADDR+ENDP+CRC5(五位效验码)数据包:有两种类型的数据包,由PID来区别为DATA0包和DATA1包,这两种包是为了支持数据同步切换定义的。数据必须以整数的字节数发出,数据CRC仅通过对包的数据字段计算而得到,而不包括PID,他有自己的效验字段。当USB发送数据的时候,当一次发送的数据长度大于相应断点的容量时,就需要把数据包分为好几个包,分批发送,DATA0包和DATA1包交替发送,即如果第一个数据包是DATA0那么度二个数据包就是DATA1。但也有例外的情况,在同步传输中(四类传输类型中之一),所有的数据包都是DATA0格式如下:SYNC+PI