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 предоставя архитектура за предаване на данни под формата на I/O заявка пакети (IRPs), която се състои от изискванията за предаване на данни през специфични канали. Освен това usbd кара клиента да изглежда като абстракция на устройството, за да улесни абстракцията и управлението. Като част от абстракцията, usbd има тръбопровод по подразбиране. Чрез който всички USB устройства могат да бъдат достъпни за стандартен USB контрол. Този канал по подразбиране описва логически канал за комуникация между usbd и USB устройството.

Хост софтуер

В някои операционни системи не се предоставя USB системен софтуер. Този софтуер първоначално се използва за предоставяне на информация за конфигурация и структура за зареждане на драйверите на устройства. В тези операционни системи драйверът на устройството използва интерфейса, предоставен от приложението, вместо директен достъп до структурата на USBDI (USB Driver Interface).

USB клиентски софтуер

Той се намира на най-високото ниво на софтуерната структура и отговаря за обработката на специфични драйвери за USB устройства. Клиентският слой описва всички софтуерни портали, които действат директно на устройството. Когато устройството бъде открито от системата, тези клиентски програми ще действат директно върху периферния хардуер. Тази споделена функция поставя USB системния софтуер между клиента и неговото устройство, което трябва да бъде обработено от клиентската програма според изображението на устройството, формирано от usbd на клиента.

Всеки слой на хоста има следните функции:

Откриване на свързани и премахнати USB устройства.

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

USB състояние на връзката и статистика за дейността.

Контролирайте електрическия интерфейс между главния контролер и USB устройството, включително ограничено захранване с енергия.

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