Does USB slow down when there is too much noise, or does it simply fail? The USB host driver I'm using is ehci-hcd on Linux.
1 Answer
Individual packets contain a checksum, so they will fail. At the OS level, failed packets are probably retried a few times for bulk and interrupt transfers. If a isochronous packet fails, oh well, that data is gone. If the host retries, then the higher level effect will be of the bus getting slower.
The USB spec doesn't say anything about higher level policy of dealing with failed packets, only that receivers must wholly ignore packets with bad checksums. It is up to the host implmentation therefore what to do about frequent packet failures. Some hosts might, for example, unload a device after too many errors and maybe allow it to re-enumerate after a while. Others might give it a lower priority if there are other devices competing for bandwidth. Others migh just give up for that frame and try again next frame. This is more a question for the host USB driver policy than it is about USB.