Usb порты и интерфейсы позволяет. Как это работает: USB. USB-порты не работают из-за повреждения контроллера

О том, что такое флэшка, Вы можете прочитать на многих сайтах. Вам также подробно расскажут, чего нельзя с ней делать. А вот как узнать, что с ней можно делать? А вот бы урок с наглядным показом по всем пунктам (от А до Я) о работе с флэшкой? Допустим, что Вы пожелали перенести с одного компа на другой текст (пускай второй комп к Интернету будет неподключен).

А во втором случае мультик, в третьем случае и то и другое. Что самое главное в уроке – ВСЕ последовательные действия переноса.

Оригинальное требование? Но ведь только таким образом можно показать, разъяснить, уберечь незнайку (камушек в огород новичков, не совладать им с флэшкой) от лишних и ненужных действий!

Информации о флешке много, а вот конкретной пошаговой “инструкции” по работе с флешкой нет! А зря! Уверена, что такие вот “трудности” есть у многих, а вот написать о них. Так что держите урок о работе с флешкой.

Вот как выглядит обычная флэшка.

Шаг 1. Вставляете ее в USB-порт (см. картинку).

Рядом с этим портом обычно находятся разъемы для наушников и микрофона.

Вот они рядом зеленого и розового цвета.

Шаг 2. Теперь нажимаете «Пуск». Затем «Мой компьютер». Среди картинок вы увидите картинку съемного диска. Название у нее может быть любое.

Главное это его наглядное изображение на картинке.

Например, «KINGSTON (F:) ». При этом «KINGSTON» означает название производителя флэшки, а (F:) – это название диска.

Шаг 3. Записывать информацию на флэшку можно, по крайней мере, 2-мя способами. Рассмотрим оба.

1 способ. Продолжим с того места, на котором остановились.

1. Щелкаем по изображению флэшки левой клавишей мышки. В результате вам откроется ее содержимое.

2. Выбирайте на рабочем столе или в любой другой папке нужный файл (текстовый документ, музыку, видео, все, что угодно), который вы хотите скопировать на флэшку.

3. Теперь захватываете его левой клавишей мыши и тащите в папку флешки. Отпускаете.

Все. Вы скопировали файл на флешку!

2. способ.

1.Выбираете нужный вам файл для копирования на флешку.

2. Щелкайте по нему правой клавишей мышки.

3. Выбираете пункт «Отправить»

4. Затем выбираете пункт с изображением флешки. В нашем примере «KINGSTON (F:) ».

5. Все, файл отправлен на флешку. Можете проверить его наличие на флешке.

Шаг 4. Информацию Вы записали. Теперь надо безопасно извлечь флешку из компьютера. Для этого делаете следующее.

На этом все. Теперь вы и работу с флешкой освоили. И готовы покорять новые компьютерные горизонты! Успехов вам в этом!

5 честных сервисов заработка в Интернете

В настоящий момент один из самых популярных интерфейсов — это безусловно USB. Девайсов, которые его используют, просто огромное количество. Это и мышки, и клавиатуры, и принтеры, и сотовые телефоны, и много чего ещё. В отличии от стремительно исчезающего RS-232, USB встречается во всех современных компьютерах, ноутбуках, телефонах… так что, если мы хотим создавать действительно универсальные девайсы, придётся нам этот интерфейс изучать. Вот прямо сейчас и начнём, а заодно, по ходу изучения, попытаемся сами посоздавать каких-нибудь USB-девайсов.

Итак, USB (universal serial bus) — универсальная последовательная шина . Большинство USB-устройств соответствуют спецификациям 1.1 и 2.0. В спецификации 1.1 определены две скорости передачи информации: LS (low speed) — низкая скорость, 1,5 Мбит/с и FS (full speed) — полная скорость, 12 Мбит/с. В редакции 2.0 к ним добавлена ещё и высокая скорость HS (high speed), 480 Мбит/с. Не так давно вышла ещё спецификация — 3.0, но устройства, поддерживающие этот стандарт, пока не очень распространены, поэтому и бог с ней.

Физические устройства на шине USB бывают трёх типов : хост-контроллер , хаб и конечное устройство .

Хост-контроллер — это главный управляющий шиной USB . Именно он обеспечивает связь устройств, подключенных к шине, с компьютером (с ОС и с клиентским ПО). Любые сеансы обмена данными может начинать только хост-контроллер, остальные устройства молчат в тряпочку, пока хост-контроллер к ним не обратится.

Контроллер взаимодействует с ОС через драйвер хост-контроллера (HCD — host controller driver) . Этот драйвер привязан к конкретной модели хост-контроллера. Только он знает какие данные, в какие регистры и в каком порядке пихать в хост-контроллер, а также откуда какие данные брать, чтобы хост-контроллер сделал то, чего от него хотят.

Со стороны ОС шиной USB управляет ещё один драйвер — USBD (universal serial bus driver) . Ему совершенно пофиг, как там конкретно реализован хост-контроллер и где у него какие регистры (для этого есть HCD), USBD решает общие (неспецифические для конкретного хост-контроллера) вопросы: взаимодействие с клиентским ПО, нумерация устройств на шине, их конфигурирование, распределение питания и пропускной способности шины и так далее. Это, можно сказать, своеобразный диспетчер, который осуществляет общий контроль над шиной и её взаимодействие с внешним миром (с клиентским ПО).

Хост-контроллер — птица гордая и пугливая, поэтому непосредственно ни с кем из подданных он не разговаривает. Для общения с подданными у него есть специальные помощники — хабы (их ещё иногда называют концентраторами).

Хабы — это устройства, которые позволяют физически подключить устройства USB к шине. Они предоставляют порты для подключения, ретранслируют трафик от хост-контроллера к конечным устройствам и обратно, отслеживают состояние и физически управляют электропитанием портов. У хабов есть один восходящий (upstream) порт, — это тот порт, который подключен по направлению к хост-контроллеру, и несколько нисходящих (downstream) портов, — это порты, к которым подключаются конечные устройства. Хабы можно каскадировать, подключая к нисходящему порту хаба ещё один хаб. Самый главный хаб, интегрированный с хост-контроллером, называется корневым хабом (он же — корневой концентратор или root hub ).

Другими словами можно сказать, что у хаба есть две основных задачи: 1) создать хост-контроллеру иллюзию, что он непосредственно разговаривает с подключенным к хабу устройством; 2) наблюдать за своим сегментом шины (за девайсами, подключенными к нисходящим портам), сообщать «наверх» обо всех изменениях и, если надо, — подключать и отключать питание портов.

Конечные устройства — это все те полезные устройства, которые мы подключаем к шине USB (флэшки, принтеры, мышки и т.д.)

Нужно сказать, что физические устройства и логические устройства — это не всегда одно и тоже . Существуют, например, такие конечные устройства (называемые составными — compound devices ), которые содержат внутри себя хаб, к которому подключено ещё несколько устройств. Несмотря на то, что в этом случае хаб и все, подключенные к нему устройства, запакованы в один корпус, с точки зрения логики шины это будут совершенно разные устройства.

Для логических конечных устройств обычно используют термин «функции» . Таким образом, с точки зрения логики шины, устройства на ней можно разделить на хабы и функции (и неважно, запакованы ли они в один корпус или нет). Каждое логическое устройство на шине имеет уникальный адрес (1-127), присваеваемый ему хостом при подключении.

Исходя из описанного выше, получается, что физическая топология шины USB — дерево (ну, потому что хабы можно каскадировать), а логическая топология — звезда, центром которой является хост-контроллер. Физическая и логическая топологии шины USB показаны на рисунке ниже.

Логическое устройство представляет собой набор так называемых конечных точек (endpoints или просто EP) . Физически, конечные точки — это просто разные буферы в логическом устройстве USB, через которые происходит обмен данными с хостом. Логичный вопрос — а зачем нам иметь несколько буферов? Ну, просто потому что удобно для разных задач иметь разные буферы. Устройство же у нас может выполнять параллельно несколько разных задач. (Минимум две — отслеживать команды управления от хоста и делать что-то полезное.) У этих разных задач могут могут быть разные степени важности, требования к надёжности, своевременности и скорости доставки данных и, наконец, источники и потребители пересылаемой информации также могут быть разные (источником и потребителем полезной инфы обычно является клиентский драйвер, в то же время всякая управляющая инфа ему обычно нафиг не нужна).

Поскольку для решения описанных выше проблем недостаточно иметь просто разные буферы для разной передаваемой информации, то в дополнение к этому придумали ещё кое-что.

Во-первых, придумали 4 различных типа передач. Для каждой конечной точки должно быть определено, каким из этих типов передач с ней нужно общаться. Типы передач в USB существуют следующие:

  1. изохронные передачи (isochronous transfers). Они предназначены для передачи потоковых данных в реальном времени. Такие передачи гарантируют время доставки, но не гарантируют, что все данные будут доставлены. Если во время передачи происходит ошибка, то данные просто теряются. Кроме того, для передач такого типа должно быть предварительно согласовано, какую часть пропускной способности шины эта передача будет занимать. Изохронные передачи имеют наивысший приоритет и имеют право занять до 90% пропускной способности канала. Передачи этого типа используются, например, для видеокамер, или колонок. Никого ведь не устроит, если звук в колонках будет лагать. Лучше уж потерять часть данных, но слушать песню не рывками, а непрерывно.
  2. прерывания (interrupts). Этот тип предназначен для спонтанных небольших сообщений, но с гарантированным временем обслуживания и гарантированной доставкой. Примером может служить USB клавиатура. Мы можем нажать на кнопку в любой момент (может 3 часа не нажимали, а может так и заклацали клавой каждую секунду). Пока мы спим за компом — и передавать ничего не надо. Но как только мы всё же щелканули по кнопкам — будьте любезны, сообщите об этом куда следует и желательно побыстрее.
  3. передача массивов данных (bulk data transfers). Для этого типа нет никаких гарантий по скорости, единственное в чём можно быть уверенным — что данные дойдут в целости и сохранности (когда-нибудь, гы-гы). Такие передачи имеют самый низкий приоритет, но зато им ничего не надо согласововать, — сколько останется свободной от других типов передач ширины канала — столько они и займут. Не останется вообще — будут ждать, когда канал освободится. Такие передачи можно использовать для обмена данными с устройствами, которым некуда спешить, например, с принтерами. Представьте, что вы отправили на печать USB-принтеру фотку и одновременно слушаете музыку в USB-колонках. Согласитесь ли вы, чтобы фотка напечаталась на 3 секунды раньше, но при этом начал лагать звук в колонках? Вероятнее всего нет, так ведь. Пусть лучше данные принтеру передаются медленнее, но зато музыка играет непрерывно, без всяких дёрганий.
  4. управляющие передачи (control transfers). Это передачи типа запрос-ответ. С помощью них передаются комады управления устройствами. Тут важна не только безошибочная передача, но и получение ответа о результатах выполнения команды. Кроме того, поскольку эти передачи являются служебными, то им гарантировано 10% пропускной способности канала.

Вернёмся к нашим конечным точкам. Для того, чтобы отличить одну точку от другой, — конечные точки, должны иметь уникальный номер. Но это не всё. Кроме номера, каждая конечная точка имеет ещё и направление. IN — если точка предназначена для передачи данных хосту, OUT — если точка предназначена для приёма данных от хоста. Точки с одинаковыми номерами, но с разными направлениями передачи данных — это разные с точки зрения логики шины конечные точки.

Единственное исключение — конечная точка EP0. У неё вообще особый статус. Она является служебной и предназначена для общего управления устройством (конфигурирование, настройка и т.д.). Кроме того, эта конечная точка двунаправленная и она должна обязательно присутствовать в любом USB-устройстве.

Исходя из всего вышеописанного, для идентификации какой-то конечной точки на шине, нам нужно знать адрес устройства, к которому относится конечная точка, её номер в устройстве и направление передачи данных через эту точку.

Поскольку устройство не всегда делает абсолютно всё на что оно только способно, да и способов решения одной и той же задачи оно может иметь несколько, то обычно нет необходимости задействовать абсолютно все конечные точки. Поэтому придумали такие понятия, как интерфейс , конфигурация и альтернативные установки. Интерфейс объединяет конечные точки, предназначенные для решения какой-либо одной задачи . Наборы используемых одновременно интерфейсов называются конфигурациями . Альтернативные установки позволяют включать или отключать какие-то входящие в конфигурацию конечные точки, в зависимости от способа решения задач для которых предназначена эта конфигурация.

Самих конфигураций и альтернативных установок у каждой из этих конфигураций для одного логического устройства может существовать несколько, но в каждый момент времени только один из этих наборов может быть активен. Причём хост должен знать, какой именно набор активен и в соответствии с этим обеспечивать связь с входящими в этот набор конечными точками. Остальные конечные точки, не входящие в активный набор, не будут доступны для связи.

Поясню, что значит «обеспечивать связь с конечными точками». Для связи клиентского ПО с каждой активной конечной точкой хост создаёт коммуникационный канал (communication pipe ). Клиентское ПО, которое хочет пообщаться с конечной точкой, должно отправить к соответствующему каналу пакет запроса ввода/вывода (IRP — input/output request packet) и ждать уведомления о завершении его обработки. В IRP указывается только адрес буфера, куда надо складывать или откуда брать данные и длина передачи. Всё остальное за вас сделает хост и обслуживающие его драйвера (USBD и HCD)

Источник данных - или контроллер или устройства в зависимости от направления - то посылается пакет данных. В большинстве случаев операция завершается назначением отправки данных Пакеты ACK, указывают на данные которые были приняты, НАК, указывают, что данные не были приняты, или STALL, который сигнализирует о том, что конечная точка застопорилась.

Движение на USB регулируется единицей времени кадра. Длина каждого кадра определяет время,и работает на скорости 1 кГц, поэтому есть 1000 кадров в секунду: одна в миллисекунду. В начале каждого фрейма начала кадра (SOF) пакет отправляется по шине, что позволяет изохронным устройствам сделать синхронизацию с каналом связи.
Концепция кадров имеет ключевое значение для того, что бы канал связи имел пропускную способность шины между различными конкурирующими устройствами. USB-разработчики считают, что было бы невозможно поддерживать несколько одновременных потоков изохронной связи с быстрыми темпами образца с помощью системы, в которой каждое устройство должно прерывать хост для каждой выборки данных, которые будут переданы. Поэтому они разработали систему так, чтобы изохронные устройства имели гарантированное полосы пропускания путем выделения им доли времени в каждом кадре.
По меньшей мере 10 процентов каждого кадра зарезервированы для использования в управляющих передачах. Эта доля может быть увеличена путем системного программного обеспечения, если производительность будет признана маленькой путём контроля пакетов, которые чрезмерно задерживаются. Максимальная непрерывная пропускная способность выше скорости USB должна быть менее 90 процентов скорости передачи.
Часть или всё оставшееся время в каждом кадре можно передать по каналам связи изохронных устройств. Фактическая доля выделяемых каждому каналу связи заранее оговорено, когда канал связи установлен. Это гарантирует, что определенный объем данных может быть передаваться каждую миллисекунду. Любая оставшаяся пропускная способность доступна для других типов передачи.
Изохронные устройства должны иметь буфер данных и один кадр и возможность отправить каждому блоку по шине в качестве одной транзакции. На приемном конце небуферизованные данные восстановливаются в режиме реального времени. Например, аудио устройство работает с CD-качеством и частотой дискретизации 44,1 кГц пошлет девять кадров с 44 выборками на кадр, а затем один кадр с 45 образцами. После буферизации на источник и unbuffering в пункте назначения будет задержка пару миллисекунд в предоставлении данных, но скорость доставки - которая, что важно для сохранения качества - будет сохранена.
Прерывание перевода также в определенной степени имеет критическое время. Когда создаются каналы связи для прерывания конечной точки, требуемый период доступа к шине от 1 до 255ms (10 и 255ms в случае низкой скорости устройств) не указан. Системное программное обеспечение опрашивает прерывание конечной точки в интервале, который гарантирует, что если операция прерывание еще не завершена она рассматривается в течение желаемого периода времени.
Обработка ошибок
Значительные функции проверки ошибок и обработки ошибок были встроены в USB , чтобы гарантировать, что это надежный способ подключения периферийных устройств к ПК. Целостность данных должна быть сопоставима с внутренней шиной расширения.
Иммунитет от повреждения данных благодаря шуму был обеспечен за счет использования дифференциальной логики каналов связи и экранированным кабелям. Если ошибки происходят, циклическая избыточная проверка (контрольные суммы) проводится отдельно на каждом контрольном поле данных пакетов,и позволяет на 100 процентов восстановлению как одиночной, так и двойных ошибок бита. Неустранимые ошибки могут быть обнаружены с высокой степенью достоверности.
Механизм самовосстановления встроен в протокол обмена сообщениями, с тайм-аутом для потерянных и недействительных пакетов. Некоторые ошибок встроены в аппаратные средства. Хост-контроллер будет отправлять транзакции приводящие к краху три раза, прежде чем сообщить об ошибке клиентского программного обеспечения.
Прерывание и передача данных объединяются в пакет, что бы предоставить подтверждение того, что данные были получены, или опросить, чтобы он был повторно отправлен, если этого не было. Таким образом гарантируется доставка этих данных, даже если время, необходимое для доставки меньше.
С изохронными данными, невозможно повторение не удачной передачи данных. Так как только один «Слот» выделяется в канале связи во время каждого кадра, повторная отправка данных приведет к задержке передачи последующих образцов данных, нарушая время элементов передачи данных. Поэтому отправляется не пакет, а данные которые должны быть приняты «как есть».
Заключение
Universal Serial Bus обеспечивает универсальный, гибкий способ подключения широкого спектра низкоскоростных и средне скоростных периферийных устройств к ПК при относительно низких затратах. Его установка, подключение и конфигурация означает, что установка и поддержка периферийных устройств значительно проще по сравнению с устройствами, использующими последовательный, параллельный или собственные интерфейсы.

Периферийные устройства, такие как мышь, клавиатура, Web-камера, принтер обычно подключаются к компьютеру через USB-порты. При этом нередко случается, что один или несколько портов перестают работать. То есть, при подключении к компьютеру, например, флешки она не распознается, клавиатура или мышка может зависать, а принтер может не отвечать и не выполнять печать страниц.

Существует несколько вероятных причин, по которым часть или все USB-порты на компьютере не работают. Попробуем разобраться в этом вопросе и выяснить, что следует сделать, чтобы восстановить нормальное функционирование компьютера.

Проверка настроек BIOS

Первое, на что следует обратить внимание – это настройки BIOS компьютера. Для входа в BIOS вам потребуется работоспособная клавиатура. Если клавиатура подключается к компьютеру через USB и она не работает, то вам необходимо подключить клавиатуру с разъемом PS/2. Иначе, вы просто ничего не сможете сделать.

Итак, заходим в BIOS, для чего при запуске компьютера необходимо нажать клавишу входа, обычно это DEL. Может быть и другая клавиша, которая отображается на экране и указана в руководстве к материнской плате. Войдя в BIOS, найдите раздел, отвечающий за интегрированные устройства (Integrated Peripherals) или раздел «Дополнительно» (Advanced). Здесь следует найти подраздел «Настройка конфигурации устройств» (Onboard Devices Configuration). Именно в нем находятся параметры, отвечающие за работу USB контроллеров: USB Function или USB 2.0 Controller. Данные параметры должны быть включены (Enabled). И если один из них отключен (Disabled), то наведите на него и нажмите Enter, тем самым включив его. Чтобы внесенные вами изменения не сбросились, необходимо их сохранить, нажав F10, и подтвердить сохранение, нажав клавишу Y или Enter.

После перезагрузки компьютера проверяем, работают ли порты USB. И если нет, то следует поискать причину в другом месте.

Не работают USB-порты на передней панели компьютера

Как частный случай у вас могут не работать USB только на передней панели. В такой ситуации необходимо проверить, подключены ли необходимые разъемы на материнской плате и не повреждены ли провода. Для этого открываем боковую крышку системного блока и обращаем внимание на разъем внизу материнской платы. На самой плате имеется надпись USB1 или USB2, как и на самой колодке. Провода от колодки идут на переднюю панель, и если они отключены или в одном месте оборваны, то вы обнаружили причину неисправности. Поврежденные провода следует соединить или заменить. Не лишним будет и проверить контакт в разъеме на материнской плате. Также стоит обратить внимание и на плату, расположенную на передней панели. Возможно, имеет место короткое замыкание, кстати, такое замыкание может быть спровоцировано скопившейся пылью. Поэтому обязательно очистите системный блок от пыли.

Проблемы с самим устройством или кабелем

Следующим источником проблем с USB может быть кабель, с помощью которого подключен, например, принтер. Эту неисправность легко выявить и устранить. Подсоединяем к проверяемому разъему флешку. Если она работает, то пробуем подключить с помощью подозрительного кабеля другое заведомо исправное оборудование, например USB-хаб. Если он также отказывается работать, то причина однозначно в кабеле и его следует заменить.

Перебои с питанием

Встречаются такие ситуации, когда питания для всех устройств попросту не хватает. Например, при подключении внешнего жесткого диска, который использует сразу два разъема USB, может отключаться принтер или клавиатура. В таком случае мощности блока питания недостаточно, чтобы обеспечить энергией всех потребителей. При этом проблема может проявляться не сразу, а через некоторое время после включения компьютера. Путей выхода из ситуации несколько. Если у вас установлен маломощный блок питания, например, 300 Вт, то было бы логично его поменять на более мощный, 450-600 Вт. Также можно использовать активный USB-хаб (с внешним питанием). Он позволит не только увеличить число подключаемых USB-устройств, но и запитать их от отдельного блока питания.

Еще одна причина, влияющая на работу USB – это севшая батарейка CMOS. Но при этом вы будете при каждом включении компьютера наблюдать сбившееся системное время и дату. После замены батарейки проблема уходит. Но это встречается не часто, поэтому следует проверить остальные возможные источники неисправности.

Отсутствие или некорректная установка драйверов USB

Причины, связанные с программными неисправностями в Windows 7/10, можно выявить с помощью Диспетчера устройств. Если вы замечаете, что не работает конкретно одно или несколько устройств вне зависимости от используемого порта, то это может говорить о том, что проблема в самом устройстве. Откройте Панель управления и перейдите в раздел Диспетчер устройств. Там будут отображаться все подключенные устройства. Если в списке имеются пункты, возле которых стоит желтый восклицательный знак или вместо названия стоит Неизвестное устройство, то проблема в этом самом устройстве. Здесь может быть несколько вариантов неполадок.

Часто USB-входы перестают работать после переустановки Windows 7/10. Причиной является неправильная установка драйверов или же необходимые драйвера могут быть вообще не найдены. Придется осуществлять подбор и инсталляцию вручную.

Нередко для устранения неисправности требуется просто обновить драйвера. Так, если отключено автоматическое обновление Windows, да и сама система была установлена достаточно давно, то теряется актуальность программного обеспечения, могут появляться системные ошибки. Устройство при этом начинает работать некорректно, а то и вовсе перестает функционировать. Для обновления (переустановки) драйверов контроллера USB можно воспользоваться CD/DVD-диском с драйверами для материнской платы или скачать необходимые драйвера с сайта производителя системной платы.

Также с помощью Диспетчера устройств можно выключить функцию экономии электропитания для всех портов. Раскройте список использующихся USB устройств, скрытых в разделах «Контроллеры USB», «Мышь и иные указывающие устройства», «Клавиатуры». Кликаем дважды мышкой по нужному устройству, чтобы открыть окно свойств. Теперь переключаемся на вкладку «Управление электропитанием» и убираем галочку «Разрешить отключение этого устройства для экономии электропитания». Таким образом, устройство будет задействовано всегда и при любых обстоятельствах.

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

USB-порты не работают из-за повреждения контроллера

Если ни одно из вышеперечисленных действий не помогло восстановить работоспособность портов USB, то следует проверить контроллер USB материнской платы, который мог выйти из строя. Качественный ремонт и диагностику в таком случае следует поручить специалистам сервисного центра. Как вариант выхода из проблемы – попробуйте установить плату расширения, так называемый USB PC контроллер, устанавливающийся в разъем PCI на материнской плате. Такое решение заметно дешевле ремонта контроллера USB материнской платы, а при использовании дополнительного USB-хаба проблема с недостатком портов будет вообще не актуальна.

Как видите, поиск и устранение проблем с USB-портами довольно хлопотное дело, а все потому, что причин может быть масса. Последовательный поиск и исключение заведомо неверных путей позволит вам выявить и устранить неисправность.

Интерфейс USB (Universal Serial Bus - Универсальный Последовательный Интерфейс) предназначен для подключения периферийных устройств к персональному компьютеру. Позволяет производить обмен информацией с периферийными устройствами на трех скоростях (спецификация USB 2.0 ):

  • Низкая скорость (Low Speed - LS) - 1,5 Мбит/с;
  • Полная скорость (Full Speed - FS) - 12 Мбит/с;
  • Высокая скорость (High Speed - HS) - 480 Мбит/с.
Для подключения периферийных устройств используется 4-жильный кабель: питание +5 В, сигнальные провода D+ и D- , общий провод.
Интерфейс USB соединяет между собой хост (host ) и устройства. Хост находится внутри персонального компьютера и управляет работой всего интерфейса. Для того, чтобы к одному порту USB можно было подключать более одного устройства, применяются хабы (hub - устройство, обеспечивающее подключение к интерфейсу других устройств). Корневой хаб (root hub ) находится внутри компьютера и подключен непосредственно к хосту. В интерфейсе USB используется специальный термин "функция" - это логически законченное устройств, выполняющее какую-либо специфическую функцию. Топология интерфейса USB представляет собой набор из 7 уровней (tier ): на первом уровне находится хост и корневой хаб, а на последнем - только функции. Устройство, в состав которого входит хаб и одна или несколько функций, называется составным (compaund device ).
Порт хаба или функции, подключаемый к хабу более высокого уровня, называется восходящим портом (upstream port ), а порт хаба, подключаемый к хабу более низкого уровня или к функции называется нисходящим портом (downstream port ).
Все передачи данных по интерфейсу иницируются хостом. Данные передаются в виде пакетов. В интерфейсе USB испольуется несколько разновидностей пакетов:
  • пакет-признак (token paket ) описывает тип и направление передачи данных, адрес устройства и порядковый номер конечной точки (КТ - адресуемая часть USB-устройства); пакет-признаки бывают нескольких типов: IN , OUT , SOF , SETUP ;
  • пакет с данными (data packet ) содержит передаваемые данные;
  • пакет согласования (handshake packet ) предназначен для сообщения о результатах пересылки данных; пакеты согасования бывают нескольких типов: ACK , NAK , STALL .
Таким образом каждая транзакция состоит из трех фаз: фаза передачи пакета-признака, фаза передачи данных и фаза согласования.
В интерфейсе USB используются несколько типов пересылок информации.
  • Управляющая пересылка (control transfer ) используется для конфигурации устройства, а также для других специфических для конкретного устройства целей.
  • Потоковая пересылка (bulk transfer ) используется для передачи относительно большого объема информации.
  • Пересылка с прерыванием (iterrupt transfer ) испольуется для передачи относительно небольшого объема информации, для которого важна своевременная его пересылка. Имеет ограниченную длительность и повышенный приоритет относительно других типов пересылок.
  • Изохронная пересылка (isochronous transfer ) также называется потоковой пересылкой реального времени. Информация, передаваемая в такой пересылке, требует реального масштаба времени при ее создании, пересылке и приеме.

Потоковые пересылки характеризуются гарантированной безошибочной передачей данных между хостом и функцией посредством обнаружения ошибок при передаче и повторного запроса информации.
Когда хост становится готовым принимать данные от функции, он в фазе передачи пакета-признака посылает функции IN -пакет. В ответ на это функция в фазе передачи данных передает хосту пакет с данными или, если она не может сделать этого, передает NAK - или STALL -пакет. NAK -пакет сообщает о временной неготовности функции передавать данные, а STALL -пакет сообщает о необходимости вмешательства хоста. Если хост успешно получил данные, то он в фазе согласования посылает функции ACK
Когда хост становится готовым передавать данные, он посылает функции OUT -пакет, сопровождаемый пакетом с данными. Если функция успешно получила данные, он отсылает хосту ACK -пакет, в противном случае отсылается NAK- или STALL -пакет.
Управляющие пересылки содержат не менее двух стадий: Setup-стадия и статусная стадия . Между ними может также располагаться стадия передачи данных . Setup-стадия используется для выполнения SETUP-транзакции , в процессе которой пересылается информация в управляющую КТ функции. SETUP-транзакция содержит SETUP -пакет, пакет с данным и пакет согласования. Если пакет с данными получен функцией успешно, то она отсылает хосту ACK -пакет. В противном случае транзакция завершается.
В стадии передачи данных управляющие пересылки содержат одну или несколько IN- или OUT- транзакций, принцип передачи которых такой же, как и в потоковых пересылках. Все транзакции в стадии передачи данных должны производиться в одном направлении.
В статусной стадии производится последняя транзакция, которая использует те же принципы, что и в потоковых пересылках. Направление этой транзакции противоположно тому, которое использовалось в стадии передачи данных. Статусная стадия служит для сообщения о результате выполнения SETUP-стадии и стадии передачи данных. Статусная информация всегда передается от функции к хосту. При управляющей записи (Control Write Transfer ) статусная информация передается в фазе передачи данных статусной стадии транзакции. При управляющем чтении (Control Read Transfer ) статусная информация возвращается в фазе согласовании статусной стадии транзакции, после того как хост отправит пакет данных нулевой длины в предыдущей фазе передачи данных.
Пересылки с прерыванием могут содержать IN - или OUT -пересылки. При получении IN -пакета функция может вернуть пакет с данными, NAK -пакет или STALL -пакет. Если у функции нет информации, для которой требуется прерывание, то в фазе передачи данных функция возвращает NAK -пакет. Если работа КТ с прерыванием приостановлена, то функция возвращает STALL -пакет. При необходимости прерывания функция возвращает необходимую информацию в фазе передачи данных. Если хост успешно получил данные, то он посылает ACK -пакет. В противном случае согласующий пакет хостом не посылается.
Изохронные транзакции содержат фазу передачи признака и фазу передачи данных , но не имеют фазы согласования . Хост отсылает IN - или OUT -признак, после чего в фазе передачи данных КТ (для IN -признака) или хост (для OUT -признака) пересылает данные. Изохронные транзакции не поддерживают фазу согласования и повторные посылки данных в случае возникновения ошибок.

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

Фирма-производитель Наименование Описание

Atmel
AT43301 Контроллер LS/FS-хаба 1-4 с общим управлением питанием нисходящих портов.
AT43312A Контроллер LS/FS-хаба 1-4 с индивидуальным управлением питанием нисходящих портов.
AT43320A Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 32х8 регистров общего назначения, 32 программируемых вывода, последовательный и SPI-интерфейсы. Функция имеет 3 КТ с буферами FIFO размером 8 байт. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.
AT43321 Контроллер клавиатуры на ядре AVR. Имеет встроенные USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 16 кбайт ПЗУ, 32х8 регистров общего назначения, 20 программируемых вывода, последовательный и SPI-интерфейсы. Функция имеет 3 КТ. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.
AT43324

Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 2 внешними нисходящими портами, работающие в LS/FS-режимах, 512 байт ОЗУ, 16 кбайт ПЗУ, 32х8 регистров общего назначения, 34 программируемых вывода. Клавиатурная матрица может иметь размер 18х8. Контроллер имеет 4 выхода для подключения светодиодов. Функция имеет 3 КТ. Для нисходящих портов хаба предусмотрено индивидуальное управление питанием.

AT43355 Микроконтроллер на ядре AVR. Имеет встроенные USB-функцию и хаб с 2 внешними нисходящими портами, работающие в LS/FS-режимах, 1 кбайт ОЗУ, 24 кбайт ПЗУ, 32х8 регистров общего назначения, 27 программируемых выводов, последовательный и SPI-интерфейсы, 12-канальный 10-разрядный АЦП. Функция имеет 1 управлющую КТ и 3 программируемых КТ с буферами FIFO размером 64/64/8 байт.
Fairchild Semiconductor USB100 Контроллер манипуляторов (мышь, трекбол, джойстик). Поддерживает 2D/3D-мышь, джойстик с тремя потенциометрами, манипулятор с 16 кнопками.

Intel
8x931Ax Микроконтроллер с архитектурой MSC-51. Имеет встроенную USB-функцию, работающую в LS/FS-режимах, 256 байт ОЗУ, 0/8 кбайт ПЗУ, 8х4 регистра общего назначения, 32 программируемых вывода, последовательный интерфейс, интерфейс управления клавиатурой. Функция имеет 3 КТ с буферами FIFO размером 8/16/8 байт.
8x931Hx Микроконтроллер с архитектурой MSC-51. Имеет встроенную USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 256 байт ОЗУ, 0/8 кбайт ПЗУ, 8х4 регистра общего назначения, 32программируемых вывода, последовательный интерфейс, интерфейс управления клавиатурой. Функция имеет 3 КТ с буферами FIFO размером 8/16/8 байт.
8x930Ax Микроконтроллер с архитектурой MSC-251. Имеет встроенную USB-функцию, работающую в LS/FS-режимах, 1024 байта ОЗУ, 0/8/16 кбайт ПЗУ, 40 регистров общего назначения, 32 программируемых вывода, последовательный интерфейс. Функция имеет 4(6) КТ с буферами FIFO размером 16/1024(256)/16(32)/16(32)/(32)/(16) байт.
8x930Hx Микроконтроллер с архитектурой MSC-251. Имеет встроенную USB-функцию и хаб с 4 внешними нисходящими портами, работающие в LS/FS-режимах, 1024 байта ОЗУ, 0/8/16 кбайт ПЗУ, 40 регистров общего назначения, 32 программируемых вывода, последовательный интерфейс. Функция имеет 4 КТ с буферами FIFO размером 16/1024/16/16 байт.

Microchip
PIC16C745 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS-режиме, 256 байт ОЗУ, 14336 байт ПЗУ, 22 программируемых вывода, последовательный интерфейс, 5-канальный 8-битный АЦП.
PIC16C765 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS-режиме, 256 байт ОЗУ, 14336 байт ПЗУ, 33 программируемых вывода, последовательный интерфейс, 8-канальный 8-битный АЦП.
PIC18F2450 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 16384 байт ПЗУ, 19 программируемых выводов, последовательный и SPI-интерфейсы, 5-канальный 10-битный АЦП. Функция имеет 8 КТ.
PIC18F2550 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 32768 байт ПЗУ, 19 программируемых выводов, последовательный, CAN- и SPI-интерфейсы, 5-канальный 10-битный АЦП. Функция имеет 8 КТ.
PIC18F4450 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 16384 байт ПЗУ, 34 программируемых вывода, последовательный, CAN- и SPI-интерфейсы, 8-канальный 10-битный АЦП. Функция имеет 8 КТ.
PIC18F4550 Микроконтроллер с архитектурой PIC. Имеет встроенную USB-функцию, работающую в LS/FS-режиме, 1536 байт ОЗУ, 32768 байт ПЗУ, 34 программируемых вывода, последовательный, CAN- и SPI-интерфейсы, 8-канальный 10-битный АЦП. Функция имеет 8 КТ.
Texas Instruments TUSB2036 Контроллер LS/FS-хаба 1-3 с индивидуальным управлением питанием нисходящих портов.