Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по mass storage
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
rvk
Как я понял из спецификации usbmassbulk_10 команда с компьютера на внешний mass storage
device приходит в виде пакета размером 31 байт. И если не указано в этом пакете дополнительно,
собственно команда находится в поле dCSWTag в байтах 4..7 пакета (4 байта).
Может я совсем тупой, но нигде не нашел описания полей этих четырех байт.
Где среди них код команды и как они вообще формируются. Просьба, кто знает,
подскажите.
rvk
Отвечаю сам себе, поле dCSWTag не содержит кода команды в принципе, неудивительно, что я не нашел на него описания.
Вопрос снят.
AlexBoss
Поле dCSWTag находится в статусном пакете CSW, а не в командном блоке CBW.
В CBW ему соответствует dCBWTag, а точнее все совсем наоборот - dCSWTag в 13-ти байтном
CSW, выдаваемом Device в качестве подтверждения на некоторую команду, обязан совпадать
с dCBWTag командного блока (CBW) этой самой команды, переданной Host-ом. Т.о. Host имеет
возможность однозначно идентифицировать какому CBW принадлежит полученный CSW, если
разным командным блокам будет назначать разные значения dCBWTag.

Собственно команда (длиной от 1-го до 16-ти байт) размещается с 15-го по 30-й байты CBW,
а байты с 0-го по 14-й - это всего лишь Bulk-Only заголовок для стандартной (например SCSI)
команды. Код команды - обычно 1-й байт (т.е. 15-й от начала CBW).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.