一、USB编码-反向不归零编码(NRZI)+位填充
规则:数据为0,电平反转,数据为1,电平不翻转;当连续出现6个相同的1穿插一个0,目的是为了防止连续出现多个1导致的同步漂移。
二、USB传输帧
帧是USB传输的时间单位,低速/全速设备固定为1ms,高速设备适用125us的微帧,8个微帧为一个帧,USB主机在一帧内会根据规则为总线设备分配数据传输时间,如果帧在剩余时间内能完成数据传输,则进行分配,否则分配到下一个帧。
USB传输又分为等时传输,控制传输,中断传输和批量传输,而每一个传输又由多个事务构成,事务由多个包构成,包由多个域构成:
域:同步域,地址域,断点域,帧号域,标识域,数据域、校验域。
包:令牌包,数据包,握手包和特殊包
事务:令牌包+数据包(可选)+捂手包(可选)
传输:事务1+事务2+事务N+...
二、USB传输方式
2.1、控制传输 Control (必须)
所有USB主机和设备都需要支持的传输方式,特点是数据传输数据量不大但是正确性有很大保证,一般用于数据获取或者命令控制,常用于USB传输的信息配置。
2.2、中断传输 Interrupt(可选)
适用于传输少量数据,对传输有周期性要求的数据,USB会为中断传输分配一定的总线带宽,用于保证中断传输在一定时间周期内得到分配,常用于键盘,鼠标等设备。
2.3、批量传输Bulk (可选)
适用于传输大量的,对数据传输速率,时效没有要求,但必须保证正确性的数据,比如U盘数据拷贝传输,打印机,扫描仪等。这种传输方式可以在总线带宽比较紧张的时候为其他输出方式让出时间,将本身的时间延时,当USB总线空闲时又能大批量快速传输数据。
2.4、等时传输ISO (可选)
适用于要求速率恒定的传输,这种传输允许少量传输数据错误而不影响设备的适用,ISO传输数据的及时性往往比数据的正确性更加重要,比如音频,视频的传输。