Войти
Портал компьютерных советов - Hiper-ru
  • Как выгрузить контрагентов из 1с 8
  • Чтение файла, запись в файл
  • Как открыть банковскую карту: инструкция и рекомендации
  • Ностальгия по HTC HD2 Описание htc hd2 wm 6
  • HTC Desire V: характеристики и отзывы
  • Конвертирование файла TIB do VMDK Преобразование файла disk image backup в vhd
  • Последовательная шина usb режимы передачи данных. USB (Universal Serial Bus, универсальная последовательная шина). Режимы работы шины

    Последовательная шина usb режимы передачи данных. USB (Universal Serial Bus, универсальная последовательная шина). Режимы работы шины

    Лекция 11. Универсальная последовательная шина USB.

    Толковый словарь по вычислительным системам определяет понятие интерфейс (interface) как границу раздела двух систем, устройств или программ; элементы соединения и вспомогательные схемы управления, используемые для соединения устройств. Мы же поговорим о интерфейсах, позволяющих подключать к персональным (и не только) компьютерам разнообразные периферийные устройства и их контроллеры. По способу передачи информации интерфейсы подразделяются на параллельные и последовательные. В параллельном интерфейсе все биты передаваемого слова (обычно байта) выставляются и передаются по соответствующим параллельно идущим проводам одновременно. В PC традиционно используется параллельный интерфейс Centronics, реализуемый LPT-портами. В последовательном же интерфейсе биты передаются друг за другом, обычно по одной линии. СОМ порты PC обеспечивают последовательный интерфейс в соответствии со стандартом RS-232C. При рассмотрении интерфейсов важным параметром является пропускная способность.

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

    Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных.

    2.Шина USB.Общая характеристика.

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

      Легко реализуемое расширение периферии PC.

      Дешевое решение, поддерживающее скорость передачи до 12 Mбит/с.

      Полная поддержка в реальном времени передачи аудио и (сжатых) видеоданных.

      Гибкость протокола смешанной передачи изохронных данных и асинхронных сообщений.

      Интеграция с выпускаемыми устройствами.

      Доступность в PC всех конфигураций и размеров.

      Обеспечение стандартного интерфейса, способного быстро завоевать рынок.

      Создание новых классов устройств, расширяющих PC.

      С точки зрения конечного пользователя, привлекательны следующие черты USB:

      Простота кабельной системы и подключений.

      Скрытие подробностей электрического подключения от конечного пользователя.

      Самоидентифицирующиеся ПУ, автоматическая связь устройств с драйверами и конфигурирование.

      Возможность динамического подключения и конфигурирования ПУ.

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

    Структура USB

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

    Ниже приводится авторский вариант перевода терминов из спецификации "Universal Serial Bus Specification", опубликованной Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Более подробную и оперативную информацию можно найти по адресу:

    Устройства (Device) USB могут являться хабами, функциями или их комбинацией. Хаб (Hub) обеспечивает дополнительные точки подключения устройств к шине. Функции (Function) USB предоставляют системе дополнительные возможности, например подключение к ISDN, цифровой джойстик, акустические колонки с цифровым интерфейсом и т. п. Устройство USB должно иметь интерфейс USB, обеспечивающий полную поддержку протокола USB, выполнение стандартных операций (конфигурирование и сброс) и предоставление информации, описывающей устройство. Многие устройства, подключаемые к USB, имеют в своем составе и хаб, и функции. Работой всей системы USB управляет хост-контроллер (Host Controller), являющийся программно-аппаратной подсистемой хост-компьютера.

    Физическое соединение устройств осуществляется по топологии многоярусной звезды. Центром каждой звезды является хаб, каждый кабельный сегмент соединяет две точки - хаб с другим хабом или с функцией. В системе имеется один (и только один) хост-контроллер, расположенный в вершине пирамиды устройств и хабов. Хост-контроллер интегрируется с корневым хабом (Root Hub), обеспечивающим одну или несколько точек подключения - портов. Контроллер USB, входящий в состав чипсетов, обычно имеет встроенный двухпортовый хаб. Логически устройство, подключенное к любому хабу USB и сконфигурированное (см. ниже), может рассматриваться как непосредственно подключенное к хост-контроллеру.

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

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

    Примерами функций являются:

      Указатели - мышь, планшет, световое перо.

      Устройства ввода - клавиатура или сканер.

      Устройство вывода - принтер, звуковые колонки (цифровые).

      Телефонный адаптер ISDN.

    Хаб - ключевой элемент системы РпР в архитектуре USB. Хаб является кабельным концентратором. Точки подключения называются портами хаба. Каждый хаб преобразует одну точку подключения в их множество. Архитектура допускает соединение нескольких хабов.

    У каждого хаба имеется один восходящий порт (Upstream Port), предназначенный для подключения к хосту или хабу верхнего уровня. Остальные порты являются нисходящими (Downstream Ports), предназначенными для подключения функций или хабов нижнего уровня. Хаб может распознать подключение устройств к портам или отключение от них и управлять подачей питания на их сегменты. Каждый из портов может быть разрешен или запрещен и сконфигурирован на полную или ограниченную скорость обмена. Хаб обеспечивает изоляцию сегментов с низкой скоростью от высокоскоростных.

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

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

    В рассматриваемую структуру входят следующие элементы:

      Физическое устройство USB - устройство на шине, выполняющее функции, интересующие конечного пользователя.

      Client SW - ПО, соответствующее конкретному устройству, исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.

      USB System SW - системная поддержка USB, независимая от конкретных устройств и клиентского ПО.

      USB Host Controller - аппаратные и программные средства для подключения устройств USB к хост-компьютеру.

    3.Физический интерфейс

    Стандарт USB определяет электрические и механические спецификации шины. Информационные сигналы и питающее напряжение 5 В передаются по четырехпроводному кабелю. Используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Уровни сигналов передатчиков в статическом режиме должны быть ниже 0,3 В (низкий уровень) или выше 2,8 В (высокий уровень). Приемники выдерживают входное напряжение в пределах - 0,5...+3,8 В. Передатчики должны уметь переходить в высокоимпедансное состояние для двунаправленной полудуплексной передачи по одной паре проводов.

    Передача по двум проводам в USB не ограничивается дифференциальными сигналами. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса. Состояния Diff0 и Diff1 определяются по разности потенциалов на линиях D+ и D- более 200 мВ при условии, что на одной из них потенциал выше порога срабатывания VSE. Состояние, при котором на обоих входах D+ и D- присутствует низкий уровень, называется линейным нулем (SEO - Single-Ended Zero). Интерфейс определяет следующие состояния:

      Data J State и Data К State - состояния передаваемого бита (или просто J и К), определяются через состояния Diff0 и Diff1.

      Idle State - пауза на шине.

      Resume State - сигнал "пробуждения" для вывода устройства из "спящего" режима.

      Start of Packet (SOP) - начало пакета (переход из Idle State в К).

      End of Packet (EOP) - конец пакета.

      Disconnect - устройство отключено от порта.

      Connect - устройство подключено к порту.

      Reset - сброс устройства.

    Состояния определяются сочетаниями дифференциальных и линейных сигналов; для полной и низкой скоростей состояния DiffO и Diff1 имеют противоположное назначение.
    В декодировании состояний Disconnect, Connect и Reset учитывается время нахождения линий (более 2,5 мс) в определенных состояниях.

    Шина имеет два режима передачи. Полная скорость передачи сигналов USB составляет 12 Мбит/с, низкая - 1,5 Мбит/с. Для полной скорости используется экранированная витая пара с импедансом 90 Ом и длиной сегмента до 5 м, для низкой - невитой неэкранированньгй кабель до 3 м. Низкоскоростные кабели и устройства дешевле высокоскоростных. Одна и та же система может одновременно использовать оба режима; переключение для устройств осуществляется прозрачно.

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

    на линиях D+ и D-, смещаемых нагрузочными резисторами R2 приемопередатчиков (см. рис. 7.2 и 7.3)

    С
    игналы синхронизации кодируются вместе с данными по методу NRZI (Non Return to Zero Invert), его работу иллюстрирует рис. 7.4. Каждому пакету предшествует поле синхронизации SYNC, позволяющее приемнику настроиться на частоту передатчика. Кабель также имеет линии VBus и GND для передачи питающего напряжения 5 В к устройствам.

    Сечение проводников выбирается в соответствии с длиной сегмента для обеспечения гарантированного уровня сигнала и питающего напряжения. Стандарт определяет два типа разъемов (см. табл. 7.1 и рис. 7.5).

    Разъемы типа "А" применяются для подключения к хабам (Upstream Connector). Вилки устанавливаются на кабелях, не отсоединяемых от устройств (например, клавиатура, мышь и т. п.). Гнезда устанавливаются на нисходящих портах (Downstream Port) хабов. Разъемы типа "В" (Downstream Connector) устанавливаются на устройствах, от которых соединительный кабель может отсоединяться (принтеры и сканеры). Ответная часть (вилка) устанавливается на соединительном кабеле, противоположный конец которого имеет вилку типа "А".

    Разъемы типов "А" и "В" различаются механически (рис. 7.5), что исключает недопустимые петлевые соединения портов хабов. Четырехконтактные разъемы имеют ключи, исключающие неправильное присоединение. Конструкция разъемов обеспечивает позднее соединение и раннее отсоединение сигнальных цепей по сравнению с питающими. Для распознавания разъема USB на корпусе устройства ставится стандартное символическое обозначение.

    Р
    ис. 7.5. Гнезда USB: а - типа "А", б - типа "В", в - символическое обозначение

    Питание устройств USB возможно от кабеля (Bus-Powered Devices) или от собственного блока питания (Self-Powered Devices). Хост обеспечивает питанием непосредственно подключенные к нему ПУ. Каждый хаб, в свою очередь, обеспечивает питание устройств, подключенных к его нисходящим портам. При некоторых ограничениях топологии допускается применение хабов, питающихся от шины. На рис. 7.6 приведен пример схемы соединения устройств USB.

    Здесь клавиатура, перо и мышь могут питаться от шины.

    USB поддерживает как однонаправленные, так и двунаправленные режимы связи. Передача данных производится между ПО хоста и конечной точкой устройства. Устройство может иметь несколько конечных точек, связь с каждой из них (канал) устанавливается независимо.

    Архитектура USB допускает четыре базовых типа передачи данных:

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

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

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

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

    Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и если установление нового канала требует такой полосы, которая не вписывается в уже существующее распределение, запрос на выделение канала отвергается.

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

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

    Протокол

    Все обмены (транзакции) по USB состоят из трех пакетов. Каждая транзакция планируется и начинается по инициативе контроллера, который посылает пакет-аркер (Token Packet). Он описывает тип и направление передачи, адрес ус-тройства USB и номер конечной точки. В каждой транзакции возможен обмен только между адресуемым устройством (его конечной точкой) и хостом. Адресуемое маркером устройство распознает свой адрес и готовится к обмену. Источник данных (определенный маркером) передает пакет данных (или уведомление об отсутствии данных, предназначенных для передачи). После успешного приема пакета приемник данных посылает пакет подтверждения (Handshake Packet).

    Планирование транзакций обеспечивает управление поточными каналами. На аппаратном уровне использование отказа от транзакции (NAck) при недопустимой интенсивности передачи предохраняет буферы от переполнения сверху и снизу. Маркеры отвергнутых транзакций повторно передаются в свободное для шины время. Управление потоками позволяет гибко планировать обслуживание одновременных разнородных потоков данных.

    Устойчивость к ошибкам обеспечивают следующие свойства USB:

      Высокое качество сигналов, достигаемое благодаря дифференциальным приемникам/передатчикам и экранированным кабелям.

      Защита полей управления и данных CRC-кодами.

      Обнаружение подключения и отключения устройств и конфигурирование ресурсов на системном уровне.

      Самовосстановление протокола с тайм-аутом при потере пакетов.

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

      Независимость функций от неудачных обменов с другими функциями.

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

    Устройства USB - функции и хабы

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

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

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

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

    Устройство USB должно поддерживать приостановку (Suspended Mode), в котором его потребляемый ток не превышает 500 мкА. Устройство должно автоматически приостанавливаться при прекращении активности шины.

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

    Хаб в USB выполняет коммутацию сигналов и выдачу питающего напряжения, а также отслеживает состояние подключенных к нему устройств, уведомляя хост об изменениях. Хаб состоит из двух частей - контроллера (Hub Controller) и повторителя (Hub Repeater). Повтори Повторитель представляет собой управляемый ключ, соединяющий выходной порт со входным. Он имеет средства поддержки сброса и приостановки передачи сигналов. Контроллер содержит регистры для взаимодействия с хостом. Доступ к регистрам осуществляется по специфическим командам обращения к хабу. Команды позволяют конфигурировать хаб, управлять нисходящими портами и наблюдать их состояние.

    Нисходящие (Downstream) порты хабов могут находиться в следующих состояниях:

      Powered (питание отключено) - на порт не подается питание (возможно только для хабов, коммутирующих питание). Выходные буферы переводятся в высокоимпедансное состояние, входные сигналы игнорируются.

      Disconnected (отсоединен) - порт не передает сигналы ни в одном направлении, но способен обнаружить подключение устройства (по отсутствию состояния SEO в течение 2,5 мкс). Тогда порт переходит в состояние Disabled, а по уровням входных сигналов {DiffO или Diff1 в состоянии Idle) он определяет скорость подключенного устройства.

      Disabled (запрещен) - порт передает только сигнал сброса (по команде от контроллера), сигналы от порта (кроме обнаружения отключения) не воспринимаются. По обнаружении отключения (2,5 мкс состояния SEO) порт переходит в состояние Disconnect, а если отключение обнаружено "спящим" хабом, контроллеру будет послан сигнал Resume.

      Enabled (разрешен) - порт передает сигналы в обоих направлениях. По команде контроллера или по обнаружении ошибки кадра порт переходит в состояние Disabled, а по обнаружении отключения - в состояние Disconnect.

    • Suspended (приостановлен) - порт передает сигнал перевода в состояние останова ("спящий" режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако "спящий" хаб воспринимает сигналы смены состояния незапрещенных портов, подавая "пробуждающие" сигналы от активизировавшегося устройства даже через цепочку "спящих" хабов. Состояние каждого порта идентифицируется контроллером хаба с помощью отдельных регистров. Имеется общий регистр, биты которого отражают факт изменения состояния каждого порта (фиксируемый во время EOF). Это позволяет хост-контроллеру быстро узнать состояние хаба, а в случае обнаружения изменений специальными транзакциями уточнить состояние.

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

    – Что такое USB?

    Спецификация периферийной шины USB разработана лидерами компьютерной и телекоммуникационной промышленности -- Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom -- для подключения компьютерной периферии вне корпуса машины по стандарту plug"n"play, в результате отпадает необходимость в установке дополнительных плат в слоты расширения и переконфигурировании системы. Персональные компьютеры, имеющие шину USB, позволяют подключать периферийные устройства и осуществляют их автоматическое конфигурирование, как только устройство физически будет присоединено к машине, и при этом нет необходимость перезагружать или выключать компьютер, а так же запускать программы установки и конфигурирования. Шина USB позволяет одновременно подключать последовательно до 127 устройств, таких, как мониторы или клавиатуры, выполняющие роль дополнительно подключенных компонентов, или хабов (т.е. устройство, через которое подключается еще несколько).

    – Кто создал USB?

    USB была разработана группой из семи компаний, которые видели необходимость во взаимодействии для обеспечения дальнейшего роста и развития расцветающей индустрии интегрированных компьютеров и телефонии. Эти семь компаний, продвигающие USB, следующие: Compaq, Digital Equipment Corp, IBM PC Co., Intel, Microsoft, NEC и Northern Telecom.

    – Как это работает?

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

    – Какие виды периферийного оборудования поддерживает USB для подключения к моему PC?

    Вы знаете эти устройства: телефоны, модемы, клавиатуры, мыши, устройства чтения CD ROM, джойстики, ленточные и дисковые накопители, сканеры и принтеры. Скорость прокачки в 12 мегабит/секунду позволяет подключать через USB все современное поколение периферийных устройств, включая аппаратуру для обработки видео данных формата MPEG-2, перчатки для управления виртуальными объектами и дигитайзеры. Также, с ожиданием большого роста в области интеграции компьютеров и телефонии, шина USB может выступать в качестве интерфейса для подключения устройств Цифровой сети с интегрированными услугами (ISDN) и цифровых устройств Private Branch eXchange (PBX), позволяющих подключать большое количество телефонов к небольшому количеству линий связи.

    – Нужно ли мне покупать специальное программное обеспечение, что бы работала USB-совместимая периферия?

    Операционная система Windows 95 (начиная с версии OSR 2.1, выпущенной 29 октября 1996г.) поставляется уже со встроенными драйверами, которые позволяет Вашему персональному компьютеру распознавать USB периферию. В результате, Вам не нужно покупать или инсталлировать дополнительное программное обеспеченте для каждого нового периферийного устройства. Тем не менее, вместе с новой USB периферией вы получите дискету с новыми драйверами. Однако, не все так радужно - например, корректную работу принтера с интерфейсом USB способна обеспечить только OC Windows 98 и выше.

    – Что означает существование USB для поставщиков систем и периферии?

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

    • "Готовая платформа" позволяет логично связать аппаратное и программное обеспечение для совместной поставки покупателю.
    • USB может снизить риск возможной несовместимости периферийного и программного обеспечения, поставляемого с компьютерами, за счет поставки готовых систем по ключ, которые удовлетворяют требованиям специализированных рыночных ниш.
    • USB-совместимая периферия может предложить частным и корпоративным покупателям больший выбор оборудования, без страха снижения функциональных возможностей аппаратных средств.
    • Реселлеры получают большую гибкость в подборе аппаратуры и готовых систем, для стимуляции покупательского спроса, за счет возможности комбинирования комплектов поставляемой периферии, без опасений, что что-то с чем-то не будет работать в паре.
    • USB может обеспечить поставщикам периферии дополнительную выгоду, за счет поставки нового оборудования для систем, использующих технологию MMX™.
    • USB может помочь поставщикам снизить их затраты на разработки, что в свою очередь позволит им устанавливать новые, более конкурентноспособные, цены.

    – Где я могу найти текущую версию спецификации USB?

    Текущая версия спецификации доступна для загрузки со страницы сообщества по внедрению USB - .

    – Как много USB-совместимых компьютеров можно ожидать на рынке?

    Компания Dataquest считает, что до 30 миллионов USB-совместимых персональных компьютеров будет продано в течении 1997, а в 1998 году, все персональные компьютеры будут оснащены шиной USB.

    – Есть ли уже устройства для USB шины?

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

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

    – Как может применяться USB при наличие двух систем, например ноутбука и настольного компьютера?

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

    – Что такое сообщество по внедрению USB (USB-IF)?

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

    – Могу ли я присоединиться к сообществу USB-IF?

    В принципе да. Вы можете узнать об условиях вступления из этого документа .

    – Как можно сравнить USB со стандартом Sony FireWire/IEEE 1394?

    Основные отличия состоят в области применения, доступности и цене. Использование USB доступно уже сейчас для традиционных устройств, подключаемых к PC, таких, как клавиатуры, мыши, джойстики и ручные сканнеры. Тем не менее, пропускная возможность USB в 12 Mb/сек более чем достаточна для большинства применений ее пользователями, включая более продвинутые игровые устройства, высококачественный звук и сжатое видео стандартов MPEG-1 и MPEG-2. Но, что более важно, применение USB не увеличивает стоимость готовой системы в силу интегрирования контроллера в чипсет.

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

    – Заменит ли FireWire шину USB после своего появления?

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

    – Что такое интеллектуальные вопросы собственности (Intellectual Property - IP) в отношении USB, лицензия ли это, сколько она стоит, что такое "Обратный Договор"(Reciprocal Covenent Agreement) о котором я слышал?

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

    – Что такое сцпецификации OHCI и UHCI?

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

    – Существует ли группа новостей про USB?

    Существует лист почтовой рассылки для членов USB-IF, в котором происходят обсуждения и взаимодействия между компаниями. Нет никакой цензуры или проверки, кроме правил переписки, определяющих, что обсуждаются только темы, связанные с USB. Это не настоящая группа новостей, так как работает только через электронную почту, соответственно не ведется никакого архива, доступного каждому для просмотра.

    – Как я могу получить идентификационный индекс (ID) производителя USB?

    Члены USB-IF получают ID производителя бесплатно, как только присоединяются к сообществу. Не члены сообщества могут получить ID производителя связавшись с администрацией USB-IF. С не членов сообщества взимается регистрационная пошлина в размере $200.

    – Есть ли возможность увеличить длину соединения устройств через шину USB до 50-200 метров (например, используя оптоволокно), если это понадобится пользователям?

    Периферийный интерфейс USB предназначен для настольных систем, а расстояние в 200 метров, похоже, соответствует очень большему столу. Многие компании, входящие в сообщество внедрения USB, уже долгое время обсуждают проблему применения шины на больших расстояниях и думают о создании продуктов, которые позволили бы сделать это возможным. Устройство расширения выглядит как два хаба для шины USB, однако использует другие протоколы (например, для оптоволокна) между точками соединения кабеля. На каждом конце электрический сигнал в USB должен быть транслирован в или из сигнала для длинных расстояний. Для того, что бы все это стало возможным, необходимо решить вопросы, связанные с протоколом передачи пакетов данных и временными задержками, которые должны быть совместимы и соответствовать спецификации USB.

    – Когда устройство отключено, его драйвер выгружается из памяти, если опять подключить это же устройство, будет ли его драйвер снова загружен?

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

    – Существуют ли планы по увеличению пропускной способности шины USB вдвое, втрое?

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

    – Может ли кто нибудь разъяснить разницу между соединителями серии "A" и "B"?

    Коннекторы серии "A" разработаны для всех устройств USB, и являются разъемом для периферии и гнездом для персонального компьютера. В большинстве случаев, кабель USB должен быть встроен в периферийное устройство. Это снижает стоимость соединителей, избавляет от несовместимости, возможной в случае разного сопротивления кабелей, и упрощает действия пользователей по подключению. Однако в некоторых случаях встроенный кабель нельзя использовать. Хорошим примером могут служить очень большие и тяжелые устройства, плохо сочетатающиеся с тонким кабелем, который нельзя удалить, а так же устройства, подключаемые только изредка, которые интенсивно используются, когда не являются подключенными. Для таких случаев и были созданы коннекторы серии "B". Две серии коннекторов различаются внешне, это сделано для предотвращения соединений, которые бы могли нарушить топологию архитектуры USB.

    – В чем разница между основным хабом и обычным с точки зрения аппаратной реализации и программного обеспечения?

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

    – Возможно ли использование шины USB для подключения таких периферийных устройств, как CD-R, ленточных накопителей или жестких дисков?

    Возможность применения основана на приемлемости уровня производительности. Если какое-то из этих устройств предполагается часто использовать, то, обычно предъявляются требования, что бы оно было механически интегрированно в систему и имело высокую производительность, опять же соответствующую уровню системы в целом. Шина USB не разрабатывалась для обеспечения постоянного соединения высокоскоростных периферийных устройств внутри корпуса компьютера. Если устройство используется время от времени или подключается к разным компьютерам, тогда, производительность, обеспечиваемая шиной USB будет более чем достаточной. Удобства использования и подключения устройств, обеспечиваемые USB с лихвой перевешивают параметры скорости предачи данных. Но все таки, USB обеспечивает скорость передачи на уровне 4x или 6x скоростных приводов CD (чего недостаточно для перезаписывающих устройств), но при этом лучшую, чем обеспечивают обычные ленточные накопители, подключенные через параллельный порт, дисководы для гибких магнитных дисков или съемные жесткие диски типа SyQuest.

    История появления и развития стандартов Universal Serial Bus (USB)

        До появления первой реализации шины USB стандартная комплектация персонального компьютера включала один параллельный порт, обычно для подключения принтера (порт LPT), два последовательных коммуникационных порта (порты COM), обычно для подключения мыши и модема, и один порт для джойстика (порт GAME). Такая конфигурация была вполне приемлемой на заре появления персональных компьютеров, и долгие годы являлась практическим стандартом для производителей оборудования. Однако прогресс не стоял на месте, номенклатура и функциональность внешних устройств постоянно совершенствовались, что в конце концов привело к необходимости пересмотра стандартной конфигурации, ограничивающей возможность подключения дополнительных периферийных устройств, которых, с каждым днем становилось все больше и больше.

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

        Первая спецификация последовательного интерфейса USB (Universal Serial Bus) , получившая название USB 1.0 , появилась в 1996 г. , усовершенствованная версия на ее основе, USB 1.1 - в 1998 г. Пропускная способность шин USB 1.0 и USB 1.1 - до 12 Мбит/с (реально до 1 мегабайта в секунду) была вполне достаточной для низкоскоростных периферийных устройств, вроде аналогового модема или компьютерной мышки, однако недостаточной для устройств с высокой скоростью передачи данных, что являлось главным недостатком данной спецификации. Однако, практика показала, что универсальная последовательная шина - это очень удачное решение, принятое практически всеми производителями компьютерного оборудования в качестве магистрального направления развития компьютерной периферии.

    В 2000 г. появилась новая спецификация - USB 2.0 , обеспечивающая уже скорость передачи данных до 480 Мбит/с (реально до 32 мегабайт в секунду). Спецификация предполагала полную совместимость с предыдущим стандартом USB 1.X и вполне приемлемое быстродействие для большинства периферийных устройств. Начинается бум производства устройств, оснащенных интерфейсом USB. "Классические" интерфейсы ввода - вывода были полностью вытеснены и стали экзотикой. Однако, для части высокоскоростного периферийного оборудования даже удачная спецификация USB 2.0 оставалась узким местом, что требовало дальнейшего развития стандарта.

    В 2005 г. была анонсирована спецификация для беспроводной реализации USB - Wireless USB - WUSB , позволяющей выполнять беспроводное подключение устройств на расстоянии до 3-х метров с максимальной скоростью передачи данных 480 Мбит/сек, и на расстоянии до 10 метров с максимальной скоростью 110 Мбит/сек. Спецификация не получила бурного развития и не решала задачу повышения реальной скорости передачи данных.

    В 2006 г. была анонсирована спецификация USB-OTG (USB O n-T he-G o, благодаря которой стала возможной связь двух USB-устройств друг с другом без отдельного USB-хоста. Роль хоста в данном случае выполняет одно из периферийных устройств. Смартфонам, цифровым фотоаппаратам и прочим мобильным устройствам приходится быть как хостом, так и периферийным устройством. Например, при подключении по USB к компьютеру фотоаппарата, он является периферийным устройством, а при подключении принтеру он является хостом. Поддержка спецификации USB-OTG постепенно стала стандартом для мобильных устройств.

    В 2008 г. появилась окончательная спецификация нового стандарта универсальной последовательной шины - USB 3.0 . Как и в предыдущих версиях реализации шины, предусмотрена электрическая и функциональная совместимость с предыдущими стандартами. Скорость передачи данных для USB 3.0 увеличилась в 10 раз - до 5 Гбит/сек. В интерфейсном кабеле добавились 4 дополнительные жилы, и их контакты были выведены отдельно от 4-х контактов предыдущих стандартов, в дополнительном контактном ряду. Кроме повышенной скорости передачи данных шина USB характеризуется еще и увеличившейся, по сравнению с предыдущими стандартами, силой тока в цепи питания. Максимальная скорость передачи данных по шине USB 3.0 стала приемлемой практически для любого, массово производимого периферийного компьютерного оборудования.

    В 2013 году была принята спецификация следующего интерфейса - USB 3.1 , скорость передачи данных которого может достигать 10 Гбит/с. Кроме того, появился компактный 24-контактный разъём USB Type-C , который является симметричным, позволяя вставлять кабель любой стороной.

    После выхода стандарта USB 3.1 организация USB Implementers Forum (USB-IF) объявила, что разъёмы USB 3.0 со скоростью до 5 Гбит/с (SuperSpeed) теперь будут классифицироваться как USB 3.1 Gen 1, а новые разъёмы USB 3.1 со скоростью до 10 Гбит/с (SuperSpeed USB 10Gbps) - как USB 3.1 Gen 2. Стандарт USB 3.1 обратно совместим с USB 3.0 и USB 2.0.

    В 2017 году организация USB Implementers Forum (USB-IF) опубликовала спецификацию USB 3.2 . Максимальная скорость передачи составляет 10 Гбит/с. Однако в USB 3.2 предусмотрена возможность агрегации двух подключений (Dual-Lane Operation ), позволяющая увеличить теоретическую пропускную способность до 20 Гбит/с. Реализация этой возможности сделана опциональной, то есть ее поддержка на уровне оборудования будет зависеть от конкретного производителя и технической необходимости, которая отличается, например, для принтера и переносного жесткого диска. Возможность реализации данного режима предусмотрена только при использовании USB Type-C .

    www.usb.org - Документация по спецификациям USB для разработчиков на английском языке.

    Нельзя не отметить, что существовала, и пока еще существует, альтернатива шине USB. Еще до ее появления, компания Apple разработала спецификацию последовательной шины FireWire (другое название - iLink ), которая в 1995 г. была стандартизована Американским Институтом инженеров по электротехнике и электронике (IEEE) под номером 1394. Шина IEEE 1394 может работать в трех режимах: со скоростью передачи данных до 100, 200 и 400 Мбит/с. Однако, по причине высокой стоимости и более сложной реализации, чем USB, эта разновидность высокоскоростной последовательной шины, большого распространения не получила, и постепенно вытесняется USB 2.0 – USB 3.2.

    Общие принципы работы периферийных устройств Universal Serial Bus (USB)

        Интерфейс USB оказался настолько удачным решением, что им оснастили практически все классы периферийных устройств, от мобильного телефона до веб-камеры или переносного жесткого диска. Наибольшее распространение получили (пока) устройства с поддержкой USB 2.0. Однако, USB 3.0 – 3.1 более востребован для высокоскоростных устройств, где он становится основным, постепенно вытесняя USB 2.0.

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

      Благодаря использованию USB отпадает необходимость снятия корпуса компьютера для установки дополнительных периферийных устройств, а также необходимость выполнения сложных настроек при их установке.

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

      USB позволяет выполнять "горячее" (оперативное) подключение. При этом не требуется предварительное выключение компьютера, затем подключение устройства, перезагрузка компьютера и настройка установленных периферийных устройств. Для отключения периферийного устройства не требуется выполнять процедуру, обратную описанной.

    Проще говоря, USB позволяет фактически реализовать все преимущества современной технологии "plug and play" ("включай и работай"). Устройства, разработанные для USB 1.x могут работать с контроллерами USB 2.0. и USB 3.0

    При подключении периферийного устройства вырабатывается аппаратное прерывание и управление получает драйвер HCD (Host Controller Driver ) контроллера USB (USB Host Controller - UHC ), который на сегодняшний день интегрирован во все выпускаемые чипсеты материнских плат. Он опрашивает устройство и получает от него идентификационную информацию, исходя из которой управление передается драйверу, обслуживающему данный тип устройств. UHC контроллер имеет корневой (root) концентратор (Hub), обеспечивающий подключение к шине устройств USB.

    Концентратор (USB HUB).

    Точки подключения называются портами . К порту, в качестве устройства, может быть подключен другой концентратор. Каждый концентратор имеет исходящий порт (upstream port ), соединяющие его с главным контроллером и нисходящие порты (downstream port ) для подключения периферийных устройств. Концентраторы могут обнаруживать, выполнять соединение и отсоединение в каждом порте нисходящей связи и обеспечивать распределение напряжения питания в устройства нисходящего соединения. Каждый из портов нисходящей связи может быть индивидуально активизирован и сконфигурирован на полной или низкой скорости. Концентратор состоит из двух блоков: контроллера концентратора и ретранслятора концентратора. Ретранслятор - работающий под управлением протокола коммутатор между портом восходящей связи и портами нисходящей связи. Концентратор содержит также аппаратные средства поддержки перевода в исходное состояние и приостановки/возобновления подключения. Контроллер обеспечивает интерфейсные регистры, обеспечивающие передачу данных в главный контроллер и обратно. Определенное состояние и управляющие команды концентратора позволяют главному процессору конфигурировать концентратор, а также контролировать и управлять его портами.


    Внешние концентраторы могут иметь собственный блок питания или же запитываться от шины USB.

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

    Разъемы типа А используются для подключения к компьютеру или концентратору. Разъемы типа B используются для подключения к периферийным устройствам.

    Все разъёмы USB, имеющие возможность входить в соединение друг с другом, рассчитаны на совместную работу.

    Имеется электрическая совместимости всех контактов разъёма USB 2.0 с соответствующими контактами разъёма USB 3.0. При этом разъём USB 3.0 имеет дополнительные контакты, не имеющие соответствия в разъёме USB 2.0, и, следовательно, при соединении разъёмов разных версий "лишние" контакты не будут задействованы, обеспечивая нормальную работу соединения версии 2.0. Все гнёзда и штекеры между USB 3.0 Тип A и USB 2.0 Тип A рассчитаны на совместную работу. Размер гнезда USB 3.0 Тип B несколько больше, чем это могло бы потребоваться для штекера USB 2.0 Тип B и более ранних. При этом предусмотрено подключение в эти гнёзда и такого типа штекеров. Соответственно, для подключения к компьютеру периферийного устройства с разъёмом USB 3.0 Тип B можно использовать кабели обоих типов, но для устройства с разъёмом USB 2.0 Тип B - только кабель USB 2.0. Гнёзда eSATAp, обозначенные как eSATA/USB Combo, то есть имеющие возможность подключения к ним штекера USB, имеют возможность подключения штекеров USB Тип A: USB 2.0 и USB 3.0, но в скоростном режиме USB 2.0.

    Разъёмы USB Type-C служат для подключения как к периферийным устройствам, так и к компьютерам, заменяя различные разъёмы и кабели типов A и B предыдущих стандартов USB, и предоставляя возможности расширения в будущем. 24-контактный двухсторонний разъём является достаточно компактным, близким по размерам к разъёмам микро-B стандарта USB 2.0. Размеры разъёма - 8,4 мм на 2,6 мм. Коннектор предоставляет 4 пары контактов для питания и заземления, две дифференциальные пары D+/D- для передачи данных на скоростях менее SuperSpeed (в кабелях Type-C подключена только одна из пар), четыре дифференциальные пары для передачи высокоскоростных сигналов SuperSpeed, два вспомогательных контакта (sideband), два контакта конфигурации для определения ориентации кабеля, выделенный канал конфигурационных данных (кодирование BMC - biphase-mark code) и контакт питания +5 V для активных кабелей.

    Контакты разъёма и разводка кабеля USB Type-C

    Type-C - штекер и гнездо

    Кон. Название Описание Кон. Название Описание
    A1 GND Заземление B12 GND Заземление
    A2 SSTXp1 Диф. пара № 1 SuperSpeed, передача, положительный B11 SSRXp1 Диф. пара № 2 SuperSpeed, приём, положительный
    A3 SSTXn1 Диф. пара № 1 SuperSpeed, передача, отрицательный B10 SSRXn1 Диф. пара № 2 SuperSpeed, приём, отрицательный
    A4 V BUS Питание B9 V BUS Питание
    A5 CC1 Канал конфигурации B8 SBU2 Sideband № 2 (SBU)
    A6 Dp1 Диф. пара не-SuperSpeed, положение 1, положительный B7 Dn2 Диф. пара не-SuperSpeed, положение 2, отрицательный
    A7 Dn1 Диф. пара не-SuperSpeed, положение 1, отрицательный B6 Dp2 Диф. пара не-SuperSpeed, положение 2, положительный
    A8 SBU1 Sideband № 1 (SBU) B5 CC2 Канал конфигурации
    A9 V BUS Питание B4 V BUS Питание
    A10 SSRXn2 Диф. пара № 4 SuperSpeed, передача, отрицательный B3 SSTXn2 Диф. пара № 3 SuperSpeed, приём, отрицательный
    A11 SSRXp2 Диф. пара № 4 SuperSpeed, передача, положительный B2 SSTXp2 Диф. пара № 3 SuperSpeed, приём, положительный
    A12 GND Заземление B1 GND Заземление
    1. Неэкранированная дифференциальная пара, может использоваться для реализации USB Low Speed (1.0), Full Speed (1.0), High Speed (2.0) - до 480 Мбит/с
    2. В кабеле реализована только одна из дифференциальных пар не-SuperSpeed. Данный контакт не используется в штекере.
    Назначение проводников в кабеле USB 3.1 Type-C
    Разъём №1 кабеля Type-C Кабель Type-C Разъём №2 кабеля Type-C
    Контакт Название Цвет оболочки проводника Название Описание Контакт Название
    Оплётка Экран Оплётка кабеля Экран Внешняя оплётка кабеля Оплётка Экран
    A1, B1, A12, B12 GND Лужёный GND_PWRrt1
    GND_PWRrt2
    Общая земля> A1, B1, A12, B12 GND
    A4, B4, A9, B9 V BUS Красный PWR_V BUS 1
    PWR_V BUS 2
    V BUS питание A4, B4, A9, B9 V BUS
    B5 V CONN Жёлтый
    PWR_V CONN V CONN питание B5 V CONN
    A5 CC Синий CC Канал конфигурирования A5 CC
    A6 Dp1 Белый UTP_Dp Неэкранированная дифференциальная пара, positive A6 Dp1
    A7 Dn1 Зелёный UTP_Dn Неэкранированная дифференциальная пара, negative A7 Dn1
    A8 SBU1 Красный SBU_A Полоса передачи данных A B8 SBU2
    B8 SBU2 Чёрный SBU_B Полоса передачи данных B A8 SBU1
    A2 SSTXp1 Жёлтый * SDPp1 Экранированная дифференциальная пара #1, positive B11 SSRXp1
    A3 SSTXn1 Коричневый * SDPn1 Экранированная дифференциальная пара #1, negative B10 SSRXn1
    B11 SSRXp1 Зелёный * SDPp2 Экранированная дифференциальная пара #2, positive A2 SSTXp1
    B10 SSRXn1 Оранжевый * SDPn2 Экранированная дифференциальная пара #2, negative A3 SSTXn1
    B2 SSTXp2 Белый * SDPp3 Экранированная дифференциальная пара #3, positive A11 SSRXp2
    B3 SSTXn2 Чёрный * SDPn3 Экранированная дифференциальная пара #3, negative A10 SSRXn2
    A11 SSRXp2 Красный * SDPp4 Экранированная дифференциальная пара #4, positive B2 SSTXp2
    A10 SSRXn2 Синий * SDPn4 Экранированная дифференциальная пара #4, negative B3 SSTXn2
    * Цвета для оболочки проводников не установлены стандартом

    Подключение ранее выпущенных устройств к компьютерам, оснащённым разъёмом USB Type-C, потребует кабеля или адаптера, имеющих штекер или разъём типа A или типа B на одном конце и штекер USB Type-C на другом конце. Стандартом не допускаются адаптеры с разъёмом USB Type-C, поскольку их использование могло бы создать «множество неправильных и потенциально опасных» комбинаций кабелей.

    Кабели USB 3.1 с двумя штекерами Type-C на концах должны полностью соответствовать спецификации - содержать все необходимые проводники, должны быть активными, включающими в себя чип электронной идентификации, перечисляющий идентификаторы функций в зависимости от конфигурации канала и сообщения, определяемые вендором (VDM) из спецификации USB Power Delivery 2.0. Устройства с разъёмом USB Type-C могут опционально поддерживать шины питания с током в 1,5 или 3 ампера при напряжении 5 вольт в дополнение к основному питанию. Источники питания должны уведомлять о возможности предоставления увеличенных токов через конфигурационный канал либо полностью поддерживать спецификацию USB Power Delivery через конфигурационный контакт (кодирование BMC) или более старые сигналы, кодируемые как BFSK через контакт VBUS. Кабели USB 2.0, не поддерживающие шину SuperSpeed, могут не содержать чип электронной идентификации, если только они не могут передавать ток 5 ампер.

    Спецификация коннекторов USB Type-C версии 1.0 была опубликована форумом разработчиков USB в августе 2014 года. Она была разработана примерно в то же время, что и спецификация USB 3.1.

    Использование коннектора USB Type-C не обязательно означает, что устройство реализует высокоскоростной стандарт USB 3.1 Gen1/Gen2 или протокол USB Power Delivery.

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

    Шины PCI и PCI Express подходят для соединения высокоскоро­стных периферийных устройств, но использовать интерфейс PCI для низкоско­ростных устройств ввода-вывода (например, мыши и клавиатуры) неэффективно.

    Кроме того, для добавления новых уст­ройств использовались свободные ISA- и PCI-слоты, в которые вставлялись платы контроллеров УВВ.

    При этом пользователь должен сам установить пе­реключатели и перемычки на, затем должен открыть систем­ный блок, вставить плату, закрыть системный блок и включить ком­пьютер.

    Для многих этот процесс очень сложен и часто приводит к ошибкам. Кроме того, количество ISA- и PCI-слотов очень мало (обычно два или три).

    В 1993 году представители семи компаний (Compaq, DEC, IBM, Intel, Micro­soft, NEC и Nothern Telecom) разработали шину, опти­мально подходящую для подсоединения низкоскоростных устройств.

    Результатом их работы стала шина USB (Universal Serial Bus - универсальная последовательная шина), удовлетворяющую следующим требованиям:

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

    Общая пропускная способность первой версии шины (USB 1.0) составляет 12 Мбит/с.

    Версия 2.0 работает на скорости 480 Мбит/с что вполне достаточно для принтеров, цифровых камер и многих других устройств. Предел был выбран для того, чтобы снизить стоимость шипы.

    Версия USB 3.0 повышает максимальную скорость передачи информации до 5 Гбит/с - что на порядок больше USB 2.0 (480 Мбит/с). Таким образ, скорость передачи возрастает с 60 Мбайт/с до 600 Мбайт/с

    Шина USB состоит из корневого хаба (root hub), который вставляется в разъем главной шины (см, рис. 3.49). Этот корневой хаб (часто называемый корневым концентратором) содержит разъемы для кабелей, которые могут подсоединяться к устройствам ввода-вывода или к дополнительным хабам, чтобы увеличить ко­личество разъемов.

    Таким образом, топология шины USB представляет собой дерево с корнем в корневом хабе, который находится внутри компьютера.



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

    Кабель состоит из четырех проводов: два из них предназначены для переда­чи данных, один - для питания (+5 В) и один - для земли. Система передает 0 изменением напряжения, а 1 - отсутствием изменения напряжения» поэтому длинная последовательность нулевых битов порождает поток регулярных им­пульсов.

    Когда соединяется новое устройство ввода-вывода, корневой хаб обнаружи­вает этот факт и прерывает работу операционной системы.

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

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

    Таким образом, новые устройства могут подсоединяться *ша лету», при этом пользователю не нужно устанавливать новые платы ISA или PCI.

    Неинициализированные платы начинаются с адреса 0, поэтому к ним можно обращаться. Многие устройства снабжены встроенными сетевыми концентраторами для дополнительных уст­ройств. Например, монитор может содержать два хаба для правой и левой ко­лонок.

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

    В ка­ждом канале или подканале данные перемещаются от корневого хаба к устройст­ву и обратно- Между двумя устройствами ввода-вывода обмена информацией не происходит.

    Ровно через каждую миллисекунду (±0,05 мс) корневой хаб передает новый кадр, чтобы синхронизировать все устройства во времени. Кадр состоит из пакетов, первый из которых передается от хаба к устройству. Следующие пакеты кадра могут передаваться в том же направлении, а могут и в противоположном (от уст­ройства к хабу). На рис. 3,55 показаны четыре последовательных кадра.

    В 1998 году была создана высокоскоростная версии USB, названной USB 2.0. Этот стандарт во многом аналогичен USB 1A и совместим с ним, однако к двум прежним скоростям в нем добавляется новая - 480 Мбайт/с.

    3 Организации памяти в ЭВМ

    3.1 Иерархическая организация памяти и принцип локальности ссылок

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

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

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

    Иерархическая организация памяти имеет вид, представленный на рис. 3.1, где показаны диапазоны значений емкости и производи­тельности устройств памяти для современных компьютеров.


    Р и с. 3.1. Иерархическая организация памяти

    ОЗУ - оперативное запоминающее устройство;

    ПЗУ - постоянное запоминаю­щее устройство;

    CD/DVD - накопитель на оптических дисках;

    HDD (Hard Disk Drive) - накопитель на жестком магнитном диске;

    SSD (Solid State Drive) - накопитель на«твердом» диске

    На рис. 3.1 видно, что на более высоких уровнях иерархии расположены устройства с меньшей емкостью памяти, но с большим быстродей­ствием.

    Регистровая память или регистровый файл изготавливается в кри­сталле процессора по такой же технологии и имеет такое же быстро­действие, как и операционные элементы процессора.

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

    Во многих моделях процессоров кэш- память второго уровня интегрирована в ядро процессора.

    Кэш-память третьего уровня выполняется в виде отдельной ми­кросхемы с высоким быстродействием, либо в процессоре, как в ар­хитектуре Nehalem.

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

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

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

    Кроме того, программы содержат множество не­больших циклов и подпрограмм, которые многократно повторяются в течение интервала времени.


    На рис. 3.2 показаны размещенные в па­мяти два участка программы и соответствующие им области данных.

    Р и с. 3.2. Расположение программы и данных в памяти и локальность ссылок

    Это явление называется локальность ссылок или локальность по обращению. Известно правило «90/10» - то есть 90% времени работы программы связано с обращением к 10% адресного пространства этой программы.

    3.2 Взаимодействие процессора и различных уровней памяти

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

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

    Размер блока может быть либо фиксированным, либо переменным. Если этот размер за­фиксирован, то объем памяти является кратным размеру блока.

    Успешное или неуспешное обращение к более высокому уровню называются соответственно попаданием (hit) или промахом (miss).

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

    Доля попаданий или коэффициент попаданий есть доля обращений, найденных на более высоком уровне.

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

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

    Потери на промах включают в себя две компоненты: время доступа - время об­ращения к первому слову блока при промахе, и время пересылки - дополнительное время для пересылки оставшихся слов блока.

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

    Инициатором обращения к памяти практически всегда является процессор. Исключение - режим прямого доступа к памяти, когда ор­ганизуется процесс передачи файлов между ОП и внешней памятью через соответствующую шину, минуя процессор.

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

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

    Будем рассматривать блочную организацию данных.

    · В регистровой памяти данные записы­ваются блоками в виде слов длиной 16, 32, 64 и 128 бит .

    · В кэш-памя­ти блоком является строка длиной 16, 32 или 64 байта . В ОП чаще всего используются страницы по 4 - 8 Кб .

    · На жестких дисках блоки - это сектора по 512 байт . Как правило, размер страницы ОП кратен длине сектора винчестера.

    Если в системе есть кэш-память, то контроллер кэша проверяет, содержит ли кэш запрашиваемый адрес А исп. Если данные с таким ад­ресом есть, то блок с этими данными считывается из кэш-памяти в процессор, а обращение к ОП блокируется.

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

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

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

    3.3 Адресная память

    В адресном запоминающем устройстве (ЗУ) каждый запоминаю­щий элемент памяти - ячейка, имеет адрес, который показывает его расположение в адресном пространстве.

    Поиск информации произво­дится по номеру (адресу) запоминающей ячейки, хранящей данные.

    Совокупность N запоминающих ячеек образует запоминающую матрицу ЗМ.

    Для компактного расположения запоминающих ячеек и упроще­ния доступа к ним ЗМ организуется как трехмерный куб.

    В нем име­ются две адресные координаты A 1 и A 2 , а по третьей координате рас­полагаются

    n-разрядные слова.

    Если адрес, поступающий с ША, име­ет разрядность к, то он разделяется на две компоненты по k/2 адрес­ных бита:

    M= 2 k /2 х 2 k /2 = 2 k .

    В этом случае вместо одного ДША с M выходами используются два дешифратора с 2 k /2 выходами, что значи­тельно упрощает схемную реализацию.

    На рис. 3.3. показана структурная схема адресного запоминающе­го устройства.

    Запоминающая матрица ЗМ имеет две координаты: строки и столбцы. Блок управления (БУ) управляет устройствами ЗУ, получая извне сигналы: RAS, CAS, СЕ, WE и OE.

    Сигнал выбора микросхемы СЕ разрешает работу именно этой микросхемы памяти.

    Режим чтения или записи определяется сигна­лом WE. На все время, пока микросхема не использует шину данных ШД, информационные выходы регистров переводятся сигналом OE в третье состояние с высоким выходным сопротивлением.

    Адрес строки на шине ША сопровождается сигналом RAS, разре­шающим прием адреса и его дешифрацию. После этого сигнал CAS разрешает прием и дешифрацию адреса столбца.

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

    Управление операциями с памятью осуществляется контролле­ром памяти. На каждую операцию требуется, как минимум, пять тактов.

    Указание типа операции (чтение или запись) и установка ад­реса строки.


    Формирование сигнала RAS.

    Установка адреса столбца.

    Формирование сигнала CAS.

    Запись или выдача данных и возврат сигналов RAS и CAS в неактивное состояние.

    Р и с. 3.3. Адресное запоминающее устройство

    ЗМ - запоминающая матрица;

    RAS - сигнал строба строки (Row Address Strobe);

    CAS - сигнал строба столбца(Column Address Strobe);

    WE - разрешение записи (Write Enable);

    OE - разрешение выдачи выходных сигналов (Output Enable);

    CS - выбор микросхемы (Chip Select)

    Латентность памяти и тайминги

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

    Например, после выполнения команды чте­ния должна следовать задержка CAS (CAS La­tency). Это и есть ла­тентность (CL) - наиболее важная характеристика памяти.

    Очевидно, чем меньше латентность, тем быстрее работает память.

    Латентность памяти определяется ее таймингами, то есть задерж­ками, измеряемыми в количестве тактов между отдельными команда­ми.

    Существует несколько видов таймингов памяти.

    CL: CAS Latency - время, проходящее от момента подачи команды в память до начала ответа на этот запрос. Это вре­мя, которое проходит между запросом процессора на полу­чение некоторых данных из памяти и моментом выдачи этих данных памятью.

    RAS-to-CAS (tRCD): задержка от RAS до CAS - время, ко­торое должно пройти с момента обращения к строке матри­цы (RAS), до момента обращения к ее столбцу матрицы (CAS), с целью выборки данных в которых хранятся нужные данные.

    RAS Precharge(tRP) - интервал времени между моментом за­крытия доступа к одной строке и началом доступа к другой строке данных.

    Active to Precharge или Cycle Time (tRAS) - пауза, которая нужна памяти, чтобы вернуться в состояние ожидания сле­дующего запроса.

    CMD: Скорость поступления команды (Command Rate) - время с момента активации чипа памяти до момента, когда первая команда может обратиться к ней. Обычно это T1 (один тактовый цикл) или T2 (два тактовых цикла).

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

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

    В течение последних 25-ти лет латентность оперативной памяти уменьшилась всего в три раза. При этом тактовая частота процессо­ров возросла в сотни раз.

    3.4 Ассоциативная память

    Понятие «ассоциация» относится, прежде всего, к памяти, в кото­рой выборка осуществляется не по адресному принципу, а по содер­жанию.

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


    Поиск ведется с использованием ассоци­ативных признаков. Структура такой памяти представлена на рис. 3.4 .

    Р и с. 3.4. Ассоциативная память

    ЗМ - запоминающая матрица;

    ШП - шина признака;

    ШД - шина данных

    Память хранит M ячеек для m+1 -разрядных слов, имеющих зна­чения признаков.

    Служебный m +1-й разряд показывает: «0» - ячейка свободна для записи, «1» - ячейка занята. Значения ассоциативного признака формируются регистром маски из полей признаков, посту­пающих из шины признаков ШП в регистр ассоциативного признака.

    Поиск в запоминающей матрице выполняется за один такт одновре­менно по полям ассоциативных признаков всех хранящихся слов.

    Это является отличительной чертой ассоциативных устройств памяти.

    Ре­ализация такого поиска осуществляется комбинационными схемами совпадения на базе элементов «сложение по модулю 2».

    · Лекция 15. Протокол работы USB-шины.

    Общие сведения об USB -шине

    У любого компьютера, выпущенного в последнее время, вы обязательно обнаружите либо на лицевой панели, либо на задней стенке разъем USB. Шина USB (Universal Serial Bus) первоначально была разработана для обеспечения легкого подключения компьютера к телефонным линиям и расширения числа портов. Первая версия стандарта (версия 1.0) была выпущена в январе 1996 года. Сейчас в основном используется версия 1.1. Стандарт USB 1.1 вполне удовлетворяет всем требованиям при работе с низко-скоростными устройствами, вроде мышей и клавиатур, и даже с устройствами, работающими на средних скоростях, вроде Ethernet-адаптеров (10 Mbit/sec) или устройств бытовой электроники (таких, как цифровые камеры и MP3-плейеры), которые пересылают только несколько мегабайт данных. Но если на периферийное устройство или в обратном направлении необходимо пересылать большие объемы информации (примеры - жесткие диски, видеокамеры высокого разрешения, или одновременное использование нескольких сетевых адаптеров стандарта 100BaseT), то скорости, обеспечиваемые USB 1.1, уже недостаточны. Поэтому в 1999 году была разработана версия 2.0 стандарта USB, обеспечивающая более высокие скорости обмена данными.

    Современные компьютеры обычно имеют контроллер USB-шины, установленный на материнской плате. Для USB версии 1.1 было разработано два типа таких контроллеров, отличающихся интерфейсом взаимодействия с USB-устройствами: OHCI (Open Host Controller Interface) фирмы Compaq и UHCI (Universal Host Controller Interface) фирмы Intel. Оба типа имеют примерно одинаковые возможности и USB-устройства работают с обоими типами контроллеров. Аппаратная часть UHCI-контроллеров проще, а значит, они дешевле, но зато требуют более сложных драйверов, что увеличивает нагрузку на процессор. Версия 2.0 стандарта USB использует улучшенный вариант интерфейса - EHCI (Enhanced Host Controller Interface).

    Стандарт USB предусматривает строгую иерархию устройств, управляемых основным хостом, и использование протокола master/slave для управления подключаемыми устройствами. На один USB-разъем могут быть последовательно подключены до 127 устройств. Но непосредственно подключать одно устройство к другому нельзя, поскольку питание таких устройств осуществляется по той же шине. Поэтому для подключения дополнительных устройств используются специальные хабы, обеспечивающие снабжение этих устройств необходимой энергией. В результате USB-устройства образуют как бы дерево, каждая не конечная вершина которого является хабом. Поскольку любой обмен данными инициируется только хостом, и периферийные устройства не могут начать взаимодействие, исключена возможность коллизий, вследствие чего снижается стоимость устройств. Правда, такое решение приводит к некоторому снижению производительности. В результате USB-устройства версии 1.1 могут работать в двух режимах: так называемом low speed, обеспечивающем скорость передачи данных до 1.5 Mбит/сек, и full speed, в котором скорость передачи данных может составлять 12 Мбит/сек. Это только теоретический предел, а реально производительность шины даже в идеальных условиях не превышает 8,5 Мбит/сек., а в среднем составляет около 2 Мбит/сек.

    Интерфейс EHCI, используемый в устройствах версии 2, обеспечивает режим работы high speed, для которого скорость передачи данных может достигать 480 Мбит/сек. Для того чтобы USB-устройства могли обмениваться данными с такой скоростью, и хост-контроллер и само устройство должны соответствовать стандарту USB 2.0 и обеспечивать работу с интерфейсом EHCI. Однако хост-контроллеры 2.0 успешно работают с устройствами версии 1.1. И наоборот, вполне можно подключать устройства USB 2.0 к хосту (и к хабам) версии USB 1.1 и они будут прекрасно работать, но со скоростью не более 12, а не 480 Мбит/сек.

    В настоящее время разработан широкий спектр устройств, подключаемых по шине USB. Это клавиатуры, мыши, джойстики, игровые приставки, сканеры, модемы, принтеры, цифровые камеры, устройства хранения информации – дисководы гибких и жестких дисков, дисководы Zip, LS120 и CD-ROM. Очень перспективный и интересный класс таких устройств образуют накопители на основе Flash-памяти .

    Физическая среда

    Шина USB , обладает полосой пропускания 1,5 или 12 Мбит/с.

    USB -кабель состоит из 4 проводников:

    Два провода формируют витую пару, применяемую в дифференциальных передачах данных;

    Остальные два представляют собой линии питания и заземления устройств, не имеющих собственного питания 5 В постоянного напряжения.

    USB стандарт предполагает два вида кабеля и два варианта разъемов. High-speed (высокоскоростные) кабели, для связи 12Mb в секунду, лучше экранированы, чем их менее дорогие 1.5 Mb заменители. Каждый кабель имеет "А" разъем на одной стороне и "B" на другой. Рисунок 1 показывает как "А" разъемы подсоединяются к исходящему, а "В" к нисходящему. Таким образом два типа физически различны и невозможно подключить их неправильно.

    Рис 1. USB топологоия "подключение звездой"

    USB шина позволяет подключать до 127 устройств. Использование такого количества устройств возможно при многоуровневом каскадировании. Наглядно это объясняет следующий рисунок:

    Это первая архитектурная особенность шины 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) устройство съедало бы значительную часть времени, а следовательно и полезной пропускной способности шины, ведя обмен с хостом на низкой скорости (почему так происходит мы выясним позже при рассмотрении механизма обмена данными хост-устройство). Как метод борьбы транслятор транзакций буферизирует поступающий с медленного порта кадр, а затем на максимальной скорости передает его хосту, или же буферизирует получаемый на максимальной скорости кадр от хоста, передавая его затем устройству на меньшей, приемлемой для него скорости. Помимо разветвления и трансляции транзакций хаб должен осуществлять конфигурирование портов и слежение за корректным функционированием подключенных к ним устройств. Нужно сказать также, что при использовании старых и новых концентраторов вместе возможно создание неоптимальных с точки зрения производительности конфигураций. Для того что бы избежать создания узких мест в своей цепи, подключайте низкоскоростные устройства к низкоскоростным хабам, которые в свою очередь делайте последними уровнями ветвления и не подключайте их в середину высокоскоростной цепочки.

    Описание протоколов используемых при передаче данных

    Структура USB пакета

    В отличие от аналогичных последовательных интерфейсов, где формат посылаемых данных не имеет четко организованной структуры, для USB шины разграничены различные слои протоколов.

    Каждая USB транзакция состоит из следующих частей:

    · Признак пакета (Заголовок определяющий что далее будет следовать)

    · Пакет данных (Опционально)

    · Пакет статуса транзакции (Используется для подтверждения нормального завершения транзакции и обеспечения коррекции ошибок при передаче)

    Мастером на USB шине является хост. Он и является инициатором всех транзакций. Первым передаваемым пакетом является Признак (Token Packet). Он генерируется хостом для определения что будет следовать далее, какая это будет транзакция: чтение или запись, к какому устройству и конечной точке будет обращение. Следующим пакетом, как обычно, следует пакет данных (Data Packet). И в завершении транзакции следует пакет статуса (Status Packet), который либо подтверждает успешное принятие данных, либо указывает что конечная точка приостановлена (STALL) или не готова принимать данные.

    Поля USB пакета

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

    · Поле синхронизации (Sync Field)

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

    · Поле идентификатора пакета (PID Field)

    Идентификатор пакета следует непосредственно после поля синхронизации в каждом передаваемом USB пакете. PID состоит из четырехбитного типа пакета, следующего за четырехбитным проверочным полем как показано на рисунке 4.

    (LSB)

    (MSB)

    PID0

    PID1

    PID2

    PID3

    PID0

    PID1

    PID2

    PID3

    Рисунок 2. Формат поля PID.

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

    PID Тип

    Имя PID

    PID

    Описание

    Признак (Token)

    0001

    Адрес + номер конечной точки для транзакции ХОСТ -->Функция

    1001

    Адрес + номер конечной точки для транзакции ХОCT <-- Функция

    0101

    Маркер начала пакета и его номер

    SETUP

    1101

    Адрес + номер конечной точки для SETUP транзакции ХОСТ ® Функция в канале управления

    Данные

    DATA0

    0011

    Четный PID пакета данных

    DATA1

    1011

    Нечетный PID пакета данных

    Статус

    0010

    Приемник принял пакет данных без ошибок

    1010

    Принимающее устройство не может принять данные, или передающее не может их отправить

    STALL

    1110

    Конечна точка приостановлена (HALT) или запрос по управляющему каналу не поддерживается

    Спец.

    1100

    ХОСТ инициирует преамбулу, разрешая трафик для низкоскоростных устройств

    Рисунок 3. Типы PID .

    PID биты приведены в таблице в MSB порядке. Когда они передаются по шине, правый бит (бит 0) выдается первым.

    · Поле адреса устройства (Addr Field)

    Поле адреса используется для идентификации к какому устройству направлен текущий пакет. Размерность поля - 7 бит, что позволяет адресовать 127 уникальных USB устройств. После сброса или включения питания, адрес устройства устанавливается по умолчанию в 0 и должен быть запрограммирован хостом в ходе процесса энумерации. Адрес 0 (заданный по умолчанию) зарезервирован для вновь подключаемых устройств и не может быть назначен для нормальной работы.

    · Поле адреса конечной точки (Endpoint Field)

    Поле адреса конечной точки имеет размерность 4 бита и позволяет размещать в устройстве до 16 конечных точек. Все функции должны поддерживать одну управляющую "0" конечную точку. Низкоскоростные устройства поддерживают только три канала передачи: управляющий канал, связанный с нулевой конечной точкой и два дополнительных канала (две Interrupt конечные точки). Полноскоростные устройства поддерживают максимум до 16 конечных точек.

    · Поле номера кадра (Frame Number Field)

    Поле номера кадра представляет собой 11-битное поле, которое инкрементируется хостом при инициировании нового кадра. Поле номера кадра начинается заново с нуля при достижения максимального значения 0х7FF, и используется только для SOF маркеров в каждом начале кадра.

    · Поле циклического контроля по избыточности (CRC)

    Циклический контроль по избыточности (CRC) используются для защиты всех полей кроме PID в маркерах и пакетах данных. Защита Маркера и пакета данных обеспечивает 100% нахождение всех одиночных и двойных битовых ошибок. Для маркеров предусмотрено пяти-битное поле CRC, которое используется для защиты полей ADDR и ENDP пакетов IN, SETUP,OUT или поле отметки времени маркера SOF. Для пакета данных используется 16-битный полином, кодирующий всё поле данных пакета.

    · Поле конца пакета (EOP)

    Поле конца пакета представляет собой сигнал окончания пакета и устанавливается на шине путем выставления сигнала "Single Ended Zero " SE0 в течении двух битовых интервалов следующего за J состоянием, установленным на время одного битового интервала.

    Типы USB пакетов

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

    · Маркерные пакеты (Token Packets)

    Существуют три типа маркерных пакетов:

    1. In - информируют USB устройство, что хост хочет читать данные из устройства

    2. Out - информирует USB устройство, что хост хочет передавать данные в устройство

    3. Setup - используются для обозначения начала управляющего (Control Transfer) типа передачи данных

    Все маркерные пакеты имеют следующий формат:

    SYNC

    ADDR

    ENDP

    CRC5

    Рисунок 4 . Маркерный пакет.

    · Пакеты данных (Token Packets)

    Существуют два типа пакетов данных, каждый из которых способен содержать до 1024 байтов данных.

    1. DATA0
    2. DATA1

    У высокоскоростных устройств для пакетов данных определены два других PID-a: DATA2 и MDATA. Пакет данных имеет нижеследующий формат:

    SYNC

    DATA

    CRC16

    Рисунок 5. Пакет данных.

    Данные всегда посылаются целым числом байт. Данные CRC16 вычисляются только для поля данных в пакете и не включают PID, который имеет собственное поле проверки.

    · Пакеты подтверждения (Handshake Packets)

    Существуют три типа пакетов подтверждения, структура которых имеет только PID поле:

    ACK - подтверждение того, что пакет был успешно принят

    NAK - информирует, что устройство в данный момент не может принимать либо отправлять данные. Также используется в Interrupt транзакциях для информирования хоста, что устройство не имеет новых данных для передачи. Хост никогда не может выдавать ответ NAK. NAK используется в целях управления потоком данных.

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

    Пакет подтверждения имеет нижеследующий формат:

    SYNC

    Рисунок 6. Пакет подтверждения.

    · Пакеты начала кадра (Start of Frame Packets)

    SOF пакет состоит из 11-ти битного номера кадра и генерируется хостом каждую 1ms ± 500ns для полноскоростной шины и каждые 125 µs ± 0.0625 µs для высокоскоростной шины.

    Пакет начала кадра имеет нижеследующий формат:

    SYNC

    Frame Number

    CRC16

    Рисунок 7. Пакет начала кадра.

    USB функция

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

    К счастью, большинство USB контроллеров, весь физический протокол нижнего уровня поддерживают самостоятельно без вмешательства пользовательской программы. Вмешательство пользователя необходимо лишь тогда, когда на шине произошло одно из событий: прием или выдача пакета данных в/из FIFO, событие NAK или STALL, процесс энумерации или переход в режим пониженного энергопотребления.

    Большинство функций имеет буфера для приема/передачи данных. Обычно их размер составляет 8 байт. Каждый буфер закреплён за определеннной конечной точкой, например за EP0 Out и EP0 In. Например хост инициирует запрос дескриптора устройства. USB контроллер функции считывает Setup пакет и определяет по адресному полю был ли он направлен именно к ней. Если пакет был направлен именно по этому адресу, то USB контроллер считывает данные в соответствующий буфер (FIFO) указанный в поле конечной точки (Endpoint Field). После этого функция генерирует пакет подтверждения, в котором указывает статус принятия пакета и устанавливает сигнал прерывания для внешнего управляющего контроллера, указывающий, что произошло событие по приему данных в RXFIFO. Все эти действия происходят без внешнего вмешательства ПО пользователя, что разгружает микроконтроллер реализующий функцию управления. ПО микроконтроллера обрабатывает прерывание - считывает из RXFIFO запрос дескриптора и отвечает на него выдачей структуры соответствующей запрошенному дескриптору.

    Конечные точки

    Конечные точки функции могут принимать или передавать данные. Конечные точки USB функции являются самым последним звеном в коммуникационном канале. Например, в программном слое, ваш драйвер устройства посылает пакет данных в конечную точку EP1 функции. Данные будут последовательно поступать в функцию и складываться USB контроллером в буфер RXFIFO1. Как только у управляющего микроконтроллера появиться свободное время он может считать из RXFIFO1 полученные данные. Если он хочет ответить пакетом данных, USB контроллер не может просто выставить их шину, т.к. мастером и инициатором запросов на шине является хост. Следовательно, управляющий микроконтроллер записывает пакет данных в IN конечную точку, например в EP1. Данные будут находится в буфере первой конечной точки TXFIFO1 до тех пор, пока хост не выставит на шину IN транзакцию к этой конечной точке. Конечные точки - это интерфейс связи между аппаратными средствами и микропрограммой работающей на функциональном устройстве. Все USB устройства должны поддерживать нулевую конечную точку (EP0). Она получает все управляющие и статус запросы во время процесса энумерации и всего цикла работы, пока устройство присоединено к USB шине.

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

    · Каналы сообщений . Являются двунаправленными каналами и служат, не трудно сообразить, для передачи сообщений, имеющих строго определенный в спецификации формат, необходимый для обеспечения надежной идентификации и передачи команд. Возникает канал при отсылке хостом запроса в устройства, и управляет передачей только хост. Каналы сообщений используется для передач только управляющего типа (что такое смотрим ниже).

    · Потоковые каналы . Являются однонаправленными. В отличие от четко определенных сообщений не имеют определенного закрепленного в стандарте формата, что означает возможность передачи данных любого вида. Эти передачи могут контролироваться не только хостом, но и устройством. Используется для передач данных типа прерывание, групповая пересылка, изохронная (смотрим ниже). В спецификации в зависимости от типа передаваемых данных, предъявляемых требований к скорости обработки, задержки доставки и т.п. определены следующие типы передач.

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

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

    · Групповая пересылка . Используется для гарантированной передачи данных больших объемов без предъявленных требований к скоростям и задержкам. Занимает под себя всю свободную пропускную способность шины. В любой момент доступная полоса может быть урезана при необходимости осуществления передач других видов с более высоким приоритетом, или добавлена, при освобождении другими устройствами. Обычно такие передачи используется между принтерами, сканерами, накопителями и др.

    · Изохронная передачи . Используются для потоковых передач данных в реальном времени. Резервируют определенную полосу пропускания шины, гарантируют определенные величины задержек доставки, но не гарантируют доставку (в случае обнаружения ошибки повторной передачи не происходит. Передачи этого вида используются для передачи аудио и видео трафика.

    Обмен данными может осуществляться в трех скоростных режимах:

    · Low Speed. Низкоскоростной режим. Скорость передачи составляет 1.5 Мбит/с.

    · Full Speed. Полноскоростной режим. Скорость передачи 12 Мбит/с.

    · High Speed. Высокоскоростной режим. Появился лишь в спецификации 2.0. Скорость передачи 480 Мбит/с.

    Устройства на шине USB делятся на ведущие и ведомые. Фактически, ведущих устройств на шине может быть только одно, и таковым является хост. Все передачи данных инициируются хостом в соответствии определенной временной программой. Функциональные устройства сами не могут инициировать передачу, а лишь отвечают на запросы хоста. Обмен данными возможен только между хостом и устройством, и не возможен на прямую между устройствами подключенными к шине (это означает, что в принципе в первую очередь USB - это шина вывода. Транзакции на USB шине состоят из двух-трех актов: посылки пакета маркера, определяющего, что будет следовать дальше (тип транзакции, адрес устройства и его конечную точку), пакета данных (опционально), и пакета статуса транзакции (для подтверждения нормального выполнения операции или сообщения об ошибке).

    Приоритеты передач по USB -шине

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

    Изохронные передачи;

    Передачи прерываний;

    Передачи управляющих команд;

    Передачи данных больших объемов.

    Списки постоянно обновляются новыми запросами. Планирование операций по передаче информации в соответствии с упорядоченными в виде списков запросами выполняется хостом с 1-миллисекундным интервалом. В начале каждого такого интервала хост посылает по шине пакет SOF (Start Of Frame - начало кадра), после чего начинается обслуживание запросов из списка изохронных передач (т.к. они имеют наивысший приоритет).

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

    По истечении 90% указанного 1-миллисекундного интервала хост автоматически переходит к обслуживанию запросов на передачу управляющих команд независимо от того, успел ли он полностью обслужить другие три списка или нет.

    Тем самым гарантируется, что управляющим передачам всегда будет выделено не менее 10% пропускной способности шины. Если передача всех управляющих пакетов будет завершена до истечения выделенной для них доли интервала планирования, то оставшееся время будет использовано хостом для передачи данных большого объема (до конца указанного 1-миллисекундного интервала).

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

    Изохронные передачи гарантированно получают 90% пропускной способности шины;

    Передачи прерываний занимают оставшуюся часть изохронных операций часть этой 90-процентной доли;

    Под передачу данных большого объема выделяется все время, оставшееся после изохронных передач и передач прерываний (по-прежнему в рамках 90%-ой доли пропускной способности);

    Управляющим передачам гарантируется 10% пропускной способности;

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

    Источники информации

    1. www.rus-linux.net (USB - Lin . html )

    2. www.is.svitonline.com (USB Masters . htm )

    3. Компьютерная документация от А до Я. (Технология USB 2.0. htm )

    4. www.zyxel.ru – База знаний