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

9. Передача данных по usb

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

Механизм передачи данных является асинхронным и блочным. Блок передаваемых данных называется USB-фреймом или USB-кадром и передается за фиксированный временной интервал. Оперирование командами и блоками данных реализуется при помощи логической абстракции, называемой каналом. Внешнее устройство также делится на логические абстракции, называемые конечными точками. Таким образом, канал является логической связкой между хост-контроллером и конечной точкой внешнего устройства. Канал можно сравнить с открытым файлом.

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

Информация по каналу передается в виде пакетов (Packet). Каждый пакет начинается с поля синхронизации SYNC, за которым следует идентификатор пакета PID. Поле Check представляет собой побитовую инверсию PID.

Систему USB следует разделить на три логических уровня с определенными правилами взаимодействия. Устройство USB содержит интерфейсную, логическую и функциональную части. Хост тоже делится на три части - интерфейсную, системную и программное обеспечение. Каждая часть отвечает только за определенный круг задач. Таким образом, операция обмена данными между прикладной программой и шиной USВ выполняется путем передачи буферов памяти через следующие уровни. Уровень клиентского ПО в хосте: 1.обычно представляется драйвером устройства USB; 2. обеспечивает взаимодействие пользователя с операционной системой с одной стороны и системным драйвером с другой. Уровень системного обеспечения USB в хосте (USBD): 1. управляет нумерацией устройств на шине; 2.управляет распределением пропускной способности шины и мощности питания; 3.обрабатывает запросы пользовательских драйверов. Хост-контроллер интерфейса шины USB (HCD): 1.преобразует запросы ввода/вывода в структуры данных, по которым хост-контроллер выполняет физические транзакции; 2.работает с регистрами хост-контроллера.

Уровень клиентского ПО определяет тип передачи данных, необходимый для выполнения затребованной прикладной программой операции. После определения типа передачи данных этот уровень передает системному уровню следующее: 1.буфер памяти, называемый клиентским буфером; 2.пакет запроса на в/в (IRP), указывающий тип необходимой операции. 3.IRP содержит только сведения о запросе (адрес и длина буфера в оперативной памяти). Непосредственно обработкой запроса занимается системный драйвер USB.

Уровень системного драйвера USB необходим для управления ресурсами USB: 1.распределение полосы пропускания шины USB;2.назначение логических адресов устройств каждому физическому USB-устройству; 3.планирование транзакций.

Логически передача данных между конечной точкой и ПО производится с помощью выделения канала и обмена данными по этому каналу: 1.Клиентское ПО посылает IPR-запросы уровню USBD. 2.Драйвер USBD разбивает запросы на транзакции по следующим правилам: 1.выполнение запроса считается законченным, когда успешно завершены все транзакции, его составляющие; 2.все подробности отработки транзакций (такие как ожидание готовности, повтор транзакции при ошибке, неготовность приемника и т. д.) до клиентского ПО не доводятся; 3.ПО может только запустить запрос и ожидать или выполнения запроса или выхода по тайм-ауту; 4.устройство может сигнализировать о серьезных ошибках, что приводит к аварийному завершению запроса, о чем уведомляется источник запроса.

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

Хост-контроллер интерфейса шины USB формирует кадры.Кадры передаются последовательной передачей бит по методу NRZI. Таким образом, можно сформировать следующую упрощенную схему: 1.каждый кадр состоит из наиболее приоритетных посылок, состав которых формирует драйвер хоста; 2. каждая передача состоит из одной или нескольких транзакций; 3.каждая транзакция состоит из пакетов; 4.каждый пакет состоит из идентификатора пакета, данных (если они есть) и контрольной суммы.

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