Информационные технологииStfw.Ru 🔍
🕛

High-Speed Isochronous Data Payload

Хост инициирует передачу данных устройствам (OUT) или от устройств (IN) при помощи специального пакета, называемого Token-пакет. Этот пакет содержит адрес устройства которое должно получить
Хост инициирует передачу данных устройствам (OUT) или от устройств (IN) при помощи специального пакета, называемого Token-пакет. Этот пакет содержит адрес устройства которое должно получить или передать данные и номер логического канала (endpoint-a) внутри этого устройства. Устройство может подтвердить готовность при помощи пакета АСК (acknowledge) или сообщить хосту том, что оно еще не готово для передачи или приема очередного пакета. В случае если требуется получить данные от устройства (IN-транзакция), хост может попытаться сделать это еще раз позднее. При передаче данных от хоста к устройству (OUT-транзакция) если по причине неготовности принять данные устройство вернет NACK, хост должен будет повторить псосылку пакета через некоторое время. В случае USB1.0 если устройство окажется неготово несколько раз подряд, каждый раз хост будет передавать последний непринятый этим устройством пакет, тем самым занимая время от таймслота, которое могло бы быть использовано для связи с другим устройствами! В USB2.0 эта проблема решается при помощи Ping-пакетов, позволяющих узнать готово ли устройство к приему данных для выбранного логического канала без передачи самих данных. Эта особенность относится в первую очередь к асинхронной передаче bulk, для изохронной передачи (isochron) в силу того, что нет подтверждения передачи (handshake) подобная ситуация возникнуть не может.
Низкоскоростные устройства (low speed 1.5Mbit/sec) могут использовать только control и interrupt транзакции, которые в целом ведут себя аналогично OUT и IN транзакциям типа bulk. При передаче пакетов для более быстрых устройств (full speed USB 1.0 и high speed USB2.0) HUB-устройства не передают эти пакеты через порты, к которым подключены low speed устройства. При этом когда передаются данные для самих low speed устройств в составе пакетов используется еще специальный префикс, позволяющий HUB-ам определить что пакет следует ретранслировать на низкой скорости.
Подтверждение передачи происходит при помощи handshake пакетов: АСК, NACK, STALL. Хост никогда не может послать устройству NACK, вместо этого он просто не посылает никакого handshake пакета! Устройство может вернуть пакет STALL если произошла ошибка, требующая вмешательства хоста для переинициализации какого-либо ресурса в этом устройстве, связанного с логическим каналом в устройстве, для которого предназначался пакет.

Также по теме:
Новые программы для Windows, Linux и Android.