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

       

Ограничения на Размер Пакета


Конечная точка для передач управления определяет максимальный размер полезной нагрузки данных, который конечная точка может принимать из шины или передавать в шину. USB определяет допустимые максимальные размеры полезной нагрузки данных управления для полно скоростных устройств, размер может быть только 8, 16, 32, или 64 байта. Низко скоростное устройство ограничено в размере полезной нагрузки данных, максимум 8 байтов. Этот максимум применяется к полезным нагрузкам данных пакетов данных следующих после установки; то есть, размер определен для поля данных пакета как определено в Главе 8, не включая информацию требуемую другими протоколами. Пакет установки всегда 8 байтов.  Конечная точка управления всегда использует MaxPacketSize для полезных нагрузок данных.

Требуется, чтобы все конечные точки управления после сброса поддерживали максимальную полезную нагрузку данных управления в размере 8 байт (All control endpoints are required to support a control data payload maximum size of 8 bytes after reset).  Конечная точка может быть разработана так, чтобы поддерживать больший максимальный размер полезной нагрузки данных. Такая конечная точка сообщает в информации о конфигурации значение максимального размера полезной нагрузки данных. USB не требует, чтобы полезные нагрузки данных, которые передаются были точно максимального размера; то есть, если полезная нагрузка данных - меньше чем максимум, не нужно дополнять ее до максимального размера.

Все хост контроллеры требуют поддержания максимальной полезной нагрузки данных в размере 8, 16, 32, и 64 байт, для полно скоростных конечных точек управления и только максимальной полезной нагрузки данных в размере 8 байтов для низких скоростных конечных точек управления. Хост контроллер не требует поддержания больших или меньших размеров максимальной полезной нагрузки данных.

Во время конфигурации, программное обеспечение системы USB читает максимальный размер полезной нагрузки данных конечной точки и гарантирует, что не будет послана никакая полезная нагрузка данных которая больше чем обеспечиваемый размер конечной точкой . Хост будет всегда использовать максимальный размер полезной нагрузки данных по крайней мере 8 байтов.


Конечная точка в данной конфигурации для изохронного канала определяет максимальный размер данных в полезной нагрузки, которая может их передать/получить (An endpoint in a given configuration for an isochronous pipe specifies the maximum size data payload that it can transmit/receive). Программное обеспечение системы USB использует эту информацию во время конфигурации, чтобы гарантировать, что имеется достаточно времени шины, чтобы разместить эту максимальную полезную нагрузку данных в каждом кадре. Если имеется достаточно времени шины, для максимальной полезной нагрузки данных, конфигурация устанавливается; если нет, конфигурация не устанавливается. (If there is sufficient bus time for the maximum data payload, the configuration is established; if not, the configuration is not established.) Программное обеспечение системы USB не корректирует максимальный размер полезной нагрузки данных для изохронного канала, как это делалось для канала управления. Изохронный канал может просто или поддерживаться или не поддерживаться в данной конфигурации подсистемы USB.

USB ограничивает максимальный размер полезной нагрузки данных 1023 байтами для каждого изохронного канала. Таблица 5-3 иллюстрирует информация о различных  размерах и максимального числа транзакций, возможных в кадре. Таблица 5-3 содержит информацию относительно различного размера изохронных транзакций и максимального числа транзакций, возможных в кадре

Таблица 5-3. Ограничения Изохронных Транзакции

Любая транзакция данного изохронного канала не должна быть точно максимального размера, определенного для конечной точки. Размер полезной нагрузки данных определен передатчиком (клиентским программным обеспечением или функцией) и может изменяться как требуется от транзакции к транзакции. Конечная точка может использовать необязательный стандартный типовой заголовок USB, чтобы указать, где в выборке(sample) потока начинается этот пакет. Это позволяет приемнику оправляться от пакетов, потерянных из-за ошибок. USB гарантирует, что любой размер предоставленный хост контроллеру,  будет передан по шине.( USB ensures that whatever size is presented to the host controller is delivered on the bus.) Фактический размер полезной нагрузки данных определен передатчиком данных и может быть меньше чем ранее оговоренный максимальный размер. Ошибки шины могут изменять фактический размер,что замечает приемник.(Bus errors can change the actual size seen by the receiver.) Однако, эти ошибки могут быть обнаружены или по ЦКИ(CRC) данных или с помощью знаний приемника об ожидаемом размере любой транзакции.




Конечная точка для bulk передач определяет максимальный размер полезной нагрузки данных, который конечная точка может принимать из шины или передавать в шину. USB определяет допустимые максимальные размеры полезной нагрузки bulk данных , которая может быть только 8, 16, 32, или 64 байта.(USB defines the allowable maximum bulk data payload sizes to be only 8, 16, 32, or 64 bytes.) Этот максимум применяется к полезной нагрузке данных пакетов данных; то есть, определенный размер - это поля данных пакета как определено в Главе 8 не включая информацию требуемую другими протоколами.(This maximum applies to the data payloads of the data packets; i.e.; the size specified is for the data field of the packet as defined in Chapter 8, not including other protocol required information.)

Конечная точка bulk разработана, для поддержания максимального размера полезной нагрузки данных.  Конечная точка bulk сообщает в информации о конфигурации значение максимального размера полезной нагрузки данных. USB не требует, чтобы полезные нагрузки данных передавались точно максимального размера; то есть, если полезная нагрузка данных - меньше чем максимально возможная, не нужно дополнять ее до максимального размера.

Требуется чтобы все хост контроллеры, имели поддержку максимальных размеров пакета в 8, 16, 32, и 64 байтов для конечных точек bulk. (All host controllers are required to have support for 8, 16, 32, and 64 byte maximum packet sizes for bulk endpoints.) Не требуется чтобы хост контроллер, поддерживал размеры пакета большие или меньшие максимальных.

Во время конфигурации, программное обеспечение системы USB читает максимальный размер полезной нагрузки данных конечной точки и гарантирует, что не будет послана никакая полезная нагрузка данных которая больше чем обеспечиваемый размер конечной точкой.

Конечная точка должна всегда передавать полезные нагрузки данных с полем данных меньшем или равным MaxPacketSize конечной точки (обратитесь к Главе 9). Когда bulk IRP состоит из большего количества данных чем, возможно передать в одной  полезная нагрузка данных с текущим установленным максимальным размером, все полезные нагрузки данных требуют устоновления максимального размера кроме последней полезной нагрузки данных, которая будет содержать остающиеся данные. Если конечная точка хочет передавать меньшее количество данных чем ожидает клиентское программное обеспечение, преждевременная, меньшая чем максимально установленная по размеру полезная нагрузка данных будет получена хост контроллером.( If an endpoint wants to transmit less data than expected by the client software, a premature, less than maximum sized data payload will be received by the host controller.) Эта преждевременная, меньшая чем максимально установленный размер полезная нагрузка данных заставляет хост контроллер удалять текущий IRP и продвигаться к следующему IRP или остановить канал как было описано в Разделе 5.3.2.(This premature, less than maximum sized data payload causes the host controller to retire the current IRP and advance to the next IRP or else stall the pipe as was outlined in Section 5,3,2.) Если полезная нагрузка данных получена, большего чем ожидалось размера, канал будет остановлен и все отложенные bulk IRPs для этой конечной точки будут прерваны/удалены.(If a data payload is received that is larger than that expected, the pipe will stall and all pending bulk IRPs for that endpoint will be aborted/retired.)




Конечная точка для канала прерывания определяет размер максимальной полезной нагрузки данных, который она будет передавать. Максимально допустимый размер полезной нагрузки данных передач прерывания - 64 байта или меньше для полно скоростного режима. Низко скоростные устройства ограничены 8 байтами или меньшим размером максимальной полезной нагрузки данных. Этот максимум применяется к полезной нагрузке данных пакетов данных; то есть, определенный размер - это поля данных пакета как определено в Главе 8 не включая информацию требуемую другими протоколами. (This maximum applies to the data payloads of the data packets; i.e., the size specified is for the data field of the packet as defined in Chapter 8, not including other protocol required information.) USB не требует, чтобы пакеты данных были точно максимального размера; то есть, если пакет данных - меньше чем максимум, не требуется дополнять его до максимального размера.

Требуются чтобы все хост контроллеры имели поддержку максимальных размеров полезной нагрузки данных до 64 байт для полно скоростных конечных точек прерывания и максимальных размеров полезной нагрузки данных 8 или менее байт для низко скоростных конечных точек прерывания (All host controllers are required to have support for up to 64 byte maximum data payload sizes for full speed interrupt endpoints and 8 bytes or less maximum data payload sizes for low speed interrupt endpoints.) Не требуется чтобы хост контроллер, поддерживал размеры полезной нагрузки данных большие максимальных.

Программное обеспечение системы USB определяет максимальный размер полезной нагрузки данных, который будет использоваться для канала прерывания, во время конфигурации устройства. Этот размер остается постоянным в течение срока службы сконфигурированного устройства. Программное обеспечение USB использует максимальный размер полезной нагрузки данных, определенный во время конфигурации, для гарантирования того, что имеется достаточно времени шины, чтобы разместить эту максимальную полезную нагрузку данных в назначенном периоде. Если имеется достаточно  времени шины, канал установлен; если нет, канал не установлен. (If there is sufficient bus time, the pipe is established; if not, the pipe is not established. ) USB программное обеспечение не корректирует время шины, выделенное каналу прерывания как это имеет место для канала управления. Канал прерывания может просто или обеспечиваться или нет в данной  конфигурация подсистемы USB. Однако, фактический размер полезной нагрузки данных все еще определяется передатчиком данных и может быть меньше чем максимальный размер.



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