Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Priis_lkc3a.doc
Скачиваний:
350
Добавлен:
20.04.2015
Размер:
631.81 Кб
Скачать

Интерфейс usb

USB (Universal Serial Bus) – универсальная последовательная шина. В стандарте на интерфейс USB заложено множество удобных для пользователя функций:

  • «горячее» подключение и отключение устройств;

  • питание периферии от хост-компьютера или разветвителя через интерфейсный кабель;

  • малогабаритные надежные разъемы;

  • возможность реализации гальванической развязки;

  • поддержка Plug-and-Play;

  • высокая скорость обмена данными.

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

Средой интерфейса является кабельная система (рис. 3.7) со стандартизированными разъемами нескольких видов и разветвителями (хабами). Хабы позволяют реализовывать топологию многоярусной звезды. Часто хабы используются для реализации гальванической развязки и питания оконечных устройств.

Рис. 3.7. Топология интерфейса USB: применяются разъемы типа «А»,

типа «В» и миниатюрные (обозначено буквой «М»)

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

Рис. 3.8. Гнезда USB: а – типа «А»; б – типа «В»; в – назначение

выводов разъема; г – символическое обозначение

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

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

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

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

Стандарт USB определяет электрические и механические параметры среды передачи данных. Информационные сигналы и питающее напряжение 5 В передаются по четырехпроводному кабелю. Используется дифференциальный способ передачи сигналов D+ и D- по двум перевитым проводникам.

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

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

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

  • Data J State и Data К State – состояния передаваемого бита (или просто J и К), определяются через состояния Diff0 Ddiff1;

  • Idle State – пауза на шине;

  • Resume State – сигнал «пробуждения» для вывода устройства из «спящего» режима;

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

  • End of Packet (EOP) – конец пакета;

  • Disconnect – устройство отключено от порта;

  • Connect – устройство подключено к порту;

  • Reset – сброс устройства.

Состояния определяются сочетаниями дифференциальных и линейных сигналов. В декодировании состояний Disconnect, Connect и Reset учитывается время нахождения линий (более 2,5 мс) в определенных состояниях. Шина обеспечивает две скорости передачи информации: полную скорость FS (full speed) – 12 Мбит/с и низкую скорость LS (Low Speed) – 1,5 Мбит/с. (В версии 2.0 определена еще и высокая скорость HS (High Speed) – 180 Мбит/с, которая позволяет существенно расширить круг устройств, подключаемых к шине).

Кабель USB содержит одну экранированную витую пару с импедансом 90 Ом для сигнальных цепей и одну неэкранированную – для подачи питания (+5 В); допустимая длина сегмента до 5 м. Для низкой скорости может использоваться неэкранированный кабель длиной до 3 м.

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

Рис. 3.9. Кабельное хозяйство интерфейса USB

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

Сигналы синхронизации в линиях интерфейса USB кодируются вместе с данными по методу NRZI (Non Return to Zero Invert), его работу иллюстрирует рис. 3.10. Отсутствие длинных последовательностей одинаковых битов позволяет производить самосинхронизацию портов по перепадам сигналов.

Рис. 3.10. Кодирование информации методом NZRI

NZRI – метод без возврата к нулю с инвертированием для единиц. Этот метод представляет собой модификацию простого потенциального метода кодирования, когда для представления «1» и «0» используются потенциалы двух уровней.

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

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

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

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

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

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

Конечные точки (по существу – программно-доступные регистры) описываются следующими параметрами:

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

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

  • направлением обмена;

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

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

  • полосой пропускания канала;

  • алгоритмом обработки ошибок.

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

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

Модель обмена в спецификации USB называется словом «Pipe». Они бывают двух типов: потоковые и однократные. Потоковые точки всегда однонаправлены. Один и тот же номер конечной точки может использоваться для двух потоков встречных направлений.

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

Пересылка данных происходит в порядке «первым пришел – первым вышел». Механизмы конечных точек и моделей обмена очень удобны для разработчиков и программистов. Они позволяют структурировать адресное пространство и унифицировать программное обеспечение.

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

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

Стандарт USB определяет следующие типы передачи данных:

  • Управляющие посылки, инициализация и управление оконечными устройствами. Поле данных не более 64 байт на полной скорости и 8 байт – на низкой. Обеспечивает гарантированную доставку данных.

  • Сплошные потоки для больших пакетов без жестких требований ко времени доставки. Передачи занимают всю свободную пропускную способность интерфейса. Поле данных 8, 16, 32 или 64 байт. Они имеют самый низкий приоритет, могут приостанавливаться из-за нехватки производительности интерфейса. Допускаются только на полной скорости передачи.

  • Прерывания – короткие передачи, до 64 байт на полной скорости и до 8 байт – на низкой. Прерывания событийно ориентированы, они требуют быстрого обслуживания. Время их обслуживания гарантировано.

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

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

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

Любой обмен данными в интерфейсе USB состоит из трех пакетов.

Первый пакет содержит адрес конечной точки и описание типа обмена данными. Его передает контроллер.

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

Третий пакет передает приемник. Пакет содержит подтверждение приема данных.

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

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

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

Затем передаются маркер начала пакета (2 бита), идентификатор пакета (4 бита), и еще раз он же, но в инверсном виде (табл. 3.2).

Таблица 3.2

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

Тип пакета

Идентифи-

катор пакета

Содержимое пакета

Маркер записи в оконечное устройство

0001

Адрес устройства и номер конечной точки (маркер модели обмена)

Маркер чтения из оконечного

устройства

1001

Маркер инициализации устройства (записи в управляющую конечную точку)

1101

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

0101

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

Данные

0011

Пакеты данных четные и нечетные

Данные

1011

Квитирование

0010

Подтверждение верного

приема пакета

Квитирование

1010

Ошибка обмена данными,

неготовность порта, нет

необслуженных прерываний

Квитирование

1110

Прерывание

Системный

1100

Переход на низкую скорость

Далее передается поле данных.

В маркерах модели обмена – адрес устройства (7 бит) и адрес конечной точки (4 бита).

Отсюда те самые 127 устройств, поддерживаемые USB (нулевое устройство – системное).

В маркере начала кадра – поле номера кадра (11 бит).

В пакетах данных – сами данные (от 0 до 1023 байт).

В других пакетах поле данных отсутствует.

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

Каждый обмен данными инициируется хост-компьютером выдачей маркера и завершается пакетом квитирования (рис. 3.11).

Рис. 3.11. Последовательность передачи пакетов при обмене данными в USB

Маркер модели обмена передает хост-компьютер.

Данные передает оконечное устройство (модель «чтение из оконечного устройства») или хост-компьютер (в двух других случаях).

Пакет квитирования передает «принимающая сторона».

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

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

Маркер начала кадра содержит циклически наращиваемый сериальный номер. Он может использоваться оконечными устройствами для синхронизации или самотестирования.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]