Реферат: USB-порт. Flash-Память
Причиной скрипа при внедрении был замкнутый круг: естественно, что новая шина должна была поддерживаться операционной системой, а Windows 95 этим похвастаться не могла. Microsoft не горела желанием работать не пойми для чего - устройства с USB интерфейсом можно было пересчитать едва ли не на пальцах, а в производители аппаратного обеспечения в свою очередь не хотели делать устройства для не поддерживающейся популярной ОС шины.
Выход обновлений OSR2.1 не сильно изменил ситуацию, так как сделано все было в нем через пень-колоду (кстати, а в NT системах она так и не появилась. до Windows 2000). Основная поддержка была со стороны компаний производителей систем и системных компонентов - для них это было источником прибыли (по данным аналитиков Dataquest объем продаж систем с USB должен был составить в 1997 году 30 млн штук и в 1998 все продаваемые компьютеры должны были быть оснащены этой шиной (возможно так и было, но не у нас:-))), и, потом, товарищи верили, что взойдет она, звезда пленительного счастья.
Пусть не сегодня, завтра, но взойдет. Так и случилось. Переломным моментом в истории USB стал выход Windows 98: появилась поддержка, начался выпуск устройств, и технология начала свое существование не только у разработчиков, но и у пользователей, кстати, многие из которых относят появление именно к этому моменту.
Сегодня USB - это очень популярная универсальная последовательная шина. Предназначена для легкого подключения различного вида устройств это клавиатуры, мыши, джойстики, колонки, модемы, мобильные телефоны, ленточные, дисковые, оптические и магнитооптические накопители, флэш-диски, сканеры и принтеры, дигитайзеры, словом все, что подключается к ПК. Также, с ожиданием большого роста в области интеграции компьютеров и телефонии, шина USB может выступать в качестве интерфейса для подключения устройств цифровой сети с интегрированными услугами (ISDN) и цифровых устройств Private Branch eXchange (PBX).
Пропускной способности в 480 Мбит/с в версии 2.0 достаточно для удовлетворения потребностей всех этих применений в полной мере. Добавление устройств больше не сопряжено с установкой дополнительных адаптеров, выполнением сложного конфигурирования, ручным инсталлированием дополнительного программного обеспечения: система автоматически определяет, какой ресурс, включая программный драйвер и пропускную способность, нужен каждому периферийному устройству и делает этот ресурс доступным без вмешательства пользователя. Популярная периферия сегодня доступна в вариантах с USB гораздо чаще, чем с другими.
Существовавшей раньше разницы в цене в 10-15-20 долларов (автор помнит как 5 лет назад приобретая сканер переплачивал 20 долларов за USB модель) и заоблачных цен на внешние USB-контроллеры нет, более того, уже давно USB-контроллеры интегрируются в чипсеты материнских плат, и пользователь получает их в свое распоряжение практический задаром. USB вышел в массы и нужно констатировать тот факт, что COM LPT и PS/2 порты медленно умирают. Что ж. Давно пора была избавиться от многочисленных пережитков прошлого. Это та красивая внешняя сторона, которой USB обращена к пользователю.
Наверное многие слышали о том что USB шина позволяет подключать до 127 устройств. И в тоже время на задней стенке обычно находится 2 или 4 порта. И у многих наверняка возник вопрос - нас обманули, на нас сэкономили (меньше портов - дешевле система. Хотя… 127 портов разместить на задней панели… Даже представить сложно) или что-то еще. Оказывается дело все в том, что шина USB позволяет многоуровневое каскадирование. Наглядно это объясняет следующий рисунок:
Так мы выходим на первую архитектурную особенность шины USB: ее логическая топология - многоуровневая звезда.
Самым верхним уровнем является корневой концентратор, который обычно совмещается с USB контроллером. Если функции контроллера понятны, то концентратор - устройство для периферийных интерфейсов не привычное. В данном случае его функция такая же, что и концентраторов сетей передачи данных - добавление новых портов для подключения большего числа устройств. Ничего большего, чем просто разветвитель.
К корневому концентратору могут быть подключены либо устройства, либо еще концентраторы, для увеличения числа доступных портов. Допускается организация до пяти уровней. Концентратор может быть выполнен в виде отдельного устройства, либо быть встроенным в какое-то другое. С этой точки зрения устройства подключаемые к USB можно подразделить на функциональные устройства, т.е. те которые выполняют какую-то конкретную функцию и не берут на себя никаких дополнительных задач (например, мыши) устройства-концентраторы в чистом виде выполняющие только функцию только разветвления, и совмещенные (комбинированные) устройства, т.е. имеющие в своем составе концентратор, расширяющие набор портов и позволяющие подключать другие устройства (в качестве наиболее часто встречающихся примеров можно назвать мониторы, позволяющие по USB осуществлять настройку параметров, и обычно имеющих еще несколько дополнительные порты, для подключения других устройств или клавиатуры, с разъемами для подключения мышей).
Обратите внимание, на то, что на пятом уровне комбинированное устройство использоваться не может. Кроме того отдельно стоит упомянуть о хосте, являющемся скорее программно-аппаратным комплексом, нежели просто устройством. Физическая топология шины - звезда
Это объясняется тем, что каждый концентратор обеспечивает прозрачно для хоста соединение с устройством.
А отношения клиентского программного обеспечения и USB устройств вообще сказка. В отличие от привычных старых интерфейсов, где взаимодействие можно было (и нужно) осуществлять обращаясь к устройству по конкретным физическим адресам памяти и портам ввода вывода, USB предоставляет для взаимодействия программный интерфейс и только его, позволяя клиентскому ПО существовать в отрыве от конкретного подключенного к шине устройства и его конфигурации. Для клиентской программы USB - это лишь набор функций.
Все классы устройств уже были упомянуты. Теперь можно о каждом поговорить немного подробнее.
Хост. Как уже было сказано ранее, программно-аппаратный комплекс.
В обязанности хоста входит:
· Слежение за подключением и отключением устройств
· Организация управляющих потоков между USB-устройством и хостом.
· Организация потоков данных между USB-устройством и хостом
· Контроль состояния устроств и ведение статистики активности
· Снабжение подключенных устройств электропитанием
Аппаратной частью является хост контроллер - посредник между хостом и устройствами на шине.
Программные функции (перечисление устройств и их конфигурирование, управление энергопотреблением, процессами передачи, устройствами на шине и самой шиной) возложены на операционную систему. Первой популярной операционной системой, в которой поддержка USB реализована была в полном объеме стала Windows 98 Second Edition. Некоторые устройства могут быть работоспособными и под более ранними версиями (98 без SE, и изредка 95), но далеко не все и не всегда.
Концентратор (хаб). Позволяет множественные подключения к одному порту, создавая дополнительные порты. Каждый хаб имеет один восходящий порт, предназначенный для подключения к имеющемуся в наличии свободному порту, и несколько нисходящих, к которым могут быть подключены или снова концентраторы, или конечные устройства, либо совмещенные устройства.
Хаб должен следить за подключением и отключением устройств, уведомляя хост об изменениях, управлять питанием портов. В концентраторе стандарта USB 2.0 можно выделить 3 функциональных блока: контроллер, повторитель, транслятор транзакций. Контроллер отвечает за соединения с хостом. Понятие повторитель в USB несколько отличается от принятого в сетях передачи данных. Его обязанность - соединять входной и какой-то нужный из выходных портов. Транслятор транзакций появился лишь в USB 2.0 и нужен, как всегда, из соображений совместимости с предыдущими версиями. Вкратце его суть в том, что бы обеспечивать максимальную скорость соединения с хостом. Подключенное к высокоскоростному (USB 2.0) порту старое медленное (USB 1.1) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.