Android Linux Windows

Как работает флешка? Не работают USB-порты на компьютере – пути решения проблемы История создания и развития интерфейса USB.

Сегодняшняя статья будет посвящена, как уже видно из названия, обсуждению основ интерфейса USB . Рассмотрим основные понятия, структуру интерфейса, разберемся, как происходит передача данных, а в ближайшем будущем реализуем все это на практике 😉 Короче, приступаем!

Существует ряд различных спецификаций USB . Началось все с USB 1.0 и USB 1.1 , затем интерфейс эволюционировал в USB 2.0 , относительно недавно появилась окончательная спецификация USB 3.0 . Но на данный момент наиболее распространенной является реализация USB 2. 0.

Ну и для начала основные моменты и характеристики. USB 2.0 поддерживает три режима работы:

  • High Speed – до 480 Мб/с
  • Full Speed – до 12 Мб/с
  • Low Speed – до 1.5 Мб/с

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

Почти во всех статьях про USB , которые я видел используется термин “конечная точка “, но о том, что это такое обычно написано довольно туманно. Так вот, конечная точка – это часть устройства USB , имеющая свой уникальный идентификатор. Каждое устройство USB может иметь несколько конечных точек. По большому счету – конечная точка – это всего лишь область памяти USB устройства, в которой могут храниться какие-либо данные (буфер данных). И в итоге мы получаем вот что – каждое устройство имеет свой уникальный адрес на шине USB , и при этом каждая конечная точка этого устройства имеет свой номер. Вот так вот)

Давайте немного отвлечемся и поговорим о “железной части” интерфейса.

Существуют два типа коннекторов – Type A и Type B.

Как уже понятно из рисунка Type A всегда обращен к хосту. Именно такие разъемы мы видим на компьютерах и ноутбуках. Коннекторы Type B всегда относятся к подключаемым USB-устройствам. Кабель USB состоит из 4 проводов разных цветов. Ну, собственно, красный – это питание (+5 В), черный – земля, белый и зеленый предназначены для передачи данных.

Помимо изображенных на рисунке, существуют также другие варианты исполнения USB-коннекторов, например, mini-USB и другие, ну это вы и так знаете 😉

Наверно стоит немного коснуться способа передачи данных, но углубляться в это не будем) Итак, при передаче данных по шине USB используется принцип кодирования NRZI (без возврата к нулю с инверсией). Для передачи логической “1” необходимо повысить уровень линии D+ выше +2.8 В, а уровень линии D- надо понизить ниже +0.3 В. Для передачи нуля ситуация противоположная – (D- > 2.8 В) и (D+ < 0.3 В).

Отдельно стоит обсудить питание устройств USB . И тут также возможно несколько вариантов.

Во-первых устройства могут питаться от шины, тогда их можно разделить на два класса:

  • Low-power
  • High-power

Разница тут заключается в том, что low-power устройства не могут потреблять больше, чем 100 мА . А устройства high-power должны потреблять не более 100 мА лишь на этапе конфигурации. После того, как они сконфигурированы хостом их потребление может составлять до 500 мА .

Кроме того, устройства могут иметь свой собственный источник питания. В этом случае они могут получать до 100 мА от шины, а все остальное забирать у своего источника)

С этим вроде бы все, давайте потихоньку переходить к структуре передаваемых данных. Все-таки это представляет для нас наибольший интерес 😉

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

Каждый кадр включает в себя пакет , затем следуют транзакции для разных конечных точек, ну и завершается все это пакетом EOF (End Of Frame). Если говорить совсем точно, то EOF – это не совсем пакет в привычном понимании этого слова – это интервал времени, в течение которого обмен данными запрещен.

Каждая транзакция имеет следующий вид:

Первый пакет (его называют Token пакет ) содержит в себе информацию об адресе устройства USB , а также о номере конечной точки, которой предназначена эта транзакция. Кроме того, в этом пакете хранится информация о типе транзакции (какие бывают типы мы еще обсудим, но чуть позже =)). – с ним все понятно, это данные, которые передают хост, либо конечная точка (зависит от типа транзакции). Последний пакет – Status – предназначен для проверки успешности получения данных.

Уже очень много раз прозвучало слово “пакет” применительно к интерфейсу USB , так что пора разобраться что он из себя представляет. Начнем с пакета Token :

Пакеты Token бывают трех типов:

  • Setup

Вот к чему я это рассказал..) В зависимости от типа пакета значение поля PID в Token пакете может принимать следующие значения:

  • Token пакет типа OUT – PID = 0001
  • Token пакет типа IN – PID = 1001
  • Token пакет типа SETUP – PID = 1101
  • Token пакет типа SOF – PID = 0101

Переходим к следующей составной части пакета Token – поля Address и Endpoint – в них содержатся адрес USB устройства и номер конечной точки , которой предназначена транзакция .

Ну и поле CRC – это контрольная сумма, с этим понятно.

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

Итак, на очереди – то есть пакет данных.

Тут все в принципе так же, как и в пакете Token , только вместо адреса устройства и номера конечной точки здесь у нас передаваемые данные.

Осталось нам рассмотреть Status пакеты и пакеты SOF :

Тут PID может принимать всего лишь два значения:

  • Пакет принят корректно – PID = 0010
  • Ошибка при приеме пакета – PID = 1010

И, наконец, пакеты:

Здесь видим новое поле Frame – оно содержит в себе номер передаваемого кадра.

Давайте в качестве примера рассмотрим процесс записи данных в USB-устройство. То есть рассмотрим пример структуры кадра записи.

Кадр, как вы помните состоит из транзакций и имеет следующий вид:

Что представляют из себя все эти транзакции? Сейчас разберемся! Транзакция SETUP :

Транзакция OUT :

Аналогично при чтении данных из USB-устройства кадр выглядит так:

Транзакцию SETUP мы уже видели, посмотрим на транзакцию IN 😉

Как видите, все эти транзакции имеют такую структуру, как мы обсуждали выше)

В общем, думаю достаточно на сегодня 😉 Довольно-таки длинная статья получилась, надеюсь в ближайшее время попробуем реализовать интерфейс USB на практике!

На сегодняшний день флешки являются самыми популярными внешними носителями данных. В отличие от оптических и магнитных дисков (CD/DVD и винчестеры соответственно), флеш-накопители более компактны и устойчивы к механическим повреждениям. А за счет чего были достигнуты компактность и устойчивость? Давайте же разберемся!

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

Основные компоненты

Составные части большинства флешек можно разделить на основные и дополнительные.


К основным относятся:

  1. чипы NAND-памяти;
  2. контроллер;
  3. кварцевый резонатор.
  4. USB-разъем

NAND-память
Накопитель работает благодаря NAND-памяти: полупроводниковым микросхемам. Чипы такой памяти, во-первых, весьма компактны, а во-вторых — очень ёмкие: если на первых порах флешки по объему проигрывали привычным на тот момент оптическим дискам, то сейчас превышают по ёмкости даже диски Blu-Ray. Такая память, ко всему прочему, еще и энергонезависимая, то есть для хранения информации ей не требуется источник питания, в отличие от микросхем оперативной памяти, созданных по похожей технологии.


Однако у НАНД-памяти есть один недостаток, в сравнении с другими типами запоминающих устройств. Дело в том, что срок службы этих чипов ограничен определенным количеством циклов перезаписи (шагов чтения/записи информации в ячейках). В среднем количество read-write cycles равно 30 000 (зависит от типа чипа памяти). Кажется, это невероятно много, но на самом деле это равно примерно 5 годам интенсивного использования. Впрочем, даже если ограничение будет достигнуто, флешкой можно будет продолжать пользоваться, но только для считывания данных. Кроме того, вследствие своей природы, NAND-память очень уязвима к перепадам электричества и электростатическим разрядам, так что держите её подальше от источников подобных опасностей.

Контроллер
Под номером 2 на рисунке в начале статьи находится крохотная микросхема — контроллер, инструмент связи между флеш-памятью и подключаемыми устройствами (ПК, телевизорами, автомагнитолами и пр.).


Контроллер (иначе называется микроконтроллер) представляет собой миниатюрный примитивный компьютер с собственным процессором и некоторым количеством RAM, используемыми для кэширования данных и служебных целей. Под процедурой обновления прошивки или BIOS подразумевается как раз обновление ПО микроконтроллера. Как показывает практика, наиболее частая поломка флешек — выход из строя контроллера.

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

Эта часть флешки также подвержена риску повреждения, причем, в отличие от проблем с микроконтроллером, решить их самостоятельно практически невозможно. К счастью, в современных накопителях резонаторы выходят из строя относительно редко.

USB-коннектор
В подавляющем большинстве случаев в современных флешках установлен разъем USB 2.0 типа A, ориентированный на прием и передачу. В самых новых накопителях используется USB 3.0 типа А и типа C.

Дополнительные компоненты

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

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


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

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


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

Подобным образом реализована защита в так называемых USB-ключах: флешках, которые содержат в себе сертификаты безопасности, необходимые для корректной работы некоторого специфического ПО.

Этот элемент тоже может сломаться, в результате чего возникает досадная ситуация — девайс вроде работоспособен, но пользоваться им невозможно. У нас на сайте есть материал, который может помочь решить эту проблему.

Уникальные компоненты

К таковым можно отнести, например, наличие разъемов Lightning, microUSB или Type-C: флешки с наличием таковых предназначены для использования в том числе на смартфонах и планшетах.

USB (Universal Serial Bus - универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники.

Приеимущества шины:

  • USB устройство может быть подсоединено к компьютеру в любой момент времени, даже когда включен;
  • когда компьютер обнаруживает подключенное USB устройство, он автоматически опрашивает его, чтобы узнать его возможности и требования;
  • производит загрузку драйвера, а при отключении устройства драйвер автоматически выгружается;
  • USB устройство не использует джемперов, DIP переключателей, никогда не вызывает конфликтов прерываний, DMA, памяти;
  • расширяющие USB хабы позволяют подключать к одной шине большое количество устройств (до 127 устройств);
  • низкая стоимость USB устройств.

Возникновение USB сделало возможным создание USB Flash Drive (USB-накопитель).

История создания и развития интерфейса USB

Первая версия компьютерного интерфейс USB появилась 15 января 1996 года. Инициаторами проекта был альянс 7 крупных компаний производителей Intel, DEC, IBM, Northen Telecom, Compaq.

Причиной возникновения нового стандарта для передачи информации, послужила желание упростить соединение ПК с периферийными устройствами. Основная цель стандарта, была создать для пользователей возможность пользоваться таким интерфейсом, который бы обладал максимальной простотой, универсальностью, и использовал принцип Plug&Play или горячее соединение.

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

Все эти задачи успешно были решены к концу 1996 года, а к весне 1997 года, стали появляться первые ПК, оборудованные разъёмами USB. Полная поддержка USB устройств была осуществлена только к концу 1998 года, в операционной системе Windows98, и только с этого этапа, началось особенно бурное развитие и выпуск периферийного оборудования, оснащённого этим интерфейсом.

По-настоящему массовое внедрение USB началось с широким распространением корпусов и системных плат форм-фактора ATX примерно в 1997-1998 годах. Не упустила шанс воспользоваться достижениями прогресса и компания Apple, представившая 6 мая 1998 года свой первый iMac, также оснащенный поддержкой USB.

Этот стандарт был рождён, в то время, когда уже существовал аналогичный последовательный интерфейс передачи данных, разработанный Apple Computer и имел название FireWare или IEE1394. USB - интерфейс был создан, как альтернатива IEE1394, и был призван не заменить его, а существовать параллельно уже существующему типу соединений.

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

Спецификация USB 2.0 была представлена в апреле 2000 года. Но до принятия ее в качестве стандарта прошло больше года. После этого началось массовое внедрение второй версии универсальной последовательной шины. Главным ее достоинством было 40-кратное увеличение скорости передачи данных. Но кроме этого были и другие нововведения. Так появились новые типы разъемов Mini-B и Micro-USB, добавилась поддержка технологии USB On-The-Go (позволяет USB-устройствам вести обмен данными между собой без участия USB-хоста), появилась возможность использования напряжения, подаваемого через USB, для зарядки подключенных устройств.

Принцип работы шины USB

USB обеспечивает обмен данными между хост-компьютером и множеством периферийных устройств (ПУ). Согласно спецификации USB, устройства (device) могут являться хабами, функциями или их комбинацией. Хаб (hub) только обеспечивает дополнительные точки подключения устройств к шине. Устройство-функция (function) USB предоставляет системе дополнительные функциональные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Комбинированное устройство (compound device), реализующее несколько функций, представляется как хаб с подключенными к нему несколькими устройствами.

Работой всей системы USB управляет хост-контроллер (host controller), являющийся программно-аппаратной подсистемой компьютера. Шина позволяет подключать, конфигурировать, использовать и отключать устройства во время работы хоста и самих устройств.

Шина USB является хост-центрической: единственным ведущим устройством, которое управляет обменом, является хост-компьютер, а все присоединенные к ней периферийные устройства - исключительно ведомые. Физическая топология шины USB - многоярусная звезда. Ее вершиной является хост-контроллер, объединенный с корневым хабом (root hub). Хаб является устройством-разветвителем, кроме того, он может являться источником питания для подключенных к нему устройств. К каждому порту хаба может непосредственно подключаться периферийное устройство или промежуточный хаб; шина допускает до 5 уровней каскадирования хабов (не считая корневого). Каждый промежуточный хаб имеет несколько нисходящих (downstream) портов для подключения периферийных устройств (или нижележащих хабов) и один восходящий (upstream) порт для подключения к корневому хабу или нисходящему порту вышестоящего хаба.

К USB-хосту сходятся данные от подключенных устройств и он же обеспечивает взаимодействие с компьютером. Все устройства подключаются по топологии "звезда". Чтобы увеличить число активных разъемов USB можно воспользоваться USB-хабами. Таким образом получится аналог логической структуры "дерево". "Ветвей" у такого дерева может быть до 127 штук на один хост-контроллер, а уровень вложенности USB-хабов не должен превышать пяти. Кроме того, в одном USB-хосте может быть несколько хост-контроллеров, что пропорционально увеличивает максимальное число подключенных устройств.

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

Одно физическое устройство, подключенное через USB, может логически подразделяться на "под-устройства", выполняющие те или иные определенные функции. Например, у веб-камеры может быть встроенные микрофон - получается, что у нее два под-устройства: для передачи аудио и видео.

Передача данных происходит через специальные логические каналы. Каждому USB-устройству может быть выделено до 32 каналов (16 на прием и 16 на передачу). Каждый канал подключается к условно называемой "конечной точке". Конечная точка может либо принимать данные, либо передавать их, но не способна делать это одновременно. Группа конечных точек, необходимых для работы какой-либо функции, называется интерфейсом. Исключение составляет "нулевая" конечная точка, предназначающаяся для конфигурации устройства.

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

В отличие от шин расширения (ISA/EISA, PCI, PC Card), где программа взаимодействует с устройствами путем обращений по физическим адресам ячеек памяти, портов ввода-вывода, прерываниям и каналам DMA, взаимодействие приложений с устройствами USB выполняется только через программный интерфейс. Этот интерфейс, обеспечивающий независимость обращений к устройствам, предоставляется системным ПО контроллера USB.

Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода - для питания периферийного устройства. Благодаря встроенным линиям питания, шина USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать 500 мА).

Кодирование данных

Для передачи данных по шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Все данные кодируются с помощью метода, называемого NRZI with bit stuffing (NRZI - Non Return to Zero Invert, метод возврата к нулю с инвертированием единиц).

Вместо кодирования логических уровней как уровней напряжения USB определяет логический 0 как изменение напряжения, а логическую 1 как неизменение напряжения. Этот метод представляет собой модификацию обычного потенциального метода кодирования NRZ (Non Return to Zero, невозврат к нулю), когда для представления 1 и 0 используются потенциалы двух уровней, но в методе NRZI потенциал, используемый для кодирования текущего бита, зависит от потенциала, который использовался для кодирования предыдущего бита. Если текущий бит имеет значение 0, то текущий потенциал представляет собой инверсию потенциала предыдущего бита, независимо от его значения. Если же текущий бит имеет значение 1, то текущий потенциал повторяет предыдущий. Очевидно, что если данные содержат нули, то приемнику и передатчику достаточно легко поддерживать синхронизацию - уровень сигнала будет постоянно меняться. А вот если данные содержат длинную последовательность единиц, то уровень сигнала меняться те будет, и возможна рассинхронизация. Следовательно, для надежной передачи данных нужно исключить из кодов слишком длинные последовательности единиц. Это действие называется стаффинг (Bit stuffing): после каждых шести единиц автоматически добавляется 0.

Существует только три возможных байта с шестью последовательными единицами: 00111111, 01111110, 111111100.

Стаффинг может увеличить число передаваемых бит до 17%, но на практике эта величина значительно меньше. Для устройств, подключаемых к шине USB, кодирование происходит прозрачно: USB-контроллеры производят кодирование и декодирование автоматически.

Режимы работы шины

  • Low Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 1.5 Мбит/с (187.5 Кбайт/с). Чаще всего применяется для HID-устройств (клавиатур, мышей, джойстиков).
  • Full Speed поддерживается стандартами версии 1.1 и 2.0. Пиковая скорость передачи данных - 12 Мбит/с (1.5 Мбайт/с). До выхода USB 2.0 был наиболее быстрым режимом работы.
  • Hi-Speed поддерживается стандартом версии 2.0 и 3.0. Пиковая скорость передачи данных - 480 Мбит/с (60 Мбайт/с).
  • Super-Speed поддерживается стандартом версии 3.0. Пиковая скорость передачи данных - 4.8 Гбит/с (600 Мбайт/с).

Передача данных

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

Для передачи команд (и данных, входящих в состав команд) используется канал по умолчанию, а для передачи данных открываются либо потоковые каналы, либо каналы сообщений.

Информация по каналу передается в виде пакетов (Packet). Каждый пакет начинается с поля синхронизации SYNC (SYNChronization), за которым следует идентификатор пакета PID (Packet IDentifier).

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

Операция обмена данными между прикладной программой и шиной USВ выполняется путем передачи буферов памяти через следующие уровни: Уровень клиентского ПО в хосте:

  • обычно представляется драйвером устройства USB;
  • обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой.

Уровень системного обеспечения USB в хосте (USBD, Universal Serial Bus Driver):

  • управляет нумерацией устройств на шине;
  • управляет распределением пропускной способности шины и мощности питания;
  • обрабатывает запросы пользовательских драйверов.

Хост-контроллер интерфейса шины USB (HCD, Host Controller Driver):

  • преобразует запросы ввода/вывода в структуры данных, по которым хост-контроллер выполняет физические транзакции;
  • работает с регистрами хост-контроллера.

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

  • буфер памяти, называемый клиентским буфером;
  • пакет запроса на в/в (IRP, Input/output Request Packet), указывающий тип необходимой операции.
  • IRP содержит только сведения о запросе (адрес и длина буфера в оперативной памяти). Непосредственно обработкой запроса занимается системный драйвер USB.

Уровень системного драйвера USB необходим для управления ресурсами USB. Он отвечает за выполнение следующих действий:

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

Логически передача данных между конечной точкой и ПО производится с помощью выделения канала и обмена данными по этому каналу.Клиентское ПО посылает IPR-запросы уровню USBD. Драйвер USBD разбивает запросы на транзакции по следующим правилам:

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

Драйвер контроллера хоста принимает от системного драйвера шины перечень транзакций и выполняет следующие действия:

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

Хост-контроллер интерфейса шины USB формирует кадры. Кадры передаются последовательной передачей бит по методу NRZI.

Таким образом:

  • каждый кадр состоит из наиболее приоритетных посылок, состав которых формирует драйвер хоста;
  • каждая передача состоит из одной или нескольких транзакций;
  • каждая транзакция состоит из пакетов;
  • каждый пакет состоит из идентификатора пакета, данных (если они есть) и контрольной суммы.


Типы передачи данных

Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек.

Управляющие передачи (Control Transfers) - используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации в процессе работы. Протокол обеспечивает гарантированную доставку таких посылок. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания.

Передачи массивов данных (Bulk Data Transfers) - применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, но время доставки не ограничено. Taкая передача занимает всю доступную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи. Такие посылки используются, например, принтерами или сканерами.

Передачи по прерываниям (Interrupt Transfers) - используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1-255 мс для полной скорости и 10-255 мс - для низкой. Такие передачи используются в устройствах ввода, таких как мышь и клавиатура.

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

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

  • наивысший приоритет имеют изохронные передачи;
  • после отработки всех изохронных передач система переходит к обслуживанию передач прерываний;
  • в последнюю очередь обслуживаются запросы на передачу массивов данных;
  • по истечении 90% указанного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет.

Выполнение этих правил гарантирует, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины USB. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передач массивов данных.

Версии спецификации

Разработка спецификаций на шину USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF), объединяющей разработчиков и производителей оборудования с шиной USB.

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом системной платы.

Первая версия спецификации USB 1.0 поддерживает два режима скорости передачи данных между устройством и компьютером:

  • Low Speed (1.5 Mbits/sec) , для таких устройств как мыши, клавиатуры и джойстики;
  • Full Speed (12 Mbits/ sec) , для модемов и сканеров.

Осенью 1998 года вышла версия 1.1 - в ней были устранены обнаруженные проблемы первой редакции.

Основные технические характеристики USB 1.1:

  • Достаточно высокая максимальная скорость обмена - до 12 Мбит/с.
  • Максимальная длина кабеля для высокой скорости обмена - 4,5 м.
  • Максимальное количество подключенных устройств (включая размножители) - до 127.
  • Возможно подключение устройств с различными скоростями обмена.
  • Не требуется использование дополнительных устройств и терминаторов.
  • Подается напряжение питания для периферийных устройств - 5 В.
  • Максимальный ток потребления на одно устройство - 500 mA.

Весной 2000 года опубликована спецификация USB 2.0, в которой предусмотрено 40-кратное повышение пропускной способности шины(до 480 Мбит/с в высокоскоростном режиме). Однако устройства USB 2.0 вышли на массовый рынок в 2002 года, когда новый интерфейс, наконец, смог утвердиться.

Вторая версия спецификации USB 2.0 позволяет использовать еще один режим High Speed (480 Mbit/sec) для таких устройств, как жесткие диски, CD-ROM, цифровые камеры. Пропускная способность 480 Мбит/с достаточная и для внешних накопителей, MP3-плееров, смартфонов и цифровых камер, которым требовалась передавать большое количество данных. Также спецификация USB 2.0 полностью поддерживает устройства, разработанные для первой версии. Контроллеры и хабы автоматически определяют версию спецификации, поддерживаемую устройством. Шина позволяет соединять до 127 устройств, удаленныех от компьютера на расстоянии до 25 м (с использованием промежуточных хабов).

После своего широкого внедрения USB 2.0 удалось полностью заменить последовательный и параллельный интерфейсы.

В настоящее время широко используются устройства, выполненные в соответствии со спецификацией USB 2.0.

USB 3.0

USB 3.0 поддерживает максимальную скорость передачи 5 Гбит/с.

Коннектор USB 3.0 типа А

Основной целью интерфейса USB 3.0 является повышение доступной пропускной способности, однако новый стандарт эффективно оптимизирует энергопотребление. У USB 3.0 есть четыре состояния подключения, названные U0-U3. Состояние подключения U0 соответствует активной передаче данных, а U3 погружает устройство в "сон". Если подключение бездействует, то в состоянии U1 будут отключены возможности приёма и передачи данных. Состояние U2 идёт ещё на шаг дальше, отключая внутренние тактовые импульсы.

Коннектор USB 3.0 типа В

Соответственно, подключённые устройства могут переходить в состояние U1 сразу же после завершения передачи данных, что, как предполагается, даст ощутимые преимущества по энергопотреблению, если сравнивать с USB 2.0.

Кроме разных состояний энергопотребления стандарт USB 3.0 отличается от USB 2.0 и более высоким поддерживаемым током. Если версия USB 2.0 предусматривала порог тока 500 мА, то в случае нового стандарта ограничение было сдвинуто до планки 900 мА. Ток при инициации соединения был увеличен с уровня 100 мА у USB 2.0 до 150 мА у USB 3.0. Оба параметра весьма важны для портативных жёстких дисков, которые обычно требуют чуть большие токи. Раньше проблему удавалось решить с помощью дополнительной вилки USB, получая питание от двух портов, но используя только один для передачи данных.

Кабели и разъемы USB

В отличие от громоздких дорогих шлейфов параллельных шин АТА и особенно шины SCSI с ее разнообразием разъемов и сложностью правил подключения, кабельное хозяйство USB простое и изящное.

Существует пять видов USB-разъемов :

Слева направо: micro USB, mini USB, B-type, A-type разъем, A-type коннектор

  • micro USB - используется в самых миниатюрных устройствах вроде плееров и мобильных телефонов;
  • mini USB - также часто обнаруживается на плеерах, мобильных телефонах, а заодно и на цифровых фотоаппаратах, КПК и тому подобных устройствах;
  • B-type - полноразмерный разъем, устанавливаемый в принтерах, сканерах и других устройствах, где размер не имеет очень принципиального значения;
  • A-type (приемник) - разъем, устанавливаемый в компьютерах (либо на удлинителях USB), куда подключается коннектор типа A-type;
  • A-type (вилка) - коннектор, подключаемый непосредственно к компьютеру в соответствующий разъем.

Cистема кабелей и коннекторов USB не дает возможности ошибиться при подключении устройств. Гнезда типа «А» устанавливаются только на нисходящих портах хабов, вилки типа «А» - на шнурах периферийных устройств или восходящих портов хабов. Гнезда и вилки типа «В» используются только для шнуров, отсоединяемых от периферийных устройств и восходящих портов хабов (от «мелких» устройств - мышей, клавиатур и т. п. кабели, как правило, не отсоединяются). Хабы и устройства обеспечивают возможносгь «горячего» подключения и отключения.

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

Кабель для поддержки полной скорости шины (full-speed) выполняется как витая пара, защищается экраном и может также использоваться для работы в режиме минимальной скорости (low-speed). Кабель для работы только на минимальной скорости (например, для подключения мыши) может быть любым и неэкранированным.

Литература

  1. Косцов А.,Косцов В.Железо ПК. Настольная книга пользователя. - М.: Мартин, 2006. - 480 с.

Периферийные устройства, такие как мышь, клавиатура, 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-портами довольно хлопотное дело, а все потому, что причин может быть масса. Последовательный поиск и исключение заведомо неверных путей позволит вам выявить и устранить неисправность.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. способ.

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

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

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

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

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

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

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

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