С одним чтением () или запись () за один раз, мы можем увеличить объемный размер данных по интерфейсу USB? Например, я хочу передать блок 1 024 (1K) данных байтов и если устройство имеет ограничения только 64 байтов, есть ли какой-либо способ, которым я могу увеличить размер пакета для чтения () и запись () системный вызов по USB?
Есть ли какое-либо ограничение на размер передачи данных по USB в хосте-> среда устройства?
Я не инженер протокола USB, но этот документ от Intel EHCI USB Specification, кажется, предполагает, что самый большой размер пакета USB, который допустим, составляет 1 024 байта и самый большой блок данных, который может быть передан, сразу 24 576 байтов, как на странице 35:
Указатели на семь страниц обеспечиваются для поддержки выражения 8 изохронных передач. Эти семь указателей позволяют 3 (транзакции) * 1024 (максимальный размер пакета) * 8 (записи транзакции) (24 576 байтов) быть перемещенными с этой структурой данных
В Шине USB размеры пакета уровня ограничиваются Спецификациями USB — ограничения для USB 2.0:
Однако ограничения для чтения () и запись () могут отличаться из-за буферизации, сделанной драйверами ядра; например, при использовании usbfs с текущими версиями Linux, до 16 384 байтов могут быть переданы с одним системным вызовом.