Проектирование CDC-устройств на микроконтроллерах со встроенным USB-модулем. Воробьева Г.С - 9 стр.

UptoLike

9
1. Преобразует запросы ввода/вывода в структуры
данных, по которым выполняются физические
транзакции.
2. Работает с регистрами хоста.
Передача данных по уровням
Логическая передача данных между конечной точкой и ПО
производится с помощью выделения канала и обмена данными по
этому каналу, а с точки зрения представленных уровней передача
данных выглядит следующим образом.
1. Клиентское ПО посылает IRP-запросы на уровень
системного драйвера USB.
2. Системный драйвер USB разбивает запросы на транзакции
по следующим правилам:
выполнение запроса считается законченным, когда
успешно завершены все транзакции, его
составляющие;
все подробности обработки транзакций до клиентского
ПО не доводятся;
ПО может только запустить запрос и ожидать или
выполнения запроса, или выхода по тайм-ауту;
устройство может сигнализировать о серьезных
ошибках, что приводит к аварийному завершению
запроса, о чем уведомляется источник запроса.
3. Драйвер контроллера хоста принимает от системного
драйвера USB перечень транзакций и выполняет следующие
действия:
планирует исполнение полученных
транзакций, добавляя их к списку транзакций;
извлекает из списка очередную транзакцию и
передает ее уровню хост-контроллера
интерфейса шины USB;
отслеживает состояние каждой транзакции
вплоть до ее завершения.
4. Хост-контроллер интерфейса шины USB формирует кадры.
5. Кадры передаются последовательной передачей бит по
методу, называемому NRZI(метод возврата к нулю с
инвертированием единиц).