USB 有四根线(不考虑ID的情况下),两根电源线和两根数据线,两根电源线是VBUS、GND,电源线一般提供5V和500mA电流。两根数据线D+和D-,可以双向传递数据。
USB 每次传输的时候都有下面的过程:
1.同步块。发送数据的时候需要在数据前发送一个头(同步块), 一个101010的方波。
2.数据。发送的数据由以下几个部分组成
sync同步块+PID+ADDR+FRAM+ENDP+实际数据+CRC
并不是所有的包都包含这些内容,根据传输的类型不同,所包含的内容不一样。在USB传输中分为四种传输方式,分别为控制、中断、等时和批量。
控制传输: 令牌包+数据包+握手包
中断传输: 令牌包+数据包+握手包
等时传输: 令牌包+数据包 ,没有握手包,这里只关心实时的数据传输,可以有一定的误码率
批量传输:令牌包+数据包+握手包
令牌包:
输入包 sync同步块+PID+ADDR+ENDP+CRC5
输出包 sync同步块+PID+ADDR+ENDP+CRC5
设置包 sync同步块+PID+ADDR+ENDP+CRC5
帧起始包 sync同步块+PID+11FRAM+CRC5
数据包:
在USB传输中分为DATA0和DATA1包交叉传输,以保证传输的正确性。但是在等时传输的过程中只有DAT0包
DATA0: sync同步块+PID+0~1024字节数据+CRC16
DATA1: sync同步块+PID+0~1024字节数据+CRC16
握手包:
sync同步块+PID
3.结束块。数据传输结束以后,使用EOP作为结束包。 D+、D-同时都为低电平。 EOP之后有一个短暂的空闲状态。