错误恢复
信息包错误检查;
错误EOP;
总线超时(没有响应);
数据触发器错误检查;
串扰---在时间片结束之后发年事务处理;
LOA---总线活动丢失。
三种类型的包错误:包ID(PID);CRC;位填充错误。发生以上错误,接收方忽略这个信息包,并且不会返回一个信息包。
信息包的类型和CRC
信息包的类型 | 字段名 | 字段的最大长度 | CRC |
SOF | 时间片编号 | 11位 | 5位 |
IN | 设备地址和端点地址 | 11位 | 5位 |
OUT | 设备地址和端点地址 | 11位 | 5位 |
SETUP | 设备地址和端点地址 | 11位 | 5位 |
DATA0 | 数据 | 1023字节 | 16位 |
DATA1 | 数据 | 1023字节 | 16位 |
ACK | 无 | 无 | 无 |
NAK | 无 | 无 | 无 |
STALL | 无 | 无 | 无 |
PREAMBLE | 无 | 无 | 无 |
总线超时:事务处理的发送方在16个位时间内一定不会超时,但是在18个位时间后则一定时。
错误的EOP:如果接收方在发送方实际完成传输之前检测到包的结束(EOP)。错误的EOP往往会导致一个CRC错误。
数据触发出错:数据触发是一种机制,用来确保数据传输的发送方和接收方之间保持同步。数据触发机制解决了和握手包出错相关的问题。
串扰:如果在总线上的一个设备没有结束它的事务处理(不停地串扰),这种不断的串扰有可能对整个总线造成死锁。串扰在时间片结束时被检测到,如果设备在时间片结束时不处于空闲状态,那么这个设备必须被隔离,方法是把和这个设备相连的集线器端口禁止掉。
LOA---总线活动丢失:一个设备从一个包的传输开始,后接总线上的一个恒定的J或K状态,而且没有EOP。检测和处理类似串扰。