Подключение usb к command usb
Приветствую!
Отключение USB портов может понадобиться в самых различных целях и сценариях. Одной из наиболее часто встречающихся причин отключения ЮСБ порта или портов можно назвать предотвращение «утечки» каких-либо важных и конфиденциальных данных с компьютера. Также стоит отметить и безопасность (зловредное программное обеспечение, вирусы никто не отменял), которая повышается, если отключить возможность подключения каких-либо съёмных накопителей (флеш-дисков, портативных HDD и иных устройств, имеющих интерфейс USB).
Мы рассмотрим множество актуальных способов, которые позволят ограничить использование USB портов на стационарном компьютере или ноутбуке.
Содержание:
Управление работой USB через BIOS
Этот способ позволяет эффективно отключить работу всех USB портов на компьютере или ноутбуке. Однако стоит учесть, что при этом будет отключена работа периферии, что подключена к USB портам. И если у вас подключена клавиатура с мышкой через USB порт, то при использовании данного способа оные перестанут работать.
Найдя их, следует воспользоваться переключателем напротив и выбрать пункт Disabled (Отключить).
На изображении ниже показано, как это может примерно выглядеть.
Выключаем или включаем USB через групповую политику
Данный способ хорош тем, что отключается возможность работы с подключаемыми съёмными носителями через USB, однако периферия при этом не затрагивается. Если у вас подключён принтер, клавиатура, мышка и т.д., то оные так и будут продолжать работать после проведённой манипуляции.
-
Для открытия окна групповой политики воспользуемся комбинацией клавиш Win + R. Нажав оную, будет выведено окно, в которое следует вписать «gpedit.msc» (без кавычек) и далее нажать по кнопке OK.
Отключение или включение USB через реестр
Как и предыдущий способ, оный так же не затрагивает работу периферии. Отключается только возможность работы со съёмными накопителями.
Следует отметить, что если вы ранее не сталкивались с реестром, ничего там не редактировали, то следует на всякий случай сделать его резервную копию. Это окажет посильную помощь, если что-то будет сделано неверно, и операционная система начнёт проявлять нестабильность в работе.- Следует открыть редактор реестра. Для этого существует несколько способов, одним из которых является следующий: нажав на клавиатуре комбинацию клавиш Win + R, следует далее в открывшемся окошке ввести команду «regedit» (без кавычек) и нажать OK.
И далее в правой части окна следует осуществить двойной клик мышкой по пункту с именем Start.
Надстройка управления доступом к USB с использованием программ
Существует целый ряд программ, ограничивающих работу для подключаемых USB носителей данных.
Среди таковых можно отметить: USB Block, USB Disabler Pro, MyUSBOnly, Gilisoft USB Lock. Всё они обладают англоязычным интерфейсом, возможностью настройки «белого списка» подключаемых накопителей и некоторыми другими возможностями.
Приведённые решения не являются бесплатными, но если необходимо ограничить доступ к USB на компьютерах в организации, то данный вариант можно рассмотреть.
Управление работой USB портов через диспетчер устройств
Данный способ не является универсальным, всё зависит от аппаратной реализации конкретного USB контроллера, что установлен в компьютер или ноутбук. В некоторых случаях даже после отключения всех указанных пунктов, работа того или иного USB порта может сохраняться.
И да, отключение USB таким способом приведёт и к отключению работы подключенной периферии (мышка, клавиатура, принтер и т.д.). Будьте внимательны.
- Откройте Диспетчер устройств. Более подробно о том, как это сделать, написано в материале «Открываем диспетчер устройств в Windows (7, 8, 10)».
- В открывшемся окне следует кликнуть по пункту с именем Контроллеры USB, дабы он был развёрнут.
В данном списке отобразятся аппаратные элементы, отвечающие за работу USB. Наведите мышку, кликните правой клавишей и в отобразившемся меню выберите Отключить устройство.
Аппаратное отключение USB
В данном случае речь идёт об отключении USB кабеля на материнской плате, который отвечает за подключение USB портов на лицевой стороне системного блока.
USB порты сзади, которые непосредственно размещены на материнской плате, отключить таким способом, естественно, не получится.
То же касается и ноутбуков.
Деинсталляция драйвера USB для отключения работы
Данный способ не является рациональным. Это связанно с тем, что впоследствии операционная система восстанавливает удалённые драйвера (обычно после перезагрузки компьютера), т.к. видит, что физически компонент в системе присутствует.
Более того, если удалить драйвер, то нарушается работа всех подключенных USB устройств.
Мы рады, что смогли помочь Вам в решении поставленной задачи или проблемы.В свою очередь, Вы тоже можете нам очень помочь.
Просто поделитесь статьей в социальных сетях и мессенджерах с друзьями.
Поделившись результатами труда автора, вы окажете неоценимую помощь как ему самому, так и сайту в целом. Спасибо!
Зачастую пользователи оставляют подключение передней панели при сборке напоследок, уделяя больше внимания основным компонентам ПК. Такой подход резонен, но в свою очередь один неправильно подключенный коннектор панели не позволит включить устройство даже при правильной сборке всех остальных комплектующих. Как этого избежать, рассмотрим в данном материале.
Какие бывают разъемы на передней панели корпуса
Дизайн компьютерных корпусов менялся на протяжении многих лет, эта участь не обошла стороной и панель с разъемами. Различные кард-ридеры и встроенные реобасы уже не так актуальны, как раньше, а спикеры используются далеко не каждым рядовым пользователем. Неизменными остаются органы управления в виде кнопок включения/отключения и перезагрузки, индикации, аудио- и USB-порты.
Кроме этих основных групп разъемов в некоторых современных корпусах можно встретить кнопки управления подсветкой. Подключение подсветки корпуса может быть реализовано разнообразными вариантами в зависимости от производителя. Зачастую это трехпиновый 5В кабель, подключаемый в материнскую плату, и SATA-кабель для подсоединения к блоку питания. Еще один часто встречающийся вариант — подключение к встроенному контроллеру.
При подключении проводов от передней панели желательно следовать общему кабель-менеджменту корпуса. А именно заранее спланировать и подвести кабели до установки материнской платы. Подключение проводов панели является предпоследним шагом перед готовой сборкой ПК. Заключительный шаг — установка видеокарты, так как ее размеры могут создавать неудобства.
Три основные категории разъемов имеют соответствующие коннекторы на материнских платах в специально отведенных местах, которые незначительно меняются в зависимости от конкретного устройства.
Аудио-разъемы
На передних панелях современных корпусов можно встретить два вида реализации аудио0-разъемов:
- Раздельный — отдельные разъемы для микрофона и аудиовыхода.
- Комбинированный — один разъем, совмещающий в себе оба интерфейса.
Вне зависимости от типа реализации, аудио-разъем подключается к плате при помощи одного стандартизированного коннектора. Аудио-разъем представляет собой коннектор в 9-pin, десятая колодка отсутствует, создавая тем самым специфичную структуру, не позволяющую подключить коннектор неправильно. Как правило, соответствующий разъем на материнской плате находится в ее нижней левой части и обозначен маркировкой HD_Audio. В компактных платах он может быть расположен не в самых удобных местах, а использование процессорных кулеров с горизонтальным расположением может сильно затруднить свободный доступ к разъему.
USB-порты
Разнообразие версий USB-портов не обошло стороной и компьютерные корпуса. В продаже можно встретить корпуса со стандартными USB-портами разных версий, двусторонними Type-C, а также с различными их сочетаниями.
USB 2.0
Этот тип разъема имеет схожий с аудио-разъемом коннектор в 9-pin, но с иным расположением отверстий — отсутствующая колодка находится с краю. Как правило, найти соответствующий разъем на плате можно неподалеку от массивной площадки для подключения кабеля питания в правой части материнской платы. Маркируется он обозначением USB. Зачастую на плате присутствует несколько таких разъемов.
USB 3.0
В отличие от более старой версии 2.0, порты USB 3.0 подключаются массивным кабелем и штекером. Для коннектора с 19-pin имеется отдельная фиксирующая рамка. Для предотвращения неправильного подключения у штекера предусмотрен специальный ключ и вставить его в разъем неправильной стороной попросту не получится. Располагается он также в группе с остальными USB-портами. Массивность коннектора в ряде случаев не позволяет аккуратно скрыть его, и этот фактор напрямую зависит от конкретной платы и корпуса.
USB Type-C
Современный и компактный разъем USB Type-C встречается далеко не во всех материнских платах, и, чтобы пользоваться соответствующим портом в корпусе, стоит заранее предусмотреть этот нюанс. Этот разъем имеет направляющую для плотного соединения коннекторов. Его коннектор кардинально отличается от рассмотренных ранее версий USB. Вместо колодок используются «дорожки» — по десять штук с каждой стороны. Как правило, его можно найти в группе с остальными USB-разъемами под маркировкой USB 3*.
Управление и индикация ПК
Если с подключением раннее рассмотренных коннекторов не должно возникнуть особых проблем, то подключение коннекторов управления и индикации ПК может доставить неопытному пользователю ряд проблем. Виной тому множество отдельных проводов, у которыз нет ни физических направляющих, ни защиты от неправильного подключения.
Как правило, необходимые разъемы находятся в правой нижней части материнской платы и обозначены надписью PANEL или F_PANEL. Коннекторы кнопок и индикаторов разделены на группы и располагаются друг за другом. В зависимости от конкретной платы колодки для подключения могут располагаться в разной последовательности. Поэтому важно иметь под рукой краткое руководство пользователя, где подробно указана распиновка платы. Если же его нет, можно воспользоваться подсказками производителя платы, а именно нанесенными маркировкой обозначениями рядом с колодками. Но стоит учесть, что они не во всех случаях могут быть читаемы.
Стандартная колодка представляет собой 9-pin коннектор, а коннекторы подключаются надписью вниз. Как правило, кнопка включения/выключения Power SW имеет сдвоенный провод и подключается в верхний крайний справа разъем.
Следующий шаг — подключение индикаторов, отображающих включение ПК Power LED. Нужные пины находятся в этом же ряду. Плюс — крайний слева, а минус, соответственно, правее.
На очереди кнопка перезагрузки Reset SW. В данном случае она располагается крайней справа, также, как и кнопка включения/выключения, но в нижнем ряду.
Остается лишь подключить индикацию работы жестких дисков HDD LED. Необходимый коннектор можно найти в нижнем ряду панели F_PANEL. Как и в случае с индикаторами питания ПК, плюсовой разъем находится левее, минусовой правее. В комплекте с материнской платой или корпусом пользователь может обнаружить переходник для подключения озвученных раннее коннекторов. Переходник значительно облегчает частое подключение/отсоединение миниатюрных разъемов.
Съемный носитель – неплохая альтернатива для хранения личной информации, фотографий, документов. Во внешнюю память можно скинуть резервную копию системы, фото, документы, фильма, да что угодно. В экстренном случае, вы всегда сможете восстановить смартфон. Но как подключить флешку к телефону, учитывая, что съемный носитель подключается через широкий штекер USB-А? На самом деле, все проще, чем кажется.
Перед вами универсальная инструкция, подходит для всех Андроид и iOs аппаратов: Alcatel, Asus, Lenovo, Meizu, Philips, Nokia, Oppo, Phillips, Prestigio, Sony Xperia, HTC, Samsung, Xiaomi (Redme), ZTE, BQ, Vertex, Micromax, Digma, Fly, Umidigi, Acer, Blackberry, Oukitel, Texet, Leagoo, Dexp, Doogie, Huawei (Honor), HomTom, китайских No-Name, продающихся под брендами Мегафон, Билайн, МТС. Актуально для планшетов, Android магнитол и TV приставок.
Для начала
В рамках данной статьи рассмотрим способы подсоединения съемного носителя к смартфонам на операционной системе Android. В конце материала затронем вопрос по iOs. Будем рассказывать о всех способах, начиная с простых, заканчивая сложными.
Проверить поддержку OTG адаптера
Все современные смартфоны имеют поддержку технологии OTG (On-The-Go). Функция появилась еще в редакции Android 3.1.
Если вы сомневаетесь в наличии функционала на своем устройстве либо «внешняя память» не определяется по каким-либо причинам, рекомендуем проверять поддержку OTG в приложении «USB OTG Checker».
Можно сделать проще, прийти в магазин компьютерной техники и попросить продавца подключить к смартфону флешку через переходник. Нужный девайс можно взять с витрины. Заодно и проверите работоспособность.
Если нет поддержки OTG
Возможно, у вас очень старый смартфон, на котором нет OTG. Но съемный носитель есть, и его нужно как-то подключить. Тогда попробуйте следующее:
- Подключите флешку через USB-хаб или двухголовый USB-провод. К данным девайсам подвести отдельное питание через дополнительный кабель. Об этом способе расскажем подробнее ниже в статье.
- Включите съемный носитель в специальный USB-концентратор. Это девайс с собственным питанием. В него можно подключать не только «внешнюю память», но и внешний жесткий диск, принтер и другие периферийные устройства.
- Принудительно обновите систему Android. Вам придется перепрошить на версию выше 3.1, но сработает этот способы далеко не всегда.
В редких случаях производитель может намеренно отключить доступ к функции OTG. Такое можно встретить или на очень старых смартфонах, или в дешевых китайских «noname» гаджетах.
Убедиться что флешка отформатированна под FAT32
Иногда проблема кроется в том, что съемный носитель отформатирован не в той файловой системе, например в NTFS. В данном случае Андроид не распознает съемный диск. Это же правило работает относительно файловых систем: F2FS (Win), ext2, ext3, ext4 (Linux). Только смартфоны бренда Samsung имеют поддержку NTFS из коробки.
Чтобы смартфон смог увидеть флеш-память, придется отформатировать память под файловую систему FAT32.
Лучше всего это делать со стационарного ПК или ноутбука:
- Подключите съемный диск к компьютеру. Зайдите в «Мой компьютер».
- Найдите съемный носитель, и кликните по нему правой клавишей мыши.
- В выпадающем меню нажмите по строчке «Форматировать».
- В новом окне выберите FAT32 в выпадающем списке.
- Нажмите на кнопку «начать».
Обязательно сохраните все личные данные на жесткий диск, перед тем как начать процесс форматирования. Есть и более быстрый способ, через командную строку:
Ввод команд везде без кавычек.
Простые способы
Это были подготовительные процедуры, теперь рассмотрим саму процедуру подключения.
Подключить адаптер через стандартный разъем
Для этого нужен, собственно, OTG-переходник. Подбирайте его в магазине, отталкиваясь от разъема питания смартфона.
Например, если в телефоне micro-USB, значит вам потребуется переходник типа: micro-USB/USB-A.
Купить двухстороннюю флешку
Можно заранее приобрести флешку с двумя разными штекерами. Сегодня подобных гаджетов очень много.
С одной стороны на носителе будет USB-A, с другой – type-C или micro-US штекер.
Причем функция OTG уже будет вшита в девайс. Подобные накопители есть в большом количестве в свободной продаже.
Сложный способ
Выход из положения – USB-хаб с внешним питанием.
Алгоритм подключения следующий:
- Покупаете OTG-адаптер, USB-хаб, зарядку на 5 Вт с проводом типа USB-А.
- Подключаете хаб в смартфон через OTG-переходник.
- Включаете провод от зарядника в хаб, зарядник подключаете в сеть.
- Втыкаете флешку в USB-хаб и пользуетесь ей.
Способ примечателен тем, что в хаб можно включить не только «внешнюю память», но и другую периферию. Например: мышку, клавиатуру или принтер. Так можно собрать мини-ПК на базе сотового.
Возможные проблемы
Флешка или внешний диск с NTFS или ExFat файловой системой
Этот вариант мы расписали выше. В качестве рекомендации рассматривалась процедура форматирования съемного носителя, если в нем стоит файловая система NTFS или ExFat.
Эти технологии были придуманы специально для чтения и записи очень больших файлов (более 4 Гб), также они встречаются на iOs. Чаще всего файловые системы данного типа ставят на съемные накопители большого объема: от 64 Гб и выше.
Но что делать, если под рукой нет ПК или ноутбука? Или вы в принципе не рассматриваете форматирование диска, как выход из ситуации. Для решения этой проблемы потребуется установка дополнительных приложений:
- ES File Manager. Очень старый, но функциональный менеджер-проводник. Поддерживает большое количество файловых систем. Распространяется бесплатно, но есть встроенная реклама.
- USB Media Explorer. Еще одно приложение, которое позволяет работать с объемными файлами. Изначально предназначалось для просмотра потокового контента, а также содержимого съемных носителей с цифровых камер.
- Total Commander. Одна из самых старых программ с функцией подключения «внешние памяти». Не требует рут-прав для корректной работы. Единственное, что придется сделать – перемонтировать диск, чтобы нормально просматривать содержимое NTFS-носителей.
Внимание! При установке приложений некоторые программы попросят доступ к файлам и прочим разделам системы. Выдайте им эти права при запросе, иначе подключение не произойдет.
Не подключается
Бывает и так, что все попытки подключить съемный носитель оказываются тщетными. Возможно, есть следующие проблемы:
В любом случае, сначала проверьте съемный носитель на другом девайсе – ПК или ноутбуке.
Если они отказываются распознавать накопитель, скорее всего проблема именно в нем. Компьютер определяет устройство – ищите неполадки по указанным пунктам.
Не отображается в штатных программах
Теперь рассмотрим ситуации, когда смартфон определил флеш-память, но не смог прочесть содержимое с помощью штатных программ:
- Самое простое объяснение – съемный диск не отформатирован под FAT32. Придется скачивать дополнительные приложения. Список выше.
- Иногда телефон напрочь отказывается монтировать диск, если ему не выдать root-права. Чтобы обойти данное ограничение, воспользуйтесь утилитой StickMount. Программа работает с разными чипсетами флешек – скачать программу с официальной ветки 4PDA.
Возможно, вы просто повредили накопиетль, когда извлекали «на горячую». Работа чипа или файловой системы нарушена из-за скачка электричества, проще говоря искры, которая выжгла чип памяти.
Рассмотрим самые частые вопросы, которые поступают от пользователей. В основном они касаются самой технологии OTG и сферы ее применения.
Что еще можно подключить через USB OTG
Данная технология была специально разработана для подключения разных периферийных устройств, которые используются для ПК или ноутбука:
USB концентратор — это адаптер для увеличения количества свободных портов. Если в ноутбуке 2-3 разъема, хаб позволит подключить все необходимое. Сам HUB занимает 1 порт компьютера.
Внутренности
Схожее по назначению устройство USB-splitter . Чем они отличаются от хабов? В нем нет никакой платы или микросхемы. Устройство состоит только из жил проводов, оплетки и фильтра электромагнитных помех (необязательно). Только один из выходов может передавать данные, остальные используются для зарядки.
USB-splitter. В нем нет никакой платы или микросхемы. USB-splitter. В нем нет никакой платы или микросхемы.Как это работает?
Возьмем для примера интерфейс подключения USB 2.0. Разъем имеет по 2 контакта для питания и передачи данных. Представьте, что вы подключили 2 флешки к сплитеру. Как компьютер поймет, с каким устройством надо обмениваеться информацией? Никак. Поэтому контакты для передачи данных имеет только один вход, другой вход только питание. Такие устройства обычно применяются, когда помимо передачи данных, устройству необходимо дополнительное питание, а свободный USB порт один. Примером такого устройства может служить внешний жесткий диск . В связи с тем, что в настоящее время выпускаемые внешние диски не требуют подключения дополнительного питания, USB-splitter почти изжил себя.
Как подключить несколько USB устройств к одному порту?
Для этого нужна дополнительная часть, которая будет решать кто сейчас обменивается данными. Фактически компьютер обменивается информацией с микросхемой, а она взаимодействует с флешками, принтерами, камерами.
Разница в цене дешевого USB-HUB и USB-Splitter меньше 50 ₽. Выбирая между ними, остановитесь на хабе. Он принесет больше пользы за те же деньги.
Стандарт USB 2.0, 3.0, 3.1
В 1996 году был выпущен первая версия интерфейса USB, для унификации подключения периферии различных производителей к компьютерам. Дальнейшие версии стандарта USB отличаются по 2 основным параметрам:
- Скорость передачи данных . Максимальная: USB 1.0 — 12 Мбит/с, USB 2.0 — 480 Мбит/с, USB 3.0 — 5 Гбит/с, USB 3.1 — 10 Гбит/с, USB 3.2 — 20 Гбит/с, USB 4 — 40 Гбит/с. С каждым «обновлением» скорость обмена данными росла, и сейчас она упирается в периферию;
- Максимальный ток . Для USB 2 версии нормой было 5 Вольт и 0,5 Ампера (итоговая мощность 2,5 Вт). Это сопоставимо с зарядными блоками для старых смартфонов. Начиная с USB 3.0 силу тока подняли до 0,9 Ампер (мощность стала 4,5 Вт). Дополнительный стандарт Power Delivery обеспечивает мощность до 100 Вт.
HUB работает ровно по тем же протоколам. При использовании действует правило самого низкого стандарта. Если компьютер имеет разъем USB 2.0, а хаб — USB 3.2, итоговая скорость и питание будут по протоколу USB 2.0. Перед покупкой нужно определить, какой порт встроен в ваш компьютер, и что вы будете подключать к хабу. Например, для внешних жестких дисков мощности концентратора USB 2.0 может не хватить, а вот для принтера или сканера будет достаточно.
При использовании действует правило самого низкого стандарта. Если компьютер работает как 2.0, а хаб — 3.2, итоговая скорость и питание будет по протоколу 2.0. При использовании действует правило самого низкого стандарта. Если компьютер работает как 2.0, а хаб — 3.2, итоговая скорость и питание будет по протоколу 2.0.Мы рекомендуем выбирать USB-коммутатор стандарта не ниже 3.0. Он быстрее зарядит ваш смартфон и передаст фотографии с фотоаппарата.
Дополнительное питание
Все USB-HUB можно разделить на активные и пассивные. Активные — разветвители, к которым подключается дополнительный блок питания. Зачем это нужно? Если подключить энергоёмкое устройство, например внешний HDD , оно заберет всю энергию на себя. При этом остальные устройства могут не распознаваться компьютером или самопроизвольно отключаться. Активные разветвители обеспечивают достаточным питанием всю периферию. Пассивные не имеют дополнительного питания.
Активный USB концентратор. Если планируется использовать аксессуары, которые требуют высокой мощности ищите хаб с дополнительным питанием Активный USB концентратор. Если планируется использовать аксессуары, которые требуют высокой мощности ищите хаб с дополнительным питаниемЕсли пассивные USB концентраторы стоят около 300 ₽ ( SmartBuy SBHA-6810 ), то стоимость активных только начинается от 500 ₽ ( Defender Quadro Power ). Выбирать нужно из того, что вы будете подключать к хабу. Если это клавиатура, мышь, флешки, принтеры пассивных будет достаточно, хотя и впритык. Для устройств требующих много энергии — съемный HDD, DVD привод, или высокую скорость передачи, лучше переплатить.
Количество портов
Концентраторы для дома имеют от 2 до 10 портов. Важно понимать, что они все равно делят между собой шину передачи информации. Хотя трудно преодолеть 20 Гбит/с стандарта 3.2, одновременное использование 10 устройств будет замедлять их скорость. Оптимальным считается 4-7 портов. Часто в плате встроены выключатели с индикаторами разъемов. Если порты не используются, их лучше выключить.
USB Hub. Если порты не используются, их лучше выключить. USB Hub. Если порты не используются, их лучше выключить.Качество сборки
Очень важный критерий. USB-HUB постоянно в движении — что-то подключается, что-то отключается. Перед покупкой посмотрите на плотность разъема. Если он изначально разболтан, через пару месяцев контакт будет пропадать от легкого прикосновения. Также посмотрите на сам корпус. Будет очень не приятно если он рассыплется после 1 падения.
Порт подключения
Основные два стандарта подключения концентраторов: USB Type-A и USB Type-C. Первый — это классический USB, который есть на большинстве материнских плат. Штекер подключается только 1 стороной. Type-C — новый порт, включающий дополнительные режимы работы. Штекер может подключается любой стороной.
Далее от Автора :
Прочитав пару статей других пользователей, захотелось самому начеркать чего-то полезного для остальных. Как все поняли из названия, речь пойдет о создании USB mass storage device класса на програмной реализации V-USB.
Сразу оговорюсь, что все приведенные фотки моего девайса тока для ознакомления, потому как это платка мой программатор AVR по USB со своим бутом и прогой для апдейту. Схему я конечно выложу, но плату разводить, наверное, специально для этого проекта, не буду.
Проект выполнен на IAR’е, sPlan, SprintLayout, Device Monitoring Studio и утюге под пиво =) Ну, в путь!
Для начала, немного теории. MSD или Mass Storage Class это ничто иное, как один из стандартных классов USB для описания и взаимодействия с утройствами хранения информации. Реализаций и стандартов MSD довольно много и заморачиваться на каждом из них нет смысла. Опишу самый распространенный из них(он же самый простой на мой взгляд): Bulk-only или BBB.
В стандарте USB есть такое понятие, как конечная точка(end-point). Конечная точка — это часть USB-устройства, которая имеет уникальный идентификатор и является получателем или отправителем информации, передаваемой по шине USB. Проще говоря, это буфер, сохраняющий несколько байт. Обычно это блок данных в памяти или регистр микроконтроллера. Данные, хранящиеся в конечной точке, могут быть либо принятыми данными, либо данными, ожидающими передачу. Хост также имеет буфер для приема и передачи данных, но хост не имеет конечных точек.
Конечная точка имеет следующие основные параметры:
1 - Частота доступа к шине
2 - Допустимая величина задержки обслуживания
3 - Требуемая ширина полосы пропускания канала
4 - Номер конечной точки
5 - Способ обработки ошибок
6 - Максимальный размер пакета, который конечная точка может принимать или отправлять;
7 - Используемый конечной точкой тип посылок
8 - Направление передачи данных
Любое USB-устройство имеет конечную точку с нулевым номером (Endpoint Zero). Эта точка позволяет хосту опрашивать устройство с целью определения его типа и параметров, выполнять инициализацию и конфигурирование устройства.
Кроме нулевой точки, устройства, обычно, имеют дополнительные конечные точки, которые используются для обмена данными с хостом. Дополнительные точки могут работать либо только на прием данных от хоста (входные точки, IN), либо только на передачу данных хосту (выходные точки, OUT). Число дополнительных конечных точек устройств определяется режимом передачи.
Для низкоскоростных устройств допускается наличие одной или двух дополнительных конечных точек, а для высокоскоростных — до 15 входных и 15 выходных дополнительных точек.
Но это тока теория, которая выглядит довольно абстрактно. Будем считать, что конечная точка, это ничто иное как фунция в языке C, которая тока принимает параметры, или только возвращает значения.
Так вот, мы строим устьройство, отвечающее спецификации bulk-only. И тут самое приятное: все события делятся на три фазы:
1 - Прием команды от хоста(копьютера)(CBW)
2 - Прием/Передача запрашиваемых данных(DATA)
3 - Передача хосту результата выполнения принятой комманды(STATUS)
Здесь видно, что мы принимаем данные и отправляем данные, значит мы имеем 2 конечные точки (от хоста к устройству и наоборот), а, исходя из выбранной спецификации, эти точки используют bulk передачу данных.
Следовательно мы должны сконфигурировать библиотеку V-USB соответсвующим образом:
1 - Описываем конечную точку-in
2 - Конечную точку-out
3 - Указываем v-USB, что мы используем 2 конечные точки помимо основной (control-endpoint)
4 - Задаем класс устройсва USB — Mass Storage Class Bulk-only (Не пугайтесь, все это легко видно из файлов прошивки).
На этом весь процесс создания устройства MSD bulk-only закончен и мы приступаем к тому, что принимаем от хоста комманды и соответсвенно реагируем на них!
Теперь вкратце о тех самых коммандах от хоста. Их не так много и большинство из низ поступают только пару раз. Итак хост может попросить от нас следующее:
Теперь далее. Пересмотрев массу устройств хранения информации (EEPROM, nand и т.д.) я выбрал, наверное, самое распространненое SD/MMC карту памяти. Подключение ее к AVRке давно известно, а протокол хорошо разжеван. Еще один плюс в том, что эти карты могут читать/писать по 512 байт данных, что очень подходит для данной задачи.
Так, основными коммандами MSD bulk-only устройстве являются чтение и запись блоков информации. Драйвер Windows (да простят меня пользователи Linux) обращается к нашему устройству по принципу LBA, то есть адрес логического блока (или его номер, что одно и тоже) и их количество.
В нашем случае один логический блок это сектор размером в 512 байт. Так если ОС запросит у нас данные из 20-го LBA, то мы просто умножим 20 на 512 и получим линейный адрес на устройстве носителя. Затем прочитем/запишем нужное число блоков и все! Знать что-то о данных на устройстве хранения информации и способе их размещения AVR не должна. Наша задача обеспечить возможность чтения и записи этих самых блоков из/на устроство хранения информации, а остальное сделает ОС.)
Теперь я представлю Вам мою схемку. Сразу оговорюсь, делал на быструю руку, так как печатку делал из головы (схема не сложная):
Многие заметят, что практически стандартная схема для устройств на V-USB, и что я немного перемудрил с ней, на я повторюсь, что собрал флешку из моего программатора, поэтому здесь немного изврата присутствует. Перемычка JP2 предназначена для прошивки нашего устройства и должна быть установлена только во время обновления прошивки устройства(разъем Х2). Диоды D1 и D2 предназначены для задания рабочего напряжения питания
3.6V. Можно обойтись и одним(проверено неоднократно), хотя при грамотном подходе лучше сделать не так как я=)
Здесь мы указали, что порт, к которому подключены дифференциальные сигналы D+ и D-, это порт PORTD, а выводы, к которым они подключены, соответсвенно 3 и 2. Частота кварцевого резонатора равна 16 Мгц. Затем мы описали, что мы сами управляем процессом подключения нашего устройства к шине USB. Для этого мы сделали следующее:
Это видно из схемы: резистор R7, подключенный к выводу 1 порта PORTD. Далее в программе нам это понадобиться для того, чтобы произвести подключение к хосту в момент времени, который нам более всего подходит. (напомню, что Хост определяет наличие подключения устройства к шине в случае подтягивания линии D- к Vdd. Это я для низкоскоростных устройств).
В рекомендации от V-USB сказано, что линия D+ должна быть подключена к INT0, но я внес некоторые изменения и подключил ее к INT1, что в принципе не запрещено (подключают к IN0 т.к. прерывание INT0 имеет наивысший приоритет в системе прерываний AVR. прим. DH), поэтому я указываю на соответствующие изменения в следующих строках:
В принципе, в описании аппаратной части USB это все.
В этом же файле мы указываем, что класс и подкласс устройства определяется классом и подклассом интерфейса (это я про то, что мы используем стандартный интерфейс MSD bulk-only). Это делается следующим образом:
Поскольку мы использовали стандартный класс USB MSD, то и описать устройство это класса обязаны мы. Позже я вернусь к этим строкам, а пока мы оставим их в покое.
В принципе в этом файле вроде как и все, но я оговорюсь для наиболее дотошных (как я=): я не пират и не пытался нарушить чьета права? использовав VID/PID, которые в моем файле usbconfig.h. Мало того, я даже не знаю чье они, просто первые попавшиеся под руку==)
Пожалуй, распишу немного процесс инициализации устройства на V-USB.
Немного выше я определил небольшой макрос USB_CFG_PULLUP_IOPORTNAME в соответствии со схемой, что в свою очередь дало мне возможность производить подключение и отключение от шины USB в произвольные моменты времени. Так вот, для подключения к шине используется макрос
usbDeviceConnect();
при вызове которого происходит подтяжка линии D- к напряжению питания устройства. Хост определяет это событие и начинает процедуру конфигурации устройства USB: Сброс девайса, присвоение адреса и т.д.
Во всей этой рутинной суете главное для нас это этап запроса дескриптора устройства, который в свою очередь содержит поддерживаемую версию USB, максимальный размер пакета для control конечной точки, идентификаторы устройства и производителя VID/PID, версию устройсва, строковые номера индексов(если таковые присутсвуют) и количество конфигураций нас родимых.
Хочу отметить, что в дескрипторе кофигурации мы встраиваем дескриптор интерфейса и дескрипторы конечных точек. Этот (или эти, если хотите) дескриптор передается V-USB благодаря ранее описанному определению
В этом же десрипторе (usbDescriptorConfiguration) мы указали, пожалуй, самую важную информацию для нашего устройства, а именно:
USB_PUBLIC void usbFunctionWriteOut(unsigned char* ucData, unsigned char ucLen)
которая будет принимать все interrupt/bulk передачи данных от хоста к нашему устройству для всех конечных точек, кроме 0 (это control точка). Напомню, что максимальное количество байт, которое может быть принято через usbFunctionWriteOut за один вызов равно 8 байтам (это ограничение V-USB). Ну вот, теперь мы готовы принимать поступающие от хоста байты =))) И на этом этапе мы перейдем к следующему этапу — разделение потока байт от хоста на вменяемые пакеты, которые несут нам полезную информацию. Как мы узнали ранее, хост может направлять в MSD устройство толька комманды и данные. Теперь мы сделаем следующее:
Для того, чтобы воплотить в жизнь написанное чуть выше, давайте разберемся с несколькими положениями, которые касаются Mass Storage Class в целом и bulk-only в частности. Как я уже оговаривал, Mass Storage Class(MSC) не подразумевает того, что устройство, которое работает согласно этой спецификации, занет что-либо о фойловой системе на своем насителе. Оснойвной задачей такого устройсва является предостваление запрашиваемой информации с носителя в нужном объеме и с нужного адреса. Это, с одной стороны, облегчает работу нам с вами, с другой стороны позволяет строить устройства, не привязанные к конкретным накопителям. Все, что мы должны уметь, это выполнить требуемое хостом действие. А действия эти не так уж и сложны(если не вдаваться во все мелочи данного протокола) — выполнять команды из набора SCSI. Я описал все необходимые из них ранее.
Но что-то меня опять понесло в теорию=) Давайте все-таки опишем этот самы загадочный CBW:
Мы помним, что в MSD bulk-only все транзакции делятся максинум на три этапа. Так вот, приняли мы CBW и выделили из него нужную нам информацию. Это и есть первый этап: так называемый command transport. Из приведенной блок-схемы выше мы видим, что следующим этапом в нашишем диалоге могжут быть передача данных хосту (либо прием их от него) или передача статуса обработки принятого CBW. Так вот, передача того самого статуса являестя обязательным этапом для любой комманды. Этот этап как бы подтвердает тот факт, что мы приняли от хоста CBW с номером dCBWTag и выполнили ее(вне зависимости от результата ее выполненя). Этот этап называется status transport, а данные передаются определенным блоком, имя которому CSW. Давайте опишем и его:
Эта небольшая структурка как бы является завершением транзакции MSD вида коммандв->данные->статус. Поля этой структуры означают следующее: dCSWSignature — сигнатура блока CSW (это константа, в char это USBS), dCSWTag — номер блока(должен совпадать с номером CBW, для которого высылается статус), dCSWDataResidue — разности между ожидаемым чилом байт от хоста dCBWDataTransferLength в блоке CBW и реально принятыми(при OUT передаче) и наобоот, между запрошенным чилов байт в dCBWDataTransferLength и переданным хосту. Ну и наконец bCSWStatus — результат выполнения комманды с тегом dCSWTag. Нуль — значит все впорядке, другие значения — смотрим в спецификации =))).
Ну и на последок в этапах транзакций осталась стадия передачи данных(data transport). Напомню, что этот этап не всегда присутствует в процессе общения MSD с хостом. Есть энное количество комманд, которые не требуют передачи данных. Но все же этот этап присутствует и мы его сейчас рассмотрим. Мы знаем, что данные могут передаваться как от хоста к MSD, так и наоборот(мы же помним, что мы описали 2 конечные токи in и out). Так вот, в данной реализации MSD от хоста к MSD могут передаваться только данные для записи на носитель информации, а от MSD к хосту как данные прочитанные с носителя, так и запрашиваемые хостом параметры нашего устройства.
В принципе про этапы передачи информации MSD наверное и все. Теперь я коснусь реализации всего написанного выше. Примем исходное сосояние(назовем его RxCBW)=) Хост нам не передал не байта и мы ожидаем от него CBW. Размер этого блока мы занем, а следовательно первые sizeof(CBW) приятых байт и будут CBW. Как только мы приняли CBW мы начинаем его анализировать. Анализ блока CBW начинается с того, что мы распознаем комманду, которая находиться в USB_MSD_CBW.CBWCB[0]. Значение этого байта и есть комманда, которую хост просит нас выполнить. На этом этапе, в зависимости от предложенной нам комманды, устройство может перейти в одно из нескольких состояний: прием данных от хоста(RxData), передача данных хосту(TxData) или передача статуса(TxStatus). При переходе в состояние RxData мы принимаем от хоста n байт информации, записываем ее на носитель и переходим в состояние TxStatus. При переходе в состояние TxData мы передаем хосту запрошенную информацию n байт и переходим в состояние TxStatus. Из состояния TxStatus, передав блок CSW хосту, переходим в состояние RxCBW и ожидаем новые байты от хоста. Сейчас попробую предстваить это во временной диаграмме.
Ну как-то так (я понимаю, что не все, наверное, понятно, так что готов ответить на вопросы).
Читайте также: