Синхронизация хаба с кадрами — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

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

Синхронизация хаба с кадрами

2019-06-06 220
Синхронизация хаба с кадрами 0.00 из 5.00 0 оценок
Заказать работу

 

Одна из основных проблем интерфейса USB, это необходимость синхронизации работы сети с частотой подачи кадров(1000Гц).

Хост и устройства должны заранее спланировать свою работу так, чтобы уместить целое число пакетов в период кадра. Хост посылает пакет SOF (начала кадра) независимо от состояния устройств в этот момент, при этом надо отметить, что сигнала конца кадров не существует. Устройства сами должны вычислять конец кадра отсчитывая время от сигнала SOF. Контроллер хаба имеет таймер кадра, который запускается сигналом SOF. Этот таймер вырабатывает два флага конца кадра EOF1 и EOF2(End of Frame). Флаг EOF1 выставляется за 32 битовых интервала до начала следующего кадра. Любой сигнал EOP (конец пакета) полученный после EOF1 и до EOF2 считается концом кадра. Флаг EOF2 выставляется за 10 битовых интервалов до начала следующего кадра. Если после флага EOF2 на порт Downstream продолжает поступать данные или сигнал EOP не был получен, то хаб отключает этот порт от сети.

Перед началом нового кадра по шине не должны передаваться данные, это время используется хабами для анализа линейных сигналов D+/D-. Это позволяет определить подключение/отключение устройств к портам хаба. Чтобы хаб синхронизовал свою работы с хостом, необходимо чтобы он принял два последовательных сигнала SOF. Хаб сообщает о своей синхронизации с хостом установкой флага в своём статусе. Спецификация допускает работу не синхронизированного хаба не более 3 кадров подряд.

 

Состояние хаба и его инициализация

 

В отличие от функции хаб различает большее количество состояний:

-состояния по Downstream порту;

-состояния по Upstream порту;

-состояния по внутреннему порту;

-состояния повторителя.

 

Дескрипторы хаба

 

Хаб является устройством, поэтому он поддерживает стандартные дескрипторы устройств (таблица 23). Для класса устройств типа хаб спецификация определила код HUB_CLASSCODE=0х09H. Кроме стандартных дескрипторов устройств спецификация определяет класс-специфицированные дескрипторы для класса хабов.

Таблица 23 – Дескриптор хаба (8 байт или более)

 

BDescLength bDescriptorType bNbrPorts

wHubCharacteristics

bPwrOn2PwrGood bHubContrCurrent DeviceRemovable PortPwrCtrlMask
Byte00 Byte01 Byte02 Byte03 Byte04 Byte05 Byte06 Byte7..39 Byte08..
                 

 

Описание полей дескриптора хаба (Hub Descriptor):

byte00(bDescLength) -число, длина дескриптора в байтах

byte01(bDescriptorType) -константа, тип дескриптора =0x29h (Hub Descriptor)

byte02(bNbrPorts) -число, количество Downstream портов, поддерживаемых хабом

byte03..04(wHubCharacteristics) -битовое поле:

D1..D0= 00-все порты запитаны к одному; 01-каждый порт включается отдельно; 1Х-неопределено

D2= 0-хаб не входит в составное устройство; 1- хаб является частью составного устройства;

D4..D3= 00-глобальная защита от перегрузки, суммированием тока всех портов; 01-защита каждого порта; 1Х-нет защиты от перегрузки

D15..D5=резерв

byte05(bPwrOn2PwrGood) -число, в 2мс единицах, показывает время необходимое для запитки порта

byte06(bHubContrCurrent) -максимальный ток в мА потребляемый контроллером хаба

byte07..39(DeviceRemovable) -битовое поле, которое показывает является устройство съёмным, значение бита 0-съёмное; 1-не съёмное. Всего 256 бит (bit0-неиспользуется, bit1-порт1 ит.д. до 255)

byte40(bNumConfigurations) -битовое поле, которое нужно для согласования с версией USB 1.0 количество бит равно числу портов плюс битов кратности 8. Все биты должны быть установлены в 1.

 

Запросы хаба хостом

 

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

В таблице 24 приняты следующие обозначения: bRequest -код запроса.

GET_STATUS=0;

CLEAR_FEATURE=1;

GET_STATE=2;

SET_FEATURE=3;

Reserved=4-5;

GET_DESCRIPTOR=6;

SET_DESCRIPTOR=7;

Таблица 24 – Класс-специфицированные запросы Хаба

 

Request bRequestType bRequest wValue wIndex wLenght Data
Name Byte00 Byte01 Byte02..03 Byte04..05 Byte06..07 N*Byte
ClearHubFeature 00100000B CLEAR_ FEATURE Feature Selector Zero Zero None
ClearPortFeature 00100011B CLEAR_ FEATURE Feature Selector Port Zero None
GetBusState 10100011B GET_ STATE Zero Port One Per-Port Bus State
GetHubDescriptor 10100000B GET_DESCRIPTOR Descriptor Type and Descriptor Index Zero or Language ID Descriptor Length Descriptor
GetHubStatus 10100000B GET_ STATUS Zero Zero 4 Hub Status and Hub Change Indicators
GetPortStatus 10100011B GET_ STATUS Zero Zero 4 Port Status and Port Change Indicators
SetHubDescriptor 00100000B SET_DESCRIPTOR Descriptor Type and Descriptor Index Zero or Language ID Descriptor Length Descriptor
SetHubFeature 00100000B SET_ FEATURE Feature Selector Zero Zero None
SetPortFeature 00100011B SET_ FEATURE Feature Selector Port Zero None

 

Feature Selectors - выбор возможностей;

C_HUB_LOCAL_POWER =0 (Получатель Hub)-возможность изменения локального питания;

C_HUB_OVER_CURRENT =1 (Получатель Hub)-возможность изменения контроля перегрузки по току для хаба;

PORT_CONNECTION =0 (Получатель Port)-возможность подсоединения порта;

PORT_ENABLE=1(Получатель Port)-возможность разрешения порта;

PORT_SUSPEND=2 (Получатель Port)-возможность приостановки порта;

PORT_OVER_CURRENT=3 (Получатель Port)-возможность контроля перегрузки по току для порта;

PORT_RESET=4(Получатель Port)-возможность сброса порта;

PORT_POWER=8 (Получатель Port)-возможность контроля питания порта;

PORT_LOW_SPEED=9 (Получатель Port)-возможность работы на низкой скорости;

C_PORT_CONNECTION=16 (Получатель Port)-возможность изменения подключения порта;

C_PORT_ENABLE =17 (Получатель Port)-возможность изменения разрешения порта;

C_PORT_SUSPEND =18 (Получатель Port)-возможность изменения приостановки порта;

C_PORT_OVER_CURRENT=19 (Получатель Port)-возможность изменения контроля перегрузки;

C_PORT_RESET =20 (Получатель Port)-возможность изменения сброса порта;

Hub Status -битовое поле (16 бит), состояние хаба

Bit0 -Источник локального питания (Local Power Source) 0-локальное питание включено; 1-локальное питание выключено;

Bit1 -Индикатор перегрузки (Over-current Indicator) 0-перегрузка по току; 1-нет перегрузки по току;

Bit15..2 – резерв;

Hub Change Indicators - битовое поле (16 бит), изменение индикаторов;

Bit0 -Изменения состояния локального питания (Local Power Status Change), 0-нет изменения локального питания; 1-было изменение локального питания;

Bit1 -Изменение индикатора перегрузки (Over-current Indicator Change), 0-изменение индикатора перегрузки по току; 1-нет было изменение индикатора;

Bit15..2 – резерв;

Per-Port Bus State -битовое поле(8 бит), состояние линий D+,D-;

Bit0 -значение на линии D-;

Bit1 -значение на линии D+;

Bit7..Bit2 -резерв.

Port Status -битовое поле (16 бит), состояние порта;

Bit0 -Состояние текущего соединения (Current Connect Status) 0-нет подсоединённого устройства; 1-к порту присоединено устройство;

Bit1 -Вкл/Выкл порта (Port Enabled/Disabled) 0-порт выключен; 1-порт включен;

Bit2 -Приостановлено(Susped) 0-нет приостановки; 1-приостановка или возобновление;

Bit3 -Индикатор перегрузки (Over-current Indicftor) 0-нет перегрузки; 1-есть перегрузка;

Bit4 -Сброс (Reset) 0-сброса не было; 1-сброс был;

Bit7..5 -резерв;

Bit8 -Питание порта (Port Power) 0-питание порта выключено; 1-питание порта включено;

Bit9 -Присоединение низкоскоростного устройства (Low Speed Device Attached) 0-к порту подключено FS устройство; 1-к порту подключено LS устройство;

Bit15..10 -Резерв.

Port Change Indicators - битовое поле (16 бит), изменение индикаторов порта

Bit0 -Изменения состояния соединения (Connect Status Change) 0-нет изменения текущего соединения; 1-было изменение соединения;

Bit1 -Изменение состояния порта Вкл/Выкл(Port Enable/Disable Change) 0-было изменение вкл/выкл; 1-нет было изменение;

Bit2 -Изменение состояния приостановки (Suspend Change) 0-нет изменений; 1-Восстановлено (Resume complete);

Bit3 -Изменение индикатора перегрузки (Over-Current Indicator Change) 0-нет изменений; 1-есть изменения;

Bit4 -Изменение состояния сброса (Reset Change) 0-нет изменений; 1-был сброс;

Bit15..5 -Резерв.

 

Логическая структура хоста

 

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

 

 

Рисунок 16 – Логическая структура Хост - Устройство

Три логических уровня: 1. Клиентский уровень (Client-Function). Организует логическую связь программы пользователя с функцией устройства. Обеспечивает передачу и приём пользовательских данных между ПК и устройством. Делает невидимым для пользователя работу системного и физического уровня. Использует каналы точек 1..15.

2.Системный уровень (USB System). Организует логическую связь между USB драйвером хоста и устройства. Обеспечивает конфигурацию и настройку устройства. Делает невидимым для драйвера работу физического уровня. Использует канал по умолчанию (0-точка)

3.Физический уровень (USB Interface).

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

 

 

Рисунок 17 – Структура хоста

 

Client Soft - клиентское программное обеспечение.

Клиентское программное обеспечение общается с устройством через интерфейс.

Интерфейс – это набор логических каналов связи с конечными точками.

В интерфейсе каждый канал может быть настроен на передачу, или на приём.

Интерфейсов может быть несколько и ПО клиента выбирает номер интерфейса, по которому оно будет общаться с устройством.

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

IRPs(I/O Request Packets) -протокол обмена ПО клиента с драйвером USB.

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

В этом пакете определён тип передачи, адрес буфера памяти и размер данных для обмена по заданному каналу.

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

Host Software- программное обеспечение хоста.

Это не обязательный элемент хоста.

Если он присутствует, то его конфигурацию должно выполнять ПО клиента.

Обычно применяется если система не использует стандартный USB драйвер.

USB Driver(USBD)- драйвер USB.

Этот драйвер организует базисный интерфейс хоста(USBDI), который обеспечивает взаимодействие клиентов с устройствами USB.

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

Назначает адрес каждому физическому устройству сети.

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

Планирует все транзакции.

Связь между USBD и HCD (HC Driver) известна как HCDI-интерфейс (Host Controller Driver Interface)

Этот интерфейс никогда не доступен непосредственно клиентам и таким образом не определяется спецификацией USB.

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

USBD получает пакеты запросов ввода/вывода от клиентского ПО и формирует задание для HC драйвера.

HC Driver (HCD-Host Conttroller Driver)-драйвер хост контроллера.

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

Принимает от USBD перечень текущих транзакций.

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

Сообщает в USBD о выполнении транзакции.

HW-Defined (Hard Ware Defined) -интерфейс между HC Driver и Host Controller.

Этот интерфейс описывается (definition) в драйвере HCD аппаратной частью контроллера.

Host Controller -контроллер хоста.

Физическое устройство, которое формирует и физически выполняет транзакции из очереди установленной драйвером HCD.

Контроллер формирует кадры, выставляя каждую 1мс пакет начала кадра.

Кодирует данные в NRZI.

Вставляет синхробиты.

Контроллер подает текущую транзакцию в схему последовательной передачи данных SIE (Serial Interface Engine) в сигнальные линии USB.

Serial Interface Engine (SIE) -физический последовательный интерфейс.

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

 

Содержание отчёта

 

Отчет по лабораторной работе должен содержать:

- титульный лист;

- название и цель работы;

- ответы на контрольные вопросы.

 

6 Контрольные вопросы

 

1) Приведите диаграммы сигналов при передаче пакетов Low Speed и Full Speed по интерфейсу USB1.1 и их описание.

2) Назовите типы пакетов, предаваемых по интерфейсу USB1.1: приведите структурк пакета и описание его полей.

3) Структура дескрипторов устройства, интерфейса, конфигурации, конечной точки и строки.

4) Структура дескриптора хаба и класс-специфицированные запросы Хаба.

5) Урофни логической структуры «Хост-Устройство».

 


Поделиться с друзьями:

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.076 с.