Скачиваний:
40
Добавлен:
02.05.2014
Размер:
947.71 Кб
Скачать

1.2.2. Протокол передачи данных

Все обмены (транзакции) с устройствамиUSBсостоят из 2-3 пакетов. Каждая транзакция начинается по инициативе контроллера, который посылает специальный пакет –маркер(tokenpacket).

Этот пакет описывает тип и направление передачи, адрес устройства USBи номер конечной точки.

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

  1. Требуемая частота и задержки (кадр)

  2. Требуемая полоса пропускания канала

  3. максимальный размер пакетов

  4. тип передачи

  5. направление передачи

Каждое устройство обязательно имеет конечную точку с номером “0”.

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

Низкоскоростные устройства могут иметь до 2-х дополнительных точек.

Высокоскоростные до 15.

В каждой транзакции возможен обмен только между конечной тоской и хостом.

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

  1. Вывод данных

  1. Ввод данных

Хост контроллер организует обмен с устройствами по плану распределения ресурсов. Контроллер циклически с периодом 1мс, а в режиме HS125мкс формирует кадры (фреймы), к которым укладываются все транзакции. Каждый кадр начинается с посылки сигналаSOF(startоfFrame), который является синхронизующим сигналом для всех устройств, включая хаб. В конце кадра выделяется интервал времени с сигналомEOF(endofframe) на время которого хабы запрещают передачу к хост контроллеру.

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

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

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

2 витые пары

- +5V und GND

- Data+\- (LS, FS, HS)

  1. Протокол передачи.

Ведущее (master) устройство – хост-контроллер

Ведомое устройство (slave) – все остальные.

Имеет endpoint (номер)

  1. Логика работы.

2 типа передач

- message(служебные сообщения)

- pipe(канал передачи данных)

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

Передача состоит из фреймов (кадров)

Каждый кадр – 2-3 пакета

Начало кадра - SOF

Конец Кадра – EOF

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

  1. Управляющие посылкииспользуются для конфигурирования устройств во время их подключения, с помощью технологииPnP(система автоматического определения устройств, по их заводскому номеруVendorIDи их автоматического конфигурирования путем выделения для них адресов ввода\вывода, линий запроса прерываний и каналовDMA.

  2. Передача массива данных

  3. Прерывание

  4. Изохронные передачи. Служит для потоковых устройств:

- видеокамер

- USBколонок

- USBмикрофонов

- USBСД и ДВД приводов

В этом случае Аудио и Видео поток можно передавать по определенной полосе шины непрерывно в реальном времени.

Полоса пропускания шины делится между всеми установленными в данный момент времени каналами.

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

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

1.2.4. USBHOST

У каждой шины USBможет быть только один хост-компьютер с контроллеромUSB.Хост делится на 3 основных уровня:

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

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

    1. Драйвер хост-контроллера (HCD – host controller drive)

Он привязан к конкретной модели контроллера и абстрагирует (отделяет)драйвер самихUSBустройств от используемого контроллера.

    1. драйвер USB (USBD). Интерфейс междуUSBDиHSDне регламентирован, это значит, любой производитель может настроить драйверUSBтак как ему удобно. Обеспечивает основной интерфейс между клиентами и устройствамиUSB. Он абстрагирует клиентское ПО от драйвера конкретногоUSBустройства.

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

  1. Клиенты USB. ПО, которое использует драйверы системыUSB. Хост контроллер является аппаратным посредником междуUSBустройствами и самим хостом. Программная часть хоста реализуется ОС. До загрузки ОС поддерживаются только усеченные возможности (функции)USB, которые реализованы в БИОС. Там имеется сервисInt10h, который используется для поддержкиUSBклавиатуры.

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

USBподдерживает динамическое подключение и отключение устройств, нумерация и перенумерация устройств шины идет постоянно отслеживая изменения физической топологии. Все устройства подключаются через порты хабов. В системе должен присутствовать как минимум 12 хаб, - корневой концентратор (roothub). Он не имеет порта для подключения вышестоящего уровня и содержит только 2 порта для подключения нижестоящих уровней. Промежуточные хабы имеют 3 порта. Хабы определяют подключение и отключение устройств к своим портам и сообщают состояние портов при запросе от контроллера.

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

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

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

Соседние файлы в папке Лекции. Часть 1. 2005-06