Меню

Аппаратные средства usb позволяют обнаруживать ошибки передачи следующих типов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7.1.1. Структура usb

USB обеспечивает
одновременный обмен данными между
хост-компьютером
и множеством периферийных
устройств(ПУ).

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

Ниже приводится
авторский вариант перевода терминов
из спецификации «Universal Serial Bus
Specification. Revision
I.O.January 15, 1996», опубликованной
Compaq, DEC,IBM, Intel, Microsoft, NEC и
Northern Telecom. Более
подробную и оперативную информацию
можно найти по адресу: http://www.usb.org/.

Устройства
(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 к хост-компьютеру.

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

Стандарт USB
определяет электрические и механические
спецификации шины.

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

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

Интерфейс определяет следующие состояния:

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

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.4.Кодирование данных по методу
NRZI

Стандарт определяет
два типа
разъемов

(см. табл. 7.1 и рис. 7.5).

Контакт

Цепь

Контакт

Цепь

1

VBus

3

D+

2

D-

4

GND

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

Разъемы типа «В»
(Downstream Connector)

устанавливаются на устройствах, от
которых соединительный кабель может
отсоединяться (принтеры и сканеры).
Ответная часть (вилка) устанавливается
на соединительном кабеле, противоположный
конец которого имеет вилку типа «А».

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

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

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

Модель
передачи
данных

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

которыми хост-контроллер обменивается
информацией. Конечные точки описываются
следующими параметрами:

требуемой частотой
доступа к шине и допустимыми задержками
обслуживания;

требуемой полосой
пропускания канала;

номером точки;

требованиями к
обработке ошибок;

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

типом обмена;

направлением
обмена (для сплошного и изохронного
обменов).

Каждое устройство
обязательно имеет конечную точку с
номером 0, используемую для инициализации,
общего управления и опроса его состояния.
Эта точка всегда сконфигурирована при
включении питания и подключении
устройства к шине. Оно поддерживает
передачи типа «управление» (см.
далее).

Кроме нулевой
точки, устройства-функции могут иметь
дополнительные точки, реализующие
полезный обмен данными. Низкоскоростные
устройства могут иметь до двух
дополнительных точек, полноскоростные
— до 16 точек ввода и 16 точек вывода
(протокольное ограничение). Точки не
могут быть использованы до их
конфигурирования (установления
согласованного с ними канала).

Каналом {Pipe)
в USB называется модель передачи данных
между хост-контроллером и конечной
точкой (Endpoint)
устройства. Имеются два типа каналов:
потоки (Stream)
и сообщения (Message).
Поток

доставляет данные от одного конца канала
к другому, он всегда однонаправленный.
Один и тот же номер конечной точки может
использоваться для двух поточных каналов
— ввода и вывода. Поток может реализовывать
следующие типы обмена: сплошной,
изохронный и прерывания. Доставка всегда
идет в порядке «первым вошел — первым
вышел» (FIFO); с точки зрения USB, данные
потока неструктурированы. Сообщения
имеют формат, определенный спецификацией
USB. Хост посылает запрос к конечной
точке, после которого передается
(принимается) пакет сообщения, за которым
следует пакет с информацией
состояния
конечной точки. Последующее сообщение
нормально не может быть послано до
обработки предыдущего, но при отработке
ошибок возможен сброс необслуженных
сообщений. Двухсторонний обмен сообщениями
адресуется к одной и той же конечной
точке. Для доставки сообщений используется
только обмен типа «управление».

С каналами связаны
характеристики, соответствующие конечной
точке (полоса пропускания, тип сервиса,
размер буфера и
т. п.). Каналы организуются при
конфигурировании устройств USB. Для
каждого включенного устройства существует
канал сообщений (Control
Pipe 0),
по
которому передается информация
конфигурирования, управления и состояния.

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

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

Форматы пакетов

Байты передаются
по шине последовательно, начиная с
младшего бита. Все посылки организованы
в пакеты. Каждый пакет начинается с поля
синхронизации Sync, которое представляется
последовательностью состояний KJKJKJKK
(кодированную по NRZI), следующую после
состояния Idle.
По-
следние два бита (КК)
являются маркером начала пакета SOP,
используемым для идентификации первого
бита идентификатора пакета PID.
Идентификатор пакета является 4-битным
полем PID[3:0],
идентифицирующим тип пакета (табл. 7.2),
за которым в качестве контрольных
следуют те же 4 бита, но инвертированные.

Тип
PID

Имя
PID

PID[3:0]

Содержимое
и назначение

Token

OUT

0001

Адрес
функции и номер конечной
точки —
маркер транзакции функции

Token

IN

1001

Адрес
функции и номер конечной
точки —
маркер транзакции хоста

Token

SOF

0101

Маркер
начала кадра

Token

SETUP

1101

Адрес
функции и номер конечной
точки —
маркер транзакции с управляющей точкой

Data

DataO
Datal

0011
1011

Пакеты
данных с четным
и нечетным PID
чередуются
для точной идентификации
под-
тверждений

Handshake

Ack

0010

Подтверждение
безошибочного
приема пакета

Handshake

NAK

1010

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

Handshake

STALL

1110

Конечная
точка требует вмешательства хоста

Special

PRE

1100

Преамбула
передачи на низкой скорости

В пакетах-маркерах
IN, SETUP
и OUT
следующими являются адресные
поля:
7-битный
адрес функции и 4-битный адрес конечной
точки. Они позволяют адресовать до 127
функций USB (нулевой адрес используется
для конфигурирования) и по 16 конечных
точек в каждой функции.

В пакете SOF имеется
11-битное поле
номера кадра (Frame Number Field),

последовательно (циклически) увеличиваемое
для очередного кадра.

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

Поле СRС-кода
присутствует во всех маркерах и пакетах
данных, оно защищает все поля пакета,
исключая PID.
CRC для маркеров (5 бит) и данных (11 бит)
подсчитываются по разным формулам.

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

Хост-контроллер
организует обмены с устройствами
согласно своему плану распределения
ресурсов. Контроллер циклически (с
периодом 1 мс) формирует кадры
(Frames),
в
которые укладываются все запланированные
транзакции. Каждый кадр начинается с
посылки маркера SOF (Start
Of Frame),
который
является синхронизирующим сигналом
для всех устройств, включая хабы. В конце
каждого кадра выделяется интервал
времени EOF
(End Of Frame),
на
время которого хабы запрещают передачу
по направлению к контроллеру. Каждый
кадр имеет свой номер. Хост-контроллер
оперирует 32-битным счетчиком, но в
маркере SOF передает только младшие 11
бит. Номер кадра увеличивается
(циклически)
во время EOF. Хост планирует
загрузку кадров так, чтобы в них всегда
находилось место для транзакций
управления и прерывания. Свободное
время кадров может заполняться сплошными
передачами (Bulk
Transfers).

Рис. 7.8.
Поток кадров USB

Для изохронной
передачи

важна синхронизация устройств и
контроллера. Есть три варианта:

синхронизация
внутреннего генератора устройства с
маркерами SOF;

подстройка частоты
кадров под частоту устройства;

согласование
скорости передачи (приема) устройства
с частотой кадров.

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

Соседние файлы в папке И еще что-то

  • #

    16.04.201338.53 Кб15IEEE 1.htm

  • #

    16.04.2013105.28 Кб14IEEE 2.htm

  • #
  • #
  • #

    16.04.201326.46 Кб18USB.htm

  • #

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.1. Структура USB

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

Ниже приводится авторский вариант перевода терминов из спецификации «Universal Serial Bus Specification. Revi- sion I.O.January 15, 1996», опубликованной Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom. Более подробную и оперативную информацию можно найти по адресу: http://www.usb.org.

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

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

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

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

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

^ Указатели — мышь, планшет, световое перо. ^ Устройства ввода — клавиатура или сканер.

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

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

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

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

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

comp56-1.jpg

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

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

  • Физическое устройство USB — устройство на шине, выполняющее функции, интересующие конечного пользователя.
  • Client SW — ПО, соответствующее конкретному устройству, исполняемое на хост-компьютере. Может являться составной частью ОС или специальным продуктом.
  • USB System SW — системная поддержка USB, независимая от конкретных устройств и клиентского ПО.
  • USB Host Controller — аппаратные и программные средства для подключения устройств USB к хост-компьютеру.

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

Стандарт USB определяет электрические и механические спецификации шины.

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

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

йа DataJ State и Data К State — состояния передаваемого бита (или просто J и К), определяются через состояния DiffO и 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 В к устройствам. Сечение проводников выби- рается в соответствии с длиной сегмента для обеспечения гарантированного уровня сигнала и питающего напряжения.

comp56-2.jpg

Рис. 7.4. Кодирование данных по методу NRZI

Стандарт определяет два типа разъемов (см. табл. 7.1 и рис. 7.5).

Контакт Цепь Контакт Цепь
1 VBus 3 D+
2 D- 4 GND

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

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

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

comp56-3.jpg

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

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

comp56-4.jpg

Модель передачи данных

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

^ требуемой частотой доступа к шине и допустимыми задержками обслуживания;

^ требуемой полосой пропускания канала;

^ номером точки;

^ требованиями к обработке ошибок;

^ максимальными размерами передаваемых и принимаемых пакетов;

^ типом обмена;

^ направлением обмена (для сплошного и изохронного об- менов).

Каждое устройство обязательно имеет конечную точку с номером 0, используемую для инициализации, общего управления и опроса его состояния. Эта точка всегда сконфигурирована при включении питания и подключении устройства к шине. Оно поддерживает передачи типа «управление» (см. далее).

Кроме нулевой точки, устройства-функции могут иметь дополнительные точки, реализующие полезный обмен данными. Низкоскоростные устройства могут иметь до двух дополнительных точек, полноскоростные — до 16 точек ввода и 16 точек вывода (протокольное ограничение). Точки не могут быть использованы до их конфигурирования (установления согласованного с ними канала).

Каналом {Pipe) в USB называется модель передачи данных между хост-контроллером и конечной точкой (Endpoint) устройства. Имеются два типа каналов: потоки (Stream) и со- общения (Message). Поток доставляет данные от одного конца канала к другому, он всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух поточных каналов — ввода и вывода. Поток может реализовывать следующие типы обмена: сплошной, изохронный и прерывания. Доставка всегда идет в порядке «первым во- шел — первым вышел» (FIFO); с точки зрения USB, данные потока неструктурированы. Сообщения имеют формат, определенный спецификацией USB. Хост посылает запрос к конечной точке, после которого передается (принимается) па- кет сообщения, за которым следует пакет с информацией состояния конечной точки. Последующее сообщение нормально не может быть послано до обработки предыдущего, но при отработке ошибок возможен сброс необслуженных сообщений. Двухсторонний обмен сообщениями адресуется к одной и той же конечной точке. Для доставки сообщений используется только обмен типа «управление».

С каналами связаны характеристики, соответствующие конечной точке (полоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при конфигурировании устройств USB. Для каждого включенного устройства существует канал сообщений (Control Pipe 0), по которому передается информация конфигурирования, управления и состояния.

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

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

Форматы пакетов

Байты передаются по шине последовательно, начиная с младшего бита. Все посылки организованы в пакеты. Каждый пакет начинается с поля синхронизации Sync, которое представляется последовательностью состояний KJKJKJKK (кодированную по NRZI), следующую после состояния Idle. Последние два бита (КК) являются маркером начала пакета SOP, используемым для идентификации первого бита идентификатора пакета PID. Идентификатор пакета является 4-битным полем PID[3:0], идентифицирующим тип пакета (табл. 7.2), за которым в качестве контрольных следуют те же 4 бита, но инвертированные.

Тип PID Имя PID PID[3:0] Содержимое и назначение
Token OUT 0001 Адрес функции и номер конечной точки — маркер транзакции функ- ции
Token IN 1001 Адрес функции и номер конечной точки — маркер транзакции хоста
Token SOF 0101 Маркер начала кадра
Token SETUP 1101 Адрес функции и номер конечной точки — маркер транзакции с управляющей точкой
Data DataO Datal 0011 1011 Пакеты данных с четным и нечетным PID чередуются для точной идентификации подтверждений
Handshake Ack 0010 Подтверждение безошибочного приема пакета
Handshake NAK 1010 Приемник не сумел принять или передатчик не сумел передать данные. Может использоваться для управления потоком данных (неготовность). В транзакциях прерываний является признаком отсутствия необслуженных прерываний
Handshake STALL 1110 Конечная точка требует вмешательства хоста
Special PRE 1100 Преамбула передачи на низкой скорости

В пакетах-маркерах IN, SETUP и OUT следующими являются адресные поля: 7-битный адрес функции и 4-битный адрес конечной точки. Они позволяют адресовать до 127 функций USB (нулевой адрес используется для конфигурирования) и по 16 конечных точек в каждой функции.

В пакете SOF имеется 11-битное поле номера кадра (Frame Number Field), последовательно (циклически) увеличиваемое для очередного кадра.

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

Поле СКС-кола присутствует во всех маркерах и пакетах данных, оно защищает все поля пакета, исключая PID. CRC для маркеров (5 бит) и данных (11 бит) подсчитываются по разным формулам.

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

Хост-контроллер организует обмены с устройствами согласно своему плану распределения ресурсов. Контроллер цикли- чески (с периодом 1 мс) формирует кадры (Frames), в которые укладываются все запланированные транзакции. Каж- дый кадр начинается с посылки маркера SOF (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы. В конце каждого кадра выделяет- ся интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контроллеру. Каждый кадр имеет свой номер. Хост-контроллер оперирует 32-битным счетчиком, но в маркере SOF передает только младшие 11 бит. Номер кадра увеличивается (циклически) во время EOF. Хост планирует загрузку кадров так, чтобы в них всегда находилось место для транзакций управления и прерывания. Свободное время кадров может заполняться сплошными передачами (Bulk Transfers).

comp56-5.jpg

comp56-6.jpg

Рис. 7.8. Поток кадров USB

Для изохронной передачи важна синхронизация устройств и контроллера. Есть три варианта:

^ синхронизация внутреннего генератора устройства с маркерами SOF;

^ подстройка частоты кадров под частоту устройства;

^ согласование скорости передачи (приема) устройства с частотой кадров.

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

1.2. Системное конфигурирование

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

Все устройства подключаются через порты хабов. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запросе от контроллера. Хост разрешает работу порта и адресуется к устройству через канал управления, используя нулевой адрес — USB Default Address. При начальном подключении или пос- ле сброса все устройства адресуются именно так.

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

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

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

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

1. Хаб, к которому подключилось устройство, информирует хост о смене состояния своего порта ответом на опрос состояния. С этого момента устройство переходит в состояние Attached (подключено), а порт, к которому оно подключилось, в состояние Disabled.

2. Хост уточняет состояние порта.

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

4. Хаб формирует сигнал Reset для данного порта (10 мс) и переводит его в состояние Enabled. Подключенное устройство может потреблять от шины ток питания до 100 мА. Устройство переходит в состояние Powered (питание подано), все его регистры переводятся в исходное состояние, и оно отзывается на обращение по нулевому адресу.

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

6. Хост сообщает устройству его уникальный адрес, и оно переводится в состояние Addressed (адресовано).

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

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

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

1.3. Устройства 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) он определяет скорость подключенного устройства.

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

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

^ Suspended (приостановлен) — порт передает сигнал пере- вода в состояние останова («спящий» режим). Если хаб находится в активном состоянии, сигналы через порт не пропускаются ни в одном направлении. Однако «спящий» хаб воспринимает сигналы смены состояния незапрещенных портов, подавая «пробуждающие» сигналы от активизировавшегося устройства даже через цепочку «спящих» хабов.

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

1.4. Хост-контроллер

Хост-компьютер общается с устройствами через контроллер. Хост имеет следующие обязанности:

^ обнаружение подключения и отсоединения устройств USB;

^ манипулирование потоком управления между устройства- ми и хостом;

^ управление потоками данных;

^ сбор статистики;

^ обеспечение энергосбережения подключенными ПУ.

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

^ нумерации и конфигурации устройств;

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

^ асинхронных передач данных;

^ управления энергопотреблением;

^ информации об управлении устройствами и шиной.

По возможности ПО USB использует существующее систем- ное ПО хост-компьютера — например, Advanced Power Management для управления энергопотреблением.

2. Шина IEEE 1394-FireWire

Стандарт для высокопроизводительной последовательной шины (High Performance Serial Bus), получивший официальное название IEEE 1394, был принят в 1995 году. Целью являлось создание шины, не уступающей современным стандартным параллельным шинам, при существенном удешевлении и повышении удобства подключения (за счет перехода на последовательный интерфейс). Стандарт основан на шине FireWire, используемой Apple Computer в качестве дешевой альтернативы SCSI в компьютерах Macintosh и PowerMac. Название FireWire («огненный провод») теперь применяется и к реализациям IEEE 1394, оно сосуществует с кратким обозначением 1394.

Преимущества FireWire перед другими последовательными шинами:

s? Многофункциональность: шина обеспечивает цифровую связь до 63 устройств без применения дополнительной аппаратуры (хабов). Устройства — цифровые камкодеры, сканеры, принтеры, камеры для видеоконференций, дисковые накопители — могут обмениваться данными не только с PC, но и между собой. FireWire по инициативе VESA позиционируется и для «домашних сетей».

^ Высокая скорость обмена и изохронные передачи позволяют даже на начальном уровне (100 Мбит/с) передавать одновременно два канала видео (30 кадров в секунду) широковещательного качества и стереоаудиосигнал с качеством CD.

s§ Низкая цена компонентов и кабеля.

si Легкость установки и использования. FireWire расширяет систему РпР. Устройства автоматически распознаются и конфигурируются при включении/отключении. Питание от шины (ток до 1,5 А) позволяет ПУ общаться с системой даже при отключении их питания. Управлять шиной и другими устройствами могут не только PC, но и другие «интеллектуальные» устройства, например VCR.

2.1. Структура и взаимодействие устройств шины

Стандарт 1394 определяет две категории шин: кабельные шины и кросс-шины (Backplane). Под кросс-шинами обычно подразумеваются параллельные интерфейсы, объединяющие внутренние подсистемы устройства, подключенного к кабелю 1394.

В отличие от USB, управляемой одним хост-контроллером, стандарт 1394 допускает соединение равноправных устройств в сеть. Сеть может состоять из множества шин, соединенных мостами. В пределах одной шины устройства объединяются соединительными кабелями без применения дополнительных устройств. Мосты представляют собой специальные интеллектуальные устройства. Интерфейсная карта шины FireWire для PC представляет собой мост PCI — 1394. Мостами являются также соединения кабельной шины 1394 с кросс- шинами устройств, 16-битная адресация узлов сети допускает до 63 устройств в каждой шине, адресуемых 6-битным полем идентификатора узла. 10-битное поле идентификатора шины допускает использование в системе до 1023 мостов, соединяющих шины разного типа.

Кабельная шина представляет собой сеть, состоящую из уз- лов и кабельных мостов. Гибкая топология позволяет строить сети, сочетающие древовидную и цепочечную архитектуры (рис. 7.9). Каждый узел обычно имеет три равноправных соединительных разъема. Допускается множество вариантов подключения устройств со следующими ограничениями:

ssi между любой парой узлов может быть не более 16 кабельных сегментов;

^ длина сегмента стандартного кабеля не должна превышать 4,5 м;

2Й суммарная длина кабеля не должна превышать 72 м (применение более качественного кабеля позволяет ослабить это ограничение).

Некоторые устройства могут иметь только один разъем, что ограничивает возможные варианты их местоположения. Стандарт допускает до 27 разъемов на одном устройстве.

comp56-7.jpg

Рис. 7.9. Соединение устройств на шине FireWire

comp56-8.jpg

Рис. 7.10. Разъем FireWire

Стандарт предусматривает связь узлов с помощью 6-проводного кабеля, заключенного в общий экран. Две витые пары используются для передачи сигналов (раздельные для приемника и передатчика), два провода задействованы для питания устройств (8-40 В, до 1,5 А). Для гальванической развязки интерфейса используются трансформаторы (напряжение изоляции развязки до 500 В) или конденсаторы (в дешевых устройствах с напряжением развязки до 60 В относительно общего провода). Представление о разъемах дает рис. 7.10. Некоторые устройства (камкодеры Sony DCR- VX700 и DCR-VX1000, а также DHR-1000 DVCR) имеют только один 4-контактный разъем меньшего размера, у которого реализованы только сигнальные цепи. Эти устройства подключаются к шине через специальный переходной кабель только как оконечные (хотя возможно применение специальных адаптеров-разветвителей).

Стандарт 1394 определяет три возможные частоты передачи сигналов по кабелям: 98,304, 196,608 и 393,216 Мбит/с, которые округляют до 100, 200 и 400 Мбит/с. Частоты в стандарте обозначаются как S100, S200 и S400 соответствен- но. Бытовые устройства обычно поддерживают S100, большинство адаптеров допускают S200. К одной шине могут подключаться устройства, рассчитанные на разные скорости. Обмен будет происходить на минимальной для всех активных узлов скорости. Однако, если хост-контроллер реализует карту топологии и скоростей (Topology_Мар и Speed_Map), возможно использование нескольких частот в одной шине, в соответствии с возможностями конкретной пары, участвующей в обмене.

Система допускает динамическое (горячее) подключение и отключение устройств. Идентификаторы подключаемым

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

Протокол IEEE 1394

Протокол 1394 реализуется на трех уровнях (рис. 7.11).

^ Уровень транзакций (Transaction Layer) преобразует пакеты в данные, предоставляемые приложениям, и наоборот. Он реализует протокол запросов-ответов, соответствующий стандарту ISO/IEC 13213:1994 (ANSI/IEEE 1212, редакции 1994 г.), архитектуры регистров управления и состояния CSR (Control and Status Register) для микро-компьютерных шин (чтение, запись, блокировка). Это облегчает связь шины 1394 со стандартными параллельными шинами.

^ Уровень связи (Link Layer) из данных физического уровня формирует пакеты и выполняет обратные преобразования. Он обеспечивает обмен узлов датаграммами с подтверждениями. Уровень отвечает за передачу пакетов и управление изохронными передачами.

^ Физический уровень (Physical Layer) вырабатывает и принимает сигналы шины. Он обеспечивает инициализацию и арбитраж, предполагая, что в любой момент времени работает только один передатчик. Уровень передает по- токи данных и уровни сигналов последовательной шины вышестоящему уровню. Между этими уровнями возможна гальваническая развязка, при которой микросхемы физического уровня питаются от шины. Гальваническая развязка необходима для предотвращения паразитных контуров общего провода, которые могут появиться через провода защитного заземления блоков питания.

Аппаратная часть FireWire обычно состоит из двух специализированных микросхем — трансиверов физического уровня PHY Transceiver и моста связи с шиной LINK Chip. Связь между ними возможна, например, по интерфейсу IBM-Apple LINK-PHY. Микросхемы уровня связи выполняют все функции своего уровня и часть функций уровня транзакций, остальная часть уровня транзакций выполняется программно.

comp56-9.jpg

Коннекторы

Рис. 7.11. Трехуровневая структура FireWire

Управление шиной

Протокол 1394 имеет гибкий механизм управления связью между различными устройствами. Для этого не обязательно присутствие на шине PC или иного контроллера шины. Управление включает три сервиса:

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

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

^ Необязательный контроллер шины (Bus Master) — им может являться PC или редактирующий DVCR.

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

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

Изохронная транспортировка данных

Изохронная транспортировка шины 1394 обеспечивает гарантированную пропускную способность и ограниченную задержку при высокоскоростной передаче по множеству каналов. Диспетчер изохронных ресурсов содержит регистр BANDWIDTH^AVAILABLE, который определяет доступность оставшейся части полосы пропускания для узлов с изохронной передачей. По сбросу вновь появившийся узел с изо- хронной передачей запрашивает выделение полосы. Для цифрового видео, например, требуется полоса 30 Мбит/с (25 Мбит/с на видеоданные и 3-4 Мбит/с на аудио, синхронизацию и заголовки пакетов). Полоса измеряется в специальных единицах распределения, число которых в 125-миллисекундном цикле составляет 6144. Единица занимает около 20 нс, что соответствует времени, требуемому для передачи одного квадлета (Quadlet) на частоте 1600 Мбит/с. Квадлет (32-битное слово) является единицей передачи данных по шине. 25 мс цикла резервируется под асинхронный трафик, поэтому начальное значение регистра после сброса состав- ляет 4915 единиц. В S100 устройства цифрового видео запрашивают около 1800 единиц, в S200 — около 900. Если со- ответствующая полоса недоступна, запрашивающее ее устройство будет периодически повторять запрос.

Диспетчер изохронных ресурсов каждому изохронному узлу назначает номер канала (0-63) из числа доступных (регистр

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

2.2. Синонимы и дополнения стандарта IEEE 1394

Шина IEEE 1394 имеет множество псевдонимов:

^ IEEE 1394-1995 Standard for a High Performance Serial Bus — полное название документа, описывающего стандарт, действующий в настоящее время.

т FireWire — торговая марка реализации IEEE-1394 фирмой Apple Computer, Inc.

^ Р1394 — название предварительной версии IEEE-1394 (до принятия в декабре 1995 г.).

^ DigitalLink — торговая марка Sony Corporation, используемая применительно к реализации IEEE-1394 в цифровых камерах.

ш MultiMedia Connection — имя, используемое в логотипе 1394 High Performance Serial Bus Trade Association (1394TA).

Поскольку фирма Apple разрабатывала концепцию FireWire еще с 1986 года, имя FireWire является самым распространенным синонимом IEEE 1394.

Кроме основного стандарта IEEE 1394-1995, имеется несколько его модификаций:

^ 1394а рассматривается как чистовой документ, заполняющий некоторые пробелы исходного стандарта и имеющий небольшие изменения (например, ускоренную операцию сброса на шине). Продуктам 1394а обеспечена обратная совместимость с устройствами, выпущенными до принятия основного стандарта. Версия вводилась для повышения скорости до 800 Мбит/с и выше, высокоскоростные версии входят и в 1394Ь.

^ 1394.1 определяет 4-проводной соединитель и устанавливает стандарт на шинные мосты.

^ 1394.2 предполагается как стандарт на соединение кластера станций со скоростью обмена 1 Гбит/с и выше, не- совместимый с 1394. Этот стандарт проистекает из IEEE 1596 SCI (Scalable Coherent Interface — масштабируемый когерентный интерфейс) для суперкомпьютеров и иногда называется Serial Express или SCILite. Сигнальный интерфейс 1394.2 похож на FCAL и допускает кольцевую топологию, запрещаемую стандартом 1394.

2.3. Сравнение FireWire и USB

Последовательные интерфейсы FireWire и USB, имея общие черты, являются существенно различными технологиями. Обе шины обеспечивают простое подключение большого числа ПУ (127 для USB и 63 для FireWire), допуская ком- мутации и включение/выключение устройств при работающей системе. Топология обеих шин достаточно близка. Хабы USB входят в состав ЦУ; для пользователя их присутствие незаметно. Обе шины имеют линии питания устройств, но допустимая мощность для FireWire значительно выше. Обе шины поддерживают систему РпР (автоматическое конфигурирование при включении/выключении) и снимают проблему дефицита адресов, каналов DMA и прерываний. Различаются пропускная способность и управление шиной.

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

FireWire ориентирована на интенсивный обмен между любыми подключенными к ней устройствами. Изохронный трафик позволяет передавать «живое» видео. Шина не требует централизованного управления со стороны PC. Возможно использование шины для объединения нескольких PC и ПУ в локальную сеть.

Новые устройства цифрового видео и аудио имеют встроенные адаптеры 1394. Подключение к шине FireWire традиционных аналоговых и цифровых устройств (плееров, камер, мониторов) возможно через адаптеры-преобразователи интерфейсов и сигналов. Стандартные однотипные кабели и разъемы FireWire заменяют множество разнородных соединений устройств бытовой электроники с PC. Разнотипные цифровые сигналы мультиплексируются в одну шину. В отличие от сетей Ethernet, высокоскоростные передачи потоков данных по FireWire в реальном времени не требуют дополнительных протоколов. Кроме того, имеются средства арбитража, гарантирующие доступ к шине за заданное время. Применение мостов в сетях FireWire позволяет изолировать трафик групп узлов друг от друга.

7.3. Шина ACCESS.Bus и интерфейс PC

Последовательная шина ACCESS.Bus (Accessory Bus), разработанная фирмой DEC, является шиной взаимодействия компьютера с его аксессуарами — например, монитором (канал VESA DDC), интеллектуальными источниками питания (Smart Battery) и т. п. Шина позволяет по двум сигнальным и двум питающим (12 В, 500 мА) проводам подключить до 14 устройств ввода/вывода, длина шины может достигать 8 м. Аппаратной основой является интерфейс PC, характеризуемый простотой реализации, но, даже по сравнению с USB, низкой производительностью. Над аппаратным протоколом PC для шины ACCESS.Bus имеется базовый программный протокол, с которым взаимодействуют протоколы конкретных подключенных устройств. Протоколы обеспечивают подключение/отключение устройств без перезагрузки ОС. Назначение сигналов разъема ACCESS.Bus, предложенное VESA, приведено в табл. 7.3.

Контакт Назначение
1 GND
2 Ключ
3 SDA
4 +5 В (питание устройств)
5 SCL

Интерфейс К, разработанный фирмой Philips, в PC появился недавно и используется как внутренняя вспомогательная шина системной платы для общения с энергонезависимой памятью идентификации установленных компонентов (мо- дулей памяти DIMM). Шина отличается предельной простотой реализации — две сигнальные линии, с которыми работают программно. По прямому назначению эту шину применяет пока только BIOS при определении аппаратных средств, но использование перезаписываемой памяти конфигурирования открывает новые возможности для привязки ПО к конкретной системе (точнее, установленному модулю) и… для вирусов. Способ программного доступа к шине пока не стандартизован, но при желании его можно «вычислить», изучив документацию на чипсет.

comp56-10.jpg

Рис. 7.12. Протокол передачи данных PC

Последовательный интерфейс УС обеспечивает двунаправленную передачу данных между парой устройств, используя два сигнала: данные SDA (Serial Data) и синхронизацию SCL (Serial Clock). В обмене участвуют два устройства — ведущее (Master) и ведомое (Slave). Каждое из них может вы- ступать в роли передатчика, помещающего на линию SDA информационные биты, или приемника. Протокол обмена иллюстрирует рис. 7.12. Синхронизацию задает ведущее устройство — контроллер. Линия данных — двунаправленная с выходом типа «открытый коллектор» — управляется обоими устройствами поочередно. Частота обмена (не обязательно постоянная) ограничена сверху величиной 100 кГц для стандартного режима и 400 кГц для скоростного, что позволяет организовать программно-управляемую реализацию контроллера интерфейса.

Начало любой операции — условие Start — инициируется переводом сигнала SDA из высокого в низкий при высоком уровне SCL. Завершается операция переводом сигнала SDA

из низкого уровня в высокий при высоком уровне SCL — условие Stop. При передаче данных состояние линии SDA может изменяться только при низком уровне SCL, биты данных стробируются положительным перепадом SCL Каждая посылка состоит из 8 бит данных, формируемых передатчиком (старший бит — MSB — передается первым), после чего передатчик на один такт освобождает линию данных для получения подтверждения. Приемник во время девятого так- та формирует нулевой бит подтверждения Ack. После пере- дачи бита подтверждения приемник может задержать следующую посылку, удерживая линию SCL на низком уровне. Приемник также может замедлить передачу по шине на уровне приема каждого бита, удерживая SCL на низком уровне после его спада, сформированного передатчиком.

Каждое ведомое устройство имеет свой адрес, разрядность которого по умолчанию составляет 7 бит. Адрес А[6:0] передается ведущим устройством в битах [7:1] первого байта, бит 0 содержит признак операции Я1У(Я1/У=1 — чтение, RW=Q -запись). 7-битный адрес содержит две части: старшие 4 бита А[6:3] не- сут информацию о типе устройства (например, для EEPROM — 1010), а младшие 3 бита А[0:2] определяют номер устройства данного типа. Многие микросхемы с интерфейсом PC имеют три адресных входа, коммутацией которых на логические уровни 1 и 0 задается требуемый адрес. Некоторые значения полного адреса зарезервированы (табл. 7.4).

Общий вызов позволяет включившемуся устройству заявить о себе широковещательным способом. Байт Start предназначен для привлечения внимания процессора к интерфейсу, если в устройстве он организован программным (не аппаратным) способом. До получения этого байта микроконтроллер устройства не опрашивает состояние и не следит за сигналами интерфейса. При использовании 10-битной адресации биты [2:1] содержат старшую часть адреса, а младшие 8 бит будут переданы в следующем байте, если признак RW=0.

Адрес ведомого устройства и тип обращения задается кон- троллером при инициировании обмена. Обмен с памятью иллюстрирует рис. 7.13. Здесь SA[0:2] — адрес устройства, DA[0:7] — адрес данных, D[0:7] — данные, W — признак записи (0), R — признак чтения (1).

Биты [7:1] BKTO(RW) Назначение
0000 000 0 General call address — адрес общего вызова
0000 000 1 Start. — начало активного обмена
0000 001 X Адрес устройства шины CBUS (для сов- местимости)
0000 010 X Адрес для устройств иных шин
0000 011 X Зарезервировано
0000 1ХХ X Зарезервировано
1111 1ХХ X Зарезервировано
1111 ОХХ X Признак 10-битной адресации

comp56-11.jpg

Рис. 7.13. Обмен с памятью по интерфейсу PC: a — запись, б — чтение с текущего адреса, в — чтение с произвольного адреса

Выполнив условие Start, контроллер передает байт, содержащий адрес устройства и признак операции RW, и ожидает подтверждения. При операции записи следующей посылкой от контроллера будет 8-битный адрес записываемой ячейки, а за ней — байт данных (для микросхем объемом памяти более 256 байт адрес ячейки посылается двумя байтами). Получив подтверждения, контроллер завершает цикл условием Stop, а адресованное устройство может начать свой внутренний цикл записи, во время которого не реагирует на сигналы интерфейса. Контроллер проверяет готовность устройства посылкой команды записи (байт адреса устройства) и анализом бита подтверждения, формируя затем условие Stop. Если устройство откликнулось битом подтверждения, значит, оно завершило внутренний цикл и готово к следую- щей операции.

Операция считывания инициируется так же, как и запись, но с признаком RW=. Возможно чтение по заданному адресу, по текущему адресу или последовательное. Текущий адрес хранится во внутреннем счетчике ведомого устройства, он содержит увеличенный на единицу адрес ячейки, участвовавшей в последней операции.

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

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

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

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

comp56-12.jpg

Рис.7.14. Подключение устройств к контроллеру

Приложение А. Системотехника IBM PC-совместимых компьютеров

Здесь рассмотрено взаимодействие программ с интерфейсными адаптерами. Приведены краткие сведения по архитектуре PC. Описаны организация пространств памяти и ввода/вывода, система прерываний и прямой доступ к памяти. Более подробные сведения можно найти в книге «Аппаратные средства IBM PC. Энциклопедия» («Питер», 1998).

А.1. Пространство памяти

Логическая структура памяти PC обусловлена системой адресации процессоров семейства х86. Процессоры 8086/88, применявшиеся в первых моделях IBM PC, имели адресное пространство 1 Мбайт (20 бит шины адреса). Начиная с процессора 80286 шина адреса была расширена до 24 бит, затем (386DX, 486, Pentium) до 32 и, наконец, до 36 бит (Pentium Pro, Pentium II). В реальном режиме процессора, используемом в DOS, формально доступен лишь 1 Мбайт памяти. Однако из-за ошибки эмуляции процессора 8086 в реальном режиме процессоры 80286 и выше имеют максимально доступный адрес lOFFEFh, что на (64К-16) байт больше. Область lOOOOOh-lOFFEFh называется высокой памятью — High Memory Area (HMA). В нее помещают часть ОС реального режима и небольшие резидентные программы. Для полной совместимости с процессором 8086/88 имеется вентиль линии А20 шины адреса — GateA20, который либо пропускает сигнал от процессора, либо принудительно обнуляет линию А20 системной шины адреса.

Теги:

Mac SCSI – это
_________ — запрос от ЦУ на пересылку данных
_____________ — внешние разъемы с особо высокой плотностью
______________- 8/16-битный кабель с 34 парами проводов
_______________ доставляет данные от одного конца канала шины USB к другому
_____________________ — это передачи без каких-либо обязательств по задержке доставки и скорости передачи
Адресация устройств на шине в фазах выборки осуществляется через
Активные терминаторы SE шины SCSI имеют импеданс __________ Ом
Аппаратные средства шины USB обнаруживают ошибки передачи, а контроллер автоматически производит ___________ попытку передачи
В демультиплексированном режиме AGP представляют всего 8 линий SBA (SideBand Address), по которым команда, адрес и значение длины передачи передаются
В интерфейсе AGP имеется только ____ независимых очереди для каждого типа команд
В ответ на полученные команды порт AGP
В последовательных шинах
В последовательных шинах пакет пересылается
В режиме 1х порта AGP каждая часть данных передается
В режиме 2х для SBA используется отдельный строб SB_STB по его
В режиме 2х порта AGP используются стробы данных
В режиме SE шины SCSI все обратные провода соединяются с
В совокупности карта AGP Pro может потреблять до ______ Вт мощности
В состояние __________ порт SBA переходит, когда у него в очереди имеется необслуженная команда, готовая к исполнению
В фазе __________ устройство может получить право на управление шиной SCSI
В фазе ___________ ЦУ делает запрос на передачу ИУ информации о своем состоянии
В широко используемой линейной версии SE (Single Ended) SCSI каждый сигнал передается ____________________ относительно общего провода
Вcе терминаторы нуждаются в.
Возможны ____ способа (ов) подачи команд AGP (постановки запросов в очередь)
Волновое сопротивление линий кабельных шлейфов, применяемых в SCSI, обычно лежит в диапазоне ___________ Ом
Высокий уровень при пассивном состоянии передатчиков обеспечивают
Графический адаптер с интерфейсом AGP может реально вести себя по-разному: 1)не задействовать конвейеризацию, а использовать только быструю запись PCI (Fast Write); 2)не работать с текстурами, расположенными в системной памяти, но использовать более быстрый обмен данными между памятью и локальным буфером; 3) использовать оптимальное распределение текстур между локальной и системной памятью, избегая конфликтов с обращениями к памяти от процессора
Для обнаружения ошибок при передаче сигналов с помощью шины USB, каждый пакет имеет контрольные поля CRC-кодов, позволяющие обнаруживать: 1) одну ошибку, 2) две ошибки, 3) три ошибки, 4) четыре ошибки
Допустимая длина сегмента экранированного кабеля USB составляет ____ м
Если терминаторов не будет (или импеданс терминатора не совпадает с линией), «звон» отраженных сигналов будет приводить к
Если устройству AGP требуется обратиться к локальной памяти каких-либо устройств PCI, то оно должно выполнять эти транзакции в режиме
Запросы AGP с высоким приоритетом для арбитра системной логики являются
Информация по шине данных SCSI передается
К шине USB возможно подключение ______ устройств
Каждая транзакция планируется и начинается по инициативе ___________________, который посылает пакет-маркер (token packet)
Каждое устройство SCSI, подключенное к шине, должно иметь свой уникальный адрес, назначаемый при конфигурировании. Адрес задается
Каждой сигнальной линией SCSI может управлять любое из нескольких устройств, подключенных к шине. Причем устройство, посылающее сигнал, формирует только активный уровень, возвратить линию в пассивное состояние должны
Каждый из нисходящих (downstream) портов шины USB может быть: 1)разрешен, 2)запрещен, 3) сконфигурирован на высокую, полную или ограниченную скорость обмена
Какую именно команду из очереди отрабатывает порт AGP
Когда порт AGP обслужит все команды, он переходит в состояние
Конвейерные транзакции AGP (команды AGP) инициируются только
Контроллер памяти позволяет завершить транзакцию и освободить шину AGP
Контроллеры и хабы USB 2.0 _______________ суммарную пропускную способность шины и для старых устройств
Любое устройство при подключении к шине USB не должно потреблять от шины ток, превышающий _____ мА
Максимальная длина кабелей SCSI Fast SE может быть ______метров
Максимальная длина кабелей SCSI Ultra 160 LVD может быть ______метров
На дополнительном разъеме порта AGP цепь PRSNT2# — признаком потребляемой мощности до __________- контакт свободен
На дополнительном разъеме цепь PRSNT1# служит признаком
На скорости 480 Мбит/с интерфейса USB 2 может работать
На этапе конфигурирования устройства система PnP устанавливает реальное ограничение (в конфигурационном регистре ускорителя) в соответствии с возможностями самого устройства и
Параллельный интерфейс SCSI существует в нескольких версиях, различающихся: 1) разрядностью шины, 2) способами передачи сигналов , 3) способами синхронизации, 4) способом подключения устройств
Пассивные терминаторы SE шины SCSI имеют импеданс __________ Ом
Первая версия шины SCSI-1 была
По уровню питания буферов карты и порты AGP могут быть: 1) 3,3 В, 2) 1,5 В, 3)универсальные
Полная скорость передачи шины USB 1 составляет ______ Мбит/с
Полная скорость передачи шины USB 2 составляет ______ Мбит/с
Порт AGP предназначен
Порт AGP представляет собой
Порт AGP содержит
Последовательные шины по своей организации
Последовательные шины позволяют объединять множество устройств, используя всего ____________ проводов
Посылка из всех единиц является _______ шины SBA
При внеполосной подаче команд по шине SBA[7:0] передаются ____-битные посылки четырех типов
При необходимости кабели шины SCSI могут сращиваться
Работой всей системы USB управляет
Рабочий ток при работе устройств питающихся от шины USB не должен превышать ____ мА
Сигналом ___________ ускоритель может информировать порт AGP о неготовности к приему данных низкоприоритетных транзакций чтения
Синхронизация данных на SBA зависит от
Скорость устройства, подключенного к конкретному порту, определяется _________ по уровням сигналов на линиях D+ и D-
Терминаторы для ______ шины SCSI имеют дифференциальной импеданс 105 Ом
Терминаторы шины SCSI должны выполнить следующие задачи: 1) избавить линии шины от отражений сигналов с ее концов; 2) обеспечить требуемый уровень сигнала пассивных линий; 3) усилить сигналы передаваемые по шине SCSI
Транзакции в шине AGP в режиме PCI, инициируемые ускорителем, начинаются с подачи сигнала
Ускорение порта AGP 8x достигается следующими факторами: 1) конвейеризацией обращений к памяти; 2) удвоенной (2х) или учетверенной (4х) частотой передачи данных (относительно тактовой частоты порта); 3) демультиплексированием шин адреса и данных
Устойчивая работа шины SCSI при количестве устройств, превышающим _____, проблематична
Устройствами SCSI поддерживаются исполнения цепочек до ____ команд
Устройство, подключаемое к порту AGP, может предназначаться как исключительно для операций AGP, так и быть
Фазы исполнения команд разных очередей могут
Физическая топология шины USB — это
Физически «узкий» интерфейс SCSI представляет собой шину, состоящую из ______ сигнальных и нескольких питающих цепей
Шина USB с использованием промежуточных хабов позволяет соединять устройства, удаленные от компьютера на расстояние до ____ м
Шинный протокол в последовательных шинах строится на основе пересылок

USB

Контроль и обработка ошибок передачи

Подробности
Родительская категория: USB
Категория: Протокол шины USB

Все принимаемые пакеты проверяются на наличие ошибок, что позволяют принятые форматы пакета и некоторые соглашения:

  • пакет начинается с синхронизирующей последовательности, за которой следует его идентификатор PID (Packet Identificator). За идентификатором следует его инверсная копия — Check. Несовпадение двух копий считается признаком ошибки;
  • тело пакета (все поля пакета, исключая PID и признак EOP) защищается CRCкодом: 5-битным для пакетов-маркеров, 16-битным — для пакетов данных. Несовпадение CRC с ожидаемым значением считается признаком ошибки;
  • пакет завершается специальным сигналом EOP; если в пакете оказывается не целое число байт, он считается ошибочным. Ложный EOP, даже на границе байта, не позволит принять пакет из-за практически неизбежной в данной ситуации ошибки по CRC-контролю;
  • на физический уровень (в шину) данные пакета передаются с использованием вставки бит (bit stuffing, после шести единичных бит вставляется нолик), что предотвращает потерю битовой синхронизации при монотонном сигнале. Прием более шести единичных бит подряд считается ошибкой (на HS — признаком конца кадра).

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

Для обнаружения отсутствия ответа партнера на пакет каждое устройство имеет счетчик тайм-аута, который прерывает ожидание ответа по истечении некоторого времени. В USB имеется ограничение на время оборота по шине (roundtrip time): время от конца EOP сформированного пакета до получения начала ответного пакета. Для конечного устройства (и хост-контроллера) нормируется максимальная задержка ответа (response time) от конца увиденного EOP до введения им начала пакета. Для хабов нормируется задержка трансляции пакетов, для кабелей — задержка распространения сигналов. Счетчик тайм-аута должен учитывать максимальную задержку, возможную для допустимой конфигурации шины: до 5 промежуточных хабов, до 5 метров каждый кабель. Допустимое значение тайм-аута, выражаемое в битовых интервалах (bt), зависит от скорости:

  • для скоростей FS/LS задержка, вводимая одним кабельным сегментом, по сравнению с битовым интервалом (bt) невелика. Исходя из этого в USB 1.0 для расчета допустимых задержек принимается следующая модель. На каждый кабельный сегмент отводится допустимая задержка 30 нс, на хаб — 40 нс. Таким образом, пять промежуточных хабов со своими кабелями вносят во время двойного оборота задержку 700 нс, что на FS соответствует примерно 8,5 bt. Для FS-устройства задержка ответа не должна превышать 6,5 bt (а с учетом его кабеля — 7,5 bt). Исходя из этого спецификация предписывает передатчикам на FS использовать счетчик тайм-аута на 16–18 bt;
  • на скорости HS задержка в кабельном сегменте много больше битового интервала, и в USB 2.0 модель расчета несколько иная. Здесь на каждый кабельный сегмент отводится по 26 нс, а на хаб — по 4 нс плюс 36 bt. Таким образом, двукратное прохождение 6 кабельных сегментов (2×6×26 = 312 нс ≈ 150 bt) и пять хабов (2×5×4 = 40 нс ≈ 19 bt плюс 2×5×36 = 360 bt) занимает до 529 bt. Задержка ответа устройства допустима до 192 bt, а полная задержка с учетом кабелей и хабов будет до 721 bt. Исходя из этого спецификация предписывает передатчикам на HS использовать счетчик тайм-аута на 736–816 bt.

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

Лекция 14. USB- порт

1. Последовательные шины

2. Шина USB

3. Модель и протокол передачи данных

1.Последовательные шины

Последовательные шины позволяют объединять множество устройств, исполь­зуя всего 1-2 пары проводов. При этом достигается пропускная способность от 100 Кбит/с для шины ACCESS Bus, до 400 Мбит/с для FireWire, 480 Мбит/с для USB 2.0 и 1 Гбит/с для FCAL.

Функциональные возможности этих шин гораздо шире, чем у традиционных интерфейсов локальных сетей — USB и FireWire спо­собны передавать изохронный график аудио- и видеоданных. Последовательные шины по своей организации сильно отличаются от параллельных. В последова­тельных шинах нет отдельных линий для данных, адреса и управления — все протокольные функции приходится выполнять, пользуясь одной (в USB и ACCESS.Bus) или двумя (в FireWire) парами сигнальных проводов или парой оптических волокон (Fibre Channel).

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

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

Наибольшую популярность имеют шины USB и FireWire, хотя последняя пока что в РС- совместимых компьютерах используется не повсеместно. Технологии последовательных шин FireWire и USB, имея общие черты, существенно разли­чаются. Обе шины обеспечивают простое; подключение большого числа ПУ (127 для USB и 63 для FireWire), допуская коммутации и включение/выключе­ние устройств при работающей системе. По структуре топология обеих шин дос­таточно близка, но FireWire допускает большую свободу и пространственную протя­женность. Хабы USB входят в состав многих устройств и для пользователя их присутствие зачастую незаметно. Обе шины имеют линии питания устройств, но допустимая мощность для FireWire значительно выше. Обе шины поддержи­вают технологию РnР (автоматическое конфигурирование при включении/вы­ключении) и снимают проблему дефицита адресов, каналов DMA и прерываний. Различаются пропускная способность шин и управление ими.

Шина USB ориентирована на периферийные устройства, подключаемые к PC. Изохронные передачи USB позволяют передавать цифровые аудиосигналы, а USB 2.0 способна нести и видеоданные. Все передачи управляются централи­зованно, и PC является необходимым управляющим узлом, находящимся в кор­не древовидной структуры шины. Адаптер USB пользователи современных ПК получают почти бесплатно, поскольку он входит в состав всех современных чипсетов системных плат. Правда, адаптеры USB 2.0 первое время будут выпускать­ся в виде карт PCI. Непосредственное соединение нескольких PC шиной USB не предусматривается, хотя выпускаются «активные кабели» для связи пары ком­пьютеров и устройства-концентраторы.

Шина FireWire ориентирована на устройства бытовой электроники, которые с ее помощью могут быть объединены в единую домашнюю сеть. К этой сети может быть подключен компьютер, и даже не один. Принципиальным преиму­ществом шины является отсутствие необходимости в специальном контрол­лере шины (компьютере). Любое передающее устройство может получить поло­су изохронного трафика и начинать передачу по сигналу автономного или дис­танционного управления — приемники «услышат» эту информацию. При нали­чии контроллера соответствующее ПО может управлять работой устройств, реа­лизуя, например, цифровую студию нелинейного видеомонтажа или снабжая тре­буемыми мультимедийными данными всех заинтересованных потребителей ин­формации.

2. Шина USB

USB (Universal Serial Bus — универсальная последовательная шина) является промышленным стандартом расширения архитектуры PC, ориентированным на интеграцию с телефонией и устройствами бытовой электроники. Шина USB со­всем молодая—версия 1.0 была опубликована в начале 1996 года, и скептики иронично расшифровывали ее название как «неиспользуемая последовательная шина» (Unused Serial Bus).

Однако сейчас устройств с интерфейсом USB уже предостаточно. Большинство их поддерживает версию 1.1, которая вышла осе­нью 1998 года — в ней были устранены обнаруженные проблемы первой редак­ции. Весной 2000 года опубликована спецификация USB 2.0, в которой преду­смотрено 40-кратное повышение пропускной способности шины. Первоначаль­но (в версиях 1.0 и 1.1) шина обеспечивала две скорости передачи информации:

полную скорость FS (full speed) — 12 Мбит/с

низкую скорость LS (Low Speed) — 1,5-Мбит/с.

В версии 2.0 определена еще и высокая скорость US (High Speed) — 480 Мбит/с, которая позволяет существенно расширить круг устройств, подклю­чаемых к шине. В одной и той же системе могут присутствовать и одновременно работать устройства со всеми тремя скоростями. Шина позволяет соединять ус­тройства, удаленные от компьютера на расстояние до 25 м (с использованием промежуточных хабов).

С середины 1996 года выпускаются PC со встроенным контроллером USB, реализуемым чипсетом системной платы. Подробную и оперативную информа­цию по USB (на английском языке) можно найти по адресу #»1.files/image001.gif»>

Рис. 1. Коннекторы USB: a вилка типа «А»; б— вилка типа «В»

а

б в

Рис.2. Гнезда USB: а— типа «А»; б типа «В»;

в символическое обозначение

Таблица 1. Назначение выводов разъема USB

Контакт

Цепь

1

Vbus

2

D-

3

D+ .

4

GND

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

Подключение устройства HS определяется на этапе обмена конфигурационной информацией — физически на первое время устройство HS должно подключаться как FS. Передача по двум проводам в USB не ограничивается дифференциаль­ными сигналами. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-, а передатчики этих линий управляются индивидуально. Это позволяет различать более двух состояний линии, исполь­зуемых для организации аппаратного интерфейса.

Введение высокой скорости (480 Мбит/с — всего в 2 раза медленнее, чем пред­лагает технология Gigabit Ethernet) требует тщательного согласования приемо­передатчиков и линии связи. На этой скорости может работать только кабель с экранированной витой парой для сигнальных линий. Для высокой скорости ап­паратура USB должна иметь дополнительные специальные приемопередатчики. В отличие от формирователей потенциала для режимов FS и LS передатчики HS являются источниками тока, ориентированными на наличие резисторов-тер­минаторов на обеих сигнальных линиях.

Скорость передачи данных (LS, FS или HS) выбирается разработчиком пери­ферийного устройства в соответствии с потребностями этого устройства. Реали­зация низких скоростей для устройства обходится несколько дешевле (приемо­передатчики проще, а кабель для LS может быть и неэкранированной невитой парой). Если в «старой» USB устройства можно было подключать не задумыва­ясь в любой свободный порт любого хаба, то в USB 2.0 появились возможности выбора между оптимальными, неоптимальными и неработоспособными конфи­гурациями, если используются устройства и хабы разных версий.

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

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

В спецификации 2.0 скорость 480, Мбит/с должна уживаться с прежними, но при таком соотношении скоростей обмены на FS и LS «съедят» возможную по­лосу пропускания шины без всякого «удовольствия» (для пользователя).

Чтобы этого не происходило, хабы USB 2.0 приобретают черты коммутаторов пакетов. Если к порту такого хаба подключено высокоскоростное устройство (или анало­гичный хаб), то хаб работает в режиме повторителя и транзакция с устройством на HS занимает весь канал до хост-контроллера на все время своего выполне­ния. Если же к порту хаба USB 2.0 подключается устройство или хаб 1.1, то по части канала от контроллера пакет проходит на скорости HS, запоминается в буфере хаба, а к старому устройству или хабу идет уже на его «родной» скорос­ти FS или LS. При этом функции контроллера и хаба 2.0 (включая и корневой) усложняются, поскольку транзакции на FS и LS расщепляются и между их час­тями вклиниваются высокоскоростное передачи. От старых (1.1) устройств и хабов все эти тонкости скрываются, что и обеспечивает обратную совместимость.

Вполне понятно, что устройство USB 2.0 сможет реализовать высокую скорость, только если по пути от него к хост-контроллеру (тоже 2.0) будут встречаться только хаб» 2.0. Если это правило нарушить и между ним и контроллером 2.0 окажется старый хаб, то связь может быть установлена только в режиме FS. Если такая скорость, устройство и клиентское ПО устроит (к примеру, для принтера и сканера это выльется только в большее время ожидания пользователя), то под­ключенное устройство работать будет, но появится сообщение о неоптимальной конфигурации соединений. По возможности ее следует исправить, благо пере­ключения кабелей USB можно выполнять «на ходу». Устройства и ПО, критич­ные к полосе пропускания шины, в неправильной конфигурации работать отка­жутся и категорично потребуют переключений. Если же хост-контроллер ста­рый, то все прелести USB 2.0 окажутся недоступными пользователю. В этом слу­чае придется менять хост-контроллер (менять системную плату или приобре­тать PCI-карту контроллера). Контроллер и хабы USB 2.0 позволяют повысить суммарную пропускную способность шины и для старых устройств. Если уст­ройства FS подключать к разным портам хабов USB 2.0 (включая и корневой), то для них суммарная пропускная способность шины USB возрастет по сравне­нию с 12 Мбит/с во столько раз, сколько используется портов высокоскорост­ных хабов.

На рис. 3 приведен вариант соединения устройств и хабов, где высоко­скоростным устройством USB 2.0 является только телекамера, передающая видеопоток без компрессии. Подключение принтера и сканера USB 1.1 к отдель­ным портам хаба 2.0, да еще и развязка их с аудиоустройствами позволяет им использовать полосу шины по 12 Мбит/с каждому.

Таким образом, из общей полосы 480 Мбит/с на «старые» устройства (USB 1.0) выделяется 3 х 12 — 36 Мбит/с. Вообще-то можно говорить и о полосе в 48 Мбит/с, по­скольку клавиатура и мышь подключены к отдельному порту хост-контролле­ра USB 2.0, но эти устройства «освоят» только малую толику из выделенных им 12 Мбит/с. Конечно, можно подключать клавиатуру и мышь и к порту внеш­него хаба, но с точки зрения повышения надежности системные устройства вво­да лучше связывать наиболее коротким (по количеству кабелей, разъемов и промежуточных устройств) путем. Неудачной конфигурацией было бы подклю­чение принтера (сканера) к хабу USB 1.1 — во время работы с аудиоустройствами (если они высокого качества) скорость печати (сканирования) будет падать. Неработоспособной конфигурацией явилось бы подключение телека­меры к порту хаба USB 1.1.

Рис. 3. Пример конфигурации соединений

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

2. Модель и протокол передачи данных

Каждое устройство на шине USB (их может быть до 127) при подключении ав­томатически получает свой уникальный адрес. Логически устройство представ­ляет собой набор независимых конечных точек (endpoint), с которыми хост-кон­троллер (и клиентское ПО) обменивается информацией. Каждая конечная точка имеет свой номер и описывается следующими параметрами:

·   требуемая частота доступа к шине и допустимые задержки обслуживания;

·   требуемая полоса пропускания канала;

·   требования к обработке ошибок;

·   максимальные размеры передаваемых и принимаемых пакетов;

·   тип передачи;

·   направление передачи (для передач массивов и изохронного обмена).

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

Кроме нулевой точки устройства-функции могут иметь дополнительные точ­ки, реализующие полезный обмен данными. Низкоскоростные устройства мо­гут иметь до двух дополнительных точек, полноскоростные — до 15 точек вво­да и 15 точек вывода (протокольное ограничение). Дополнительные точки (а именно они и предоставляют полезные для пользователя функции) не могут быть использованы до их конфигурирования (установления согласованного с ними канала).

Каналом (pipe) в USB называется модель передачи данных между хост-кон­троллером и конечной точкой устройства. Имеются два типа каналов:

— потоки;

— сообщения.

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

-передача массивов;

— изохронный;

преры­вания.

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

С каналами связаны характеристики, соответствующие конечной точке (по­лоса пропускания, тип сервиса, размер буфера и т. п.). Каналы организуются при конфигурировании устройств USB. Для каждого включенного устройства суще­ствует канал сообщений (Control Pipe 0), по которому передается информация конфигурирования, управления и состояния.

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

Адресуемое маркером устройство распознает свой адрес и готовится к обме­ну. Источник данных (определенный маркером) передает пакет данных (или уве­домление об отсутствии данных, предназначенных для передачи). После успешно­го приема пакета приемник данных посылает пакет квитирования (handshake packet). Последовательность пакетов в транзакциях иллюстрирует рис. 4.

Рис. 4. Последовательности пакетов

Хост-контроллер организует обмены с устройствами согласно своему плану распределения ресурсов. Контроллер циклически (с периодом 1,0 ± 0,0005 мс) формирует кадры (frames), в которые укладываются все запланированные тран­закции (рис. 4). Каждый кадр начинается с посылки маркера SOP (Start Of Frame), который является синхронизирующим сигналом для всех устройств, включая хабы.

В конце каждого кадра выделяется интервал времени EOF (End Of Frame), на время которого хабы запрещают передачу по направлению к контрол­леру. В режиме HS пакеты SOF передаются в начале каждого микрокадра (период 125 ± 0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда нахо­дилось место для транзакций управления и прерывания. Свободное время кад­ров может заполняться передачами массивов (bulk transfers). В каждом (микро­кадре) может быть выполнено несколько транзакций, их допустимое число зави­сит от длины поля данных каждой из них.

Рис.5 Поток кадров USB

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

Все подробности организации транзакций изолируются от клиентского ПО контроллером USB и его системным программным обеспечением.

Лекция 14. USB- порт

Рис. 1. Коннекторы USB: a вилка типа «А»; б— вилка типа «В»

а

б в

Рис.2. Гнезда USB: а— типа «А»; б типа «В»;

в символическое обозначение

Таблица 1. Назначение выводов разъема USB

Контакт

Цепь

1

Vbus

2

D-

3

D+ .

4

GND

Рис. 3. Пример конфигурации соединений

Рис. 4. Последовательности пакетов

Рис.5 Поток кадров USB

Теги:
USB- порт  
Лекция 
Информационные технологии

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Аппаратное ускорение отключено яндекс браузер ошибка
  • Аппаратное обеспечение графики amd ошибка 173