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

       

Последовательности Данных


Передачи Управления требуют, чтобы транзакция установка шины была послана с хоста на устройство, для описания типа доступа управления, который устройство должно выполнить. Транзакция установка сопровождается нулем или более транзакцией управляющих данных, которые несут специфическую информацию для запрошенного доступа. В заключение, транзакция состояния завершает передачу управления , и позволяет конечной точке возвращать состояние передачи управления клиентскому программному обеспечению. После того, как завершается транзакция состояния передачи управления , хост может переходить к следующей передаче управления конечной точки. Как описано в Разделе 5.5.4, эта следующая передача управления будет перемещаться в шине в зависимости от реализации хост контроллера время в последствии определенное(As described in Section 5,4,4, this next control transfer will be moved over the bus at some host controller implementation defined time in the future).

Конечная точка может быть занята для номера кадра определенного устройством при передвижении транзакций данных и состояния передачи управления (The endpoint can be busy for a device specific numbers of frames during the data and status transactions of the control transfer). В течение этого времени, когда конечная точка указывает, что она занята (обратитесь к Главе 8 и Главе 9 для подробностей), хост повторит транзакцию в более позднее время.(During these times when the endpoint indicates it is busy (refer to Chapter 8 and Chapter 9 for details), the host will retry the transaction at a later time.)

Если транзакция установка получена конечной точкой прежде, чем завершена предварительно инициализированная передача управления, устройство должно прервать текущую передачу/операцию и обработать новую транзакцию установки управления.  Обычно транзакция установки не должна быть послана перед завершением предыдущей передачи управления.Однако, если передача прервана, например, из-за ошибок на шине, хост может посылать следующую транзакцию установки преждевременно в зависимости от переспектив конечной точки.


Изохронные передачи не поддерживают повторную передачу данных при ошибках на шине. Приемник может определять, что произошла ошибка передачи.(???) Низкий уровень протокола USB не позволяет возвратить квитирование передатчику изохронного канала.  Обычно квитирование возвращается, чтобы сообщить передатчику, был ли пакет успешно получен или нет. Для изохронных передач, своевременность более важна чем правильность / перепередача, и с данным низким процентом ошибок, ожидаемых на шине, протокол, оптимизированный для приема передач, обычно устраивает. (For isochronous transfers, timeliness is more important than correctness/retransmission, and given the low error rates expected on the bus, the protocol is optimized assuming transfers normally succeed.) Изохронные приемники могут определять, были ли потери данные в течении кадра. Также, приемник может определять, сколько данных было потеряно. Раздел 5.10 описывает эти механизмы USB более подробно.

Конечная точка для изохронных передач никогда не бывает остановленной так как нет никакое квитирования, чтобы сообщить условие ОСТАНОВА(STALL). Хост и клиентское программное обеспечение никогда не может сталкиваться с таким случаем. Об ошибках сообщается как о состоянии, связанном с IRP для изохронной передачи, но изохронный канал не останавливается в случае ошибки. Если ошибка обнаружена, хост продолжает обрабатывать данные, связанные со следующим кадром передачи. Возможно ограниченное обнаружение ошибок, так как протокол для изохронных транзакций не позволяет передавать транзакции квитирования. (Limited error detection is possible since the protocol for isochronous transactions does not allow per transaction handshakes.)




Bulk транзакции используют данные переключения биты, в которых биты переключаются только после успешного завершения транзакции, для сохранения синхронизации между передатчиком и приемником, когда транзакции повторены из-за ошибок. (Bulk transactions use data toggle bits that are toggled only upon successful transaction completion to preserve synchronization between transmitter and receiver when transactions are retried due to errors.) Bulk транзакции инициализируются с DATA0, когда конечная точка сконфигурирована для соответствующей передачей управления (Bulk transactions are initialized to DATA0 when the endpoint is configured by an appropriate control transfer.) Хост также начнет первую bulk транзакцию с DATA0. Если bulk канал остановлен, переключатель данных на хосте сбрасывается к DATA0, когда остановка подтверждена(???) клиентом программного обеспечения через функцию USBD. Конечная точка имеющая условие останова, очищается с помощью соответствующей передачи управления.(The endpoint has its stall condition cleared via an appropriate control transfer.) Это действие также сбрасывает переключатель данных конечной точки к DATA0.

Bulk транзакции повторяются из-за ошибок, обнаруженных на шине, что воздействует на данную транзакцию. (Bulk transactions are retried due to errors detected on the bus that affect a given transaction.)




Транзакции Прерывания могут использовать или чередующиеся данные переключения бит такие, что биты переключаются только после успешного завершения передачи или непрерывно переключающиеся данные переключения бит.(Interrupt transactions may use either alternating data toggle bits such that the bits are toggled only upon successful transfer completion or a continuously toggling of data toggle bits.) Хост в любом случае должен допускать, что устройство повинуется всем правилам квитирования/повторения как определено в Главе 8. Устройство может выбирать, чтобы всегда переключить PIDs DATA0/DATA1 так, чтобы он мог игнорировать квитирование из хоста.(A device may choose to always toggle DATA0/DATA1 PIDs so that it can ignore handshakes from the host.) Однако, в этом случае, клиентское программное обеспечение может пропускать некоторые пакеты данных, когда происходит ошибка, потому что хост контроллер интерпретирует следующий пакет как повторение пропущенного пакета.

Если условие останова обнаружено на канале прерывания из-за ошибок передачи или сигнала квитирования ОСТАНОВ(STALL),  возвращаемого из конечной точки, все задержанные IRPs удаляются. Удаление условия ОСТАНОВ(STALL) достигается вмешательством программного обеспечения по отдельному каналу управления. Это восстановление должно также сбросить данные переключения бита к DATA0 для конечной точки.(This recovery must also reset the data toggle bit to DATA0 for the endpoint.) Клиент программного обеспечения должен также вызвать Функцию USBD, чтобы сбросить данные переключения хоста к DATA0, подтвердить, и очищать условие останова на хосте.(The software client must also call a USBD Function to reset the host’s data toggle to DATA0, acknowledge, and clear the stall condition on the host.)

Транзакции Прерывания повторяются из-за ошибок, обнаруженных на шине, что воздействует на данную передачу (Interrupt transactions are retried due to errors detected on the bus that affect a given transfer.)



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