Спецификация USB.Rev1.0

       

Ложные EOP


Ложные EOPы должны быть обработаны способом, который гарантирует, что текущий пакет передается полностью прежде, чем хост или любое другое устройство попытается передавать новый пакет. Если такое событие произошло, то должна образовываться коллизия на шине и возможность разрушить до двух последовательных транзакций.(If such an event were to occur, it would constitute a bus collision and have the ability to corrupt up to two consecutive transactions.) Обнаружение ложного EOP полагается на тот факт, что пакет, в котором был вставлен ложный EOP, появится как усеченный пакет с неправильным CRC. ( Последние 16 бит пакета будут иметь очень низкую вероятность появления корректного CRC.)

Хост и устройства обрабатывают ложную EOP ситуации по-разному. Когда устройство видит разрушенный пакет данных, оно не выдает ответ и ждет, когда хост пошлет следующую маркер. Такая схема гарантирует, что устройство не будет пытаться возвращать квитирование, в то время как хост может все еще передавать пакет данных. Если произошел ложный EOP, пакет данных хоста в конечном счете закончится, и устройство будет способно обнаружить следующий маркер. Если устройство выдает пакет данных, который принимается разрушенным, с ложным EOP, хост игнорирует пакет и не выдаст квитирование. Устройство, ожидающее квитирование от хоста, будет приостановлено(time out).

Если хост получает разрушенный пакет данных, это означает, что возможно присутствуют ложные EOP и он ждет в течение 16 времен передачи бита, чтобы увидеть, есть ли какой-нибудь трафик вверх по иерархии. Если не обнаружено никаких переходов шины внутри 16 битового интервала, и шина остается в состоянии IDLE, хост может выдавать следующий маркер. Иначе, хост ждет пока устройство закончит посылку остатка пакета. Ожидание с интервалом 16 бит гарантирует два условия. Первое условие гарантия того, что устройство закончит посылку пакета. Это гарантируется временной приостановкой (без переходов шины) большей чем в худшем случае 6-битовый интервал вставки бита.(This is guaranteed by a time-out interval (with no bus transitions) greater than the worst case 6-bit time bit stuff interval.) Второе условие - то, что таймер оборота шины передающего устройства должен гарантированно досчитать до конца(expire). Обратите внимание, что интервал временной приостановки чувствителен к скорости транзакции. Для полно скоростных транзакций, хост должен ждать 16 полно скоростных времен передачи бита; для низко скоростных транзакций, он должен ждать 16 низко скоростных времен передачи бита.

Если хост получает пакет данных с допустимым CRC, он понимает, что пакет весь и не нужно задерживаться в выдаче следующего маркера.



Содержание раздела