Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЭВМиС 2012 все леккции.doc
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
4.36 Mб
Скачать

6.8. Протокол шины usb

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

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

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

Пакеты данных содержат входные или выходные данные и некоторую другую информацию.

Первое поле любого пакета (8-разрядное) называется идентификатором PID, определяет тип пакета, в нем 4 бита передаются дважды: первый раз реальные биты, второй – как дополнение (рис. 6.09 а). Это позволяет проверить достоверность полученного байта PID.

4 бита поля PID идентифицируют один из 16 возможных типов пакетов.

Пакеты, используемые для управления операциями пересылки данных называют пакетами маркера. Их формат показан на рис. 6.09 б), в котором PID определяет тип пакета:

IN (ввод) или OUT (вывод),

ADDR – адрес ПУ (7 разрядный),

EDNP – четырехразрядный номер конечной точки внутри ПУ (например в ПУ есть: принтер, факс, модем и т. д.),

CRC16 – для циклической проверки наличия ошибок в адресе ПУ и номере конечной точки (наподобие обнаружения ошибок в циклическом коде).

Формат пакетов входных или выходных данных показан на рис. 6.09 в).

Обратите внимание: адрес пересылки данных содержится в пакете IN и OUT, который инициирует эту пересылку.

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

Передаются: а) управляющий пакет (пакет маркера) и б) – пакет данных.

Временная диаграмма передачи приведена на рис. 6.10 в).

Хост-компьютер отсылает хабу пакет маркера типа OUT, за ним – пакет данных. После PID пакета идентифицирует его как пакет данных с номером 0. Хаб, проверив контрольные биты пакета (CRC16), отсылает хосту подтверждение АСК, а ПУ – пакеты маркера и данных. Эти пакеты доходят до всех ПУ, но принимает их и отправляет хабу подтверждение АСК, только ПУ, распознавшее свой адрес в пакете маркере.

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

Если в результате ошибки произошла потеря любого пакета, отправитель повторно посылает весь набор пакетов.

Высокоскоростные пакеты нумеруются как 0, 1, 2, 0 и т.д.

Операция ввода IN выполняется аналогично. Хост отсылает пакет маркера типа IN, содержащий адрес ПУ, который используется и как сигнал опроса, тем самым адресуемому ПУ дается команда – отправить данные.

ПУ отправляет данные, а также подтверждение АСК. Если ПУ не имеет данных, оно отправляет только пакет NAK.

Если к шине USB подключены низко, полно и высокоскоростные линии, то пакеты IN и OUT, предназначенные для низко и высокоскоростных ПУ, предваряются специальными управляющими пакетами, инициирующими переход в режим разделения трафика.

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

Подробное описание протоколов приведено на сайте по адресу:

www.usb.org/developers и в документах, составляющих спецификацию USB. Довольно много материала по USB и в книге М.Гук «Шины PCI, USB и FireWire», изд-во Питер, 2005 г.

Изохронный трафик по шине USB

Предназначен для передачи оцифрованных сообщений, например, голоса.

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

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

Структура пакета SOF представлена на рис. 6.11 а). Увеличение длительности пакета (если этого требует устройство) достигается за счет включения в пакет 11-разрядого номера кадра.

Вслед за пакетом SOF хост выполняет пересылку пакетов маркера Tn и данных D (рис. 6.11 б).

Другими словами, каждое изохронное ПУ может получать данные каждую мс. Основное требование к изохронному трафику – строгое тактирование по частоте (допустимое отклонение ±0.00005 мс).

Изохронные устройства могут обслуживаться только по полноскоростным (12 Мбит/с) и высокоскоростным (480 Мбит/с) линиям USB.

В высокоскоростных линиях в кадре в 1 мс пакет SOF посылается 8 раз, то есть формируется 8 микрокадров длительностью 125 мкс.

Хаб является ключевым элементом технологии PnP в архитектуре USB, выполняет следующие функции:

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

  2. Управляет подачей питающего напряжения на нисходящие порты (например, для питания флэш-памяти). Предусматривает ограничение тока потребления устройством не более 100 мА.

  3. Отслеживает состояние подключенных устройств, уведомляя об этом хост-компьютер, может отключать от шины неисправные устройства. Обнаруживает ошибки в шине.

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

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

Хост у каждой USB может быть только один. Хост-контроллер можно разделить на три уровня:

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

б) Система USB – используя хост-контроллер, обеспечивает обмен данными с устройствами в транзакции; отвечает за распределение ресурсов USB, а именно: полосы пропускания, питания устройств через USB.

в) Клиенты USB – программные элементы (приложения или системные компоненты), взаимодействуют с устройствами.

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