Структура программного обеспечения USB

Sep 01, 2022

Шинный интерфейс

Интерфейс шины USB обеспечивает взаимосвязь между электрическим уровнем и уровнем протокола. С точки зрения взаимосвязи аналогичные интерфейсы шины предоставляются устройством и хостом одновременно, например, машина с последовательным интерфейсом (SIE). Интерфейс шины USB реализуется главным контроллером.

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

Драйвер хост-контроллера (HCD) может сопоставлять различные устройства хост-контроллера с системой USB. Интерфейс между HCD и USB называется HCDI. Конкретный HCDI определяется операционной системой, поддерживающей различные главные контроллеры. Драйвер универсального главного контроллера (uhcd) находится в нижней части программной структуры и управляет главным контроллером. Uhcd связывается с хост-контроллером USB и управляет им, и он скрыт от других частей системного программного обеспечения. Верхний уровень системного программного обеспечения взаимодействует с главным контроллером через программный интерфейс uhcd.

Драйвер USB (usbd), основанный на драйвере uhcd, обеспечивает интерфейс на уровне драйвера, соответствующий требованиям существующей конструкции драйвера устройства. Usbd предоставляет архитектуру передачи данных в виде пакетов запроса ввода-вывода (IRP), которая состоит из требований к передаче данных по определенным каналам. Кроме того, usbd заставляет клиента выглядеть как абстракция устройства, чтобы упростить абстракцию и управление. Как часть абстракции, usbd имеет конвейер по умолчанию. Через который можно получить доступ ко всем USB-устройствам для стандартного управления USB. Этот канал по умолчанию описывает логический канал для связи между usbd и USB-устройством.

Программное обеспечение хоста

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

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

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

Каждый слой хоста имеет следующие функции:

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

Управление потоком данных между хостом и USB-устройством.

Состояние подключения USB и статистика активности.

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

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